diff --git a/.github/workflows/compile_changelogs.yml b/.github/workflows/compile_changelogs.yml index 141fc9a7d8..f8098df66e 100644 --- a/.github/workflows/compile_changelogs.yml +++ b/.github/workflows/compile_changelogs.yml @@ -17,6 +17,7 @@ jobs: run: | python -m pip install --upgrade pip python -m pip install pyyaml + sudo apt-get install dos2unix - name: "Checkout" uses: actions/checkout@v1 with: @@ -24,6 +25,9 @@ jobs: - name: "Compile" run: | python tools/ss13_genchangelog.py html/changelog.html html/changelogs + - name: "Convert Lineendings" + run: | + unix2dos html/changelogs/.all_changelog.yml - name: Commit run: | git config --local user.email "action@github.com" diff --git a/README.md b/README.md index 2a1ffe65ec..0ecf4c5b01 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,28 @@ ## Citadel Station 13 Based and maintained from /tg/station. -[![forthebadge](http://forthebadge.com/images/badges/60-percent-of-the-time-works-every-time.svg)](https://forthebadge.com) [![forthebadge](http://forthebadge.com/images/badges/pretty-risque.svg)](https://forthebadge.com) [![forthebadge](http://forthebadge.com/images/badges/you-didnt-ask-for-this.svg)](http://forthebadge.com) +[![Build Status](https://api.travis-ci.org/Citadel-Station-13/Citadel-Station-13.png)](https://travis-ci.org/Citadel-Station-13/Citadel-Station-13) +[![Percentage of issues still open](http://isitmaintained.com/badge/open/Citadel-Station-13/Citadel-Station-13.svg)](http://isitmaintained.com/project/Citadel-Station-13/Citadel-Station-13 "Percentage of issues still open") +[![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/Citadel-Station-13/Citadel-Station-13.svg)](http://isitmaintained.com/project/Citadel-Station-13/Citadel-Station-13 "Average time to resolve an issue") -[![forinfinityandbyond](https://user-images.githubusercontent.com/5211576/29499758-4efff304-85e6-11e7-8267-62919c3688a9.gif)](https://www.reddit.com/r/SS13/comments/5oplxp/what_is_the_main_problem_with_byond_as_an_engine/dclbu1a) - -[![Build Status](https://api.travis-ci.org/Citadel-Station-13/Citadel-Station-13.png)](https://travis-ci.org/Citadel-Station-13/Citadel-Station-13) [![Krihelimeter](http://www.krihelinator.xyz/badge/Citadel-Station-13/Citadel-Station-13)](http://www.krihelinator.xyz) - -[![Percentage of issues still open](http://isitmaintained.com/badge/open/Citadel-Station-13/Citadel-Station-13.svg)](http://isitmaintained.com/project/Citadel-Station-13/Citadel-Station-13 "Percentage of issues still open") [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/Citadel-Station-13/Citadel-Station-13.svg)](http://isitmaintained.com/project/Citadel-Station-13/Citadel-Station-13 "Average time to resolve an issue") +[![forthebadge](http://forthebadge.com/images/badges/60-percent-of-the-time-works-every-time.svg)](https://forthebadge.com) [![forthebadge](http://forthebadge.com/images/badges/pretty-risque.svg)](https://forthebadge.com) [![forthebadge](http://forthebadge.com/images/badges/you-didnt-ask-for-this.svg)](http://forthebadge.com) [![forinfinityandbyond](https://user-images.githubusercontent.com/5211576/29499758-4efff304-85e6-11e7-8267-62919c3688a9.gif)](https://www.reddit.com/r/SS13/comments/5oplxp/what_is_the_main_problem_with_byond_as_an_engine/dclbu1a) **Upstream Information** -**Website:** https://tgstation13.org -**Code:** https://github.com/tgstation/tgstation -**Wiki** https://tgstation13.org/wiki/Main_Page -**IRC:** irc://irc.rizon.net/coderbus or if you dont have an IRC client, you can click [here](https://kiwiirc.com/client/irc.rizon.net:6667/?&theme=cli#coderbus). - +* **Website:** +* **Code:** +* **Wiki:** +* **Codedocs:** +* **/tg/station Discord:** +* **Coderbus Discord:** +* ~~**IRC:** ~~ (dead) + **Citadel Station Information** -**Website:** http://citadel-station.net -**Forums:** http://citadel-station.net/forum -**Ban Appeals:** http://citadel-station.net/forum/forumdisplay.php?fid=8 -**Code:** https://github.com/Citadel-Station-13/Citadel-Station-13 -**Discord:** [Here](https://discord.gg/E6SQuhz) +* **Website:** +* **Code:** +* **Wiki:** +* **Forums:** +* **Ban Appeals:** +* **Discord:** ## DOWNLOADING @@ -162,13 +164,12 @@ All code before [commit 333c566b88108de218d882840e61928a9b759d8f on 2014/31/12 a See LICENSE and GPLv3.txt for more details. +The TGS3 API is licensed as a subproject under the MIT license. + +See the footers of code/\_\_DEFINES/server\_tools.dm, code/modules/server\_tools/st\_commands.dm, and code/modules/server\_tools/st\_inteface.dm for the MIT license. + tgui clientside is licensed as a subproject under the MIT license. Font Awesome font files, used by tgui, are licensed under the SIL Open Font License v1.1 tgui assets are licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/). -The TGS3 API is licensed as a subproject under the MIT license. -See tgui/LICENSE.md for the MIT license. -See tgui/assets/fonts/SIL-OFL-1.1-LICENSE.md for the SIL Open Font License. -See the footers of code/\_\_DEFINES/server\_tools.dm, code/modules/server\_tools/st\_commands.dm, and code/modules/server\_tools/st\_inteface.dm for the MIT license. - -All assets including icons and sound are under a [Creative Commons 3.0 BY-SA license](http://creativecommons.org/licenses/by-sa/3.0/) unless otherwise indicated. +All assets including icons and sound are under a [Creative Commons 3.0 BY-SA license](https://creativecommons.org/licenses/by-sa/3.0/) unless otherwise indicated. diff --git a/_maps/RandomRuins/AnywhereRuins/fountain_hall.dmm b/_maps/RandomRuins/AnywhereRuins/fountain_hall.dmm index bddadc7b0c..f1b0582ec3 100644 --- a/_maps/RandomRuins/AnywhereRuins/fountain_hall.dmm +++ b/_maps/RandomRuins/AnywhereRuins/fountain_hall.dmm @@ -2,156 +2,172 @@ "a" = ( /turf/template_noop, /area/template_noop) -"b" = ( -/turf/closed/wall/mineral/cult, -/area/ruin/unpowered) "c" = ( /obj/structure/healingfountain, -/turf/open/floor/engine/cult, +/turf/open/floor/carpet/purple, /area/ruin/unpowered) "d" = ( /obj/structure/fluff/divine/conduit, -/turf/open/floor/engine/cult, +/turf/open/floor/mineral/plasma, /area/ruin/unpowered) "e" = ( /obj/structure/sacrificealtar, -/turf/open/floor/engine/cult, +/turf/open/floor/carpet/purple, /area/ruin/unpowered) "f" = ( -/turf/open/floor/engine/cult, +/mob/living/simple_animal/butterfly, +/turf/open/floor/carpet/purple, /area/ruin/unpowered) "g" = ( /mob/living/simple_animal/butterfly, -/turf/open/floor/engine/cult, +/turf/open/floor/carpet/red, /area/ruin/unpowered) "h" = ( /obj/structure/fans/tiny/invisible, -/turf/open/floor/engine/cult, +/turf/open/floor/carpet/red, +/area/ruin/unpowered) +"u" = ( +/turf/open/floor/carpet/purple, +/area/ruin/unpowered) +"G" = ( +/turf/closed/wall/mineral/cult{ + sheet_amount = 0 + }, +/area/ruin/unpowered) +"J" = ( +/mob/living/simple_animal/butterfly, +/turf/open/floor/carpet/royalblack, +/area/ruin/unpowered) +"T" = ( +/turf/open/floor/carpet/royalblack, +/area/ruin/unpowered) +"U" = ( +/turf/open/floor/carpet/red, /area/ruin/unpowered) (1,1,1) = {" a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G "} (2,1,1) = {" a -b +G d -f -f +U +T +T +T +J +T +T +T +T +T +T d -f -f -d -f -f -d -f -f -d -b +G "} (3,1,1) = {" -b -b +G +G e g -f -f +U +d g -f -f -f -f -g -f -g -f -b +U +d +U +U +d +U +U +u +G "} (4,1,1) = {" -b +G c f -f -f -f -f -f -f -f -f -f -f -f -f +U +T +u +T +T +u +T +T +u +T +T +T h "} (5,1,1) = {" -b -b +G +G e -f -f -f -f g -f -f -f -f -f -f -f -b +U +d +g +U +d +U +U +d +U +U +u +G "} (6,1,1) = {" a -b +G d -g -f +U +T +T +T +J +T +T +T +T +T +T d -f -f -d -f -f -d -f -g -d -b +G "} (7,1,1) = {" a -b -b -b -b -b -b -b -b -b -b -b -b -b -b -b +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G "} diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm index d028ac106f..cfc9e5f4ce 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm @@ -265,12 +265,6 @@ /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ dir = 1 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, /obj/machinery/light/small{ dir = 1 }, @@ -299,9 +293,6 @@ /obj/machinery/atmospherics/pipe/manifold/green/visible{ dir = 1 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "ba" = ( @@ -945,10 +936,6 @@ /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "cO" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, /obj/machinery/light/small, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) @@ -963,9 +950,6 @@ /obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 9 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors) "cR" = ( @@ -1218,6 +1202,10 @@ }, /turf/open/floor/plating/icemoon, /area/icemoon/surface/outdoors) +"xh" = ( +/mob/living/simple_animal/hostile/bear/snow, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) "CR" = ( /obj/structure/cable{ icon_state = "0-8" @@ -1279,17 +1267,17 @@ aa ak an ak -ae +ak an ab aa by bQ bQ +aO ae -ae -ae -ae +ak +ak ae aO aa @@ -1564,28 +1552,28 @@ al al al ds -ae +aO aa "} (16,1,1) = {" -ae -ae -ae -ae +aO +aO ae ae ae aO +ae +aO bi ae +aO ae ae +aO ae +aO ae -ae -ae -ae -ae +aO aa "} (17,1,1) = {" @@ -1599,7 +1587,7 @@ ae aL bb bD -ae +aO aa aa aa @@ -1634,9 +1622,9 @@ aa af aa aa -aa +ak an -aB +dj ae aP bk @@ -1644,7 +1632,7 @@ aP ae aB aB -aB +dj aB aB aB @@ -1689,7 +1677,7 @@ aB cE ab cY -aB +dj aa aa "} @@ -1700,7 +1688,7 @@ af ab ab ab -ab +xh ab bj ab @@ -1710,7 +1698,7 @@ aP cH ab de -aB +dj aa aa "} @@ -1826,7 +1814,7 @@ aa aa an an -aB +dj ae bj bH @@ -1872,7 +1860,7 @@ aa ae bq bH -ae +aO aa aa aa @@ -1895,9 +1883,9 @@ bq bJ ae ae +aO ae -ae -ae +aO aa aa aa @@ -1918,10 +1906,10 @@ bZ ck cs cL +aO ae ae -ae -ae +aO aa "} (33,1,1) = {" @@ -1973,7 +1961,7 @@ aa ae ae ae -ae +aO aW bu bN @@ -1982,9 +1970,9 @@ cn cv cO ae -ae -ae -ae +aO +aO +aO aa "} (36,1,1) = {" @@ -2034,8 +2022,8 @@ aa aa aa ae -ae -ae +aO +aO ae aZ bu @@ -2045,9 +2033,9 @@ cd cy cQ ae -ae -ae -ae +aO +aO +aO aa "} (39,1,1) = {" @@ -2079,14 +2067,14 @@ aa aa aa ae +aO +aO ae ae ae +aO ae -ae -ae -ae -ae +aO aa aa aa diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm index 908363dd86..35eb1901f6 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm @@ -198,6 +198,9 @@ /obj/structure/toilet{ dir = 1 }, +/mob/living/simple_animal/hostile/skeleton/eskimo{ + name = "Village Hunter" + }, /turf/open/floor/plating, /area/ruin/powered) "sY" = ( @@ -216,6 +219,9 @@ /area/icemoon/underground/explored) "tt" = ( /obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/hostile/skeleton/eskimo{ + name = "Village Hunter" + }, /turf/open/floor/plasteel/freezer, /area/ruin/powered) "tF" = ( @@ -415,6 +421,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet, /area/ruin/powered) +"IT" = ( +/mob/living/simple_animal/hostile/skeleton/eskimo{ + name = "Village Hunter" + }, +/turf/open/floor/wood, +/area/ruin/powered) "Kd" = ( /obj/structure/flora/grass/green, /turf/open/floor/plating/asteroid/snow/icemoon, @@ -816,7 +828,7 @@ tF ac Vn AG -aM +IT yb Vn wQ diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm index a43e6129b7..7e9ce9db68 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm @@ -42,6 +42,10 @@ "ak" = ( /obj/structure/toilet, /obj/effect/turf_decal/sand, +/obj/item/reagent_containers/food/drinks/beer/light{ + pixel_x = 9 + }, +/obj/effect/decal/cleanable/vomit/old, /turf/open/floor/plating, /area/ruin/powered/beach) "al" = ( @@ -191,7 +195,9 @@ /turf/open/floor/plasteel, /area/ruin/powered/beach) "aM" = ( -/obj/structure/reagent_dispensers/beerkeg, +/obj/structure/reagent_dispensers/beerkeg{ + reagent_id = /datum/reagent/consumable/ethanol/beer/light + }, /turf/open/floor/wood, /area/ruin/powered/beach) "aN" = ( @@ -371,7 +377,7 @@ /turf/open/floor/plating/beach/sand, /area/ruin/powered/beach) "bP" = ( -/obj/item/reagent_containers/food/drinks/beer, +/obj/item/reagent_containers/food/drinks/beer/light, /turf/open/floor/plating/beach/sand, /area/ruin/powered/beach) "bQ" = ( @@ -463,6 +469,7 @@ /obj/item/storage/box/drinkingglasses, /obj/item/storage/box/beakers, /obj/item/storage/box/donkpockets, +/obj/item/soap, /turf/open/floor/plating, /area/ruin/powered/beach) "hY" = ( @@ -537,6 +544,14 @@ }, /turf/open/floor/pod/light, /area/ruin/powered/beach) +"rV" = ( +/obj/effect/turf_decal/sand, +/obj/item/reagent_containers/food/drinks/beer/light{ + pixel_y = -3; + pixel_x = -9 + }, +/turf/open/floor/plating, +/area/ruin/powered/beach) "sy" = ( /obj/effect/turf_decal/caution{ dir = 4 @@ -590,6 +605,11 @@ /obj/effect/turf_decal/sand, /turf/open/floor/pod/light, /area/ruin/powered/beach) +"Gu" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/beer/light, +/turf/open/floor/wood, +/area/ruin/powered/beach) "HC" = ( /obj/structure/rack, /obj/item/clothing/shoes/sandal, @@ -964,7 +984,7 @@ ar ar ar ar -ar +bP ar bR bT @@ -984,7 +1004,7 @@ as aw aC aC -aP +Gu aW aK Ga @@ -1108,7 +1128,7 @@ aa aa bW ak -au +rV aj aE aC diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm index 862c745f81..6feb378515 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm @@ -188,13 +188,13 @@ /area/ruin/unpowered/xenonest) "aT" = ( /obj/structure/alien/weeds, -/obj/item/twohanded/required/chainsaw, +/obj/item/chainsaw, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/xenonest) "aU" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, -/obj/item/twohanded/fireaxe/boneaxe, +/obj/item/fireaxe/boneaxe, /obj/item/clothing/head/helmet/gladiator, /obj/item/clothing/mask/facehugger/impregnated, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, @@ -219,6 +219,7 @@ /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs, /mob/living/simple_animal/hostile/alien/drone, +/obj/structure/alien/weeds/node, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/xenonest) "aZ" = ( @@ -535,6 +536,11 @@ /obj/effect/mob_spawn/alien/corpse/humanoid/queen, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/xenonest) +"wA" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/weeds/node, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/xenonest) "yf" = ( /obj/structure/alien/weeds/node, /mob/living/simple_animal/hostile/alien/sentinel, @@ -551,6 +557,12 @@ /obj/effect/mob_spawn/alien/corpse/humanoid/drone, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/xenonest) +"QG" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/structure/alien/weeds/node, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/xenonest) "Uh" = ( /obj/structure/alien/weeds, /obj/item/xenos_claw, @@ -683,7 +695,7 @@ ac ac aj ac -am +QG ac ac ac @@ -800,7 +812,7 @@ ac ac ac ac -ag +wA ag ag ar @@ -884,7 +896,7 @@ aa (7,1,1) = {" ab ac -ag +wA ag ag ag @@ -917,7 +929,7 @@ ac ac ZT ac -ag +wA ag ac ab @@ -1349,7 +1361,7 @@ ar lG ag ag -ag +wA ad ag ag @@ -1555,7 +1567,7 @@ ag ac aF ag -ag +ar ag ag ar @@ -1603,7 +1615,7 @@ ao ah ac ag -ag +wA ag ag pE @@ -1742,7 +1754,7 @@ ag ag ag ag -ac +aw ar ag bD @@ -1791,9 +1803,9 @@ ac ac ac ac +wA ag -ag -ac +aw ar ag bD @@ -1828,7 +1840,7 @@ ac ac ag Uh -ag +wA aZ be bo diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm index 60ae409ea2..527a328563 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm @@ -517,7 +517,7 @@ /turf/open/floor/plasteel, /area/ruin/powered/animal_hospital) "bt" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /turf/open/floor/plasteel, /area/ruin/powered/animal_hospital) "bu" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm index b4abf9b535..39ecc54ec7 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm @@ -476,7 +476,7 @@ }, /obj/item/storage/bag/plants/portaseeder, /obj/item/seeds/cotton, -/obj/item/seeds/cotton, +/obj/item/seeds/cotton/durathread, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) "bk" = ( @@ -724,7 +724,7 @@ /area/lavaland/surface/outdoors) "bP" = ( /obj/structure/stone_tile/block, -/obj/item/twohanded/spear, +/obj/item/spear, /obj/effect/mapping_helpers/no_lava, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) @@ -896,7 +896,7 @@ /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "ck" = ( -/obj/item/twohanded/spear, +/obj/item/spear, /obj/structure/stone_tile{ dir = 4 }, @@ -910,7 +910,7 @@ /obj/structure/stone_tile/cracked{ dir = 8 }, -/obj/item/twohanded/spear, +/obj/item/spear, /obj/effect/mapping_helpers/no_lava, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) @@ -1014,7 +1014,7 @@ /obj/structure/stone_tile/cracked{ dir = 1 }, -/obj/item/twohanded/spear, +/obj/item/spear, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "cA" = ( @@ -1058,7 +1058,7 @@ dir = 1 }, /obj/structure/table/wood, -/obj/item/twohanded/spear, +/obj/item/spear, /obj/item/storage/belt, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) @@ -1100,7 +1100,7 @@ dir = 4 }, /obj/structure/table/wood, -/obj/item/twohanded/spear, +/obj/item/spear, /obj/item/scythe, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) @@ -1128,7 +1128,7 @@ dir = 4 }, /obj/structure/table/wood, -/obj/item/twohanded/spear, +/obj/item/spear, /obj/item/clothing/head/helmet/roman/legionnaire, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm index f48801c199..c7ae4c6eb4 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm @@ -3,9 +3,9 @@ /turf/template_noop, /area/template_noop) "ac" = ( -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/mesh, /obj/structure/table, -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/suture, /turf/open/floor/plating, /area/ruin/powered/snow_biodome) "ad" = ( @@ -203,6 +203,12 @@ /area/ruin/powered/snow_biodome) "aR" = ( /obj/structure/flora/tree/pine/xmas, +/obj/item/a_gift{ + pixel_y = -5 + }, +/obj/item/a_gift{ + pixel_x = 6 + }, /turf/open/floor/plating/asteroid/snow{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, @@ -295,6 +301,12 @@ }, /turf/open/floor/pod/dark, /area/ruin/powered/snow_biodome) +"gy" = ( +/obj/item/toy/snowball, +/turf/open/floor/plating/asteroid/snow{ + initial_gas_mix = "o2=22;n2=82;TEMP=180" + }, +/area/ruin/powered/snow_biodome) "gz" = ( /obj/structure/chair/stool, /turf/open/floor/pod/dark, @@ -316,6 +328,13 @@ }, /turf/open/floor/pod/dark, /area/ruin/powered/snow_biodome) +"rl" = ( +/obj/structure/flora/bush, +/obj/item/toy/snowball, +/turf/open/floor/plating/asteroid/snow{ + initial_gas_mix = "o2=22;n2=82;TEMP=180" + }, +/area/ruin/powered/snow_biodome) "tb" = ( /obj/effect/mapping_helpers/no_lava, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, @@ -361,13 +380,18 @@ /obj/structure/closet/secure_closet/freezer/fridge, /turf/open/floor/pod/dark, /area/ruin/powered/snow_biodome) +"IQ" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/mug, +/turf/open/floor/wood, +/area/ruin/powered/snow_biodome) "JZ" = ( /obj/structure/table, /obj/machinery/microwave, /turf/open/floor/pod/dark, /area/ruin/powered/snow_biodome) "KS" = ( -/obj/item/twohanded/required/chainsaw, +/obj/item/chainsaw, /obj/structure/closet, /obj/machinery/light/small{ dir = 4 @@ -380,6 +404,7 @@ /area/ruin/powered/snow_biodome) "Oj" = ( /obj/structure/table, +/obj/item/reagent_containers/food/drinks/mug, /turf/open/floor/pod/dark, /area/ruin/powered/snow_biodome) "PD" = ( @@ -407,6 +432,7 @@ "QK" = ( /obj/structure/table, /obj/item/storage/fancy/cigarettes/cigpack_carp, +/obj/item/reagent_containers/food/drinks/mug, /turf/open/floor/pod/dark, /area/ruin/powered/snow_biodome) "QN" = ( @@ -417,6 +443,13 @@ /obj/effect/decal/cleanable/oil, /turf/open/floor/pod/dark, /area/ruin/powered/snow_biodome) +"SL" = ( +/obj/structure/flora/grass/both, +/obj/item/toy/snowball, +/turf/open/floor/plating/asteroid/snow{ + initial_gas_mix = "o2=22;n2=82;TEMP=180" + }, +/area/ruin/powered/snow_biodome) "Ub" = ( /obj/structure/filingcabinet, /turf/open/floor/pod/dark, @@ -577,7 +610,7 @@ aB ak ak ak -aI +rl by ak ak @@ -740,7 +773,7 @@ aI az ak ak -ak +gy ak ak aI @@ -916,7 +949,7 @@ Wg ag ah as -aw +IQ aA aA at @@ -924,7 +957,7 @@ aM aP ak ak -aQ +SL ak ak az @@ -1077,7 +1110,7 @@ Wg an Wg ay -ak +gy ak ak ak @@ -1114,6 +1147,7 @@ aI ak ap ak +gy ak ak ak @@ -1121,8 +1155,7 @@ ak ak ak ak -ak -ak +gy ak aI ak @@ -1240,7 +1273,7 @@ ak ak az ak -ak +gy ak bB ak diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm new file mode 100644 index 0000000000..f590af752b --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm @@ -0,0 +1,1721 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface) +"ac" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/ruin/unpowered/elephant_graveyard) +"ad" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/structure/closet/crate/grave/lead_researcher, +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/mob_spawn/human/skeleton, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"ae" = ( +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"af" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"ag" = ( +/obj/effect/decal/cleanable/vomit, +/obj/item/shovel, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"ah" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"ai" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aj" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/obj/item/paper/fluff/ruins/elephant_graveyard/final_message, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"ak" = ( +/turf/open/floor/plating/asteroid/basalt/wasteland{ + icon_state = "wasteland_dug" + }, +/area/ruin/unpowered/elephant_graveyard) +"al" = ( +/obj/effect/mapping_helpers/network_builder/power_cable, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"am" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mapping_helpers/network_builder/power_cable, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"an" = ( +/obj/item/reagent_containers/food/snacks/deadmouse, +/obj/item/assembly/mousetrap, +/turf/open/floor/plating/asteroid/basalt/wasteland{ + icon_state = "wasteland_dug" + }, +/area/ruin/unpowered/elephant_graveyard) +"ao" = ( +/obj/structure/statue/bone/skull/half, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"ap" = ( +/obj/structure/statue/bone/skull/half{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aq" = ( +/obj/item/reagent_containers/glass/bottle/frostoil{ + desc = "A small bottle. Contains cold sauce. There's a label on here: APPLY ON SEVERE BURNS."; + volume = 10 + }, +/obj/effect/mapping_helpers/network_builder/power_cable, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"ar" = ( +/obj/structure/flora/rock, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"as" = ( +/obj/structure/flora/rock, +/obj/item/pickaxe{ + layer = 2.5; + pixel_x = -8; + pixel_y = 5 + }, +/obj/effect/mapping_helpers/network_builder/power_cable, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"at" = ( +/turf/closed/mineral/strong/wasteland, +/area/lavaland/surface) +"au" = ( +/obj/structure/table, +/obj/item/t_scanner/adv_mining_scanner/lesser, +/obj/effect/mapping_helpers/network_builder/power_cable, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"av" = ( +/obj/structure/barricade/wooden/crude, +/obj/structure/barricade/wooden, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aw" = ( +/obj/structure/table, +/obj/item/paper/crumpled/muddy/fluff/elephant_graveyard/rnd_notes, +/obj/effect/mapping_helpers/network_builder/power_cable, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"ax" = ( +/obj/structure/statue/bone/rib{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"ay" = ( +/obj/structure/statue/bone/rib, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"az" = ( +/obj/structure/table, +/obj/item/pen, +/obj/item/pen, +/obj/item/pen, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aA" = ( +/turf/closed/wall, +/area/ruin/unpowered/elephant_graveyard) +"aB" = ( +/obj/item/chair, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aC" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aD" = ( +/obj/structure/table, +/obj/item/reagent_containers/glass/bottle/plasma{ + volume = 25 + }, +/obj/effect/mapping_helpers/network_builder/power_cable, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aE" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aF" = ( +/obj/structure/table, +/obj/machinery/power/floodlight, +/obj/effect/mapping_helpers/network_builder/power_cable, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aG" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/glowstick, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aH" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/powered/graveyard_shuttle) +"aI" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/powered/graveyard_shuttle) +"aJ" = ( +/obj/structure/table, +/obj/item/clipboard, +/obj/effect/mapping_helpers/network_builder/power_cable, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aK" = ( +/obj/item/cigbutt, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aL" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/effect/mapping_helpers/network_builder/power_cable, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aM" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/black, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aN" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/powered/graveyard_shuttle) +"aO" = ( +/obj/effect/decal/cleanable/glass, +/obj/machinery/computer, +/turf/open/floor/mineral/titanium/white, +/area/ruin/powered/graveyard_shuttle) +"aP" = ( +/obj/structure/bed, +/obj/item/flashlight/lantern, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aQ" = ( +/obj/machinery/power/floodlight, +/obj/effect/mapping_helpers/network_builder/power_cable, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aR" = ( +/obj/structure/table, +/obj/item/taperecorder, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aS" = ( +/obj/structure/table, +/obj/item/tape/random, +/obj/item/tape/random, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aT" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/candle, +/obj/item/trash/can, +/obj/item/trash/can, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/cigbutt, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aU" = ( +/obj/structure/bed, +/obj/item/bedsheet/brown, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aV" = ( +/obj/structure/bed, +/obj/item/bedsheet/brown, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aW" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/item/clothing/mask/gas/explorer/folded, +/turf/open/floor/mineral/titanium/white, +/area/ruin/powered/graveyard_shuttle) +"aX" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"aY" = ( +/obj/structure/sign/warning/nosmoking/circle, +/turf/closed/wall, +/area/ruin/unpowered/elephant_graveyard) +"aZ" = ( +/obj/item/organ/brain, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"ba" = ( +/obj/structure/headpike/bone, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bb" = ( +/obj/effect/decal/cleanable/oil/streak, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bc" = ( +/obj/structure/sign/poster/ripped, +/turf/closed/wall, +/area/ruin/unpowered/elephant_graveyard) +"bd" = ( +/obj/item/organ/heart, +/obj/item/organ/eyes, +/obj/item/organ/ears, +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"be" = ( +/obj/item/organ/lungs, +/obj/item/organ/liver, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bf" = ( +/turf/closed/mineral/strong/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bg" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/mineral/titanium, +/area/ruin/powered/graveyard_shuttle) +"bh" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/chair/office/light, +/turf/open/floor/mineral/titanium/white, +/area/ruin/powered/graveyard_shuttle) +"bi" = ( +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/circuit/off, +/area/ruin/powered/graveyard_shuttle) +"bj" = ( +/obj/structure/barricade/wooden, +/obj/structure/mineral_door/wood, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bk" = ( +/obj/item/kitchen/knife/combat/bone, +/obj/item/organ/tongue, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bl" = ( +/obj/effect/decal/cleanable/shreds, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bm" = ( +/obj/structure/closet/wardrobe/curator, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bn" = ( +/obj/structure/sink/oil_well, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bo" = ( +/obj/item/stack/medical/gauze/improvised, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bp" = ( +/turf/open/floor/mineral/titanium/white, +/area/ruin/powered/graveyard_shuttle) +"bq" = ( +/obj/machinery/iv_drip, +/turf/open/floor/mineral/titanium/white, +/area/ruin/powered/graveyard_shuttle) +"br" = ( +/obj/structure/sign/warning/nosmoking/circle, +/turf/closed/wall/mineral/titanium, +/area/ruin/powered/graveyard_shuttle) +"bs" = ( +/obj/structure/fence/door, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bt" = ( +/obj/structure/table, +/turf/closed/mineral/strong/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bu" = ( +/obj/structure/bed, +/obj/item/trash/pistachios, +/obj/item/trash/chips, +/obj/item/bedsheet/brown, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bv" = ( +/obj/effect/decal/remains/human, +/obj/item/clothing/under/misc/overalls, +/obj/item/clothing/mask/bandana/green, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bw" = ( +/obj/structure/rack, +/obj/item/shovel, +/obj/item/wrench, +/obj/effect/mapping_helpers/network_builder/power_cable, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bx" = ( +/obj/item/reagent_containers/food/snacks/deadmouse, +/obj/item/assembly/mousetrap, +/obj/effect/mapping_helpers/network_builder/power_cable, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"by" = ( +/obj/structure/closet/emcloset, +/obj/item/light/bulb, +/obj/effect/turf_decal/box/white, +/turf/open/floor/mineral/titanium/purple, +/area/ruin/powered/graveyard_shuttle) +"bz" = ( +/obj/item/paper/crumpled/muddy/fluff/elephant_graveyard/mutiny, +/obj/item/cigbutt, +/obj/item/cigbutt, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bA" = ( +/obj/machinery/suit_storage_unit/mining/eva, +/obj/effect/turf_decal/box/white, +/turf/open/floor/mineral/titanium/purple, +/area/ruin/powered/graveyard_shuttle) +"bB" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bC" = ( +/obj/structure/barricade/sandbags, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bD" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/elephant_graveyard) +"bE" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/mineral/titanium/purple, +/area/ruin/powered/graveyard_shuttle) +"bF" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/elephant_graveyard) +"bG" = ( +/obj/effect/decal/remains/human, +/obj/item/tank/internals/emergency_oxygen/empty, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bH" = ( +/obj/item/paper/fluff/ruins/elephant_graveyard, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface) +"bI" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/powered/graveyard_shuttle) +"bJ" = ( +/obj/structure/sign/warning/xeno_mining, +/turf/closed/wall, +/area/ruin/unpowered/elephant_graveyard) +"bK" = ( +/obj/structure/sign/warning/explosives, +/turf/closed/wall, +/area/ruin/unpowered/elephant_graveyard) +"bL" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bM" = ( +/obj/item/storage/fancy/cigarettes/cigpack_mindbreaker, +/obj/structure/closet/crate/grave, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bN" = ( +/obj/structure/sign/warning/securearea, +/obj/structure/sign/warning/securearea, +/turf/closed/mineral/strong/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bO" = ( +/obj/item/paper/fluff/ruins/elephant_graveyard, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bP" = ( +/obj/structure/barricade/wooden/crude, +/obj/item/paper/fluff/ruins/elephant_graveyard, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/unpowered/elephant_graveyard) +"bQ" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/decal/cleanable/cobweb, +/obj/item/paper/fluff/ruins/elephant_graveyard/hypothesis, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/titanium/white, +/area/ruin/powered/graveyard_shuttle) +"bR" = ( +/obj/effect/decal/cleanable/generic, +/obj/item/cigbutt, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bS" = ( +/obj/effect/decal/cleanable/oil/slippery, +/obj/machinery/rnd/destructive_analyzer, +/turf/open/floor/mineral/titanium/white, +/area/ruin/powered/graveyard_shuttle) +"bT" = ( +/obj/structure/barricade/wooden, +/obj/item/paper/fluff/ruins/elephant_graveyard, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bU" = ( +/obj/item/light/bulb/broken, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/titanium/white, +/area/ruin/powered/graveyard_shuttle) +"bV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/ruin/unpowered/elephant_graveyard) +"bW" = ( +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/door/airlock/shuttle{ + name = "archaeology shuttle airlock" + }, +/turf/open/floor/mineral/titanium/purple, +/area/ruin/powered/graveyard_shuttle) +"bX" = ( +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/clothing/head/fedora/curator, +/obj/item/clothing/suit/curator, +/turf/open/floor/mineral/titanium/white, +/area/ruin/powered/graveyard_shuttle) +"bY" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/cigbutt, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"bZ" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface) +"ca" = ( +/obj/structure/table, +/obj/item/storage/firstaid/o2, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"cb" = ( +/obj/machinery/power/port_gen/pacman, +/obj/effect/mapping_helpers/network_builder/power_cable, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"cc" = ( +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/shreds, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"cd" = ( +/obj/item/trash/can, +/obj/structure/bedsheetbin/empty, +/obj/structure/table, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"ce" = ( +/obj/structure/stone_tile/slab/cracked, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"cf" = ( +/obj/structure/bed, +/obj/item/wirecutters, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"cg" = ( +/obj/structure/stone_tile/center/cracked, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"ch" = ( +/obj/effect/decal/remains/human, +/obj/item/restraints/handcuffs/cable/zipties/used, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"ci" = ( +/obj/structure/stone_tile/surrounding_tile, +/turf/open/floor/plating/asteroid/basalt/wasteland{ + icon_state = "wasteland_dug" + }, +/area/ruin/unpowered/elephant_graveyard) +"cj" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"ck" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"cl" = ( +/obj/structure/closet/crate/grave, +/obj/effect/mob_spawn/human/skeleton, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"cm" = ( +/obj/structure/table/optable, +/obj/item/storage/backpack/explorer, +/obj/item/reagent_containers/food/drinks/soda_cans/cola, +/obj/item/restraints/handcuffs/cable/zipties/used, +/turf/open/floor/mineral/titanium/white, +/area/ruin/powered/graveyard_shuttle) +"cn" = ( +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"co" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/structure/stone_tile/cracked, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"cq" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"cr" = ( +/obj/structure/bonfire/prelit, +/obj/effect/decal/cleanable/ash, +/obj/item/organ/tail/lizard, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/stone_tile/slab/cracked, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"cs" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"ct" = ( +/obj/structure/stone_tile, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"cu" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"cv" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/titanium/white, +/area/ruin/powered/graveyard_shuttle) +"cw" = ( +/obj/structure/closet/crate/grave, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mob_spawn/human/skeleton, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) +"cx" = ( +/obj/item/light/bulb/broken, +/obj/effect/turf_decal/caution/stand_clear/white, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/titanium/purple, +/area/ruin/powered/graveyard_shuttle) +"cz" = ( +/obj/structure/stone_tile, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/asteroid/basalt/wasteland, +/area/ruin/unpowered/elephant_graveyard) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +at +ab +ab +ab +ac +ac +ac +ac +bf +ac +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +bf +bf +bf +bf +bf +ac +ac +ac +ac +bf +bf +bf +ac +ac +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ab +ab +bf +bf +aT +bR +bf +bf +bf +ac +bf +bf +bf +bf +bf +bf +bf +ac +ac +ab +ab +aa +aa +aa +aa +aa +aa +aa +"} +(5,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ab +bf +bf +bf +bz +aK +bY +ae +bf +bf +bf +cs +aE +bJ +bf +bf +bf +ac +ac +ac +ab +ab +ab +aa +aa +aa +aa +aa +"} +(6,1,1) = {" +aa +aa +aa +aa +ab +ab +bf +bf +bf +bf +aA +bc +aA +aY +ae +bv +ae +cl +ae +ae +aC +bs +bO +ae +ae +ac +ac +ac +ac +ab +ab +ab +aa +aa +aa +"} +(7,1,1) = {" +aa +aa +aa +aa +ab +bf +bf +bf +aq +al +al +al +aQ +ae +ae +ak +ae +ae +ae +ae +bK +bf +bf +bf +ae +ac +ac +ac +ac +ac +ac +ab +ab +aa +aa +"} +(8,1,1) = {" +aa +aa +ab +ab +ab +bf +bf +al +al +ar +ae +ae +ae +ar +aZ +ae +ba +ae +ba +ae +ae +ae +ae +bf +ae +ac +ac +ac +ac +ac +ac +ac +ab +ab +aa +"} +(9,1,1) = {" +aa +ab +ab +bf +bf +bf +al +al +ak +ae +aE +ae +ae +ae +ba +ae +af +ae +ae +ae +ba +ae +ak +bf +ae +ae +ac +ac +ac +ac +ac +ac +ac +ac +aa +"} +(10,1,1) = {" +ab +ab +bf +bf +bf +al +am +ae +ae +ae +ae +cl +ae +ae +ae +co +bd +bk +ae +ae +ae +ae +aE +bf +bf +ae +ae +ac +ac +ac +ac +bG +bM +ac +ac +"} +(11,1,1) = {" +at +bf +bf +bf +bf +al +ae +ae +ao +ae +ax +ax +ax +ax +ae +ae +be +cr +ae +cz +ae +ae +bn +cw +bf +bf +bB +ac +ac +ac +ac +bL +ae +ae +ac +"} +(12,1,1) = {" +at +bf +bf +bf +bf +al +cl +ae +ae +ae +ae +ci +cj +ce +ae +cj +ae +cq +ae +ae +cu +ae +ae +ae +bf +bf +bC +ac +ac +ac +ac +ac +ac +bD +ac +"} +(13,1,1) = {" +bf +ad +ae +bf +cl +al +ae +ae +ae +ae +cg +ae +ak +ak +cn +ae +cq +ae +ct +ar +ae +cl +ae +ae +bf +bf +ae +ac +ac +ac +ac +ac +ac +ae +ac +"} +(14,1,1) = {" +bf +aj +ae +bf +ae +al +aE +ae +ap +ae +ay +ay +ay +ay +ae +ae +ak +ae +ae +bn +ae +ae +aE +aQ +bf +cl +bB +ae +ac +ac +ac +ac +ac +ae +ac +"} +(15,1,1) = {" +bf +ai +ag +bf +an +al +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +cw +ae +ae +ae +ae +ae +al +bf +ac +ae +ae +bB +ac +ac +ac +ac +bD +ac +"} +(16,1,1) = {" +bf +ai +bf +bf +bf +al +al +al +ae +ae +aE +ae +ar +ae +ba +ae +ae +ae +ae +ae +ba +ae +ae +al +bf +ac +ac +ae +ae +bB +ac +ac +ac +bB +bP +"} +(17,1,1) = {" +bf +ae +af +bf +bf +aE +bf +al +as +au +az +aG +aM +aR +ae +ae +ba +ae +ba +ae +ae +aE +cl +al +bf +bf +ac +ac +ae +bD +ac +ac +ac +bF +bT +"} +(18,1,1) = {" +at +bf +ah +bf +bf +af +bf +ae +ae +aw +aB +ae +ae +aS +ae +ae +aE +ae +ae +ae +ae +ae +ae +al +cb +bf +ac +ac +ac +ae +bB +bB +bF +bB +bP +"} +(19,1,1) = {" +ab +bf +af +av +af +ae +bf +ae +bt +aD +ch +ae +ae +ca +ae +al +al +al +al +al +al +al +al +bx +bf +bf +ac +ac +ac +ac +bF +bB +bV +ac +ac +"} +(20,1,1) = {" +aa +at +bf +bf +bf +bf +bf +bj +bf +aF +aJ +aL +al +al +al +bw +bf +ac +bm +ae +bn +bf +bf +bf +bf +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +"} +(21,1,1) = {" +aa +aa +ab +ac +ac +bf +aU +aE +bf +bf +bf +bf +ck +aX +ae +bf +bf +bf +bf +bf +bf +bf +bf +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +"} +(22,1,1) = {" +aa +aa +ab +ab +ac +bf +aU +ae +bl +cd +bf +bf +bf +bN +ae +bf +bf +bf +bf +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab +ab +ab +ab +bZ +bZ +"} +(23,1,1) = {" +aa +aa +aa +ab +ab +bf +aV +bl +aE +bu +bf +bf +bf +bf +bb +bf +bf +bf +bf +ab +ab +ab +ab +ab +ab +ab +ab +bZ +bZ +bZ +bH +bZ +bZ +bZ +ab +"} +(24,1,1) = {" +aa +aa +aa +aa +ab +at +aP +bo +cc +cf +bf +aH +aH +bg +bW +bg +aH +aH +aH +bH +bZ +bZ +bZ +bZ +bZ +bZ +bZ +bZ +bZ +bZ +bZ +bZ +ab +ab +ab +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +at +bf +bf +bf +bf +aH +aN +bQ +bh +cv +bU +by +aH +aH +bI +bZ +bZ +bZ +bZ +bZ +bZ +bZ +bZ +bZ +ab +ab +ab +ab +ab +ab +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +aI +aO +bX +bi +bp +bi +cx +bE +aH +bI +bZ +bZ +bZ +bZ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +aH +aN +aW +cm +bq +bS +bA +aH +aH +bI +bZ +bZ +bZ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +aH +aH +aH +br +aH +aH +aH +aH +bZ +bZ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_envy.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_envy.dmm index df9620cb67..a14a8d3a13 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_envy.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_envy.dmm @@ -11,7 +11,7 @@ "d" = ( /turf/closed/wall/rust, /area/ruin/unpowered) -"e" = ( +"f" = ( /obj/structure/mirror{ desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!"; icon_state = "mirror_broke"; @@ -22,17 +22,6 @@ /obj/effect/decal/cleanable/blood, /turf/open/floor/plating, /area/ruin/unpowered) -"f" = ( -/obj/structure/mirror{ - desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!"; - icon_state = "mirror_broke"; - pixel_x = 28; - broken = 1 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/ruin/unpowered) "g" = ( /obj/effect/decal/cleanable/blood/tracks, /obj/structure/mirror{ @@ -58,11 +47,12 @@ /obj/structure/mirror{ desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!"; icon_state = "mirror_broke"; - pixel_y = 28; + pixel_x = 28; broken = 1 }, -/obj/item/kitchen/knife/envy, -/turf/open/floor/plating, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, /area/ruin/unpowered) "l" = ( /obj/structure/mirror{ @@ -106,6 +96,16 @@ /obj/effect/mapping_helpers/no_lava, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"T" = ( +/obj/structure/mirror{ + desc = "This mirror has been shattered. It looks like the bad luck energies spilling from it are taking immediate effect on your surroundings!"; + icon_state = "mirror_broke"; + pixel_y = 28; + broken = 1 + }, +/obj/item/kitchen/knife/envy, +/turf/open/floor/plating, +/area/ruin/unpowered) (1,1,1) = {" a @@ -125,14 +125,8 @@ a a a a -a -a -a "} (2,1,1) = {" -a -a -c c c c @@ -167,9 +161,6 @@ d d d d -d -d -d c a "} @@ -178,16 +169,13 @@ c c d d -d -e +f g g g m m m -m -m o m j @@ -201,14 +189,11 @@ d d d d -d h h i i i -i -i h i i @@ -224,10 +209,7 @@ d d d d -d -k -i -i +T i i i @@ -245,12 +227,9 @@ d d d d -d i i i -j -i n i i @@ -266,8 +245,7 @@ c c d d -d -f +k j l l @@ -276,8 +254,6 @@ l l l l -l -l j d c @@ -299,9 +275,6 @@ d d d d -d -d -d c a "} @@ -322,8 +295,5 @@ c c c c -c -c -c a "} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_gluttony.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_gluttony.dmm index d587d19b97..70ffdc85cd 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_gluttony.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_gluttony.dmm @@ -20,7 +20,7 @@ /turf/open/floor/plasteel/freezer, /area/ruin/powered/gluttony) "h" = ( -/obj/item/veilrender/vealrender, +/obj/item/trash/boritos, /turf/open/floor/plasteel/freezer, /area/ruin/powered/gluttony) "i" = ( @@ -65,6 +65,7 @@ /obj/machinery/light/small{ dir = 1 }, +/obj/item/trash/plate/alt, /turf/open/floor/plasteel/freezer, /area/ruin/powered/gluttony) "v" = ( @@ -84,6 +85,28 @@ }, /turf/open/floor/plasteel/freezer, /area/ruin/powered/gluttony) +"B" = ( +/obj/item/veilrender/vealrender, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered/gluttony) +"E" = ( +/obj/machinery/light/small, +/obj/item/trash/cheesie, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered/gluttony) +"G" = ( +/obj/item/trash/waffles, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered/gluttony) +"L" = ( +/obj/machinery/light/small, +/obj/item/trash/plate/alt, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered/gluttony) +"N" = ( +/obj/item/trash/cheesie, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered/gluttony) "R" = ( /turf/closed/indestructible/riveted/uranium, /area/ruin/powered/gluttony) @@ -92,6 +115,10 @@ /obj/structure/fans/tiny/invisible, /turf/open/floor/plasteel/freezer, /area/ruin/powered/gluttony) +"Z" = ( +/obj/item/trash/plate/alt, +/turf/open/floor/plasteel/freezer, +/area/ruin/powered/gluttony) (1,1,1) = {" a @@ -191,7 +218,7 @@ b b c R -h +j i o R @@ -213,9 +240,9 @@ b b c R -i -i -v +h +G +L R c b @@ -258,7 +285,7 @@ c c R t -i +N m R c @@ -305,10 +332,10 @@ g g i p -i +G z l -i +Z R c b @@ -324,10 +351,10 @@ g g g g +B n i -i -i +h i i i @@ -346,12 +373,12 @@ r g g g -i +N g i l A -i +Z q R c @@ -368,7 +395,7 @@ R R R g -i +h v R R @@ -391,7 +418,7 @@ c R r i -i +q R c c @@ -435,7 +462,7 @@ c R j i -v +E R c b diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm index df450b9803..671fdd54d6 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm @@ -20,9 +20,7 @@ /area/ruin/powered/greed) "f" = ( /obj/structure/cursed_slot_machine, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, +/turf/open/floor/carpet/black, /area/ruin/powered/greed) "g" = ( /obj/structure/table/wood/poker, @@ -41,11 +39,6 @@ icon_state = "carpetsymbol" }, /area/ruin/powered/greed) -"i" = ( -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, -/area/ruin/powered/greed) "j" = ( /obj/structure/table/wood/poker, /obj/item/coin/adamantine, @@ -57,28 +50,28 @@ /obj/machinery/computer/arcade/battle{ set_obj_flags = "EMAGGED" }, -/turf/open/floor/engine/cult, +/turf/open/floor/carpet/black, /area/ruin/powered/greed) "l" = ( /obj/item/coin/gold, -/turf/open/floor/engine/cult, +/turf/open/floor/carpet/black, /area/ruin/powered/greed) "m" = ( -/turf/open/floor/engine/cult, +/turf/open/floor/carpet/black, /area/ruin/powered/greed) "n" = ( /obj/structure/table/wood/poker, /obj/item/stack/spacecash/c1000, -/turf/open/floor/engine/cult, +/turf/open/floor/carpet, /area/ruin/powered/greed) "o" = ( /obj/item/storage/bag/money, -/turf/open/floor/engine/cult, +/turf/open/floor/carpet/black, /area/ruin/powered/greed) "p" = ( /obj/structure/table/wood/poker, /obj/item/stack/ore/gold, -/turf/open/floor/engine/cult, +/turf/open/floor/carpet, /area/ruin/powered/greed) "q" = ( /obj/structure/table/wood/poker, @@ -88,19 +81,19 @@ brightness = 3; dir = 8 }, -/turf/open/floor/engine/cult, +/turf/open/floor/carpet, /area/ruin/powered/greed) "r" = ( /obj/structure/table/wood/poker, /obj/item/stack/spacecash/c500, /obj/item/stack/spacecash/c100, /obj/item/stack/spacecash/c1000, -/turf/open/floor/engine/cult, +/turf/open/floor/carpet, /area/ruin/powered/greed) "s" = ( /obj/structure/table/wood/poker, /obj/item/stack/spacecash/c200, -/turf/open/floor/engine/cult, +/turf/open/floor/carpet, /area/ruin/powered/greed) "u" = ( /obj/structure/table/wood/poker, @@ -110,25 +103,30 @@ /obj/machinery/light/small{ dir = 4 }, -/turf/open/floor/engine/cult, +/turf/open/floor/carpet, /area/ruin/powered/greed) "v" = ( /obj/item/coin/gold, /obj/machinery/light/small, -/turf/open/floor/engine/cult, +/turf/open/floor/carpet/black, /area/ruin/powered/greed) "w" = ( /obj/item/storage/bag/money, /obj/machinery/light/small, -/turf/open/floor/engine/cult, +/turf/open/floor/carpet/black, +/area/ruin/powered/greed) +"H" = ( +/turf/open/floor/carpet/purple, /area/ruin/powered/greed) "J" = ( /obj/machinery/door/airlock/gold, /obj/structure/fans/tiny/invisible, -/turf/open/floor/engine/cult, +/turf/open/floor/carpet/purple, /area/ruin/powered/greed) "W" = ( -/turf/closed/wall/mineral/cult, +/turf/closed/wall/mineral/cult{ + sheet_amount = 0 + }, /area/ruin/powered/greed) (1,1,1) = {" @@ -337,7 +335,7 @@ a c W f -i +m m l m @@ -345,7 +343,7 @@ o m m m -m +H J a a diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm index b66fbdf3d5..e582f6e9ce 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm @@ -21,6 +21,7 @@ "f" = ( /obj/structure/table/wood, /obj/item/storage/box/cups, +/obj/item/reagent_containers/food/snacks/lollipop, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, @@ -181,11 +182,19 @@ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, /area/ruin/unpowered) +"B" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/candy, +/turf/open/floor/wood{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) "C" = ( /obj/structure/chair/wood/wings{ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/food/snacks/candy, /turf/open/floor/plating{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, @@ -214,6 +223,7 @@ /area/ruin/unpowered) "G" = ( /obj/structure/table/wood, +/obj/item/reagent_containers/food/snacks/lollipop, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, @@ -288,6 +298,35 @@ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, /area/ruin/unpowered) +"R" = ( +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop/pizzaparty, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/food/snacks/candy, +/turf/open/floor/wood{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"V" = ( +/obj/item/reagent_containers/food/snacks/gumball, +/turf/open/floor/wood{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"X" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/toy/snappop, +/turf/open/floor/wood{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) +"Z" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/food/snacks/gumball, +/turf/open/floor/wood{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/unpowered) (1,1,1) = {" a @@ -359,8 +398,8 @@ b c c e -h -h +B +Z e Q e @@ -397,8 +436,8 @@ b d f n -h -h +M +X c e M @@ -417,7 +456,7 @@ b d g o -h +B h C J @@ -435,7 +474,7 @@ b b b e -h +Z p q x @@ -461,7 +500,7 @@ r y E h -h +X c b b @@ -496,7 +535,7 @@ b b e e -h +X t A G @@ -515,12 +554,12 @@ b b b d -k +R h s s H -h +B O d b @@ -536,9 +575,9 @@ b b d k -h +M u -s +V s o n diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_pride.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_pride.dmm index cf4938f369..f42aef243a 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_pride.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_pride.dmm @@ -3,8 +3,8 @@ /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "b" = ( -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) +/turf/closed/wall/mineral/diamond, +/area/ruin/powered/pride) "c" = ( /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) @@ -23,6 +23,10 @@ "g" = ( /turf/open/floor/mineral/silver, /area/ruin/powered/pride) +"i" = ( +/obj/item/clothing/gloves/ring, +/turf/open/floor/mineral/silver, +/area/ruin/powered/pride) "j" = ( /obj/structure/mirror{ pixel_x = -32 @@ -33,13 +37,8 @@ /turf/open/floor/mineral/silver, /area/ruin/powered/pride) "k" = ( -/obj/structure/mirror{ - pixel_x = 32 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/mineral/silver, +/obj/structure/mirror/magic/pride, +/turf/closed/wall/mineral/diamond, /area/ruin/powered/pride) "l" = ( /obj/structure/mirror{ @@ -60,19 +59,65 @@ }, /turf/open/floor/mineral/silver, /area/ruin/powered/pride) +"o" = ( +/obj/structure/mirror{ + pixel_x = -32 + }, +/obj/item/lipstick/random, +/turf/open/floor/mineral/silver, +/area/ruin/powered/pride) +"q" = ( +/obj/structure/mirror{ + pixel_x = -32 + }, +/obj/item/clothing/gloves/ring/silver, +/turf/open/floor/mineral/silver, +/area/ruin/powered/pride) "r" = ( /obj/machinery/light/small, /turf/open/floor/mineral/silver, /area/ruin/powered/pride) +"u" = ( +/obj/structure/mirror{ + pixel_x = 32 + }, +/obj/item/lipstick/random, +/turf/open/floor/mineral/silver, +/area/ruin/powered/pride) +"D" = ( +/obj/item/clothing/head/wig/random, +/turf/open/floor/mineral/silver, +/area/ruin/powered/pride) "G" = ( -/turf/closed/wall/mineral/diamond, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"I" = ( +/obj/item/clothing/gloves/ring/silver, +/turf/open/floor/mineral/silver, +/area/ruin/powered/pride) +"J" = ( +/obj/structure/mirror{ + pixel_x = 32 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/mineral/silver, +/area/ruin/powered/pride) +"L" = ( +/obj/item/lipstick/random, +/turf/open/floor/mineral/silver, /area/ruin/powered/pride) "O" = ( -/obj/structure/mirror/magic/pride, -/turf/closed/wall/mineral/diamond, +/obj/item/clothing/gloves/ring/diamond, +/turf/open/floor/mineral/silver, +/area/ruin/powered/pride) +"V" = ( +/obj/item/clothing/head/wig, +/turf/open/floor/mineral/silver, /area/ruin/powered/pride) "Y" = ( -/obj/machinery/door/airlock/diamond, +/obj/machinery/door/airlock/silver/glass, /turf/open/floor/mineral/silver{ blocks_air = 1 }, @@ -95,10 +140,6 @@ a a a a -a -a -a -a "} (2,1,1) = {" a @@ -116,91 +157,71 @@ c c c c -c -c -c -c a "} (3,1,1) = {" +G +c +c +b +b +b +b +b +b +b +b +b +b b -c -c -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G c a "} (4,1,1) = {" c c -G -G -G +b +b j -e +q e l e e l e -e -l -e -e -G +o +b c a "} (5,1,1) = {" c -G -G -G -G -G -g -g -g -g -g +b +b g g g +L g +V g +L +i r -G +b a a "} (6,1,1) = {" c -G -G -G -G -G +b O g +k g g -g -g +I g g g @@ -212,77 +233,61 @@ a "} (7,1,1) = {" c -G -G -G -G -G -g -g -g -g -g -g +b +b g g +L +D g +L +i g +D r -G -c +b +a a "} (8,1,1) = {" c c -G -G -G -k +b +b +J f f m f f m +u f -f -m -f -f -G +b c a "} (9,1,1) = {" +G +c +c +b +b +b +b +b +b +b +b +b +b b -c -c -G -G -G -G -G -G -G -G -G -G -G -G -G -G -G c a "} (10,1,1) = {" -b -b -c -c -c -c +G +G c c c diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm index 3576cab5c7..aa56cce5ca 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm @@ -641,4 +641,4 @@ a a a a -"} +"} \ No newline at end of file diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index dab9d0316b..e310f8a6da 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -5181,7 +5181,7 @@ /turf/open/floor/plating, /area/ruin/unpowered/syndicate_lava_base/arrivals) "mu" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/decal/cleanable/dirt, diff --git a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm index 1464dd9529..ac1d1ca4d8 100644 --- a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm +++ b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm @@ -2368,7 +2368,7 @@ /turf/open/floor/plasteel/airless/white, /area/ruin/space/derelict/medical) "hW" = ( -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/suture, /turf/open/floor/plasteel/airless/white, /area/ruin/space/derelict/medical) "hX" = ( @@ -2610,13 +2610,13 @@ /turf/open/floor/plasteel/airless/white, /area/ruin/space/derelict/medical) "iM" = ( -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/suture, /turf/open/floor/plasteel/airless{ icon_state = "damaged2" }, /area/ruin/space/derelict/medical) "iN" = ( -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/mesh, /turf/open/floor/plasteel/airless{ icon_state = "damaged3" }, @@ -2866,7 +2866,7 @@ /turf/open/floor/plasteel/airless/white, /area/ruin/space/derelict/medical) "jB" = ( -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/mesh, /turf/open/floor/plasteel/airless/white, /area/ruin/space/derelict/medical) "jC" = ( diff --git a/_maps/RandomRuins/SpaceRuins/arcade.dmm b/_maps/RandomRuins/SpaceRuins/arcade.dmm index 771c33c55b..74bdc9a7b8 100644 --- a/_maps/RandomRuins/SpaceRuins/arcade.dmm +++ b/_maps/RandomRuins/SpaceRuins/arcade.dmm @@ -151,7 +151,7 @@ /turf/open/floor/engine, /area/ruin/powered) "J" = ( -/obj/item/twohanded/dualsaber/toy, +/obj/item/dualsaber/toy, /turf/open/floor/light/colour_cycle/dancefloor_b, /area/ruin/powered) "K" = ( diff --git a/_maps/RandomRuins/SpaceRuins/cloning_facility.dmm b/_maps/RandomRuins/SpaceRuins/cloning_facility.dmm index 1fb4e60aff..d440e2d15b 100644 --- a/_maps/RandomRuins/SpaceRuins/cloning_facility.dmm +++ b/_maps/RandomRuins/SpaceRuins/cloning_facility.dmm @@ -69,7 +69,7 @@ /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/powered/ancient_shuttle) "j" = ( -/obj/machinery/computer/prototype_cloning, +/obj/machinery/computer/cloning/prototype, /obj/machinery/light{ dir = 1 }, diff --git a/_maps/RandomRuins/SpaceRuins/hilbertshoteltestingsite.dmm b/_maps/RandomRuins/SpaceRuins/hilbertshoteltestingsite.dmm index a89d1422d2..d8677f11d8 100644 --- a/_maps/RandomRuins/SpaceRuins/hilbertshoteltestingsite.dmm +++ b/_maps/RandomRuins/SpaceRuins/hilbertshoteltestingsite.dmm @@ -165,7 +165,7 @@ /turf/open/floor/plasteel/grimy, /area/ruin/space/has_grav/hilbertresearchfacility) "D" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/grimy, /area/ruin/space/has_grav/hilbertresearchfacility) "E" = ( diff --git a/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm b/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm index 0baac3252a..9ac2fed86f 100644 --- a/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm +++ b/_maps/RandomRuins/SpaceRuins/mrow_thats_right.dmm @@ -185,7 +185,7 @@ /turf/open/floor/plating, /area/ruin/space/has_grav/powered/cat_man) "aF" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -294,7 +294,7 @@ /area/ruin/space/has_grav/powered/cat_man) "aV" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -552,7 +552,7 @@ /area/ruin/space/has_grav/powered/cat_man) "bF" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index 89e2c553b9..8528099d30 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -597,7 +597,7 @@ icon_state = "2-4" }, /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-25" }, /obj/effect/decal/cleanable/dirt, @@ -639,7 +639,7 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation) "bW" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-25" }, /obj/effect/decal/cleanable/dirt, @@ -843,7 +843,7 @@ /area/ruin/space/has_grav/ancientstation/deltacorridor) "cx" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/suture, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) @@ -858,7 +858,7 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) "cz" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-25" }, /obj/structure/cable{ @@ -918,7 +918,7 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation/deltacorridor) "cH" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-25" }, /obj/effect/decal/cleanable/dirt, @@ -1127,7 +1127,7 @@ /area/ruin/space/has_grav/ancientstation) "dn" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-25" }, /obj/machinery/light/small{ @@ -1179,7 +1179,7 @@ /area/ruin/space/has_grav/ancientstation/hydroponics) "ds" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-25" }, /obj/machinery/light/small{ @@ -3980,7 +3980,7 @@ icon_state = "1-4" }, /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-25" }, /obj/effect/decal/cleanable/dirt, @@ -4015,7 +4015,7 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/ancientstation) "jJ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-25" }, /obj/structure/cable{ @@ -5010,7 +5010,7 @@ /turf/open/floor/plating, /area/ruin/space/has_grav/ancientstation) "PV" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-25" }, /obj/effect/decal/cleanable/dirt, diff --git a/_maps/RandomRuins/SpaceRuins/spacediner.dmm b/_maps/RandomRuins/SpaceRuins/spacediner.dmm new file mode 100644 index 0000000000..21670da9e4 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/spacediner.dmm @@ -0,0 +1,2918 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"ac" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Shuttle Dock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"ad" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"ae" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"af" = ( +/obj/structure/lattice, +/turf/template_noop, +/area/space/nearstation) +"ag" = ( +/turf/closed/wall/r_wall, +/area/ruin/space/diner/interior) +"ah" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external/glass{ + name = "Shuttle Dock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"ai" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/end{ + icon_state = "hrwindow_spawner_end"; + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"aj" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"ak" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"al" = ( +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"am" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/solar, +/turf/open/floor/plasteel/solarpanel, +/area/ruin/space/diner/solars) +"an" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/end, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"ao" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"ap" = ( +/obj/structure/sign/poster/official/pda_ad600{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"aq" = ( +/obj/structure/sign/poster/official/nanotrasen_logo{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"ar" = ( +/obj/structure/sign/poster/official/cohiba_robusto_ad{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"as" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"at" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/solar, +/turf/open/floor/plasteel/solarpanel, +/area/ruin/space/diner/solars) +"au" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"av" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/diner) +"aw" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/end{ + icon_state = "hrwindow_spawner_end"; + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/ruin/space/diner) +"ax" = ( +/turf/closed/wall/r_wall, +/area/ruin/space/diner) +"ay" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/all_access{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"az" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"aA" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/ruin/space/diner/interior) +"aB" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"aC" = ( +/obj/structure/table/reinforced, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"aD" = ( +/obj/structure/kitchenspike, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"aE" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"aF" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/closet/crate/freezer, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"aG" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/template_noop, +/area/ruin/space/diner/solars) +"aH" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/template_noop, +/area/ruin/space/diner/solars) +"aI" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/template_noop, +/area/ruin/space/diner/solars) +"aJ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/template_noop, +/area/ruin/space/diner/solars) +"aK" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/template_noop, +/area/ruin/space/diner/solars) +"aL" = ( +/turf/open/floor/engine/airless, +/area/ruin/space/diner) +"aM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/space/diner) +"aN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"aO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/vending/cola/red, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"aP" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"aQ" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "pipe11-2"; + dir = 10 + }, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"aR" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/ruin/space/diner/interior) +"aS" = ( +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"aT" = ( +/obj/structure/cable, +/obj/machinery/power/solar, +/turf/open/floor/plasteel/solarpanel, +/area/ruin/space/diner/solars) +"aU" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/template_noop, +/area/ruin/space/diner/solars) +"aV" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/public/glass{ + name = "Fore Docking Area" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"aW" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/public/glass{ + name = "Fore Docking Area" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"aX" = ( +/obj/machinery/vending/boozeomat/pubby_maint, +/turf/closed/wall/r_wall, +/area/ruin/space/diner/interior) +"aY" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"aZ" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"ba" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"bb" = ( +/obj/machinery/gibber, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"bc" = ( +/turf/closed/wall/r_wall/rust, +/area/ruin/space/diner/interior) +"bd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/public/glass{ + name = "Fore Pod Bay" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor/closed, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"be" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plasteel/stairs/old, +/area/ruin/space/diner/interior) +"bf" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/closed/wall/r_wall, +/area/ruin/space/diner/interior) +"bg" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/closed/wall/r_wall, +/area/ruin/space/diner/interior) +"bh" = ( +/obj/machinery/light/small/broken, +/turf/open/floor/engine/airless, +/area/ruin/space/diner) +"bi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/button{ + pixel_y = -24 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/space/diner) +"bj" = ( +/obj/effect/spawner/structure/window/hollow/reinforced, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"bk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bl" = ( +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/chem_dispenser/drinks/beer, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bm" = ( +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/chem_dispenser/drinks, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/vending/dinnerware, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet/freezer/kitchen{ + req_access = null; + req_access_txt = "200" + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bp" = ( +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/kitchen/rollingpin, +/obj/item/reagent_containers/food/condiment/rice{ + pixel_x = -8; + pixel_y = 8 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/processor, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"br" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/grill, +/obj/machinery/light/small/broken{ + icon_state = "bulb-broken"; + dir = 1 + }, +/obj/machinery/power/apc/highcap/five_k{ + name = "Space Diner APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bu" = ( +/obj/machinery/deepfryer, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bv" = ( +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/ruin/space/diner/interior) +"bx" = ( +/obj/structure/toilet/secret/low_loot{ + icon_state = "toilet00"; + dir = 4 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/window/eastright, +/turf/open/floor/mineral/titanium/white, +/area/ruin/space/diner/interior) +"by" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/rebels_unite{ + pixel_y = 32 + }, +/obj/item/reagent_containers/food/urinalcake, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bz" = ( +/obj/structure/urinal{ + pixel_y = 28 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bA" = ( +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/crate/bin, +/obj/machinery/airalarm/all_access{ + dir = 8; + icon_state = "alarm0"; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bB" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/end{ + icon_state = "hrwindow_spawner_end"; + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"bC" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/middle, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"bD" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/end{ + icon_state = "hrwindow_spawner_end"; + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"bE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "pipe11-2"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "pipe11-2"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/grunge/abandoned{ + name = "Staff Entrance" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "pipe11-2"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/general/hidden, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "pipe11-2"; + dir = 10 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet/freezer/meat{ + req_access_txt = "200" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bO" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/ruin/space/diner/interior) +"bP" = ( +/obj/structure/toilet/secret/low_loot{ + icon_state = "toilet00"; + dir = 4 + }, +/obj/structure/window/reinforced/spawner/north, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/window/eastright, +/turf/open/floor/mineral/titanium/white, +/area/ruin/space/diner/interior) +"bQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "pipe11-2"; + dir = 6 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/sign/poster/official/cleanliness{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bT" = ( +/obj/structure/rack, +/turf/open/floor/plasteel/dark, +/area/ruin/space/diner/interior) +"bU" = ( +/obj/structure/table, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/diner/interior) +"bV" = ( +/obj/structure/table, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/diner/interior) +"bW" = ( +/obj/structure/table, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/item/storage/toolbox/electrical, +/turf/open/floor/plasteel/dark, +/area/ruin/space/diner/interior) +"bX" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/end{ + icon_state = "hrwindow_spawner_end"; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"bY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"bZ" = ( +/obj/machinery/icecream_vat, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/all_access{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"ca" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + icon_state = "manifold-2"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "pipe11-2"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "pipe11-2"; + dir = 10 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cd" = ( +/obj/structure/table/reinforced, +/obj/machinery/microwave{ + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"ce" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/mirror{ + icon_state = "mirror_broke"; + pixel_x = 24 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cg" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/diner/interior) +"ch" = ( +/turf/open/floor/plasteel/dark, +/area/ruin/space/diner/interior) +"ci" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/diner/interior) +"cj" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/end, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"ck" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/item/radio/intercom{ + pixel_x = 26 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cl" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"cm" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/structure/table/wood/bar, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/food/snacks/stewedsoymeat, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cn" = ( +/obj/structure/table/wood/bar, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"co" = ( +/obj/structure/table/wood/bar, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/item/trash/plate, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cp" = ( +/obj/structure/table/wood/bar, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/food/drinks/drinkingglass, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cq" = ( +/obj/structure/table/wood/bar, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = -4; + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/structure/frame, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/wood/bar, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"ct" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/wood/bar, +/obj/structure/window/reinforced/spawner, +/obj/structure/window/reinforced/spawner/west, +/obj/machinery/dish_drive, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cu" = ( +/obj/structure/sign/barsign, +/turf/closed/wall/r_wall, +/area/ruin/space/diner/interior) +"cv" = ( +/obj/machinery/door/airlock/grunge/abandoned{ + name = "Restrooms" + }, +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cw" = ( +/obj/machinery/airalarm/all_access{ + dir = 1; + icon_state = "alarm0"; + pixel_x = 0; + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/diner/interior) +"cx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/airalarm/all_access{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/diner/interior) +"cz" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "pipe11-2"; + dir = 4 + }, +/obj/item/beacon, +/turf/open/floor/plasteel/dark, +/area/ruin/space/diner/interior) +"cA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "pipe11-2"; + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/diner/interior) +"cB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Teleporter Room" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "pipe11-2"; + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/diner/interior) +"cC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cE" = ( +/obj/structure/chair/stool/bar, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"cF" = ( +/obj/structure/chair/stool/bar, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"cG" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cH" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cI" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/computer/slot_machine, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cJ" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"cK" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/reagent_containers/food/drinks/drinkingglass, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"cL" = ( +/obj/structure/table/wood, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/trash/plate, +/obj/item/kitchen/fork, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"cM" = ( +/obj/machinery/light/broken{ + icon_state = "tube-broken"; + dir = 1 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/chair, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"cN" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cO" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/sign/departments/restroom{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cP" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/computer/arcade{ + icon_state = "arcade"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cQ" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"cS" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/end{ + icon_state = "hrwindow_spawner_end"; + dir = 1 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"cT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/official/report_crimes{ + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cW" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/public/glass{ + name = "Diner" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cX" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cY" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"cZ" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "pipe11-2"; + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"da" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "pipe11-2"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"db" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/general/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"dc" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "pipe11-2"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"dd" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + icon_state = "pipe11-2"; + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"de" = ( +/obj/machinery/door/airlock/external{ + name = "Mining Shuttle Dock" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"df" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"dg" = ( +/obj/machinery/door/airlock/external/glass, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"dh" = ( +/obj/machinery/teleport/hub, +/turf/open/floor/plasteel/dark, +/area/ruin/space/diner/interior) +"di" = ( +/obj/machinery/light/small/broken, +/obj/machinery/teleport/station, +/turf/open/floor/plasteel/dark, +/area/ruin/space/diner/interior) +"dj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/computer/teleporter{ + icon_state = "computer"; + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/dark, +/area/ruin/space/diner/interior) +"dk" = ( +/obj/structure/lattice/catwalk, +/turf/template_noop, +/area/space/nearstation) +"dm" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/end, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"dn" = ( +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"do" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/public/glass{ + name = "Diner" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"dp" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"dq" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"dr" = ( +/obj/structure/sign/mining{ + pixel_x = 32 + }, +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/reagent_containers/rag, +/obj/item/kitchen/fork, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"ds" = ( +/obj/structure/cable, +/obj/machinery/power/solar_control{ + icon_state = "computer"; + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"dt" = ( +/obj/structure/sign/poster/ripped{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"dv" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/end{ + icon_state = "hrwindow_spawner_end"; + dir = 4 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"dx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"dy" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/light/broken{ + icon_state = "tube-broken"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"dz" = ( +/obj/structure/chair, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"dA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/chair, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"dB" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"dC" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/chair{ + icon_state = "chair_toppled"; + dir = 1 + }, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"dD" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/reagent_containers/food/snacks/sushi_rice, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"dE" = ( +/obj/machinery/light/small/broken{ + icon_state = "bulb-broken"; + dir = 1 + }, +/turf/open/floor/engine/airless, +/area/ruin/space/diner) +"dF" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/button{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/space/diner) +"dG" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/vending/cola/blue, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"dH" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/trash/plate, +/obj/item/reagent_containers/food/condiment/pack/ketchup{ + pixel_x = -4 + }, +/obj/item/reagent_containers/food/condiment/pack/mustard{ + pixel_x = 4 + }, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"dI" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/item/trash/plate, +/obj/item/reagent_containers/food/snacks/hotdog, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"dJ" = ( +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"dK" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/reagent_containers/food/drinks/bottle/whiskey, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"dL" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/trash/plate{ + pixel_y = -2 + }, +/obj/item/reagent_containers/food/snacks/burger/mcguffin, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"dM" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/jukebox, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"dN" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/kitchen/fork, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"dO" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/trash/plate, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"dP" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"dQ" = ( +/obj/machinery/light, +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/reagent_containers/food/drinks/bottle/vodka, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"dR" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/item/reagent_containers/food/drinks/coffee, +/turf/open/floor/carpet, +/area/ruin/space/diner/interior) +"dS" = ( +/obj/item/storage/wallet/random, +/turf/open/floor/engine/airless, +/area/ruin/space/diner) +"dT" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/airless, +/area/ruin/space/diner) +"dU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/public/glass{ + name = "Aft Pod Bay" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor/closed, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"dV" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + icon_state = "hrwindow_spawner_directional"; + dir = 10 + }, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"dW" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/middle, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"dX" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/end{ + icon_state = "hrwindow_spawner_end"; + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"dY" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/end{ + icon_state = "hrwindow_spawner_end"; + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"dZ" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/directional{ + icon_state = "hrwindow_spawner_directional"; + dir = 6 + }, +/turf/open/floor/plating, +/area/ruin/space/diner/interior) +"ea" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/template_noop, +/area/space/nearstation) +"eb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/public/glass{ + name = "Aft Docking Area" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor/closed, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"ec" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/public/glass{ + name = "Aft Docking Area" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor/closed, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plasteel, +/area/ruin/space/diner/interior) +"ed" = ( +/turf/open/floor/plasteel/airless, +/area/ruin/space/diner) +"ee" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plasteel/airless, +/area/ruin/space/diner) +"ef" = ( +/obj/machinery/light/small/broken{ + icon_state = "bulb-broken"; + dir = 1 + }, +/obj/machinery/vending/snack, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/airless, +/area/ruin/space/diner) +"eg" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/end{ + icon_state = "hrwindow_spawner_end"; + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/ruin/space/diner) +"eh" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plating/airless, +/area/ruin/space/diner) +"ei" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/airless, +/area/ruin/space/diner) +"ej" = ( +/obj/structure/girder/reinforced, +/turf/open/floor/plating/airless, +/area/ruin/space/diner) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(5,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(6,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +dk +dk +dk +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(7,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +av +ax +af +dk +dk +dk +af +ej +aa +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +av +aL +aL +ag +ag +ag +dg +ag +ag +ag +af +aa +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +af +aL +aL +aL +aL +bB +bT +cg +ch +ch +dh +bB +av +af +aa +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +av +aL +aL +aL +bh +bC +bU +ch +cy +ch +di +bC +dE +aL +af +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +af +aa +aw +aL +aL +aL +aL +bD +bV +ci +cz +ci +dj +dv +aL +dS +av +af +aa +aa +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +af +af +af +ax +aM +aM +aM +bi +ag +bW +ch +cA +ch +cw +ag +dF +dT +av +af +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +ag +ai +an +ag +ag +ag +ag +bd +bj +ag +bX +cj +cB +cS +dm +ag +bj +dU +ag +ax +ax +ej +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +ag +aj +aj +aj +ay +aj +aV +aj +aj +bE +aj +aj +cC +cT +aj +cx +aj +aj +eb +ed +ed +av +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +ag +ak +ao +au +au +aN +aW +au +au +bF +bY +bY +cD +cU +au +dx +au +aN +ec +ee +eh +ed +af +aa +"} +(16,1,1) = {" +aa +ab +ab +ab +al +al +ag +az +aO +ag +ag +bc +bG +aj +ck +aj +bL +dn +ag +ag +ag +ag +ef +ei +af +aa +aa +"} +(17,1,1) = {" +aa +ac +ad +ah +al +ap +ag +ag +ag +ag +ae +ag +bH +ag +ag +ag +cV +aj +ag +af +af +ax +eg +av +aa +aa +aa +"} +(18,1,1) = {" +aa +ab +ab +ab +al +al +ag +aA +aP +aX +ag +ag +bI +ag +cl +ag +cW +do +ag +af +af +aa +aa +af +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +af +ab +al +aq +ag +aB +aQ +aY +be +bk +bJ +ag +ag +ag +cX +cH +ag +ai +dV +aa +aa +af +aa +aa +aa +"} +(20,1,1) = {" +aa +ab +ab +ab +al +al +ag +aC +aR +aZ +ag +bl +bH +bZ +cm +cE +cX +cH +dy +dG +dW +aa +aa +af +aa +aa +aa +"} +(21,1,1) = {" +aa +ac +ad +ah +al +ar +ag +aD +aS +ba +ag +bm +bH +aj +cn +cF +cX +cH +dz +dH +dX +af +af +af +aa +aa +aa +"} +(22,1,1) = {" +aa +ab +ab +ab +al +as +ag +aE +aS +ba +bc +bn +bK +ca +co +cF +cY +dp +dA +dI +bw +ea +ea +ea +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +ag +ak +al +ag +aF +aS +bb +bc +bo +bL +cb +cp +cF +cX +cH +dq +dJ +ag +af +af +af +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +ag +ai +an +ag +ag +ag +bc +ag +bp +bL +cb +cq +cF +cX +cH +dz +dK +dY +aa +aa +af +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +af +af +af +aa +ag +bq +bL +cc +cr +cG +cZ +cH +dz +dL +dW +aa +aa +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +af +am +at +at +aG +aT +af +ag +br +bL +aj +cs +cH +da +cH +dq +dq +dW +aa +af +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +af +aH +af +aa +ag +bs +bL +aj +ct +cH +da +cH +dq +dM +dW +aa +aa +aa +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +af +am +at +at +aI +aT +af +ag +bt +bM +aj +cu +cI +da +cH +dz +dN +dW +aa +aa +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +af +aH +af +aa +bc +bu +bL +aj +ag +cJ +da +cH +dz +dO +dW +aa +aa +aa +af +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +af +am +at +at +aI +aT +af +ag +bv +bN +cd +ag +cK +db +cH +dq +dq +dW +aa +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +af +aH +af +af +bf +bw +bO +bw +bw +cL +dc +cH +dz +dP +dX +aa +aa +af +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +af +am +at +aJ +aU +aU +bg +bx +bP +bP +bc +cM +da +cH +dz +dQ +ag +af +af +af +aa +aa +aa +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +af +aH +af +af +bc +by +bQ +ce +cv +cN +dd +dp +dB +dB +bw +ea +ea +aa +aa +aa +aa +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +af +am +aK +aT +af +ag +bz +bR +bL +ag +cO +cX +dq +dC +dq +dY +af +af +aa +aa +aa +aa +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +af +af +af +aa +ag +bA +bS +cf +ag +cP +cX +dr +dD +dR +dW +aa +aa +aa +aa +aa +aa +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag +bc +de +ag +ag +ai +dZ +aa +aa +aa +aa +aa +aa +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +ag +aS +df +ds +ag +aa +aa +aa +aa +aa +aa +aa +aa +"} +(38,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +ag +cQ +aS +dt +ag +af +af +aa +aa +aa +aa +aa +aa +"} +(39,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +ag +dg +dg +ag +ag +aa +aa +aa +aa +aa +aa +aa +aa +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/_maps/RandomRuins/SpaceRuins/spacehermit.dmm b/_maps/RandomRuins/SpaceRuins/spacehermit.dmm index dd7e700146..791aac277d 100644 --- a/_maps/RandomRuins/SpaceRuins/spacehermit.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacehermit.dmm @@ -112,7 +112,7 @@ /turf/open/floor/plating/asteroid, /area/ruin/powered) "ax" = ( -/obj/item/twohanded/spear, +/obj/item/spear, /turf/open/floor/plating/asteroid, /area/ruin/powered) "ay" = ( diff --git a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm index 209feb82e3..5da534a08e 100644 --- a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm @@ -148,7 +148,7 @@ /turf/open/floor/wood, /area/ruin/space/has_grav/hotel/guestroom/room_3) "aD" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02" }, /turf/open/floor/wood, @@ -189,7 +189,7 @@ /turf/open/floor/wood, /area/ruin/space/has_grav/hotel/guestroom/room_4) "aL" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/wood, @@ -230,7 +230,7 @@ /turf/open/floor/wood, /area/ruin/space/has_grav/hotel/guestroom/room_5) "aT" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/wood, @@ -271,7 +271,7 @@ /turf/open/floor/wood, /area/ruin/space/has_grav/hotel/guestroom/room_6) "bb" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18" }, /turf/open/floor/wood, @@ -1113,7 +1113,7 @@ /turf/open/floor/wood, /area/ruin/space/has_grav/hotel/guestroom/room_2) "dq" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/wood, @@ -1177,7 +1177,7 @@ /turf/open/floor/wood, /area/ruin/space/has_grav/hotel/guestroom/room_1) "dy" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /turf/open/floor/wood, @@ -1855,7 +1855,7 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/hotel/bar) "fI" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -2035,7 +2035,7 @@ }, /area/ruin/space/has_grav/hotel/dock) "gh" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/wood, @@ -2435,7 +2435,7 @@ /turf/open/floor/carpet, /area/ruin/space/has_grav/hotel) "hq" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18" }, /turf/open/floor/plasteel/dark, @@ -3013,7 +3013,7 @@ /turf/open/floor/plasteel, /area/ruin/space/has_grav/hotel/power) "iM" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /turf/open/floor/wood, /area/ruin/space/has_grav/hotel) "iN" = ( @@ -4817,7 +4817,7 @@ /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/hotel/pool) "mD" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-25" }, /obj/effect/turf_decal/tile/neutral{ diff --git a/_maps/RandomRuins/SpaceRuinsStation/roid6.dmm b/_maps/RandomRuins/SpaceRuinsStation/roid6.dmm index 794300cdb5..56967b0c37 100644 --- a/_maps/RandomRuins/SpaceRuinsStation/roid6.dmm +++ b/_maps/RandomRuins/SpaceRuinsStation/roid6.dmm @@ -44,7 +44,7 @@ /area/ruin/space/has_grav) "C" = ( /obj/effect/decal/remains/human, -/obj/item/twohanded/spear, +/obj/item/spear, /turf/open/floor/mineral/titanium/blue, /area/ruin/space/has_grav) "F" = ( diff --git a/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm b/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm index a9c5eab318..f8d701debe 100644 --- a/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm +++ b/_maps/RandomRuins/StationRuins/Box/Engine/engine_teg.dmm @@ -948,7 +948,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "BT" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/engine/engineering) "BY" = ( diff --git a/_maps/RandomRuins/StationRuins/Lavaland/Mining_Station/Mining_Station_Public_01.dmm b/_maps/RandomRuins/StationRuins/Lavaland/Mining_Station/Mining_Station_Public_01.dmm index 1bfb337d99..5bc10b30f0 100644 --- a/_maps/RandomRuins/StationRuins/Lavaland/Mining_Station/Mining_Station_Public_01.dmm +++ b/_maps/RandomRuins/StationRuins/Lavaland/Mining_Station/Mining_Station_Public_01.dmm @@ -399,7 +399,7 @@ /turf/open/floor/plating, /area/mine/laborcamp/security) "hf" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/mine/living_quarters) "hm" = ( @@ -1565,7 +1565,7 @@ /turf/open/floor/plating, /area/mine/laborcamp) "zy" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/brown{ dir = 1 }, diff --git a/_maps/RandomZLevels/VR/syndicate_trainer.dmm b/_maps/RandomZLevels/VR/syndicate_trainer.dmm index 0a44006802..5b010e74d9 100644 --- a/_maps/RandomZLevels/VR/syndicate_trainer.dmm +++ b/_maps/RandomZLevels/VR/syndicate_trainer.dmm @@ -1370,7 +1370,7 @@ /turf/open/indestructible, /area/awaymission/centcomAway/general) "hW" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /turf/open/indestructible, /area/awaymission/centcomAway/general) "hX" = ( @@ -1951,7 +1951,7 @@ "lv" = ( /obj/structure/rack, /obj/item/restraints/legcuffs/beartrap, -/obj/item/twohanded/fireaxe, +/obj/item/fireaxe, /turf/open/indestructible, /area/awaymission/centcomAway/thunderdome) "lw" = ( diff --git a/_maps/RandomZLevels/away_mission/Academy.dmm b/_maps/RandomZLevels/away_mission/Academy.dmm index de0b7cc430..832e4f23fa 100644 --- a/_maps/RandomZLevels/away_mission/Academy.dmm +++ b/_maps/RandomZLevels/away_mission/Academy.dmm @@ -6,8 +6,12 @@ /turf/closed/wall/r_wall, /area/awaymission/academy/headmaster) "ac" = ( -/mob/living/simple_animal/hostile/carp/ranged{ - faction = list("wizard") +/mob/living/simple_animal/hostile/carp{ + icon_dead = "magicarp_dead"; + icon_gib = "magicarp_gib"; + icon_living = "magicarp"; + icon_state = "magicarp"; + name = "bootleg magicarp" }, /turf/open/space, /area/space/nearstation) @@ -38,6 +42,7 @@ /obj/structure/chair/office/light{ dir = 1 }, +/mob/living/simple_animal/hostile/wizard, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) "aj" = ( @@ -46,8 +51,6 @@ }, /obj/machinery/power/apc/unlocked{ dir = 1; - environ = 3; - equipment = 3; pixel_y = 32; req_access = null }, @@ -160,6 +163,7 @@ "aB" = ( /obj/structure/bed, /obj/item/bedsheet/purple, +/mob/living/simple_animal/hostile/wizard, /turf/open/floor/wood, /area/awaymission/academy/headmaster) "aC" = ( @@ -199,7 +203,7 @@ /area/awaymission/academy/headmaster) "aJ" = ( /obj/structure/destructible/cult/tome, -/obj/item/dice/d20/fate, +/obj/item/dice/d20/fate/one_use, /turf/open/floor/wood, /area/awaymission/academy/headmaster) "aK" = ( @@ -259,6 +263,7 @@ /area/awaymission/academy/headmaster) "aV" = ( /obj/structure/chair/office/dark, +/mob/living/simple_animal/hostile/wizard, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) "aW" = ( @@ -315,6 +320,7 @@ /area/awaymission/academy/headmaster) "bg" = ( /obj/structure/table/wood, +/obj/item/flashlight/flashdark, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) "bh" = ( @@ -348,6 +354,7 @@ /obj/structure/chair/office/dark{ dir = 1 }, +/mob/living/simple_animal/hostile/wizard, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) "bm" = ( @@ -699,6 +706,7 @@ /turf/open/floor/plating, /area/awaymission/academy/headmaster) "cw" = ( +/obj/structure/trap/chill, /turf/open/floor/plating, /area/awaymission/academy/headmaster) "cx" = ( @@ -712,6 +720,7 @@ /area/awaymission/academy/headmaster) "cy" = ( /obj/structure/table, +/obj/item/disk/design_disk/adv/cleric_mace, /turf/open/floor/plasteel/showroomfloor, /area/awaymission/academy/headmaster) "cz" = ( @@ -929,7 +938,7 @@ /area/awaymission/academy/classrooms) "dg" = ( /obj/structure/table/wood, -/obj/item/gun/magic/wand/fireball, +/obj/item/gun/magic/wand/teleport, /turf/open/floor/wood, /area/awaymission/academy/classrooms) "dh" = ( @@ -1282,8 +1291,6 @@ }, /obj/machinery/power/apc/unlocked{ dir = 1; - environ = 3; - equipment = 3; pixel_y = 32; req_access = null }, @@ -1935,6 +1942,7 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/structure/trap/damage, /turf/open/floor/plasteel/white/side{ dir = 1 }, @@ -2294,7 +2302,6 @@ "gH" = ( /obj/structure/table, /obj/item/paper/fluff/awaymissions/academy/grade/aplus, -/obj/item/gun/ballistic/shotgun/automatic/combat, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -2305,6 +2312,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/item/gun/ballistic/revolver/doublebarrel/improvised, /turf/open/floor/plasteel/dark, /area/awaymission/academy/classrooms) "gI" = ( @@ -2349,6 +2357,7 @@ /area/awaymission/academy/classrooms) "gM" = ( /obj/item/toy/beach_ball/holoball, +/obj/structure/trap/stun, /turf/open/floor/engine/cult, /area/awaymission/academy/academycellar) "gN" = ( @@ -2477,15 +2486,11 @@ /turf/open/floor/plasteel, /area/awaymission/academy/classrooms) "ha" = ( -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/awaymission/academy/classrooms) "hb" = ( /obj/structure/chair/stool, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/awaymission/academy/classrooms) "hc" = ( /turf/closed/wall/r_wall, @@ -2537,8 +2542,6 @@ }, /obj/machinery/power/apc/unlocked{ dir = 1; - environ = 3; - equipment = 3; pixel_y = 32; req_access = null }, @@ -2641,6 +2644,7 @@ /obj/structure/cable{ icon_state = "1-4" }, +/obj/structure/trap/damage, /turf/open/floor/plasteel, /area/awaymission/academy/academyaft) "hD" = ( @@ -2829,6 +2833,19 @@ }, /turf/open/floor/plasteel, /area/awaymission/academy/academyaft) +"ig" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/trap/chill, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/academy/classrooms) "ih" = ( /obj/structure/rack, /obj/item/stack/sheet/mineral/plasma{ @@ -2853,23 +2870,17 @@ /turf/open/floor/plasteel, /area/awaymission/academy/academyaft) "il" = ( -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "im" = ( /obj/structure/mirror{ pixel_y = 28 }, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "in" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "io" = ( /obj/structure/rack, @@ -2893,9 +2904,7 @@ /area/awaymission/academy/academyaft) "ir" = ( /obj/structure/mineral_door/iron, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "is" = ( /obj/structure/rack, @@ -2920,17 +2929,13 @@ pixel_x = -12; pixel_y = 2 }, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "iw" = ( /obj/machinery/light{ dir = 4 }, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "ix" = ( /obj/machinery/light{ @@ -2948,18 +2953,14 @@ /obj/machinery/light{ dir = 8 }, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "iA" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "iB" = ( /obj/structure/rack, @@ -2978,9 +2979,7 @@ /obj/machinery/light/small{ dir = 1 }, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "iE" = ( /obj/machinery/light{ @@ -3001,9 +3000,7 @@ /obj/machinery/light/small{ dir = 1 }, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "iH" = ( /obj/item/paper, @@ -3038,9 +3035,7 @@ dir = 1 }, /obj/effect/decal/cleanable/vomit, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "iO" = ( /obj/structure/cable{ @@ -3132,7 +3127,7 @@ dir = 1 }, /obj/structure/table, -/obj/item/soulstone, +/obj/item/gun/ballistic/revolver/russian/soul, /turf/open/floor/plasteel/airless{ icon_state = "whitered"; dir = 4 @@ -3226,6 +3221,7 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, +/mob/living/simple_animal/hostile/wizard, /turf/open/floor/plasteel, /area/awaymission/academy/academyaft) "jk" = ( @@ -3251,6 +3247,7 @@ /obj/structure/cable{ icon_state = "1-2" }, +/mob/living/simple_animal/hostile/wizard, /turf/open/floor/plasteel/airless/white{ dir = 4 }, @@ -3565,8 +3562,6 @@ "kh" = ( /obj/machinery/power/apc/unlocked{ dir = 1; - environ = 3; - equipment = 3; pixel_y = 32; req_access = null }, @@ -3577,12 +3572,14 @@ /area/awaymission/academy/academygate) "ki" = ( /obj/item/stack/cable_coil/random, +/obj/effect/landmark/awaystart, /turf/open/floor/plating, /area/awaymission/academy/academygate) "kj" = ( /obj/structure/cable{ icon_state = "0-2" }, +/obj/effect/landmark/awaystart, /turf/open/floor/plating, /area/awaymission/academy/academygate) "kk" = ( @@ -3678,9 +3675,7 @@ /obj/machinery/door/poddoor/shutters{ id = "AcademyGate" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/awaymission/academy/academygate) "kz" = ( @@ -3728,9 +3723,7 @@ /area/awaymission/academy/headmaster) "kG" = ( /mob/living/simple_animal/hostile/wizard, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, +/turf/open/floor/plasteel/cafeteria, /area/awaymission/academy/academyaft) "kH" = ( /obj/structure/cable{ @@ -3744,9 +3737,7 @@ /area/awaymission/academy/academyaft) "kI" = ( /obj/structure/cable, -/obj/machinery/gateway/centeraway{ - calibrated = 1 - }, +/obj/machinery/gateway/centeraway, /turf/open/floor/plating, /area/awaymission/academy/academygate) "kJ" = ( @@ -3864,7 +3855,7 @@ /area/awaymission/academy/academycellar) "lg" = ( /obj/structure/table/wood, -/obj/item/guardiancreator/choose, +/obj/item/nullrod/staff, /turf/open/floor/engine/cult, /area/awaymission/academy/academycellar) "lh" = ( @@ -3881,9 +3872,8 @@ /area/awaymission/academy/academycellar) "lk" = ( /obj/structure/safe/floor, -/obj/item/voodoo, -/obj/item/gun/magic/wand/fireball, /obj/item/clothing/suit/space/hardsuit/wizard, +/obj/item/gun/magic/wand/fireball/inert, /turf/open/floor/wood, /area/awaymission/academy/headmaster) "ll" = ( @@ -4051,7 +4041,6 @@ /area/awaymission/academy/academyengine) "lQ" = ( /obj/structure/table, -/obj/item/gun/magic/wand/polymorph, /turf/open/floor/plating, /area/awaymission/academy/academyengine) "lR" = ( @@ -4123,14 +4112,14 @@ /turf/closed/wall/r_wall, /area/awaymission/academy/academyengine) "me" = ( -/obj/structure/constructshell, +/obj/structure/fluff/divine/powerpylon, /turf/open/floor/plating, /area/awaymission/academy/academyengine) "mf" = ( -/obj/structure/constructshell, /obj/machinery/light{ dir = 1 }, +/obj/structure/fluff/divine/defensepylon, /turf/open/floor/plating, /area/awaymission/academy/academyengine) "mg" = ( @@ -4149,14 +4138,14 @@ /area/awaymission/academy/academyengine) "mj" = ( /obj/structure/rack, -/obj/item/book/granter/spell/summonitem, /obj/item/pen/fourcolor, +/obj/item/book/granter/spell/smoke, /turf/open/floor/vault, /area/awaymission/academy/academyengine) "mk" = ( /obj/structure/rack, -/obj/item/claymore, /obj/item/toy/figure/wizard, +/obj/item/claymore/weak/ceremonial, /turf/open/floor/vault, /area/awaymission/academy/academyengine) "ml" = ( @@ -4384,22 +4373,19 @@ }, /area/awaymission/academy/headmaster) "ng" = ( -/turf/closed/indestructible/fakeglass{ - icon_state = "fakewindows"; - dir = 8 - }, -/area/awaymission/academy/academyengine) +/obj/structure/trap/stun, +/turf/open/floor/engine/cult, +/area/awaymission/academy/academycellar) "nh" = ( -/turf/closed/indestructible/fakeglass{ - icon_state = "fakewindows2"; - dir = 8 +/obj/structure/cable{ + icon_state = "2-4" }, -/area/awaymission/academy/academyengine) +/obj/structure/trap/chill, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) "ni" = ( -/turf/closed/indestructible/fakeglass{ - icon_state = "fakewindows"; - dir = 4 - }, +/obj/structure/trap/stun, +/turf/open/floor/plating, /area/awaymission/academy/academyengine) "nj" = ( /obj/structure/rack, @@ -4433,6 +4419,108 @@ }, /turf/open/floor/carpet, /area/awaymission/academy/headmaster) +"nr" = ( +/obj/structure/trap/stun, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/academy/academycellar) +"ox" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"qF" = ( +/obj/structure/trap/fire, +/turf/open/floor/grass, +/area/awaymission/academy/academyaft) +"qO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel/dark, +/area/awaymission/academy/headmaster) +"qT" = ( +/obj/structure/trap/fire, +/turf/open/floor/carpet, +/area/awaymission/academy/academyaft) +"rz" = ( +/obj/structure/trap/damage, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/academy/academyaft) +"rU" = ( +/obj/structure/trap/fire, +/turf/open/floor/plating, +/area/awaymission/academy/classrooms) +"sI" = ( +/obj/structure/trap/stun, +/turf/open/floor/vault, +/area/awaymission/academy/academyengine) +"tH" = ( +/obj/structure/table/wood, +/obj/item/disk/design_disk/adv/knight_gear, +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"yV" = ( +/obj/structure/chair/wood/normal{ + dir = 1 + }, +/obj/structure/trap/stun, +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"Ao" = ( +/obj/effect/landmark/awaystart, +/turf/open/floor/plating, +/area/awaymission/academy/academygate) +"Ck" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/trap/chill, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"Cu" = ( +/obj/structure/trap/fire, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"Dd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/trap/damage, +/turf/open/floor/carpet, +/area/awaymission/academy/headmaster) +"Di" = ( +/obj/structure/trap/stun, +/turf/open/floor/plasteel, +/area/awaymission/academy/academyengine) +"Fh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/trap/damage, +/turf/open/floor/plasteel/grimy, +/area/awaymission/academy/classrooms) +"Im" = ( +/obj/structure/trap/damage, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"Kw" = ( +/obj/structure/trap/damage, +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"KR" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel/white, +/area/awaymission/academy/classrooms) "LW" = ( /obj/structure/cable{ icon_state = "4-8" @@ -4443,6 +4531,63 @@ }, /turf/open/floor/plating, /area/awaymission/academy/academyaft) +"Mx" = ( +/obj/structure/trap/chill, +/turf/open/floor/plasteel/grimy, +/area/awaymission/academy/academyaft) +"Nj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/trap/damage, +/turf/open/floor/plasteel/dark, +/area/awaymission/academy/headmaster) +"NK" = ( +/obj/effect/landmark/awaystart, +/turf/open/floor/carpet, +/area/awaymission/academy/academygate) +"Oj" = ( +/obj/structure/trap/fire, +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"Oq" = ( +/obj/structure/trap/chill, +/turf/open/floor/wood, +/area/awaymission/academy/classrooms) +"Rg" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel/showroomfloor, +/area/awaymission/academy/headmaster) +"RB" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel/dark, +/area/awaymission/academy/headmaster) +"Sd" = ( +/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel/dark, +/area/awaymission/academy/classrooms) +"Sz" = ( +/obj/structure/trap/chill, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) "Tk" = ( /obj/structure/cable{ icon_state = "4-8" @@ -4453,6 +4598,25 @@ }, /turf/open/floor/plating, /area/awaymission/academy/academyaft) +"Va" = ( +/mob/living/simple_animal/hostile/wizard, +/turf/open/floor/plasteel, +/area/awaymission/academy/classrooms) +"Wy" = ( +/obj/structure/fluff/divine/defensepylon, +/turf/open/floor/plating, +/area/awaymission/academy/academyengine) +"WZ" = ( +/turf/open/space/basic, +/area/space) +"XX" = ( +/obj/structure/trap/fire, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/academy/academyaft) +"YK" = ( +/obj/structure/trap/chill, +/turf/open/floor/carpet, +/area/awaymission/academy/classrooms) (1,1,1) = {" aa @@ -5193,7 +5357,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -5816,7 +5980,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -6217,6 +6381,7 @@ aa aa aa aa +ac aa aa aa @@ -6225,8 +6390,7 @@ aa aa aa aa -aa -aa +ac aa aa aa @@ -6310,6 +6474,8 @@ aa aa aa aa +WZ +ac aa aa aa @@ -6322,9 +6488,7 @@ aa aa aa aa -aa -aa -aa +ac aa aa aa @@ -6429,7 +6593,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -6626,7 +6790,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -6653,7 +6817,7 @@ mN mN mN mN -mN +nr mN mN mD @@ -7458,6 +7622,7 @@ aa aa aa aa +ac aa aa aa @@ -7503,8 +7668,7 @@ aa aa aa aa -aa -aa +ac aa aa aa @@ -7804,7 +7968,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -8506,7 +8670,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -9059,7 +9223,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -9101,7 +9265,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -9501,7 +9665,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -10073,7 +10237,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -10186,7 +10350,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -10234,7 +10398,7 @@ ea es bB bB -bB +rU bB es ea @@ -10622,7 +10786,7 @@ de bE eb et -bz +Sz eK eT bz @@ -10739,7 +10903,7 @@ bv bB bB cj -bB +ox bB bB bB @@ -10894,7 +11058,7 @@ ga ga ga ga -ga +Ck ga gZ hc @@ -11001,14 +11165,14 @@ bB bB bB bB -bB +ox cO cZ bz bz cY bz -bz +Cu dT ee ee @@ -11367,7 +11531,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -11460,7 +11624,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -11788,7 +11952,7 @@ df ds dc dc -dc +Oj dV ej ej @@ -11931,7 +12095,7 @@ fz es dc gd -df +tH ds gd df @@ -12174,7 +12338,7 @@ bZ fR cQ dc -dc +Oq dc dc dc @@ -12205,7 +12369,7 @@ fD im il iw -il +rz il il iw @@ -12303,9 +12467,9 @@ bZ bZ cK cQ -dc +Kw dg -ds +yV df ds dc @@ -12434,7 +12598,7 @@ cC cC cR dd -dc +Oj dc dc dc @@ -12455,7 +12619,7 @@ dc dc dc dc -dc +Kw dc fD ho @@ -12767,7 +12931,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -12855,7 +13019,7 @@ ii ii ii ii -ii +qF ii ii ii @@ -12870,7 +13034,7 @@ fF jG gF fN -fN +Mx hc jT jV @@ -12879,10 +13043,10 @@ jY jW jW ki -kf -kf -kf -jW +Ao +Ao +Ao +NK kx jS mE @@ -13012,7 +13176,7 @@ kj km kp ks -kf +Ao kf ky kf @@ -13064,7 +13228,7 @@ aE aJ as ah -ah +cI aQ cI ah @@ -13138,11 +13302,11 @@ jV jY kc jW -kf +Ao kn kI kt -kf +Ao kf ky mF @@ -13187,7 +13351,7 @@ aa kF ae ah -al +nh at az aF @@ -13220,7 +13384,7 @@ ah ah ah ah -el +YK ej el eN @@ -13268,11 +13432,11 @@ jV jY kc jW -kf +Ao ko kr ku -kf +Ao kf ky kf @@ -13332,7 +13496,7 @@ ap ba bh bk -ap +Dd bq ap ap @@ -13398,11 +13562,11 @@ jW ka kc kf -kf -kf -kf -kf -kf +Ao +Ao +Ao +Ao +Ao kf ky mG @@ -13488,7 +13652,7 @@ eV fe ej el -fF +qT fF fF fF @@ -13516,7 +13680,7 @@ fF fD jr jy -fF +qT jH fF fN @@ -13875,7 +14039,7 @@ ej ej eP ej -fg +Fh ej ej bE @@ -13954,7 +14118,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -14118,9 +14282,9 @@ aa ab bM cd -cl +Nj cd -bO +qO cd cT as @@ -14157,7 +14321,7 @@ il iz il il -il +XX iz il fD @@ -14274,7 +14438,7 @@ gm fP fP gI -gO +Sd gJ gO fD @@ -14377,7 +14541,7 @@ aP aP ab bO -cd +RB cl cd cl @@ -14834,6 +14998,7 @@ aa aa aa aa +ac aa aa aa @@ -14844,8 +15009,7 @@ aa aa aa aa -aa -aa +ac aa aa aa @@ -14899,18 +15063,18 @@ ab bT bT bT -bT +Rg bT cg bT as di bz +Va bz bz bz -bz -bz +Im ex eD eD @@ -15399,7 +15563,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -15687,12 +15851,12 @@ bs dm dm dm -dm +KR dR dZ dZ ey -eI +ig eI eI fm @@ -15928,7 +16092,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -16775,7 +16939,7 @@ aG aG mc me -me +Wy me lv mm @@ -16906,7 +17070,7 @@ aG mc mf me -me +Wy lv mm mm @@ -17024,7 +17188,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -17043,7 +17207,7 @@ lv lM mc mw -mq +mI mq mq mq @@ -17164,7 +17328,7 @@ aa aG aG mc -lv +lC lv lv lv @@ -17369,7 +17533,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -17528,7 +17692,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -17898,7 +18062,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -18205,7 +18369,7 @@ aa aG md mg -lt +sI lt lt md @@ -18346,7 +18510,7 @@ mu mu mu mu -ng +lF aa aa aa @@ -18476,7 +18640,7 @@ mu mu mA mu -nh +lF aa aa aa @@ -18606,7 +18770,7 @@ mu my mz mM -nh +lF aa aa aa @@ -18643,7 +18807,7 @@ kW dK dK gN -dK +ng dK le aL @@ -18729,14 +18893,14 @@ aG aG aG mc -mq +Di lJ mu mu mu mC mu -nh +lF aa aa aa @@ -18866,7 +19030,7 @@ mu mu mB mu -nh +lF aa aa aa @@ -18996,7 +19160,7 @@ mu mu mu mu -ni +lF aa aa aa @@ -19305,7 +19469,7 @@ aG lq ly lv -lv +ni lv lU lq @@ -19320,7 +19484,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -19785,7 +19949,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -19986,7 +20150,7 @@ aa aa aa aa -aa +ac aa aa aa @@ -20146,7 +20310,7 @@ aa aa aa aa -aa +ac aa aa aa diff --git a/_maps/RandomZLevels/away_mission/Cabin.dmm b/_maps/RandomZLevels/away_mission/Cabin.dmm deleted file mode 100644 index a0862213a2..0000000000 --- a/_maps/RandomZLevels/away_mission/Cabin.dmm +++ /dev/null @@ -1,66505 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/closed/indestructible/rock/snow, -/area/space) -"ab" = ( -/turf/closed/indestructible/rock/snow, -/area/awaymission/snowforest) -"ac" = ( -/turf/open/floor/plating/asteroid/snow/temperatre, -/area/awaymission/snowforest) -"ad" = ( -/turf/closed/wall/mineral/wood, -/area/awaymission/snowforest/lumbermill) -"ae" = ( -/obj/item/grown/log/tree, -/turf/open/floor/plating/asteroid/snow/temperatre, -/area/awaymission/snowforest) -"af" = ( -/turf/open/floor/wood/cold, -/area/awaymission/snowforest/lumbermill) -"ag" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "lumbermill" - }, -/turf/open/floor/wood/cold, -/area/awaymission/snowforest/lumbermill) -"ah" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "lumbermill" - }, -/turf/open/floor/wood/cold, -/area/awaymission/snowforest/lumbermill) -"ai" = ( -/obj/machinery/recycler/lumbermill, -/obj/machinery/conveyor{ - dir = 4; - id = "lumbermill" - }, -/turf/open/floor/wood/cold, -/area/awaymission/snowforest/lumbermill) -"aj" = ( -/obj/item/grown/log/tree, -/turf/open/floor/wood/cold, -/area/awaymission/snowforest/lumbermill) -"ak" = ( -/obj/structure/table/wood, -/turf/open/floor/wood/cold, -/area/awaymission/snowforest/lumbermill) -"al" = ( -/obj/structure/table/wood, -/obj/item/grown/log/tree, -/turf/open/floor/wood/cold, -/area/awaymission/snowforest/lumbermill) -"am" = ( -/obj/structure/table/wood, -/obj/item/twohanded/required/chainsaw, -/turf/open/floor/wood/cold, -/area/awaymission/snowforest/lumbermill) -"an" = ( -/turf/closed/wall/mineral/wood, -/area/awaymission/cabin) -"ao" = ( -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/awaymission/cabin) -"ap" = ( -/obj/structure/closet/crate/bin, -/turf/open/floor/wood, -/area/awaymission/cabin) -"aq" = ( -/turf/open/floor/wood, -/area/awaymission/cabin) -"ar" = ( -/obj/machinery/door/airlock/wood{ - name = "bathroom" - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"as" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/mirror{ - pixel_y = 28 - }, -/turf/open/floor/plasteel/freezer, -/area/awaymission/cabin) -"at" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/structure/mirror{ - pixel_y = 28 - }, -/turf/open/floor/plasteel/freezer, -/area/awaymission/cabin) -"au" = ( -/obj/structure/dresser, -/turf/open/floor/wood, -/area/awaymission/cabin) -"av" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "cabin APC" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/awaymission/cabin) -"aw" = ( -/obj/machinery/power/smes/magical, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/awaymission/cabin) -"ax" = ( -/obj/structure{ - density = 1; - desc = "Generates power from lava!"; - dir = 2; - icon = 'icons/obj/atmospherics/pipes/simple.dmi'; - icon_state = "turbine"; - name = "geothermal generator" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/awaymission/cabin) -"ay" = ( -/obj/machinery/light/small, -/obj/structure/table/wood, -/obj/item/toy/syndicateballoon, -/turf/open/floor/wood, -/area/awaymission/cabin) -"az" = ( -/turf/open/floor/carpet, -/area/awaymission/cabin) -"aA" = ( -/obj/structure/bed, -/obj/item/bedsheet/brown, -/turf/open/floor/wood, -/area/awaymission/cabin) -"aB" = ( -/obj/structure/toilet{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/awaymission/cabin) -"aC" = ( -/obj/structure/toilet{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/awaymission/cabin) -"aD" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/awaymission/cabin) -"aE" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/awaymission/cabin) -"aF" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/awaymission/cabin) -"aG" = ( -/obj/item/reagent_containers/pill/patch/styptic, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"aH" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"aI" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/awaymission/cabin) -"aJ" = ( -/obj/machinery/shower{ - icon_state = "shower"; - dir = 8 - }, -/obj/machinery/door/window/northright, -/turf/open/floor/plasteel/freezer, -/area/awaymission/cabin) -"aK" = ( -/obj/machinery/shower{ - icon_state = "shower"; - dir = 4 - }, -/obj/machinery/door/window/northleft, -/turf/open/floor/plasteel/freezer, -/area/awaymission/cabin) -"aL" = ( -/turf/open/floor/plating, -/area/awaymission/cabin) -"aM" = ( -/obj/machinery/telecomms/relay/preset/mining, -/turf/open/floor/plating, -/area/awaymission/cabin) -"aN" = ( -/obj/structure/chair/wood{ - dir = 4 - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"aO" = ( -/obj/structure/table/wood, -/turf/open/floor/carpet, -/area/awaymission/cabin) -"aP" = ( -/obj/structure/chair/wood{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/awaymission/cabin) -"aQ" = ( -/obj/machinery/door/airlock/wood{ - name = "maintenance" - }, -/turf/open/floor/plating, -/area/awaymission/cabin) -"aR" = ( -/obj/machinery/door/window/westright{ - name = "fireplace" - }, -/obj/structure/fireplace, -/turf/open/floor/plating, -/area/awaymission/cabin) -"aS" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = 24 - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"aT" = ( -/obj/machinery/door/window/eastleft{ - name = "fireplace" - }, -/obj/structure/fireplace, -/turf/open/floor/plating, -/area/awaymission/cabin) -"aU" = ( -/obj/structure/fireplace, -/obj/machinery/door/window/westright{ - name = "fireplace" - }, -/turf/open/floor/plating, -/area/awaymission/cabin) -"aV" = ( -/obj/machinery/space_heater, -/turf/open/floor/wood, -/area/awaymission/cabin) -"aW" = ( -/obj/structure/fireplace, -/obj/machinery/door/window/eastleft{ - name = "fireplace" - }, -/turf/open/floor/plating, -/area/awaymission/cabin) -"aX" = ( -/obj/structure/closet/crate/bin, -/turf/open/floor/carpet, -/area/awaymission/cabin) -"aY" = ( -/obj/structure/table/wood, -/obj/item/phone, -/turf/open/floor/carpet, -/area/awaymission/cabin) -"aZ" = ( -/obj/structure/guncase/shotgun, -/obj/item/gun/ballistic/shotgun/riot, -/turf/open/floor/carpet, -/area/awaymission/cabin) -"ba" = ( -/obj/machinery/door/airlock/wood, -/turf/open/floor/wood, -/area/awaymission/cabin) -"bb" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/awaymission/cabin) -"bc" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/britcup, -/turf/open/floor/carpet, -/area/awaymission/cabin) -"bd" = ( -/obj/structure/chair/office/dark, -/turf/open/floor/carpet, -/area/awaymission/cabin) -"be" = ( -/obj/machinery/computer/crew, -/turf/open/floor/carpet, -/area/awaymission/cabin) -"bf" = ( -/obj/machinery/door/airlock/wood{ - name = "manager's office" - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"bg" = ( -/obj/machinery/door/window/westright{ - name = "manager's desk" - }, -/turf/open/floor/carpet, -/area/awaymission/cabin) -"bh" = ( -/obj/machinery/light, -/turf/open/floor/wood, -/area/awaymission/cabin) -"bi" = ( -/obj/machinery/door/airlock/wood{ - name = "manager's bedroom" - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"bj" = ( -/obj/structure/toilet, -/turf/open/floor/plasteel/freezer, -/area/awaymission/cabin) -"bk" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/awaymission/cabin) -"bl" = ( -/obj/machinery/vending/autodrobe{ - req_access_txt = "0" - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"bm" = ( -/obj/machinery/door/airlock/wood{ - name = "stage left" - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"bn" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"bo" = ( -/obj/structure/window{ - dir = 4 - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"bp" = ( -/obj/structure/chair/wood{ - dir = 8 - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"bq" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks, -/turf/open/floor/wood, -/area/awaymission/cabin) -"br" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/computer/arcade/orion_trail, -/turf/open/floor/wood, -/area/awaymission/cabin) -"bs" = ( -/obj/machinery/computer/arcade/battle, -/turf/open/floor/wood, -/area/awaymission/cabin) -"bt" = ( -/obj/machinery/computer/slot_machine, -/turf/open/floor/wood, -/area/awaymission/cabin) -"bu" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/awaymission/cabin) -"bv" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks/beer{ - dir = 8 - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"bw" = ( -/obj/machinery/vending/dinnerware, -/turf/open/floor/plasteel/cafeteria, -/area/awaymission/cabin) -"bx" = ( -/obj/machinery/smartfridge, -/turf/open/floor/plasteel/cafeteria, -/area/awaymission/cabin) -"by" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder, -/turf/open/floor/plasteel/cafeteria, -/area/awaymission/cabin) -"bz" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, -/turf/open/floor/plasteel/cafeteria, -/area/awaymission/cabin) -"bA" = ( -/obj/machinery/chem_master/condimaster, -/turf/open/floor/plasteel/freezer, -/area/awaymission/cabin) -"bB" = ( -/turf/open/floor/plasteel/freezer, -/area/awaymission/cabin) -"bC" = ( -/obj/machinery/gibber, -/turf/open/floor/plasteel/freezer, -/area/awaymission/cabin) -"bD" = ( -/obj/structure/table/optable, -/turf/open/floor/plasteel/white, -/area/awaymission/cabin) -"bE" = ( -/obj/machinery/computer/operating, -/turf/open/floor/plasteel/white, -/area/awaymission/cabin) -"bF" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel/white, -/area/awaymission/cabin) -"bG" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, -/turf/open/floor/plasteel/white, -/area/awaymission/cabin) -"bH" = ( -/turf/open/floor/plasteel/white, -/area/awaymission/cabin) -"bI" = ( -/obj/machinery/shower{ - icon_state = "shower"; - dir = 4 - }, -/obj/machinery/door/window/eastright, -/obj/structure/window{ - icon_state = "window"; - dir = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/awaymission/cabin) -"bJ" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/turf/open/floor/plasteel/freezer, -/area/awaymission/cabin) -"bK" = ( -/obj/effect/decal/cleanable/blood, -/obj/item/reagent_containers/pill/patch/styptic, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"bL" = ( -/obj/structure/bed, -/obj/item/bedsheet/patriot, -/turf/open/floor/wood, -/area/awaymission/cabin) -"bM" = ( -/obj/machinery/vending/clothing, -/turf/open/floor/wood, -/area/awaymission/cabin) -"bN" = ( -/obj/machinery/vending/boozeomat{ - req_access_txt = "0" - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"bO" = ( -/turf/open/floor/plasteel/cafeteria, -/area/awaymission/cabin) -"bP" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/awaymission/cabin) -"bQ" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/awaymission/cabin) -"bR" = ( -/obj/machinery/atmospherics/components/unary/cryo_cell, -/turf/open/floor/plasteel/white, -/area/awaymission/cabin) -"bS" = ( -/turf/open/floor/wood/cold, -/area/awaymission/snowforest) -"bT" = ( -/obj/structure/table/wood, -/obj/item/instrument/violin, -/turf/open/floor/wood, -/area/awaymission/cabin) -"bU" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/shaker, -/turf/open/floor/wood, -/area/awaymission/cabin) -"bV" = ( -/obj/structure/table, -/obj/item/kitchen/knife/butcher, -/turf/open/floor/plasteel/cafeteria, -/area/awaymission/cabin) -"bW" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/table, -/obj/machinery/microwave, -/turf/open/floor/plasteel/cafeteria, -/area/awaymission/cabin) -"bX" = ( -/obj/structure/closet/crate/bin, -/turf/open/floor/plasteel/freezer, -/area/awaymission/cabin) -"bY" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/processor, -/turf/open/floor/plasteel/freezer, -/area/awaymission/cabin) -"bZ" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/table, -/obj/item/surgicaldrill, -/obj/item/circular_saw, -/obj/item/cautery, -/obj/item/surgical_drapes, -/obj/item/scalpel, -/obj/item/hemostat, -/turf/open/floor/plasteel/white, -/area/awaymission/cabin) -"ca" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/awaymission/cabin) -"cb" = ( -/obj/machinery/gateway{ - dir = 9 - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cc" = ( -/obj/machinery/gateway{ - dir = 1 - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cd" = ( -/obj/machinery/gateway{ - dir = 5 - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"ce" = ( -/obj/structure/chair/wood{ - dir = 4 - }, -/turf/open/floor/wood/cold, -/area/awaymission/snowforest) -"cf" = ( -/obj/structure/table/wood, -/turf/open/floor/wood/cold, -/area/awaymission/snowforest) -"cg" = ( -/obj/structure/chair/wood{ - dir = 8 - }, -/turf/open/floor/wood/cold, -/area/awaymission/snowforest) -"ch" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/table/wood, -/obj/item/instrument/guitar, -/turf/open/floor/wood, -/area/awaymission/cabin) -"ci" = ( -/obj/structure/chair/wood, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cj" = ( -/obj/structure/table, -/turf/open/floor/plasteel/cafeteria, -/area/awaymission/cabin) -"ck" = ( -/obj/structure/table, -/obj/machinery/microwave, -/turf/open/floor/plasteel/cafeteria, -/area/awaymission/cabin) -"cl" = ( -/obj/structure/kitchenspike, -/turf/open/floor/plasteel/freezer, -/area/awaymission/cabin) -"cm" = ( -/obj/structure/table, -/turf/open/floor/plasteel/white, -/area/awaymission/cabin) -"cn" = ( -/obj/structure/bed/roller, -/obj/item/bedsheet, -/turf/open/floor/plasteel/white, -/area/awaymission/cabin) -"co" = ( -/obj/machinery/gateway{ - dir = 8 - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cp" = ( -/obj/machinery/gateway/centeraway, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cq" = ( -/obj/machinery/gateway{ - dir = 4 - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cr" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/wood/cold, -/area/awaymission/snowforest) -"cs" = ( -/obj/structure/table/wood, -/obj/item/wrench, -/turf/open/floor/wood, -/area/awaymission/cabin) -"ct" = ( -/obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/plasteel/freezer, -/area/awaymission/cabin) -"cu" = ( -/obj/machinery/sleeper{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/awaymission/cabin) -"cv" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/table, -/obj/item/storage/firstaid/regular, -/obj/item/storage/firstaid/brute, -/obj/item/storage/firstaid/fire, -/turf/open/floor/plasteel/white, -/area/awaymission/cabin) -"cw" = ( -/obj/machinery/gateway{ - dir = 10 - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cx" = ( -/obj/machinery/gateway, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cy" = ( -/obj/machinery/gateway{ - dir = 6 - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cz" = ( -/obj/structure/musician/piano, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cA" = ( -/obj/machinery/door/airlock/wood{ - name = "stage right" - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cB" = ( -/obj/machinery/door/window/eastleft, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cC" = ( -/obj/structure/chair/wood{ - dir = 1 - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cD" = ( -/obj/machinery/door/window/westright{ - name = "bar" - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cE" = ( -/obj/machinery/door/airlock/wood{ - name = "kitchen" - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cF" = ( -/obj/machinery/door/airlock/wood{ - name = "kitchen cold room" - }, -/turf/open/floor/plasteel/freezer, -/area/awaymission/cabin) -"cG" = ( -/obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/plasteel/freezer, -/area/awaymission/cabin) -"cH" = ( -/obj/effect/landmark/awaystart, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cI" = ( -/obj/machinery/door/airlock/wood{ - name = "backstage" - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cJ" = ( -/obj/machinery/door/airlock/glass_large{ - name = "medbay" - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cK" = ( -/obj/machinery/door/airlock/wood{ - name = "cabin" - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cL" = ( -/obj/structure/sign/barsign{ - pixel_y = 32; - req_access = null - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cM" = ( -/obj/machinery/door/airlock/wood{ - name = "gateway" - }, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cN" = ( -/obj/machinery/vending/snack, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cO" = ( -/obj/machinery/light, -/obj/machinery/vending/cola, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cP" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/wood, -/area/awaymission/cabin) -"cQ" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/awaymission/cabin) -"cR" = ( -/obj/machinery/door/poddoor/shutters{ - id = "garage_cabin"; - name = "garage door" - }, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/cabin) -"cS" = ( -/obj/machinery/button/door{ - id = "garage_cabin"; - pixel_y = 24 - }, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/cabin) -"cT" = ( -/obj/vehicle/ridden/atv, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/cabin) -"cU" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/cabin) -"cV" = ( -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/cabin) -"cW" = ( -/obj/structure/closet, -/obj/item/key, -/obj/item/key, -/obj/item/key, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/cabin) -"cX" = ( -/obj/machinery/light, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/cabin) -"cY" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/asteroid/snow/temperatre, -/area/awaymission/snowforest) -"cZ" = ( -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"da" = ( -/obj/structure/chair, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"db" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"dc" = ( -/obj/structure/chair, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"dd" = ( -/obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"de" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"df" = ( -/obj/structure/kitchenspike, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"dg" = ( -/obj/structure/table, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"dh" = ( -/obj/structure/kitchenspike, -/obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"di" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"dj" = ( -/turf/open/floor/plating/ice/temperate, -/area/awaymission/snowforest) -"dk" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"dl" = ( -/obj/item/shard, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"dm" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"dn" = ( -/obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"do" = ( -/obj/item/chair, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"dp" = ( -/obj/effect/decal/cleanable/blood/gibs/body, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"dq" = ( -/obj/item/shard, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"dr" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"ds" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/snowed/temperatre, -/area/awaymission/snowforest) -"dt" = ( -/obj/effect/landmark/mapGenerator/snowy, -/turf/open/floor/plating/asteroid/snow/temperatre, -/area/awaymission/snowforest) -"du" = ( -/obj/structure/closet/toolcloset, -/obj/item/lightreplacer, -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/plating, -/area/awaymission/cabin) -"dv" = ( -/obj/structure{ - density = 1; - desc = "Generates power from lava!"; - dir = 1; - icon = 'icons/obj/atmospherics/pipes/simple.dmi'; - icon_state = "compressor"; - name = "geothermal generator" - }, -/turf/open/floor/plating, -/area/awaymission/cabin) - -(1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(2,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(4,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(5,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(6,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(7,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(8,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(9,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(10,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(11,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(12,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(13,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(14,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(15,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(16,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(17,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(18,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(19,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(20,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(21,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(22,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(23,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(24,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(25,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(26,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(27,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(28,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(29,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(30,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(31,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(32,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(33,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(34,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(35,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(36,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(37,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dt -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(38,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(39,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(40,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(41,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(42,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(43,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(44,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(45,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(46,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(47,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(48,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(49,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(50,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(51,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(52,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(53,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(54,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(55,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(56,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(57,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(58,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(59,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(60,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(61,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(62,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(63,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(64,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(65,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(66,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(67,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(68,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(69,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(70,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(71,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(72,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -bS -bS -bS -bS -bS -bS -bS -bS -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(73,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -bS -ce -ce -ce -bS -bS -bS -bS -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(74,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -bS -cf -cf -cf -bS -bS -bS -bS -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(75,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -bS -cg -cg -cg -bS -bS -bS -bS -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(76,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -bS -bS -cr -bS -bS -bS -bS -bS -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(77,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -an -an -an -an -an -an -ao -ao -an -an -an -an -an -an -an -an -cK -cK -an -cR -cR -cR -cR -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(78,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -ap -au -aH -aN -aq -an -aq -aq -an -bl -bM -bT -ch -cs -cz -an -aq -aq -an -cS -cV -cV -cV -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(79,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ao -aq -az -az -aO -aq -ba -aq -aq -an -aq -aq -aq -aq -aq -aq -cI -aq -aq -an -cT -cT -cT -cT -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(80,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ao -aq -az -az -aP -aq -an -aq -bh -an -bm -an -an -an -an -cA -an -aq -aq -an -cU -cV -cV -cX -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(81,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ao -aq -az -az -az -aq -an -aq -aq -an -aq -aq -aq -aq -aq -aq -an -aq -aq -an -cT -cT -cT -cT -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(82,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -aq -aA -aI -aA -aq -an -aq -aq -an -bn -aq -aq -aq -aq -bh -an -aq -bh -an -cV -cV -cV -cV -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(83,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -ar -an -an -an -aR -an -aq -aq -an -aq -aq -aq -aq -aq -aq -an -aq -aq -an -cU -cV -cV -cX -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(84,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -as -aB -aJ -an -an -an -aq -aq -an -bn -aq -aq -aq -aq -bh -an -aq -aq -an -cV -cV -cV -cV -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(85,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -an -an -an -an -aS -ba -aq -bh -an -bo -bo -bo -bo -bo -cB -an -aq -aq -ba -cV -cV -cV -cV -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(86,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -at -aC -aK -an -an -an -aq -aq -an -bp -bp -bp -bp -bp -aq -aq -aq -aq -an -cV -cV -cW -cW -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(87,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -ar -an -an -an -aT -an -aq -aq -an -bp -bp -bp -bp -bp -aq -aq -aq -cN -an -an -an -an -an -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(88,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -aq -ap -aH -aN -aq -an -aq -aq -ba -aq -aq -aq -aq -aq -aq -aq -aq -cO -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(89,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ao -aq -az -az -aO -aq -an -aq -aq -an -bq -aq -aq -aq -aq -aq -aq -aq -cP -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(90,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ao -aq -az -az -aP -aq -an -aq -bh -an -br -aq -aq -aq -aN -aq -aq -aq -aq -ao -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(91,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ao -aq -az -az -az -aq -ba -aq -aq -an -bs -aq -aq -ci -bu -cC -aq -aq -aq -ao -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(92,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -au -aA -aI -aA -aq -an -aq -aq -an -bt -aq -aq -aq -bp -aq -aq -aq -aq -ao -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(93,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -an -an -an -an -an -an -aq -aq -an -ap -aq -aq -aq -aq -aq -aq -aq -aq -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(94,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -ap -au -aH -aN -aq -an -aq -aq -an -aN -aN -aN -aN -aN -aq -aq -aq -bh -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(95,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ao -aq -az -az -aO -aq -ba -aq -bh -an -bu -bu -bu -bu -bu -cD -an -cL -aq -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(96,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ao -aq -az -az -aP -aq -an -aq -aq -an -aq -aq -aq -aq -aq -aq -an -aq -aq -ao -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(97,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ao -aq -az -az -az -aq -an -aq -aq -an -bv -bN -bU -aq -ap -aq -an -aq -aq -ao -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(98,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -aq -aA -aI -aA -aq -an -aq -aq -an -an -an -an -bu -an -cE -an -aq -aq -ao -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(99,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -ar -an -an -an -aU -an -aq -aq -an -bw -bO -bO -bO -bO -bO -cE -aq -aq -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(100,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -as -aB -aJ -an -an -an -aq -aq -an -bx -bO -bV -cj -cj -bO -an -aq -bh -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(101,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -an -an -an -an -aV -ba -aq -aq -an -by -bO -bO -bO -bO -bO -an -aq -aq -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(102,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -at -aC -aK -an -an -an -aq -bh -an -bz -bO -bW -ck -cj -bO -an -aq -aq -ao -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(103,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -ar -an -an -an -aW -an -aq -aq -an -an -an -an -an -an -cF -an -aq -aq -ao -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(104,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -aq -ap -aH -aN -aq -an -aq -aq -an -bA -bB -bX -cl -cl -bB -an -aq -aq -ao -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(105,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ao -aq -az -az -aO -aq -an -aq -aq -an -bB -bB -bB -bB -bB -bB -an -aq -aq -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(106,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ao -aq -az -az -aP -aq -an -aq -aq -an -bC -bB -bY -bB -ct -cG -an -aq -bh -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(107,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ao -aq -az -az -az -aq -ba -aq -aq -an -an -an -an -an -an -an -an -aq -aq -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -dj -dj -dj -dj -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(108,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -au -aA -aI -aA -aq -an -aq -aq -an -bD -bH -bZ -cm -cu -cu -an -aq -aq -ao -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(109,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -an -an -an -an -an -an -aq -bh -an -bE -bH -bH -bH -bH -bH -an -aq -aq -ao -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(110,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -ap -au -aH -aN -aq -an -aq -aq -an -bF -bP -bH -bH -bH -bH -cJ -aq -aq -ao -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(111,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ao -aq -az -az -aO -aq -ba -aq -aq -an -bG -bQ -bP -bH -bH -bH -aq -aq -aq -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(112,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ao -aq -az -az -aP -aq -an -aq -aq -an -bH -bR -ca -cn -cv -cn -an -aq -aq -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(113,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ao -aq -az -az -az -aq -an -aq -aq -an -an -an -an -an -an -an -an -aq -aq -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(114,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -aq -aA -aI -aA -aq -an -aq -aq -aq -aq -aq -aH -aq -aq -aq -aq -aq -bh -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(115,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -ar -an -an -an -aU -an -aq -aq -aq -aq -aq -aq -aq -aq -aq -aq -aq -aq -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(116,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -as -aB -aJ -an -an -an -bf -an -an -an -an -an -an -an -an -an -cM -cM -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(117,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -an -an -an -an -aX -bb -az -an -bj -bI -an -aq -aH -aq -cH -bu -az -az -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(118,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -av -aD -aL -aQ -az -az -az -an -bk -bJ -an -cb -co -cw -cH -bu -az -az -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(119,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -aw -aE -aL -an -aY -bc -bg -an -ar -an -an -cc -cp -cx -cH -aq -az -az -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(120,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -du -aF -aL -an -az -bd -az -an -aq -ay -an -cd -cq -cy -cH -bu -az -az -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(121,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -dv -ax -aM -an -aZ -be -az -bi -aq -bL -an -aq -aq -aq -cH -bu -az -cQ -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(122,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -an -an -an -an -an -ao -ao -ao -an -an -ao -an -an -ao -ao -ao -ao -ao -an -an -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(123,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(124,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -cY -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(125,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -cZ -cZ -cZ -de -de -de -de -de -de -dk -dk -cZ -cZ -cZ -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(126,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -cZ -db -cZ -de -dk -de -dk -de -de -de -de -db -aG -cZ -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(127,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -cY -cZ -cZ -cZ -dd -cZ -cZ -cZ -cZ -dd -cZ -cZ -cZ -db -cZ -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(128,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -da -da -cZ -df -df -df -df -dh -df -dg -df -cZ -dr -dr -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(129,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -da -da -bK -dg -cZ -cZ -do -cZ -cZ -db -df -cZ -dr -dr -cY -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(130,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -da -da -cZ -df -dl -cZ -db -cZ -dn -dq -df -cZ -dr -dr -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(131,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -da -dc -cZ -df -cZ -dn -cZ -cZ -cZ -cZ -df -cZ -ds -dr -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(132,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -da -da -dd -df -cZ -dl -cZ -db -cZ -db -df -cZ -dr -dr -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(133,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -da -da -cZ -df -cZ -db -cZ -cZ -cZ -dl -df -cZ -dr -ds -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(134,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ae -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -da -dc -cZ -dh -cZ -cZ -dp -cZ -do -dp -dg -db -ds -dr -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(135,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ae -ae -ac -ae -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -da -da -cZ -df -dg -df -df -df -df -df -df -cZ -dr -dr -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(136,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ad -af -ag -ah -aj -ak -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -cY -cZ -cZ -cZ -db -cZ -cZ -aG -dd -cZ -cZ -cZ -cZ -cZ -cZ -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(137,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ad -af -af -ah -aj -al -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -cZ -aG -db -di -dm -di -di -di -dm -di -di -cZ -aG -cZ -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(138,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ad -af -af -ah -af -ak -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -cZ -cZ -cZ -di -di -di -dm -di -di -di -di -cZ -cZ -cZ -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(139,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ad -af -af -ah -af -am -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -cY -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(140,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ad -af -af -ah -af -am -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -cY -ac -ac -ac -ac -ac -cY -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(141,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ad -af -af -ah -af -am -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(142,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ad -af -af -ah -af -am -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(143,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ad -af -af -ai -af -ak -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(144,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ad -af -af -ah -af -ak -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(145,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ad -af -ag -ah -af -ak -ad -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(146,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(147,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(148,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(149,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(150,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(151,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(152,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(153,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(154,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(155,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(156,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(157,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(158,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(159,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(160,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(161,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(162,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(163,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(164,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(165,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(166,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(167,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(168,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(169,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(170,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(171,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(172,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(173,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(174,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(175,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(176,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(177,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(178,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(179,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(180,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(181,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(182,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(183,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(184,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(185,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(186,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(187,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(188,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(189,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(190,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(191,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(192,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(193,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(194,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(195,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(196,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(197,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(198,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(199,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(200,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(201,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(202,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(203,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(204,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(205,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(206,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(207,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(208,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(209,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(210,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(211,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(212,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(213,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(214,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(215,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(216,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(217,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(218,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(219,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(220,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(221,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(222,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(223,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(224,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(225,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(226,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(227,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(228,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(229,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(230,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(231,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(232,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(233,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(234,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(235,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(236,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(237,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(238,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(239,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(240,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(241,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(242,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(243,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(244,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(245,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(246,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(247,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(248,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(249,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(250,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(251,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(252,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(253,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(254,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(255,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} diff --git a/_maps/RandomZLevels/away_mission/SnowCabin.dmm b/_maps/RandomZLevels/away_mission/SnowCabin.dmm new file mode 100644 index 0000000000..cd6cefc8ad --- /dev/null +++ b/_maps/RandomZLevels/away_mission/SnowCabin.dmm @@ -0,0 +1,71074 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/obj/structure/flora{ + desc = "Looks frozen."; + icon = 'icons/obj/flora/snowflora.dmi'; + icon_state = "snowgrass"; + name = "frozen flora" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"ab" = ( +/turf/closed/indestructible/rock/snow, +/area/awaymission/cabin/caves/mountain) +"ac" = ( +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"ad" = ( +/turf/closed/wall/mineral/wood, +/area/awaymission/cabin/lumbermill) +"ae" = ( +/obj/structure/fence{ + dir = 4 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"af" = ( +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"ag" = ( +/obj/structure/fence{ + dir = 4 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"ah" = ( +/obj/structure/fence/door/opened, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"ai" = ( +/obj/structure/fence{ + dir = 4 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"aj" = ( +/turf/closed/indestructible/hotelwall{ + desc = "This wall looks stupid."; + name = "Purgatory" + }, +/area/awaymission/cabin/caves/mountain) +"ak" = ( +/obj/structure/table/wood, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"al" = ( +/obj/structure/table/wood, +/obj/structure/showcase/machinery/tv{ + desc = "A slightly battered looking TV. Various infomercials play on a loop, accompanied by a jaunty tune."; + name = "Television Screen" + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"am" = ( +/obj/structure/chair/comfy{ + color = "#B22222"; + dir = 8 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"an" = ( +/turf/closed/wall/mineral/wood, +/area/awaymission/cabin) +"ao" = ( +/obj/structure/window/reinforced/fulltile/ice{ + name = "frozen window" + }, +/turf/open/floor/plating, +/area/awaymission/cabin) +"ap" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/wood, +/area/awaymission/cabin) +"aq" = ( +/turf/open/floor/wood, +/area/awaymission/cabin) +"ar" = ( +/obj/machinery/door/airlock/command{ + name = "Manager's Office" + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/wood, +/area/awaymission/cabin) +"as" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"at" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"au" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/awaymission/cabin) +"av" = ( +/obj/machinery/telecomms/relay/preset/mining, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/awaymission/cabin) +"aw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/plating, +/area/awaymission/cabin) +"ax" = ( +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/closed/wall/mineral/wood, +/area/awaymission/cabin) +"ay" = ( +/obj/machinery/light/small, +/obj/item/storage/backpack/bannerpack{ + pixel_y = 7 + }, +/obj/structure/dresser, +/turf/open/floor/wood, +/area/awaymission/cabin) +"az" = ( +/turf/open/floor/carpet, +/area/awaymission/cabin) +"aA" = ( +/obj/structure/bed, +/obj/item/bedsheet/brown, +/turf/open/floor/wood, +/area/awaymission/cabin) +"aB" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"aC" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"aD" = ( +/obj/machinery/power/smes/magical{ + desc = "A high-capacity superconducting magnetic energy storage (SMES) unit. It seems to be powered just fine without our intervention."; + name = "nanotrasen power storage unit" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/awaymission/cabin) +"aE" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/baseturf_helper/asteroid/snow, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/awaymission/cabin) +"aF" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "cabin APC"; + pixel_y = 23 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/plating, +/area/awaymission/cabin) +"aG" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"aH" = ( +/obj/machinery/shower{ + dir = 1 + }, +/obj/structure/curtain, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"aI" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/awaymission/cabin) +"aJ" = ( +/obj/structure/table, +/obj/item/surgicaldrill, +/obj/item/circular_saw, +/obj/item/cautery, +/obj/item/surgical_drapes, +/obj/item/scalpel, +/obj/item/hemostat, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"aK" = ( +/obj/structure/table/optable, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"aL" = ( +/turf/open/floor/plating, +/area/awaymission/cabin) +"aM" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/awaymission/cabin) +"aN" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"aO" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"aP" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks{ + desc = "Contains a large reservoir of soft drinks so that you can refill your cup. For free."; + name = "free refill dispenser" + }, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"aQ" = ( +/obj/structure{ + anchored = 1; + density = 1; + desc = "Generates power from lava!"; + dir = 1; + icon = 'icons/obj/atmospherics/pipes/simple.dmi'; + icon_state = "compressor"; + name = "geothermal generator" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/awaymission/cabin) +"aR" = ( +/obj/machinery/door/window/westright{ + name = "fireplace" + }, +/obj/structure/fireplace, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/awaymission/cabin) +"aS" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "sink"; + pixel_y = 28 + }, +/obj/structure/janitorialcart, +/obj/item/mop, +/obj/item/reagent_containers/glass/bucket, +/obj/item/caution, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/awaymission/cabin) +"aT" = ( +/obj/machinery/door/window/eastleft{ + name = "fireplace" + }, +/obj/structure/fireplace, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/awaymission/cabin) +"aU" = ( +/obj/structure/fireplace, +/obj/machinery/door/window/westright{ + name = "fireplace" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/awaymission/cabin) +"aV" = ( +/obj/machinery/space_heater, +/turf/open/floor/wood, +/area/awaymission/cabin) +"aW" = ( +/obj/structure/fireplace, +/obj/machinery/door/window/eastleft{ + name = "fireplace" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/awaymission/cabin) +"aX" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"aY" = ( +/obj/structure/table/wood, +/obj/item/phone, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"aZ" = ( +/obj/structure/guncase/shotgun, +/obj/item/gun/ballistic/shotgun/riot, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"ba" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/wood/glass{ + name = "Cabin" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bb" = ( +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"bc" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/britcup, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"bd" = ( +/obj/structure/chair/office, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"be" = ( +/obj/machinery/computer/crew{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"bf" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"bg" = ( +/obj/machinery/door/window/westleft{ + name = "manager's desk" + }, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"bh" = ( +/obj/machinery/light, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bi" = ( +/obj/machinery/door/airlock/wood{ + id_tag = "WheresTheSyndiBalloon"; + name = "Manager's Bedroom" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bj" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"bk" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"bl" = ( +/obj/machinery/vending/autodrobe, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bm" = ( +/obj/machinery/door/airlock/wood{ + id_tag = "snowdinbutworse5"; + name = "Cabin 5" + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bn" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bo" = ( +/obj/structure/window{ + dir = 4 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bp" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bq" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/vending/cigarette, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"bs" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bt" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"bu" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bv" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 8 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bw" = ( +/obj/machinery/vending/dinnerware, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/cabin) +"bx" = ( +/obj/machinery/smartfridge, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/cabin) +"by" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/cabin) +"bz" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "sink"; + pixel_y = 28 + }, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/cabin) +"bA" = ( +/obj/machinery/chem_master/condimaster, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"bB" = ( +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"bC" = ( +/obj/machinery/gibber, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"bD" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"bE" = ( +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"bF" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"bG" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"bH" = ( +/obj/machinery/shower{ + dir = 1 + }, +/obj/structure/curtain, +/obj/item/soap/nanotrasen{ + pixel_x = -1; + pixel_y = -3 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"bJ" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"bK" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"bL" = ( +/obj/structure/bed, +/obj/item/bedsheet/nanotrasen, +/obj/item/clothing/suit/hooded/wintercoat/captain{ + name = "manager's winter coat" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bM" = ( +/obj/machinery/vending/clothing, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bN" = ( +/obj/machinery/vending/boozeomat, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bO" = ( +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/cabin) +"bP" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"bQ" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"bS" = ( +/turf/open/floor/wood/cold, +/area/awaymission/cabin/snowforest) +"bT" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/instrument/guitar, +/obj/item/instrument/violin, +/obj/item/instrument/accordion, +/obj/item/instrument/trumpet, +/obj/structure/closet/crate/wooden, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bU" = ( +/obj/structure/table/wood/fancy, +/obj/item/reagent_containers/food/drinks/shaker, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bV" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Garage" + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/wood, +/area/awaymission/cabin) +"bW" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/cabin) +"bX" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"bY" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/processor, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"cb" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cc" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cd" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"ce" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/snowforest) +"cf" = ( +/obj/structure/table/wood, +/obj/item/toy/snowball, +/obj/item/toy/snowball{ + pixel_y = 8 + }, +/obj/item/toy/snowball{ + pixel_x = 8 + }, +/obj/item/toy/snowball{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/toy/snowball{ + pixel_x = 7; + pixel_y = 4 + }, +/obj/item/toy/snowball{ + pixel_x = -5; + pixel_y = -2 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/snowforest) +"cg" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/snowforest) +"ch" = ( +/obj/structure/flora/stump{ + desc = "Breaking it should be easy."; + max_integrity = 20; + name = "old stump" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"ci" = ( +/obj/structure/chair/wood, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cj" = ( +/obj/structure/table, +/obj/item/clothing/suit/hooded/wintercoat/hydro{ + name = "service winter coat"; + pixel_y = 4 + }, +/obj/item/clothing/suit/hooded/wintercoat/hydro{ + name = "service winter coat"; + pixel_y = 4 + }, +/obj/item/clothing/suit/hooded/wintercoat/hydro{ + name = "service winter coat"; + pixel_y = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/cabin) +"ck" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/cabin) +"cl" = ( +/obj/structure/kitchenspike, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"cm" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"cn" = ( +/turf/open/lava, +/area/awaymission/cabin/caves/mountain) +"co" = ( +/obj/machinery/gateway{ + dir = 8 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cp" = ( +/obj/machinery/gateway/centeraway, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cq" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cr" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin) +"cs" = ( +/obj/structure/table/wood, +/obj/item/wrench, +/obj/item/soap, +/turf/open/floor/wood, +/area/awaymission/cabin) +"ct" = ( +/obj/structure/sign/poster/official/soft_cap_pop_art{ + pixel_y = 32 + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cu" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 1 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"cv" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"cw" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cx" = ( +/obj/machinery/gateway, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cy" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cz" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/musician/piano, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cA" = ( +/obj/machinery/door/airlock/wood{ + name = "Stage Left" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cB" = ( +/obj/machinery/door/window/eastleft, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cD" = ( +/obj/structure/sign/barsign{ + pixel_y = -32; + req_access = null + }, +/obj/machinery/door/window/westleft{ + name = "Bar" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cE" = ( +/obj/item/clothing/shoes/winterboots/ice_boots, +/turf/open/floor/plating/ice/smooth, +/area/awaymission/cabin/snowforest) +"cF" = ( +/obj/structure/table, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/cabin) +"cG" = ( +/obj/structure/closet/secure_closet/freezer/meat/open, +/obj/item/reagent_containers/food/snacks/meat/slab/synthmeat, +/obj/item/reagent_containers/food/snacks/meat/slab/synthmeat, +/obj/item/reagent_containers/food/snacks/meat/slab/synthmeat, +/obj/item/reagent_containers/food/snacks/meat/slab/synthmeat, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"cH" = ( +/obj/effect/landmark/awaystart, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cI" = ( +/obj/structure/chair/office/light, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"cJ" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = 8; + pixel_y = 10 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = 8 + }, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -8; + pixel_y = 10 + }, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/cabin) +"cK" = ( +/obj/structure/table/wood/fancy, +/obj/item/reagent_containers/food/drinks/sillycup/smallcarton{ + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cL" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/plating, +/area/awaymission/cabin) +"cM" = ( +/obj/machinery/door/airlock/wood{ + name = "Gateway" + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/wood, +/area/awaymission/cabin) +"cN" = ( +/obj/machinery/computer/slot_machine, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"cO" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"cP" = ( +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"cQ" = ( +/obj/effect/landmark/awaystart, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"cR" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/snowforest) +"cS" = ( +/obj/machinery/button/door{ + id = "garage_cabin"; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/awaymission/cabin) +"cT" = ( +/obj/vehicle/ridden/atv, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/awaymission/cabin) +"cU" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating, +/area/awaymission/cabin) +"cV" = ( +/obj/vehicle/ridden/atv, +/turf/open/floor/plating, +/area/awaymission/cabin) +"cW" = ( +/obj/item/shovel, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/awaymission/cabin) +"cX" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/awaymission/cabin) +"cY" = ( +/obj/vehicle/ridden/atv{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"cZ" = ( +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"da" = ( +/obj/structure/chair, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"db" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dc" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka{ + desc = "A fancy bottle of vodka. The name isn't in Galactic Common though."; + name = "Porosha Vodka" + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dd" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/structure/chair/comfy/shuttle{ + desc = "A comfortable, secure seat. It has a more sturdy looking buckling system, for making it harder to get dragged into the ring."; + name = "announcer seat" + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"de" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"df" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dg" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dh" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"di" = ( +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dj" = ( +/turf/open/floor/plating/ice/smooth, +/area/awaymission/cabin/snowforest) +"dk" = ( +/obj/structure/chair, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dl" = ( +/obj/structure/chair, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dm" = ( +/obj/structure/table/reinforced, +/obj/item/pda/syndicate{ + background_color = "#0039A6"; + default_cartridge = /obj/item/cartridge/virus/mime; + desc = "A portable microcomputer by Thinktronic Systems, LTD. Seems like it may have useful information on it."; + name = "soviet PDA"; + note = "TRANSLATED TO GALACTIC COMMON:
My partner has left to help those Nanotrasen fucks three days ago. They said that a distress signal came from down south and they had to check it out. How fucking long does it take to investigate a mining outpost? Either those Nanotrasen fuckers betrayed us or something really did go wrong. Either way, I'm leaving before this becomes an issue for me and anyone else here. That dumb idiot." + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dn" = ( +/obj/structure/table/reinforced, +/obj/item/megaphone/sec{ + name = "soviet megaphone" + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"do" = ( +/obj/structure/table/reinforced, +/obj/item/cigbutt/cigarbutt, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dp" = ( +/obj/machinery/vending/sovietsoda, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dq" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dr" = ( +/obj/effect/decal/cleanable/blood, +/obj/item/reagent_containers/pill/patch/styptic, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"ds" = ( +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dt" = ( +/obj/structure/closet/secure_closet/freezer/fridge/open, +/obj/item/reagent_containers/food/condiment/mayonnaise, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"du" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/awaymission/cabin) +"dv" = ( +/obj/structure{ + anchored = 1; + density = 1; + desc = "Generates power from lava!"; + icon = 'icons/obj/atmospherics/pipes/simple.dmi'; + icon_state = "turbine"; + name = "geothermal generator" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/awaymission/cabin) +"dw" = ( +/mob/living/simple_animal/hostile/bear/snow{ + desc = "It's a polar bear, in space, but not actually in space. It's actually on a planet. This is a planet."; + melee_damage_lower = 10; + melee_damage_upper = 20; + name = "fat space polar bear"; + speed = 3 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dx" = ( +/obj/structure/fence{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"dy" = ( +/obj/structure/fence/door, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"dz" = ( +/turf/open/floor/plating/asteroid/snow{ + name = "packed snow"; + slowdown = 0 + }, +/area/awaymission/cabin/snowforest) +"dA" = ( +/turf/closed/wall/ice, +/area/awaymission/cabin/snowforest) +"dB" = ( +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin) +"dC" = ( +/obj/structure/fence, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"dD" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"dE" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dF" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dG" = ( +/obj/structure/kitchenspike, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dH" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"dI" = ( +/obj/structure/table, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dJ" = ( +/obj/structure/kitchenspike, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dK" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dL" = ( +/obj/structure/fence/door/opened, +/obj/structure/barricade/wooden/crude/snow, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"dM" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dN" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"dO" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dP" = ( +/obj/item/shard, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dQ" = ( +/obj/item/lighter/greyscale, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dR" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dS" = ( +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dT" = ( +/obj/item/broken_bottle, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dU" = ( +/obj/item/chair, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dV" = ( +/obj/effect/decal/cleanable/blood/gibs/body, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dW" = ( +/obj/item/reagent_containers/pill/patch/styptic, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"dX" = ( +/mob/living/simple_animal/pet/penguin/emperor, +/turf/open/floor/plating/ice/smooth, +/area/awaymission/cabin/snowforest) +"dY" = ( +/mob/living/simple_animal/pet/penguin/baby, +/turf/open/floor/plating/ice/smooth, +/area/awaymission/cabin/snowforest) +"dZ" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/mob/living/simple_animal/hostile/bear/snow{ + desc = "It's a polar bear, in space, but not actually in space. It's actually on a planet. This is a planet."; + melee_damage_lower = 10; + melee_damage_upper = 20; + name = "fat space polar bear"; + speed = 3 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"ea" = ( +/obj/item/reagent_containers/food/snacks/carpmeat, +/obj/item/reagent_containers/food/snacks/carpmeat, +/turf/open/floor/plating/ice/smooth, +/area/awaymission/cabin/snowforest) +"eb" = ( +/obj/structure/closet, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/turf/open/floor/plating, +/area/awaymission/cabin) +"ec" = ( +/obj/machinery/light, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/awaymission/cabin) +"ed" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/awaymission/cabin) +"ee" = ( +/obj/machinery/light, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"ef" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/snowforest) +"eg" = ( +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/wood, +/area/awaymission/cabin) +"eh" = ( +/obj/machinery/door/airlock/wood/glass, +/turf/open/floor/wood, +/area/awaymission/cabin) +"ei" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/glass, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/plating, +/area/awaymission/cabin) +"ej" = ( +/obj/structure/chair/wood, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"ek" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/snowforest) +"el" = ( +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin) +"em" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/snowforest) +"en" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin) +"eo" = ( +/obj/machinery/door/airlock{ + name = "Kitchen" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"ep" = ( +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin) +"eq" = ( +/obj/machinery/door/poddoor/shutters{ + id = "garage_cabin"; + name = "garage door" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin) +"er" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin) +"es" = ( +/obj/structure/fluff/fokoff_sign, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"et" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/plating, +/area/awaymission/cabin) +"eu" = ( +/obj/structure/table/wood/fancy, +/turf/open/floor/wood, +/area/awaymission/cabin) +"ev" = ( +/obj/structure/table/wood/fancy, +/obj/item/reagent_containers/rag, +/turf/open/floor/wood, +/area/awaymission/cabin) +"ew" = ( +/obj/structure/closet/crate/wooden, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"ex" = ( +/obj/structure/closet/crate/wooden, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"ey" = ( +/obj/structure/sign/warning/nosmoking/circle, +/turf/closed/wall/mineral/wood, +/area/awaymission/cabin/snowforest) +"ez" = ( +/obj/structure/fence, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"eA" = ( +/obj/structure/table/wood, +/obj/item/chainsaw, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"eB" = ( +/obj/structure/chair/sofa/right, +/turf/open/floor/wood, +/area/awaymission/cabin/caves/mountain) +"eC" = ( +/obj/structure/fence, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"eD" = ( +/obj/structure/bonfire/dense{ + desc = "Multiple logs thrown together into a pile hastily. Let's burn it for fun!."; + name = "pile of logs" + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"eE" = ( +/obj/structure/table/wood, +/obj/item/grown/log/tree{ + pixel_x = -7 + }, +/obj/item/grown/log/tree, +/obj/item/grown/log/tree{ + pixel_x = 7 + }, +/obj/item/grown/log/tree{ + pixel_x = 14 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"eF" = ( +/obj/structure/table/wood, +/obj/item/grown/log/tree{ + pixel_x = -7 + }, +/obj/item/grown/log/tree, +/obj/item/grown/log/tree{ + pixel_x = 7 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"eG" = ( +/obj/structure/mineral_door/wood, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"eH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile/ice{ + name = "frozen window" + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/lumbermill) +"eI" = ( +/obj/effect/turf_decal/stripes/red/corner, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"eJ" = ( +/obj/effect/turf_decal/stripes/red/line, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"eK" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "lumbermill" + }, +/obj/effect/turf_decal/stripes/red/line, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"eL" = ( +/obj/effect/turf_decal/stripes/red/corner{ + dir = 8 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"eM" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"eN" = ( +/obj/structure/bookcase/random, +/turf/open/floor/wood, +/area/awaymission/cabin) +"eO" = ( +/obj/structure/flora{ + desc = "Looks frozen."; + icon = 'icons/obj/flora/snowflora.dmi'; + icon_state = "snowgrass3"; + name = "frozen flora" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"eP" = ( +/obj/structure/chair/sofa, +/turf/open/floor/wood, +/area/awaymission/cabin/caves/mountain) +"eQ" = ( +/obj/structure/table/wood, +/obj/item/phone{ + desc = "If I forgot where the gateway was then I can just call the station with this phone! Wait, where's the phone lines?"; + name = "phone" + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"eR" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "lumbermill" + }, +/obj/effect/turf_decal/stripes/red/full, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/lumbermill) +"eS" = ( +/obj/machinery/recycler/lumbermill{ + desc = "Is better at killing people than cutting logs, for some reason." + }, +/obj/machinery/conveyor{ + dir = 4; + id = "lumbermill" + }, +/obj/effect/turf_decal/stripes/red/full, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/lumbermill) +"eT" = ( +/obj/structure/closet/crate/wooden{ + anchored = 1 + }, +/obj/effect/turf_decal/delivery/red, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/lumbermill) +"eU" = ( +/obj/effect/turf_decal/stripes/red/corner{ + dir = 4 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"eV" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"eW" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/obj/item/wrench, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"eX" = ( +/obj/effect/turf_decal/stripes/red/corner{ + dir = 1 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"eY" = ( +/obj/structure/closet/crate/wooden, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"eZ" = ( +/obj/structure/closet/crate/wooden, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"fa" = ( +/obj/structure/fence, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"fb" = ( +/obj/structure/fence{ + dir = 4 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"fc" = ( +/obj/structure/fence{ + dir = 4 + }, +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"fd" = ( +/obj/structure/fence{ + dir = 4 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"fe" = ( +/obj/structure/table/wood, +/obj/item/shovel, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"ff" = ( +/obj/structure/table/wood, +/obj/item/key{ + desc = "A small grey key meant to be placed inside a vehicle. There is nothing special about this key at all besides that."; + name = "ATV key" + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"fg" = ( +/obj/structure/chair/sofa/left, +/turf/open/floor/wood, +/area/awaymission/cabin/caves/mountain) +"fh" = ( +/obj/structure{ + anchored = 1; + desc = "It is a ghostly cat."; + icon = 'icons/mob/mob.dmi'; + icon_state = "catghost"; + layer = 3; + max_integrity = 66666; + name = "Cat" + }, +/turf/open/floor/wood, +/area/awaymission/cabin/caves/mountain) +"fi" = ( +/obj/item/trash/can, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"fj" = ( +/turf/open/floor/wood, +/area/awaymission/cabin/caves/mountain) +"fk" = ( +/obj/item/reagent_containers/food/snacks/burger/ghost{ + desc = "I killed a burger for you. Hope you're grateful, bastards."; + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/awaymission/cabin/caves/mountain) +"fl" = ( +/turf/open/floor/carpet, +/area/awaymission/cabin/caves/mountain) +"fm" = ( +/turf/open/chasm{ + desc = "I told you that you can't get past those doors."; + name = "anti-fun pit" + }, +/area/awaymission/cabin/caves/mountain) +"fn" = ( +/obj/structure/table/wood/poker{ + desc = "I bought this for, like, one hundred space credits."; + name = "cheap and fancy table" + }, +/turf/open/floor/wood, +/area/awaymission/cabin/caves/mountain) +"fo" = ( +/obj/structure/table/wood/poker{ + desc = "I bought this for, like, one hundred space credits."; + name = "cheap and fancy table" + }, +/obj/structure/showcase/machinery/tv{ + desc = "Up next after these commercials, the season premiere of Ghost Court will be on."; + icon = 'icons/obj/stationobjs.dmi'; + icon_state = "wooden_tv"; + light_range = 8; + name = "Ghastly Entertainment Device" + }, +/turf/open/floor/wood, +/area/awaymission/cabin/caves/mountain) +"fp" = ( +/turf/closed/indestructible/riveted, +/area/awaymission/cabin/caves/mountain) +"fq" = ( +/obj/structure/sign/poster/contraband/fun_police, +/turf/closed/indestructible/riveted, +/area/awaymission/cabin/caves/mountain) +"fr" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fs" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"ft" = ( +/obj/structure/filingcabinet/security, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fu" = ( +/obj/machinery/computer/prisoner{ + desc = "Used to manage tracking implants placed inside criminals and the prison cells."; + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fv" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/ladder/unbreakable/rune{ + alpha = 0; + color = "#000000"; + desc = "Examining things is a good idea after all."; + height = 1; + id = "TheRealSecretPlace"; + name = "\improper Tear In The Fabric of Reality" + }, +/obj/structure/sign/plaques/golden{ + desc = "Holding the record for about 500 years now."; + name = "The Most Annoying Organization Ever"; + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fw" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/snowforest) +"fx" = ( +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/snowforest) +"fy" = ( +/obj/machinery/computer/secure_data{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fz" = ( +/obj/structure/filingcabinet/security, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fA" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/snowforest) +"fB" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/snowforest) +"fC" = ( +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/snowforest) +"fD" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/snowforest) +"fE" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fF" = ( +/obj/machinery/vending/sustenance{ + desc = "A vending machine which vends food."; + name = "\improper Snack Machine"; + product_ads = "Sufficiently healthy.;Mmm! So good!;Have a meal.;You need food to live!"; + product_slogans = "Enjoy your meal." + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fG" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fH" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fI" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fJ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fK" = ( +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fL" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fM" = ( +/turf/closed/indestructible/fakedoor{ + desc = "It looks like there really is no way out this time."; + name = "Cell Block Y8" + }, +/area/awaymission/cabin/caves/mountain) +"fN" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fO" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fP" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fQ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fR" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fS" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fT" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fU" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"fV" = ( +/turf/closed/indestructible/fakeglass, +/area/awaymission/cabin/caves/mountain) +"fW" = ( +/turf/closed/indestructible/fakedoor{ + desc = "Jail."; + name = "Jail Cell 7210" + }, +/area/awaymission/cabin/caves/mountain) +"fX" = ( +/turf/closed/indestructible/fakedoor{ + desc = "Jail."; + name = "Jail Cell 7211" + }, +/area/awaymission/cabin/caves/mountain) +"fY" = ( +/turf/closed/indestructible/fakedoor{ + desc = "Jail."; + name = "Jail Cell 7212" + }, +/area/awaymission/cabin/caves/mountain) +"fZ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile{ + desc = "Enjoy the view."; + name = "window" + }, +/turf/open/floor/plating, +/area/awaymission/cabin/caves/mountain) +"ga" = ( +/mob/living/simple_animal/hostile/bear/snow{ + desc = "It's a polar bear, in space, but not actually in space. It's actually on a planet. This is a planet."; + melee_damage_lower = 10; + melee_damage_upper = 20; + name = "fat space polar bear"; + speed = 3; + wander = 0 + }, +/turf/open/floor/plating/asteroid/snow{ + name = "packed snow"; + slowdown = 0 + }, +/area/awaymission/cabin/snowforest) +"gb" = ( +/obj/machinery/door/airlock/centcom{ + desc = "Look at what you have done."; + max_integrity = 2000; + name = "Jail Cell 7213" + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"gc" = ( +/turf/closed/indestructible/fakedoor{ + desc = "Jail."; + name = "Jail Cell 7214" + }, +/area/awaymission/cabin/caves/mountain) +"gd" = ( +/turf/closed/indestructible/fakedoor{ + desc = "Jail."; + name = "Jail Cell 7215" + }, +/area/awaymission/cabin/caves/mountain) +"ge" = ( +/turf/closed/indestructible/fakedoor{ + desc = "Jail."; + name = "Jail Cell 7216" + }, +/area/awaymission/cabin/caves/mountain) +"gf" = ( +/turf/closed/indestructible/fakedoor{ + desc = "Jail."; + name = "Jail Cell 7217" + }, +/area/awaymission/cabin/caves/mountain) +"gg" = ( +/obj/structure/weightmachine/stacklifter, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/engine, +/area/awaymission/cabin/caves/mountain) +"gh" = ( +/obj/structure/weightmachine/weightlifter, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/engine, +/area/awaymission/cabin/caves/mountain) +"gi" = ( +/obj/item/toy/spinningtoy{ + anchored = 1; + desc = "He keeps breaking out somehow due to the help of cultists that utilize cargo shipments or atmospherical sabotage." + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/indestructible, +/area/awaymission/cabin/caves/mountain) +"gj" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/indestructible, +/area/awaymission/cabin/caves/mountain) +"gk" = ( +/obj/item/gun/ballistic/automatic/toy{ + anchored = 1; + desc = "Don't try it."; + name = "Nanotrasen Saber SMG" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/indestructible, +/area/awaymission/cabin/caves/mountain) +"gl" = ( +/obj/structure/sign/poster/contraband/free_drone{ + desc = "This poster is just really ironic right now." + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/indestructible, +/area/awaymission/cabin/caves/mountain) +"gm" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/indestructible, +/area/awaymission/cabin/caves/mountain) +"gn" = ( +/obj/structure/ladder/unbreakable/rune{ + alpha = 0; + color = "#000000"; + desc = "It is time to bust out of this joint"; + height = 1; + id = "whatkindofnerdusesmapmakertocheattheirwaytoateleportrune"; + mouse_opacity = 0; + name = "\improper secret escape route" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/indestructible, +/area/awaymission/cabin/caves/mountain) +"go" = ( +/obj/structure/easel{ + desc = "Art so fine, the universe can't handle it!"; + name = "Canvas Art" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/indestructible, +/area/awaymission/cabin/caves/mountain) +"gp" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/nullrod/claymore/multiverse{ + anchored = 1; + force = 4 + }, +/turf/open/indestructible, +/area/awaymission/cabin/caves/mountain) +"gq" = ( +/obj/structure/fluff/empty_sleeper{ + desc = "An open sleeper. It looks as though it would be awaiting another patient, were it not LOCKED BEHIND BARS!!!"; + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/indestructible, +/area/awaymission/cabin/caves/mountain) +"gr" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/showcase/mecha/marauder{ + desc = "Used by vigilantes to fight the ruffians causing trouble in neighborhoods and space stations"; + icon_state = "seraph"; + name = "gang warfare seraph" + }, +/turf/open/indestructible, +/area/awaymission/cabin/caves/mountain) +"gs" = ( +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/engine, +/area/awaymission/cabin/caves/mountain) +"gt" = ( +/obj/structure/sign/poster/contraband/pwr_game{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/engine, +/area/awaymission/cabin/caves/mountain) +"gu" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/sign/poster/official/do_not_question{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"gv" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/engine, +/area/awaymission/cabin/caves/mountain) +"gw" = ( +/obj/structure/punching_bag, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/engine, +/area/awaymission/cabin/caves/mountain) +"gx" = ( +/turf/closed/indestructible/rock/snow/ice, +/area/awaymission/cabin/caves/mountain) +"gy" = ( +/obj/structure/barricade/wooden/crude{ + desc = "Buffing things is illegal for it causes fun." + }, +/turf/closed/indestructible/fakedoor{ + desc = "The room for buffing things."; + name = "Exercise Room" + }, +/area/awaymission/cabin/caves/mountain) +"gz" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/obj/structure/signpost/salvation{ + density = 0; + desc = "An intercomm. Someone seems to be on the other end. I should use it."; + icon = 'icons/obj/radio.dmi'; + icon_state = "intercom"; + max_integrity = 99999; + name = "\proper Fun Jail intercom"; + pixel_y = 32; + question = "We have a case of fun happening. Get out there and do your job." + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"gA" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/sign/poster/official/space_cops{ + pixel_y = 32 + }, +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"gB" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/sign/poster/official/no_erp{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"gC" = ( +/obj/effect/baseturf_helper/asteroid/snow, +/turf/closed/indestructible/rock/snow/ice, +/area/awaymission/cabin/caves/mountain) +"gD" = ( +/turf/open/chasm{ + color = "#000000"; + desc = "Leave this place, insect."; + name = "Abyss" + }, +/area/awaymission/cabin/caves/mountain) +"gE" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/item/reagent_containers/food/snacks/egg/rainbow{ + desc = "Was an egg really worth this much effort?"; + name = "easter egg" + }, +/obj/structure/table, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"gF" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/item/banhammer{ + desc = "I'm sorry, sir, but fun actions are illegal."; + name = "fun baton" + }, +/obj/structure/table, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"gG" = ( +/turf/closed/indestructible{ + icon = 'icons/turf/floors.dmi'; + icon_state = "black"; + name = "void" + }, +/area/awaymission/cabin/caves/mountain) +"gH" = ( +/turf/open/indestructible{ + icon_state = "black"; + name = "void" + }, +/area/awaymission/cabin/caves/mountain) +"gI" = ( +/obj/structure/signpost/salvation{ + desc = "Come closer, insect."; + icon = 'icons/mob/nest.dmi'; + icon_state = "nether"; + max_integrity = 99999; + name = "\proper Netherworld Link"; + question = "You have come far, insect. Farther than most. While I could keep you for an eternity, I would prefer some peace and quiet right now. Now, insect, offer yourself to me." + }, +/turf/open/indestructible{ + icon_state = "black"; + name = "void" + }, +/area/awaymission/cabin/caves/mountain) +"gJ" = ( +/obj/structure{ + alpha = 100; + anchored = 1; + desc = "It is impossible to comprehend such a thing"; + icon = 'icons/mob/mob.dmi'; + icon_state = "shadowling_ascended"; + max_integrity = 66666; + mouse_opacity = 0; + name = "Ascension" + }, +/turf/open/indestructible{ + icon_state = "black"; + name = "void" + }, +/area/awaymission/cabin/caves/mountain) +"gK" = ( +/obj/item/book_of_babel{ + desc = "Finally, a tome that seems actually fucking useful here.
I'm losing my mind here.
Why did I come here?

I'm not myself anymore, am I?"; + icon_state = "bookblind"; + name = "Unknown Tome" + }, +/turf/closed/indestructible{ + icon = 'icons/turf/floors.dmi'; + icon_state = "black"; + name = "void" + }, +/area/awaymission/cabin/caves/mountain) +"gL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/awaymission/cabin) +"gM" = ( +/obj/structure/closet, +/obj/effect/decal/cleanable/dirt, +/obj/item/key{ + desc = "A small grey key meant to be placed inside a vehicle. There is nothing special about this key at all besides that."; + name = "ATV key" + }, +/obj/item/key{ + desc = "A small grey key meant to be placed inside a vehicle. There is nothing special about this key at all besides that."; + name = "ATV key" + }, +/obj/item/key{ + desc = "A small grey key meant to be placed inside a vehicle. There is nothing special about this key at all besides that."; + name = "ATV key" + }, +/obj/item/key{ + desc = "A small grey key meant to be placed inside a vehicle. There is nothing special about this key at all besides that."; + name = "ATV key" + }, +/obj/item/key{ + desc = "A small grey key meant to be placed inside a vehicle. There is nothing special about this key at all besides that."; + name = "ATV key" + }, +/obj/item/key{ + desc = "A small grey key meant to be placed inside a vehicle. There is nothing special about this key at all besides that."; + name = "ATV key" + }, +/turf/open/floor/plating, +/area/awaymission/cabin) +"gN" = ( +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/awaymission/cabin) +"gO" = ( +/obj/structure/fence/door{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"gP" = ( +/obj/structure/flora/tree/pine, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"gQ" = ( +/obj/item/storage/book/bible{ + deity_name = "The Holy Lord Above"; + desc = "There is no salvation here."; + icon_state = "burning"; + name = "Holy Tome" + }, +/turf/open/indestructible{ + icon_state = "black"; + name = "void" + }, +/area/awaymission/cabin/caves/mountain) +"gR" = ( +/obj/structure/flora{ + desc = "Looks frozen."; + icon = 'icons/obj/flora/snowflora.dmi'; + icon_state = "snowgrass2"; + name = "frozen flora" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"gS" = ( +/obj/item/storage/book/bible{ + deity_name = "THE VOICES IN MY HEAD"; + desc = "There are some things that you can not get.
I had more faith in you than that.
"; + icon_state = "scrapbook"; + name = "Insane Tome" + }, +/turf/open/indestructible{ + icon_state = "black"; + name = "void" + }, +/area/awaymission/cabin/caves/mountain) +"gT" = ( +/obj/structure/ladder/unbreakable/rune{ + alpha = 0; + color = "#000000"; + desc = "EXAMINING THAT WAS A MISTAKE!"; + icon_state = "7"; + id = "TheRealSecretPlace"; + light_range = 10; + mouse_opacity = 0; + name = "\improper void" + }, +/turf/open/indestructible{ + icon_state = "black"; + name = "void" + }, +/area/awaymission/cabin/caves/mountain) +"gU" = ( +/obj/structure/flora{ + desc = "Looks frozen."; + icon = 'icons/obj/flora/snowflora.dmi'; + icon_state = "snowgrass_sw"; + name = "frozen flora" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"gV" = ( +/obj/item/storage/book/bible{ + deity_name = "Cthulhu"; + desc = "Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn."; + icon_state = "necronomicon"; + name = "Elder Tome" + }, +/turf/open/indestructible{ + icon_state = "black"; + name = "void" + }, +/area/awaymission/cabin/caves/mountain) +"gW" = ( +/obj/structure/flora/tree/dead, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"gX" = ( +/obj/structure/flora/stump{ + desc = "Breaking it should be easy."; + max_integrity = 20; + name = "old stump" + }, +/turf/open/floor/plating/asteroid/snow{ + name = "packed snow"; + slowdown = 0 + }, +/area/awaymission/cabin/snowforest) +"gY" = ( +/obj/structure/table/wood, +/obj/item/clothing/suit/hooded/wintercoat/hydro, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/head/hardhat, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"gZ" = ( +/obj/item/chair/wood, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"ha" = ( +/obj/structure/chair/wood/wings{ + name = "dealer chair" + }, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"hb" = ( +/obj/structure/table/wood/fancy, +/obj/item/coin{ + desc = "Looks old."; + pixel_x = 4; + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"hc" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck{ + pixel_y = 5 + }, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"hd" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"he" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/mug/coco{ + desc = "Still hot!"; + pixel_y = -2 + }, +/obj/item/reagent_containers/food/drinks/mug/coco{ + desc = "Still hot!"; + pixel_x = 8; + pixel_y = 8 + }, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"hf" = ( +/obj/machinery/space_heater, +/obj/effect/decal/remains/robot, +/obj/structure/sign/warning/fire{ + pixel_y = 32 + }, +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/awaymission/cabin) +"hg" = ( +/obj/machinery/door/airlock/maintenance{ + name = "janitor closet" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/awaymission/cabin) +"hh" = ( +/obj/structure/sign/poster/official/fruit_bowl{ + pixel_y = 32 + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/wood, +/area/awaymission/cabin) +"hi" = ( +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"hj" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/plating, +/area/awaymission/cabin) +"hk" = ( +/obj/structure/sign/poster/official/nanotrasen_logo{ + pixel_x = 32 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"hl" = ( +/obj/structure/sign/poster/official/here_for_your_safety{ + pixel_y = 32 + }, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"hm" = ( +/obj/machinery/door/airlock/wood{ + name = "Gateway" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"hn" = ( +/obj/structure/sign/poster/official/high_class_martini{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"ho" = ( +/obj/item/wrench/medical, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"hp" = ( +/obj/machinery/sleeper{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"hq" = ( +/obj/machinery/vending/medical, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"hr" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/generic, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/plating, +/area/awaymission/cabin) +"hs" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sign/poster/contraband/missing_gloves{ + pixel_x = 32 + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/plating, +/area/awaymission/cabin) +"ht" = ( +/obj/structure/window{ + dir = 4 + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/wood, +/area/awaymission/cabin) +"hu" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/glasses/cold, +/obj/item/clothing/glasses/cold, +/obj/item/clothing/glasses/cold, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/awaymission/cabin) +"hv" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/head/welding{ + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/awaymission/cabin) +"hw" = ( +/obj/structure/closet/toolcloset, +/obj/item/lightreplacer, +/obj/item/storage/toolbox/mechanical, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/awaymission/cabin) +"hx" = ( +/obj/machinery/door/airlock/wood{ + name = "Stage Right" + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"hy" = ( +/obj/machinery/door/airlock/maintenance{ + name = "heater storage" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/awaymission/cabin) +"hz" = ( +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/plasteel/cafeteria, +/area/awaymission/cabin) +"hA" = ( +/obj/machinery/door/airlock/freezer{ + name = "Freezer" + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"hB" = ( +/obj/machinery/door/airlock{ + name = "Backstage" + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/wood, +/area/awaymission/cabin) +"hC" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"hD" = ( +/obj/structure/table/reinforced, +/obj/item/folder/white, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"hE" = ( +/obj/machinery/door/airlock{ + name = "Kitchen" + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/wood, +/area/awaymission/cabin) +"hF" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/mug/coco{ + desc = "Still hot!"; + pixel_y = 2 + }, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"hG" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/wood, +/area/awaymission/cabin) +"hH" = ( +/obj/effect/landmark/awaystart, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"hI" = ( +/obj/effect/landmark/awaystart, +/obj/structure/sign/poster/official/report_crimes{ + pixel_y = -32 + }, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"hJ" = ( +/obj/item/storage/book/bible{ + deity_name = "Netherworld"; + desc = "Suffering and pain waits for you.
Death will not be your end for, with every step you take, your soul moves closer to me.
Your darkest fears will soon be realized.
There is nowhere to run, for I am everywhere.
"; + icon_state = "tome"; + name = "Void Tome" + }, +/turf/open/indestructible{ + icon_state = "black"; + name = "void" + }, +/area/awaymission/cabin/caves/mountain) +"hK" = ( +/obj/item/storage/book/bible{ + deity_name = "Greytide"; + desc = "Hey, I'm not actually a spooky book. Can you help me find my toolbox? Thanks."; + icon_state = "insuls"; + name = "Mortal Tome" + }, +/turf/closed/indestructible{ + icon = 'icons/turf/floors.dmi'; + icon_state = "black"; + name = "void" + }, +/area/awaymission/cabin/caves/mountain) +"hL" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/mineral/snow, +/area/awaymission/cabin/caves/mountain) +"hM" = ( +/turf/closed/wall/mineral/snow, +/area/awaymission/cabin/caves/mountain) +"hN" = ( +/obj/structure/statue/snow/snowman{ + anchored = 1 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"hO" = ( +/turf/open/floor/plating/ice/smooth, +/area/awaymission/cabin/caves) +"hP" = ( +/obj/item/candle/infinite, +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/caves) +"hQ" = ( +/obj/item/reagent_containers/food/drinks/beer, +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/caves) +"hR" = ( +/obj/structure/reagent_dispensers/beerkeg{ + desc = "Hey, Centcom, we located our complimentary case of space beer! The pamphlet didn't lie!"; + name = "complimentary keg of space beer" + }, +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/caves) +"hS" = ( +/mob/living/simple_animal/hostile/tree{ + desc = "I am death. I will have my vengeance upon my enemies."; + melee_damage_upper = 8; + wander = 0 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"hT" = ( +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"hU" = ( +/obj/item/toy/figure/clown{ + desc = "Shut up, we don't talk about him."; + name = "exploration squad Clown" + }, +/turf/open/floor/plating/ice/smooth, +/area/awaymission/cabin/caves) +"hV" = ( +/obj/structure/statue/snow/snowman{ + anchored = 1; + name = "Who" + }, +/obj/item/clothing/head/helmet/knight/yellow{ + armor = list("melee" = 11, "bullet" = 2, "laser" = 1, "energy" = 1, "bomb" = 5, "bio" = 2, "rad" = 0, "fire" = 0, "acid" = 10); + desc = "A classic metal helmet. The cold has made it unreliable though."; + name = "old medieval helmet"; + pixel_y = 7 + }, +/obj/item/claymore/weak/ceremonial{ + desc = "Brought to you by the guys in charge of making replica katana toys!"; + force = 1; + layer = 3.01; + name = "replica claymore"; + pixel_x = 5; + pixel_y = 8; + throwforce = 2 + }, +/obj/item/shield/riot/roman/fake{ + layer = 3.01; + pixel_x = -7 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"hW" = ( +/obj/item/toy/figure/borg{ + desc = "The robot that was manufactured just for this exploration team."; + name = "exploration squad Cyborg"; + pixel_x = 8; + toysay = "I. AM. ALIVE." + }, +/turf/open/floor/plating/ice/smooth, +/area/awaymission/cabin/caves) +"hX" = ( +/obj/item/clothing/suit/armor/vest/russian_coat{ + pixel_x = 16; + pixel_y = 16 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"hY" = ( +/obj/effect/decal/cleanable/blood/gibs, +/obj/item/reagent_containers/pill/patch/styptic, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"hZ" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"ia" = ( +/obj/effect/decal/cleanable/blood, +/obj/item/shard/plasma, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"ib" = ( +/obj/item/hatchet, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"ic" = ( +/obj/effect/decal/cleanable/blood, +/obj/item/trash/popcorn{ + pixel_y = 12 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"id" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"ie" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"if" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"ig" = ( +/obj/item/toy/figure/dsquad{ + desc = "The muscle behind the exploration team. May or may not be a secret soldier depending on the mood of Nanotrasen following their own lore."; + name = "exploration squad Officer"; + toysay = "We're top secret until we're not!" + }, +/turf/open/floor/plating/ice/smooth, +/area/awaymission/cabin/caves) +"ih" = ( +/obj/item/toy/figure/md{ + desc = "The doctor that got volunteered to join the exploration team."; + name = "exploration squad Medic"; + pixel_x = -8; + toysay = "Guess I'll be useless until stuns are involved!" + }, +/turf/open/floor/plating/ice/smooth, +/area/awaymission/cabin/caves) +"ii" = ( +/turf/closed/indestructible/syndicate, +/area/awaymission/cabin/caves/sovietcave) +"ij" = ( +/obj/structure/table/wood, +/obj/item/storage/crayons, +/obj/item/storage/crayons, +/turf/open/floor/wood, +/area/awaymission/cabin) +"ik" = ( +/obj/structure/door_assembly/door_assembly_vault{ + anchored = 1; + name = "vault door" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"il" = ( +/obj/item/toy/prize/deathripley{ + desc = "The mining mecha of the exploration team."; + name = "exploraton squad Ripley"; + pixel_y = 15 + }, +/turf/open/floor/plating/ice/smooth, +/area/awaymission/cabin/caves) +"im" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"in" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/wood, +/area/awaymission/cabin) +"io" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -24 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"ip" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/door/airlock/hatch, +/obj/structure/barricade/wooden, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"iq" = ( +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/hivebot/range{ + desc = "Looks like he's been left behind."; + faction = list("russian"); + maxHealth = 5; + name = "soviet machine" + }, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"ir" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/barricade/sandbags, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"is" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/obj/item/reagent_containers/food/condiment/enzyme, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"it" = ( +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"iu" = ( +/obj/item/grenade/barrier{ + pixel_x = -14; + pixel_y = 14 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"iv" = ( +/turf/closed/wall/mineral/snow, +/area/awaymission/cabin/caves) +"iw" = ( +/obj/structure/floodlight_frame, +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/caves) +"ix" = ( +/obj/effect/decal/cleanable/shreds, +/turf/open/floor/plating/ice/smooth, +/area/awaymission/cabin/caves) +"iy" = ( +/obj/item/paper/pamphlet/gateway, +/turf/open/floor/plating/ice/smooth, +/area/awaymission/cabin/caves) +"iz" = ( +/turf/closed/wall/ice, +/area/awaymission/cabin/caves) +"iA" = ( +/obj/structure/frame/machine, +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/caves) +"iB" = ( +/obj/structure/frame/computer, +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/caves) +"iC" = ( +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/caves) +"iD" = ( +/obj/structure/closet/acloset, +/obj/item/clothing/suit/hooded/bloated_human, +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/caves) +"iE" = ( +/obj/effect/decal/cleanable/shreds, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"iF" = ( +/obj/item/shovel{ + desc = "A large tool for digging and moving snow."; + force = 10; + name = "eskimo shovel" + }, +/obj/effect/decal/remains/human{ + color = "#72e4fa" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"iG" = ( +/obj/structure/fluff/iced_abductor, +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/caves) +"iH" = ( +/obj/structure/table/glass, +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/caves) +"iI" = ( +/obj/structure/closet/acloset, +/obj/item/toy/foamblade, +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/caves) +"iJ" = ( +/obj/structure/bed/alien, +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/caves) +"iK" = ( +/obj/structure/flora/rock/icy{ + desc = "A mountain rock." + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"iL" = ( +/turf/open/floor/plating/asteroid/snow{ + floor_variance = 0; + icon_state = "snow_dug"; + slowdown = 1 + }, +/area/awaymission/cabin/caves) +"iM" = ( +/turf/open/floor/wood, +/area/awaymission/cabin/caves) +"iN" = ( +/obj/machinery/icecream_vat, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"iO" = ( +/obj/structure/chair, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"iP" = ( +/obj/structure/sign/picture_frame{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/awaymission/cabin/caves) +"iQ" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/awaymission/cabin/caves) +"iR" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/mug/coco{ + desc = "Still hot!"; + pixel_x = -7; + pixel_y = -2 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"iS" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/mug/coco{ + desc = "Still hot!"; + pixel_x = 7; + pixel_y = 2 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"iT" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/mug/coco{ + desc = "Still hot!"; + pixel_x = -4; + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"iU" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/mug/coco{ + desc = "Still hot!"; + pixel_x = -5; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/drinks/mug/coco{ + desc = "Still hot!"; + pixel_x = 7; + pixel_y = -2 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"iV" = ( +/obj/machinery/door/airlock/wood{ + id_tag = "snowdinbutworse1"; + name = "Cabin 1" + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/wood, +/area/awaymission/cabin) +"iW" = ( +/obj/machinery/door/airlock/wood{ + id_tag = "snowdinbutworse2"; + name = "Cabin 2" + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/wood, +/area/awaymission/cabin) +"iX" = ( +/obj/machinery/door/airlock/wood{ + id_tag = "snowdinbutworse3"; + name = "Cabin 3" + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/wood, +/area/awaymission/cabin) +"iY" = ( +/obj/machinery/door/airlock/wood{ + id_tag = "snowdinbutworse4"; + name = "Cabin 4" + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/wood, +/area/awaymission/cabin) +"iZ" = ( +/obj/structure/window/reinforced/fulltile/ice{ + name = "frozen window" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "fightingcommunity10" + }, +/turf/open/floor/plating, +/area/awaymission/cabin) +"ja" = ( +/obj/structure/window/reinforced/fulltile/ice{ + name = "frozen window" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "fightingcommunity20" + }, +/turf/open/floor/plating, +/area/awaymission/cabin) +"jb" = ( +/obj/structure/window/reinforced/fulltile/ice{ + name = "frozen window" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "fightingcommunity30" + }, +/turf/open/floor/plating, +/area/awaymission/cabin) +"jc" = ( +/obj/structure/window/reinforced/fulltile/ice{ + name = "frozen window" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "fightingcommunity40" + }, +/turf/open/floor/plating, +/area/awaymission/cabin) +"jd" = ( +/obj/structure/window/reinforced/fulltile/ice{ + name = "frozen window" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "fightingcommunity50" + }, +/turf/open/floor/plating, +/area/awaymission/cabin) +"je" = ( +/obj/structure/window/reinforced/fulltile/ice{ + name = "frozen window" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "fightingcommunity60" + }, +/turf/open/floor/plating, +/area/awaymission/cabin) +"jf" = ( +/obj/machinery/button/door{ + id = "fightingcommunity60"; + name = "shutter button"; + pixel_x = -8; + pixel_y = 30 + }, +/obj/machinery/button/door{ + id = "WheresTheSyndiBalloon"; + name = "airlock button"; + pixel_x = 8; + pixel_y = 30 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jg" = ( +/obj/machinery/button/door{ + id = "snowdinbutworse2"; + name = "airlock button"; + pixel_y = -27 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jh" = ( +/obj/machinery/button/door{ + id = "snowdinbutworse1"; + name = "airlock button"; + pixel_y = -27 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"ji" = ( +/obj/machinery/button/door{ + id = "snowdinbutworse3"; + name = "airlock button"; + pixel_y = -27 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jj" = ( +/obj/machinery/button/door{ + id = "snowdinbutworse4"; + name = "airlock button"; + pixel_y = -27 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jk" = ( +/obj/machinery/button/door{ + id = "snowdinbutworse5"; + name = "airlock button"; + pixel_y = -27 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jl" = ( +/obj/machinery/button/door{ + id = "fightingcommunity10"; + name = "shutter button"; + pixel_x = -28; + pixel_y = 30 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jm" = ( +/obj/machinery/button/door{ + id = "fightingcommunity20"; + name = "shutter button"; + pixel_x = 28; + pixel_y = 30 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jn" = ( +/obj/machinery/button/door{ + id = "fightingcommunity30"; + name = "shutter button"; + pixel_x = -28; + pixel_y = 30 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jo" = ( +/obj/machinery/button/door{ + id = "fightingcommunity40"; + name = "shutter button"; + pixel_x = 28; + pixel_y = 30 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jp" = ( +/obj/machinery/button/door{ + id = "fightingcommunity50"; + name = "shutter button"; + pixel_x = -28; + pixel_y = 30 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jq" = ( +/obj/item/clothing/suit/hooded/wintercoat/medical{ + pixel_y = 3 + }, +/obj/structure/table/reinforced, +/obj/item/clothing/suit/hooded/wintercoat/medical{ + pixel_y = 3 + }, +/obj/item/reagent_containers/glass/bottle/cryoxadone, +/obj/item/reagent_containers/glass/bottle/cryoxadone, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"jr" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/closet/secure_closet/personal/cabinet{ + anchored = 1 + }, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/neck/scarf/zebra, +/turf/open/floor/wood, +/area/awaymission/cabin) +"js" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/table, +/obj/item/storage/firstaid/regular, +/obj/item/storage/firstaid/brute, +/obj/item/storage/firstaid/fire, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"jt" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/closet/secure_closet/personal/cabinet{ + anchored = 1 + }, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/neck/scarf/christmas, +/turf/open/floor/wood, +/area/awaymission/cabin) +"ju" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/closet/secure_closet/personal/cabinet{ + anchored = 1 + }, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/neck/stripedbluescarf, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jv" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/closet/secure_closet/personal/cabinet{ + anchored = 1 + }, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/neck/stripedgreenscarf, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jw" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/closet/secure_closet/personal/cabinet{ + anchored = 1 + }, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/neck/stripedredscarf, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jx" = ( +/obj/structure/table/wood/poker, +/obj/item/dice/d6{ + pixel_x = 5; + pixel_y = 2 + }, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"jy" = ( +/obj/structure/table/wood/fancy, +/obj/item/reagent_containers/food/drinks/bottle/wine{ + pixel_y = 4 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -7; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 7; + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jz" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen/red, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jA" = ( +/obj/structure/table/wood, +/obj/item/folder/yellow{ + pixel_x = -7 + }, +/obj/item/folder/blue{ + pixel_x = 7 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jB" = ( +/obj/effect/baseturf_helper/asteroid/snow, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"jC" = ( +/obj/machinery/door/airlock/engineering{ + name = "Generator Room" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/plating, +/area/awaymission/cabin) +"jD" = ( +/obj/structure/table/wood, +/obj/item/clothing/mask/gas/explorer, +/obj/item/tank/internals/emergency_oxygen, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jE" = ( +/obj/structure/closet/crate/bin, +/obj/item/tank/internals/emergency_oxygen/engi/empty, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"jF" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/tray, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jG" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/pistachios, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jH" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/can, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jI" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/candy, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jJ" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/cheesie, +/turf/open/floor/wood, +/area/awaymission/cabin) +"jK" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mine/stun, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"jL" = ( +/obj/structure/table/wood, +/obj/machinery/plantgenes{ + name = "tree DNA manipulator"; + pixel_y = 5 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"jM" = ( +/obj/machinery/space_heater, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"jN" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"jO" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_x = 32 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"jP" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_x = -32 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"jQ" = ( +/obj/structure/table/wood, +/obj/structure/sign/warning/nosmoking/circle{ + pixel_x = -16; + pixel_y = 32 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"jR" = ( +/obj/structure/table/wood, +/obj/item/hatchet{ + desc = "A decent axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood."; + force = 4; + name = "weak hatchet"; + pixel_x = 7; + throwforce = 4 + }, +/obj/item/hatchet{ + desc = "A decent axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood."; + force = 4; + name = "weak hatchet"; + throwforce = 4 + }, +/obj/item/hatchet{ + desc = "A decent axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood."; + force = 4; + name = "weak hatchet"; + pixel_x = -7; + throwforce = 4 + }, +/obj/item/hatchet{ + desc = "A decent axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood."; + force = 4; + name = "weak hatchet"; + pixel_x = -3; + throwforce = 4 + }, +/obj/item/hatchet{ + desc = "A decent axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood."; + force = 4; + name = "weak hatchet"; + pixel_x = 3; + throwforce = 4 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"jS" = ( +/obj/structure/table/wood, +/obj/item/storage/firstaid/brute, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"jT" = ( +/obj/structure/table/wood, +/obj/item/radio/off{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/radio/off{ + pixel_y = 4 + }, +/obj/item/radio/off{ + pixel_x = 5; + pixel_y = 4 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"jU" = ( +/obj/structure/chair/wood, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"jV" = ( +/mob/living/simple_animal/bot/firebot, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"jW" = ( +/obj/structure/table/wood, +/obj/item/gun/energy/floragun, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"jX" = ( +/obj/structure/table/wood, +/obj/item/pizzabox/vegetable{ + pixel_x = -6; + pixel_y = 12 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"jY" = ( +/obj/structure/table/wood, +/obj/item/razor{ + pixel_y = 3 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"jZ" = ( +/obj/structure/table/wood, +/obj/item/extinguisher{ + pixel_x = -7; + pixel_y = 3 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"ka" = ( +/obj/structure/table/wood, +/obj/item/extinguisher, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"kb" = ( +/obj/structure/table/wood, +/obj/item/flashlight{ + pixel_x = 4; + pixel_y = 6 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"kc" = ( +/obj/structure/table/wood, +/obj/item/flashlight{ + pixel_y = 2 + }, +/obj/item/flashlight{ + pixel_y = 15 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"kd" = ( +/obj/structure/table/wood, +/obj/item/paper_bin/construction{ + pixel_y = 3 + }, +/obj/item/pen{ + pixel_y = 3 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"ke" = ( +/obj/structure/table/wood, +/obj/item/restraints/legcuffs/beartrap{ + pixel_y = 7 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"kf" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen/fountain, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"kg" = ( +/obj/structure/flora/tree/pine, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin) +"kh" = ( +/obj/structure/flora/rock/icy{ + desc = "A mountain rock." + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/snowforest) +"ki" = ( +/turf/open/floor/wood/cold, +/area/awaymission/cabin/caves) +"kj" = ( +/obj/structure/mineral_door/wood, +/turf/open/floor/wood, +/area/awaymission/cabin/caves) +"kk" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/wood, +/area/awaymission/cabin) +"kl" = ( +/obj/structure/bonfire, +/turf/open/floor/plating, +/area/awaymission/cabin/caves) +"km" = ( +/obj/structure/bed, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/wood, +/area/awaymission/cabin/caves) +"kn" = ( +/obj/structure/sign/basic{ + pixel_x = 32 + }, +/turf/open/floor/plating/asteroid/snow{ + floor_variance = 0; + icon_state = "snow_dug"; + slowdown = 1 + }, +/area/awaymission/cabin/caves) +"ko" = ( +/turf/open/floor/wood/cold{ + icon_state = "wood-broken" + }, +/area/awaymission/cabin/caves) +"kp" = ( +/turf/open/floor/wood/cold{ + icon_state = "wood-broken4" + }, +/area/awaymission/cabin/caves) +"kq" = ( +/turf/open/floor/wood/cold{ + icon_state = "wood-broken5" + }, +/area/awaymission/cabin/caves) +"kr" = ( +/turf/open/floor/wood/cold{ + icon_state = "wood-broken3" + }, +/area/awaymission/cabin/caves) +"ks" = ( +/turf/open/floor/wood/cold{ + icon_state = "wood-broken2" + }, +/area/awaymission/cabin/caves) +"kt" = ( +/obj/structure/barricade/wooden/snowed, +/turf/open/floor/plating/asteroid/snow{ + floor_variance = 0; + icon_state = "snow_dug"; + slowdown = 1 + }, +/area/awaymission/cabin/caves) +"ku" = ( +/turf/open/floor/wood/cold{ + icon_state = "wood-broken7" + }, +/area/awaymission/cabin/caves) +"kv" = ( +/obj/structure/barricade/wooden/snowed, +/obj/structure/barricade/wooden/crude/snow, +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"kw" = ( +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plating/ice/smooth, +/area/awaymission/cabin/caves) +"kx" = ( +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"ky" = ( +/obj/structure/flora/stump{ + desc = "Breaking it should be easy."; + max_integrity = 20; + name = "old stump" + }, +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"kz" = ( +/obj/structure/statue/snow/snowman{ + anchored = 1; + name = "What" + }, +/obj/item/clothing/head/wizard/fake{ + pixel_x = -1; + pixel_y = 13 + }, +/obj/item/staff{ + layer = 3.01 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"kA" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/snow{ + name = "packed snow"; + slowdown = 0 + }, +/area/awaymission/cabin/snowforest) +"kB" = ( +/obj/structure/statue/snow/snowman{ + anchored = 1; + name = "I Don't Know" + }, +/obj/item/gun/magic/wand{ + desc = "It's just a fancy staff so that holy clerics and priests look cool. What? You didn't think someone would leave a REAL magic artifact with a snowman out in the cold, did you?"; + icon_state = "revivewand"; + layer = 3.01; + name = "holy staff"; + pixel_y = -2 + }, +/obj/item/clothing/head/christmashatg{ + pixel_y = 12; + pixel_x = 3 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"kC" = ( +/obj/structure/statue/snow/snowman{ + anchored = 1; + name = "Because" + }, +/obj/item/clothing/head/scarecrow_hat{ + desc = "A replica straw hat that isn't actually made out of straw"; + name = "synthetic straw hat"; + pixel_x = -1; + pixel_y = 10 + }, +/obj/item/gun/ballistic/shotgun/toy/unrestricted{ + pixel_y = -2 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"kD" = ( +/obj/structure/table/wood, +/obj/item/hatchet{ + desc = "A decent axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood."; + force = 4; + name = "weak hatchet"; + pixel_x = 7; + throwforce = 4 + }, +/obj/item/hatchet{ + desc = "A decent axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood."; + force = 4; + name = "weak hatchet"; + throwforce = 4 + }, +/obj/item/hatchet{ + desc = "A decent axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood."; + force = 4; + name = "weak hatchet"; + pixel_x = -7; + throwforce = 4 + }, +/obj/item/hatchet{ + desc = "A decent axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood."; + force = 4; + name = "weak hatchet"; + pixel_x = -3; + throwforce = 4 + }, +/obj/item/hatchet{ + desc = "A decent axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood."; + force = 4; + name = "weak hatchet"; + pixel_x = 3; + throwforce = 4 + }, +/obj/structure/sign/warning/nosmoking/circle{ + pixel_x = 16; + pixel_y = -32 + }, +/turf/open/floor/wood/cold, +/area/awaymission/cabin/lumbermill) +"kE" = ( +/obj/structure/closet, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/turf/open/floor/plating, +/area/awaymission/cabin) +"kF" = ( +/obj/structure/barricade/sandbags, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"kG" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"kH" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"kI" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/assembly/infra, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"kJ" = ( +/obj/effect/decal/hammerandsickle, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"kK" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/drinks/bottle/vodka, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"kL" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/clothing/head/helmet/rus_ushanka, +/obj/structure/table/reinforced, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"kM" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table/reinforced, +/obj/item/stack/sheet/mineral/sandbags{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/item/stack/sheet/mineral/sandbags{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/item/stack/sheet/mineral/sandbags{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/item/stack/sheet/mineral/sandbags{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/item/stack/sheet/mineral/sandbags{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/item/stack/sheet/mineral/sandbags{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/item/stack/sheet/mineral/sandbags{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/item/stack/sheet/mineral/sandbags, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"kN" = ( +/turf/open/floor/plating, +/area/awaymission/cabin/caves/sovietcave) +"kO" = ( +/obj/item/bear_armor, +/turf/open/floor/plating, +/area/awaymission/cabin/caves/sovietcave) +"kP" = ( +/obj/structure/statue/snow/snowman{ + anchored = 1; + name = "Why" + }, +/obj/item/clothing/head/bandana{ + pixel_x = -1; + pixel_y = -1 + }, +/obj/item/throwing_star{ + desc = "I better not rely on this being useful."; + force = 1; + name = "frozen throwing star"; + throwforce = 1 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"kQ" = ( +/obj/structure/flora/tree/pine, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"kR" = ( +/obj/structure/sign/warning/explosives, +/turf/closed/indestructible/syndicate, +/area/awaymission/cabin/caves/sovietcave) +"kS" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/remains/human, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"kT" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"kU" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"kV" = ( +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/obj/effect/decal/remains/human, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"kW" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"kX" = ( +/obj/structure/ladder/unbreakable/rune{ + desc = "Get me out of this boring room."; + height = 1; + icon_state = "hierophant"; + id = "GETMEOUTOFHEREYOUFUCKS"; + name = "\improper Return Rune" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"kY" = ( +/obj/effect/decal/remains/human, +/obj/item/shovel, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"kZ" = ( +/obj/structure/sign/warning, +/turf/closed/indestructible/syndicate, +/area/awaymission/cabin/caves/sovietcave) +"la" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/item/crowbar/large, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lb" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"lc" = ( +/turf/closed/indestructible/fakedoor{ + desc = "I can't get past this."; + name = "Reinforced Soviet Hatch" + }, +/area/awaymission/cabin/caves/sovietcave) +"ld" = ( +/obj/effect/decal/cleanable/glitter/blue{ + desc = "It looks like fancy glitter to me."; + name = "icy wind" + }, +/obj/effect/decal/cleanable/shreds, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"le" = ( +/obj/effect/decal/cleanable/glitter/blue{ + desc = "It looks like fancy glitter to me."; + name = "icy wind" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lf" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/glitter/blue{ + desc = "It looks like fancy glitter to me."; + name = "icy wind" + }, +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lg" = ( +/obj/effect/decal/cleanable/glitter/blue{ + desc = "It looks like fancy glitter to me."; + name = "icy wind" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lh" = ( +/obj/effect/decal/remains/human, +/obj/item/reagent_containers/spray/pepper/empty, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"li" = ( +/obj/effect/decal/cleanable/glitter/blue{ + desc = "It looks like fancy glitter to me."; + name = "icy wind" + }, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lj" = ( +/obj/effect/decal/remains/xeno, +/obj/effect/decal/cleanable/glitter/blue{ + desc = "It looks like fancy glitter to me."; + name = "icy wind" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lk" = ( +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/glitter/blue{ + desc = "It looks like fancy glitter to me."; + name = "icy wind" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"ll" = ( +/obj/structure/barricade/wooden/snowed, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lm" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/glitter/blue{ + desc = "It looks like fancy glitter to me."; + name = "icy wind" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"ln" = ( +/obj/item/weldingtool/mini, +/obj/effect/decal/cleanable/glitter/blue{ + desc = "It looks like fancy glitter to me."; + name = "icy wind" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lo" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/glitter/blue{ + desc = "It looks like fancy glitter to me."; + name = "icy wind" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lp" = ( +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lq" = ( +/obj/effect/decal/cleanable/glitter/blue{ + desc = "It looks like fancy glitter to me."; + name = "icy wind" + }, +/mob/living/simple_animal/hostile/statue{ + desc = "Just a snowman. Just a snowman. Oh god, it's just a snowman."; + faction = list("statue","mining"); + health = 5000; + icon_dead = "snowman"; + icon_living = "snowman"; + icon_state = "snowman"; + loot = list(/obj/item/dnainjector/geladikinesis); + maxHealth = 5000; + melee_damage_lower = 65; + melee_damage_upper = 65; + name = "Frosty" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lr" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/item/kitchen/knife/carrotshiv, +/obj/effect/decal/cleanable/glitter/blue{ + desc = "It looks like fancy glitter to me."; + name = "icy wind" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"ls" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/item/melee/baseball_bat, +/obj/effect/decal/cleanable/glitter/blue{ + desc = "It looks like fancy glitter to me."; + name = "icy wind" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lt" = ( +/obj/effect/decal/cleanable/glitter/blue{ + desc = "It looks like fancy glitter to me."; + name = "icy wind" + }, +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lu" = ( +/obj/structure/statue/snow/snowman{ + anchored = 1 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lv" = ( +/obj/effect/decal/cleanable/glitter/blue{ + desc = "It looks like fancy glitter to me."; + name = "icy wind" + }, +/obj/effect/decal/cleanable/molten_object/large, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lw" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/glitter/blue{ + desc = "It looks like fancy glitter to me."; + name = "icy wind" + }, +/obj/item/clothing/head/helmet/skull{ + armor = list("melee" = 15, "bullet" = 5, "laser" = 5, "energy" = 2, "bomb" = 10, "bio" = 5, "rad" = 20, "fire" = 20, "acid" = 20); + desc = "It's not bloody for some reason. Dear god."; + name = "human skull" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lx" = ( +/obj/effect/decal/cleanable/glitter/blue{ + desc = "It looks like fancy glitter to me."; + name = "icy wind" + }, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"ly" = ( +/obj/item/chair/stool, +/obj/effect/decal/cleanable/glitter/blue{ + desc = "It looks like fancy glitter to me."; + name = "icy wind" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lz" = ( +/obj/structure/sign/poster/official/cleanliness{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"lA" = ( +/obj/effect/decal/cleanable/glitter/blue{ + desc = "It looks like fancy glitter to me."; + name = "icy wind" + }, +/obj/effect/decal/remains/xeno/larva, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lB" = ( +/obj/structure/statue/snow/snowman{ + anchored = 1; + desc = "You didn't seriously examine each snowman to see if their description is different, did you?" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lC" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "lumbermill" + }, +/obj/effect/turf_decal/stripes/red/full, +/obj/structure/barricade/wooden/snowed, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/lumbermill) +"lD" = ( +/obj/structure/ladder/unbreakable/rune{ + desc = "I want out of this spookfest."; + icon_state = "hierophant"; + id = "GETMEOUTOFHEREYOUFUCKS"; + name = "\improper Emergency Escape Rune" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lE" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/item/hatchet, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lF" = ( +/obj/effect/mine/stun, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lG" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/item/grenade/chem_grenade/large, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lH" = ( +/obj/effect/decal/remains/human, +/obj/structure/light_construct, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lI" = ( +/obj/structure/light_construct, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lJ" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/remains/human{ + desc = "They look like human remains. They're covered in scratch marks."; + name = "mangled remains" + }, +/obj/effect/decal/cleanable/shreds, +/obj/effect/decal/cleanable/shreds{ + pixel_y = 7 + }, +/obj/effect/decal/cleanable/shreds{ + pixel_x = -3; + pixel_y = -5 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lK" = ( +/obj/item/pickaxe{ + desc = "It's almost broken."; + force = 8; + name = "damaged pickaxe"; + throwforce = 4 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lL" = ( +/obj/effect/decal/remains/human, +/obj/item/pickaxe{ + desc = "It's almost broken."; + force = 8; + name = "damaged pickaxe"; + throwforce = 4 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lM" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/item/shovel, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lN" = ( +/obj/item/pickaxe/drill, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lO" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/item/clothing/shoes/sneakers/brown, +/obj/structure/closet{ + anchored = 1; + name = "uniform closet" + }, +/obj/item/clothing/under/rank/security/officer/spacepol{ + armor = list("melee" = 2, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 10); + desc = "Anyone enjoying their time while working in a megacorporation, planetary government, or band of pirates is under the jurisdiction of the fun police." + }, +/obj/item/clothing/head/helmet, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"lP" = ( +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/closed/wall/ice, +/area/awaymission/cabin/caves) +"lQ" = ( +/obj/structure/sign/warning/enginesafety{ + desc = "A sign detailing the various safety protocols when working on-site to ensure a safe shift. It seems to particularly focus on how dangerous the sawblade is."; + name = "\improper LUMBERMILL SAFETY" + }, +/turf/closed/wall/mineral/wood, +/area/awaymission/cabin/lumbermill) +"lR" = ( +/obj/structure/closet/crate/wooden{ + desc = "Gotta know what waits within! Could it be a secret treasure cache or a deadly tool of sin?"; + name = "wooden box" + }, +/obj/item/paper{ + info = "Moving these crates through a tunnel that isn't even finished yet is really annoying. It's such a pain in the ass to haul even a single crate to the cabin. It made sense to haul food and other goods however these are fake fucking trophies. Why do they even need these fake artifacts for some asshole's trophy case? We'll just leave the crates in the cave that has all those bones inside. Fuck it."; + name = "Shipment Delivery Note" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lS" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/spider/stickyweb, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"lT" = ( +/turf/closed/indestructible/fakedoor{ + desc = "Seriously, I can't map an entire soviet bunker and new landscape for you. You can't get past this."; + name = "Soviet Hatch" + }, +/area/awaymission/cabin/caves/sovietcave) +"lU" = ( +/turf/closed/indestructible/fakedoor{ + desc = "Can you just stop?"; + name = "GO BACK THE WAY YOU CAME" + }, +/area/awaymission/cabin/caves/sovietcave) +"lV" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mine/sound/bwoink, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"lW" = ( +/obj/structure/flora/tree/dead, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"lX" = ( +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plating/asteroid/snow{ + name = "packed snow"; + slowdown = 0 + }, +/area/awaymission/cabin/caves) +"lY" = ( +/turf/open/floor/plating/asteroid/snow{ + name = "packed snow"; + slowdown = 0 + }, +/area/awaymission/cabin/caves) +"lZ" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plating/asteroid/snow{ + name = "packed snow"; + slowdown = 0 + }, +/area/awaymission/cabin/caves) +"ma" = ( +/obj/structure/flora/stump{ + desc = "Breaking it should be easy."; + max_integrity = 20; + name = "old stump" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"mb" = ( +/obj/effect/mine/sound/bwoink{ + name = "explosive mine" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"mc" = ( +/obj/structure/flora{ + desc = "Looks frozen."; + icon = 'icons/obj/flora/snowflora.dmi'; + icon_state = "snowgrass2"; + name = "frozen flora" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"md" = ( +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/obj/structure/flora/tree/pine, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"me" = ( +/obj/structure/flora{ + desc = "Looks frozen."; + icon = 'icons/obj/flora/snowflora.dmi'; + icon_state = "snowgrass3"; + name = "frozen flora" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"mf" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/snow{ + floor_variance = 0; + icon_state = "snow_dug"; + slowdown = 1 + }, +/area/awaymission/cabin/caves) +"mg" = ( +/mob/living/simple_animal/hostile/bear/russian{ + desc = "He'll hold the line against you!"; + light_range = 3; + melee_damage_upper = 25; + name = "Artyom"; + speak = list("Blyat!","Rawr!","GRR!","Growl!"); + wander = 0 + }, +/turf/open/floor/plating/asteroid/snow{ + floor_variance = 0; + icon_state = "snow_dug"; + slowdown = 1 + }, +/area/awaymission/cabin/caves) +"mh" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow{ + floor_variance = 0; + icon_state = "snow_dug"; + slowdown = 1 + }, +/area/awaymission/cabin/caves) +"mi" = ( +/obj/effect/decal/cleanable/generic, +/obj/effect/decal/cleanable/shreds{ + pixel_x = 10; + pixel_y = -12 + }, +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plating/snowed/smoothed, +/area/awaymission/cabin/caves) +"mj" = ( +/obj/effect/decal/cleanable/generic, +/obj/effect/decal/cleanable/generic{ + pixel_x = -17 + }, +/obj/effect/decal/cleanable/shreds{ + pixel_y = -12 + }, +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plating/snowed/smoothed, +/area/awaymission/cabin/caves) +"mk" = ( +/obj/structure/fence{ + dir = 4 + }, +/obj/structure/sign/nanotrasen, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"ml" = ( +/obj/structure/fence{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"mm" = ( +/obj/structure/fence/door, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"mn" = ( +/obj/structure/fence/cut/large{ + dir = 4 + }, +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plating/snowed/smoothed, +/area/awaymission/cabin/caves) +"mo" = ( +/obj/structure/fence/cut/medium{ + dir = 4 + }, +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plating/snowed/smoothed, +/area/awaymission/cabin/caves) +"mp" = ( +/obj/structure/fence/cut/medium{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed, +/area/awaymission/cabin/caves) +"mq" = ( +/obj/effect/decal/cleanable/generic, +/obj/effect/decal/cleanable/generic{ + pixel_x = 11; + pixel_y = -4 + }, +/obj/effect/decal/cleanable/shreds{ + pixel_y = -12 + }, +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plating/snowed/smoothed, +/area/awaymission/cabin/caves) +"mr" = ( +/obj/effect/decal/cleanable/shreds{ + pixel_x = -12; + pixel_y = -12 + }, +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plating/snowed/smoothed, +/area/awaymission/cabin/caves) +"ms" = ( +/turf/closed/indestructible/rock/snow/ice, +/area/awaymission/cabin/caves) +"mt" = ( +/obj/structure/fence, +/obj/effect/light_emitter{ + name = "cave light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"mu" = ( +/obj/effect/light_emitter{ + name = "cave light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"mv" = ( +/obj/effect/light_emitter{ + name = "cave light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plating/snowed/smoothed, +/area/awaymission/cabin/caves) +"mw" = ( +/obj/structure/sign/warning{ + name = "\improper SAWBLADE WARNING"; + pixel_x = -32 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"mx" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/cobweb/cobweb2{ + desc = "No, the spider web doesn't have any secrets. For fucksake." + }, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"my" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/gun/ballistic/automatic/surplus{ + desc = "Uses 10mm ammo and its bulky frame prevents one-hand firing. It has the word CHEKOV engraved on the stock."; + name = "chekov's rifle" + }, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"mz" = ( +/obj/structure/fence/end, +/obj/effect/light_emitter{ + name = "cave light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"mA" = ( +/obj/effect/light_emitter{ + name = "cave light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/closed/wall/ice, +/area/awaymission/cabin/caves) +"mB" = ( +/turf/open/floor/plating/snowed/smoothed, +/area/awaymission/cabin/caves) +"mC" = ( +/obj/item/flashlight/flare, +/obj/effect/light_emitter{ + name = "cave light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"mD" = ( +/obj/structure/closet/crate/wooden{ + desc = "Gotta know what waits within! Could it be a secret treasure cache or a deadly tool of sin?"; + name = "wooden box" + }, +/obj/item/fakeartefact, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"mE" = ( +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/closed/indestructible/rock/snow, +/area/awaymission/cabin/caves) +"mF" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/obj/effect/turf_decal/weather/snow, +/turf/open/floor/plasteel/dark/snowdin, +/area/awaymission/cabin/caves) +"mG" = ( +/obj/effect/turf_decal/weather/snow, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/obj/effect/turf_decal/weather/snow, +/turf/open/floor/plasteel/dark/snowdin, +/area/awaymission/cabin/caves) +"mH" = ( +/mob/living/simple_animal/hostile/skeleton/ice{ + desc = "A reanimated skeleton covered in thick sheet of natural ice. It is obvious to tell that they look really slow."; + maxHealth = 20; + melee_damage_lower = 5; + melee_damage_upper = 5; + name = "frozen skeleton"; + speed = 7; + wander = 0 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"mI" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"mJ" = ( +/obj/effect/turf_decal/weather/snow, +/turf/open/floor/plasteel/dark/snowdin, +/area/awaymission/cabin/caves) +"mK" = ( +/turf/closed/indestructible/fakedoor{ + desc = "Seriously, You can't get past this."; + name = "Soviet Hatch" + }, +/area/awaymission/cabin/caves/sovietcave) +"mL" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/ladder/unbreakable/rune{ + color = "#ff0000"; + desc = "ONE HUNDRED AND TEN PERCENT REAL."; + id = "whatkindofnerdusesmapmakertocheattheirwaytoateleportrune"; + name = "\improper TOTALLY LEGIT PORTAL OF FUN" + }, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"mM" = ( +/obj/machinery/door/airlock/hatch, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"mN" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"mO" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"mP" = ( +/turf/closed/indestructible/rock/snow, +/area/awaymission/cabin/caves) +"mQ" = ( +/obj/structure/closet/crate/wooden{ + desc = "Gotta know what waits within! Could it be a secret treasure cache or a deadly tool of sin?"; + name = "wooden box" + }, +/obj/item/fakeartefact, +/turf/open/floor/plating/ice/smooth, +/area/awaymission/cabin/caves) +"mR" = ( +/obj/effect/decal/cleanable/vomit/old, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"mS" = ( +/obj/machinery/door/airlock/vault{ + desc = "Made by the Russians."; + name = "Soviet Door" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"mT" = ( +/mob/living/simple_animal/hostile/skeleton/ice{ + desc = "A reanimated skeleton covered in thick sheet of natural ice. It is obvious to tell that they look really slow."; + maxHealth = 20; + melee_damage_lower = 5; + melee_damage_upper = 5; + name = "frozen skeleton"; + speed = 7; + wander = 0 + }, +/turf/open/floor/plating/ice/smooth, +/area/awaymission/cabin/caves) +"mU" = ( +/obj/effect/turf_decal/weather/snow, +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/caves) +"mV" = ( +/obj/effect/turf_decal/weather/snow, +/obj/item/flashlight/flare, +/turf/open/floor/plasteel/dark/snowdin, +/area/awaymission/cabin/caves) +"mW" = ( +/obj/effect/turf_decal/weather/snow, +/turf/closed/indestructible/rock/snow, +/area/awaymission/cabin/caves) +"mX" = ( +/obj/effect/turf_decal/weather/snow, +/obj/item/flashlight/flare, +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/caves) +"mY" = ( +/obj/effect/turf_decal/weather/snow, +/turf/open/floor/plating/ice/smooth, +/area/awaymission/cabin/caves) +"mZ" = ( +/obj/item/key{ + desc = "A small grey key meant to be placed inside a vehicle. There is nothing special about this key at all besides that."; + name = "ATV key" + }, +/obj/effect/decal/remains/human{ + color = "#72e4fa" + }, +/turf/open/floor/plating/ice/smooth, +/area/awaymission/cabin/caves) +"na" = ( +/obj/vehicle/ridden/atv{ + dir = 4 + }, +/turf/open/floor/plating/snowed, +/area/awaymission/cabin/caves) +"nb" = ( +/obj/effect/turf_decal/weather/snow, +/obj/item/pda/syndicate{ + background_color = "#0039A6"; + default_cartridge = /obj/item/cartridge/virus/clown; + desc = "A portable microcomputer by Thinktronic Systems, LTD. Seems like it may have useful information on it."; + name = "soviet PDA"; + note = "TRANSLATED TO GALACTIC COMMON:
DO NOT GO SOUTH." + }, +/obj/effect/decal/remains/human{ + color = "#72e4fa" + }, +/turf/open/floor/plasteel/dark/snowdin, +/area/awaymission/cabin/caves) +"nc" = ( +/obj/effect/baseturf_helper/asteroid/snow, +/turf/closed/wall/ice, +/area/awaymission/cabin/caves) +"nd" = ( +/turf/closed/indestructible/fakedoor{ + desc = "I think that intercomm could open the door."; + name = "Hallway Y8" + }, +/area/awaymission/cabin/caves/mountain) +"ne" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/hoteltile, +/area/awaymission/cabin/caves/mountain) +"nf" = ( +/obj/effect/decal/cleanable/insectguts, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/hoteltile, +/area/awaymission/cabin/caves/mountain) +"ng" = ( +/turf/closed/indestructible/fakedoor{ + desc = "Eh, I don't think trying to get past it is worth it anyways."; + name = "Flood Gate" + }, +/area/awaymission/cabin/caves/mountain) +"nh" = ( +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"ni" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"nj" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood, +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"nk" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest/sovietsurface) +"nl" = ( +/obj/structure/lattice/catwalk, +/turf/open/indestructible{ + icon_state = "plating"; + name = "bridge" + }, +/area/awaymission/cabin/caves/mountain) +"nm" = ( +/turf/open/indestructible{ + icon_state = "plating"; + name = "plating" + }, +/area/awaymission/cabin/caves/mountain) +"nn" = ( +/turf/open/indestructible/binary{ + density = 1; + desc = "No, I am not going through this."; + icon = 'icons/misc/beach.dmi'; + icon_state = "water"; + name = "dirty water" + }, +/area/awaymission/cabin/caves/mountain) +"no" = ( +/obj/structure/ladder/unbreakable{ + desc = "Finally."; + icon_state = "ladder10"; + id = "whyisitcalledladder10andnotladder1"; + name = "Freedom" + }, +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/turf/open/indestructible{ + icon_state = "plating"; + name = "plating" + }, +/area/awaymission/cabin/caves/mountain) +"np" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/greenglow, +/turf/open/indestructible/hoteltile, +/area/awaymission/cabin/caves/mountain) +"nq" = ( +/obj/structure/girder, +/obj/effect/decal/cleanable/shreds, +/turf/open/indestructible{ + icon_state = "plating"; + name = "plating" + }, +/area/awaymission/cabin/caves/mountain) +"nr" = ( +/obj/effect/decal/cleanable/greenglow, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/hoteltile, +/area/awaymission/cabin/caves/mountain) +"ns" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/ladder/unbreakable{ + desc = "Who left the grate open?"; + height = 1; + icon_state = "ladder01"; + id = "dealwentoffwithoutahitchBRO"; + name = "Grate"; + pixel_y = -10 + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"nt" = ( +/obj/effect/decal/cleanable/insectguts, +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/security, +/turf/open/indestructible/hoteltile, +/area/awaymission/cabin/caves/mountain) +"nu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/security, +/turf/open/indestructible/hoteltile, +/area/awaymission/cabin/caves/mountain) +"nv" = ( +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/hoteltile, +/area/awaymission/cabin/caves/mountain) +"nw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/vomit/old, +/turf/open/indestructible/hoteltile, +/area/awaymission/cabin/caves/mountain) +"nx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood, +/obj/item/mop, +/turf/open/indestructible/hoteltile, +/area/awaymission/cabin/caves/mountain) +"ny" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/displaycase{ + start_showpiece_type = /obj/item/dice/d6/space; + trophy_message = "Stolen from dice collector before he could enjoy his day." + }, +/turf/open/floor/plasteel/dark, +/area/awaymission/cabin/caves/mountain) +"nz" = ( +/obj/effect/light_emitter{ + name = "outdoor light"; + set_cap = 3; + set_luminosity = 6 + }, +/obj/structure/ladder/unbreakable{ + alpha = 0; + desc = "Finally."; + height = 1; + icon_state = ""; + id = "whyisitcalledladder10andnotladder1"; + mouse_opacity = 0; + name = "" + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"nA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/ladder/unbreakable{ + desc = "Yeah, I'll just go back to jail instead of this. It's not like there is an escape out of here, right?"; + icon_state = "ladder10"; + id = "dealwentoffwithoutahitchBRO"; + name = "Sewer Ladder" + }, +/turf/open/indestructible/hoteltile, +/area/awaymission/cabin/caves/mountain) +"nB" = ( +/obj/structure/table/wood/poker, +/obj/item/dice/d6{ + pixel_x = -8 + }, +/turf/open/floor/carpet, +/area/awaymission/cabin) +"nC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood, +/turf/open/indestructible/hoteltile, +/area/awaymission/cabin/caves/mountain) +"nD" = ( +/obj/effect/decal/cleanable/greenglow, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/indestructible/hoteltile, +/area/awaymission/cabin/caves/mountain) +"nE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mob_spawn/human/corpse/damaged, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/indestructible/hoteltile, +/area/awaymission/cabin/caves/mountain) +"nF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/indestructible/hoteltile, +/area/awaymission/cabin/caves/mountain) +"nG" = ( +/obj/effect/decal/cleanable/insectguts, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood/gibs, +/mob/living/simple_animal/hostile/skeleton{ + desc = "Oh shit!"; + dir = 1; + faction = list("sewer"); + name = "sewer skeleton"; + wander = 0 + }, +/turf/open/indestructible/hoteltile, +/area/awaymission/cabin/caves/mountain) +"nH" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/mouse{ + faction = list("sewer") + }, +/turf/open/indestructible/hoteltile, +/area/awaymission/cabin/caves/mountain) +"nI" = ( +/obj/effect/rune/malformed{ + color = "#5772E0"; + cultist_desc = "The snowman council will now decide your fate."; + cultist_name = "The Snowman Council Rune"; + desc = "An odd collection of symbols drawn in what seems to be frozen water. Despite the fancy setup, the rune seems quite mundane which makes it unworthy of translation."; + icon_state = "2"; + invocation = "Frosty the Snowman was a jolly happy soul with a corncob pipe and a button nose and his eyes made out of coal!"; + invoke_damage = 60; + name = "ice rune" + }, +/obj/item/clothing/suit/snowman{ + desc = "The dead body of a snowman. There's holes to stick your own body in it."; + name = "snowman corpse" + }, +/obj/item/clothing/head/snowman{ + desc = "The head of a dead snowman. There's enough room inside for your own head."; + pixel_x = -1; + pixel_y = 10 + }, +/turf/open/floor/plating/asteroid/snow, +/area/awaymission/cabin/caves) +"nJ" = ( +/obj/effect/turf_decal/stripes/red/line, +/obj/structure/barricade/wooden/snowed, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"nK" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/obj/structure/barricade/wooden/snowed, +/turf/open/floor/plating/snowed/temperatre, +/area/awaymission/cabin/snowforest) +"nL" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/door/airlock/grunge, +/turf/open/floor/mineral/plastitanium/red{ + name = "soviet floor" + }, +/area/awaymission/cabin/caves/sovietcave) +"nM" = ( +/obj/machinery/door/airlock/glass_large{ + name = "Medical Bay" + }, +/turf/open/floor/plasteel/white, +/area/awaymission/cabin) +"nN" = ( +/obj/machinery/light/small, +/turf/open/floor/wood, +/area/awaymission/cabin) +"nO" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks{ + dir = 8 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"nR" = ( +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/plating, +/area/awaymission/cabin) +"nS" = ( +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/turf/open/floor/wood, +/area/awaymission/cabin) +"nT" = ( +/obj/structure/window{ + dir = 4 + }, +/obj/structure/chair/stool, +/turf/open/floor/wood, +/area/awaymission/cabin) +"nU" = ( +/obj/machinery/door/airlock{ + name = "Bathroom" + }, +/turf/open/floor/plasteel/freezer, +/area/awaymission/cabin) +"nV" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/door/airlock/maintenance{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/plating, +/area/awaymission/cabin) +"MS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/obj/effect/mapping_helpers/network_builder/power_cable/yellow/auto, +/turf/open/floor/plating, +/area/awaymission/cabin) +"TZ" = ( +/obj/structure/closet/crate/wooden{ + desc = "Gotta know what waits within! Could it be a secret treasure cache or a deadly tool of sin?"; + name = "wooden box" + }, +/obj/item/fakeartefact, +/obj/item/clothing/shoes/winterboots/ice_boots, +/turf/open/floor/plating/ice/smooth, +/area/awaymission/cabin/caves) + +(1,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(2,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(3,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(4,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(5,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +"} +(6,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +ab +ab +ab +ab +gx +gx +gx +gx +ab +ab +ab +gx +ab +ab +ab +ab +ab +ab +ab +ab +"} +(7,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +ab +ab +ab +ab +ab +gx +ab +ab +ab +ab +ab +ab +gx +gx +ab +ab +ab +ab +ab +ab +ab +"} +(8,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +ab +ab +ab +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +ab +ab +gx +ab +ab +ab +ab +ab +ab +ab +"} +(9,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gC +gx +ab +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +gx +gx +ab +gx +gx +ab +gx +ab +ab +ab +ab +ab +ab +ab +"} +(10,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +fM +fM +fp +fp +fp +fp +fp +nd +nd +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +"} +(11,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fG +fN +fN +fS +fV +gi +fp +fp +gz +fN +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +ab +ab +ab +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +ab +ab +ab +ms +ms +ms +ms +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +"} +(12,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fq +fH +fH +fQ +fT +fW +gj +fp +fp +fP +fP +gE +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +ab +ab +gx +ms +ms +it +mH +ms +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +"} +(13,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fr +fI +fH +fQ +fT +fp +fp +fp +fp +fP +fP +gF +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +ab +gx +ms +ms +it +it +ms +ms +ms +ms +gx +gx +gx +gx +ab +ab +ab +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +"} +(14,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fs +fJ +fH +fQ +fT +fV +gk +fp +fp +fP +fN +lO +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +ab +gx +gx +ms +it +it +it +it +it +it +mP +ms +ms +gx +gx +gx +ab +ab +ab +gx +gx +ab +ab +ab +ab +ab +ab +ab +"} +(15,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fq +fH +fH +fQ +fT +fX +gj +fp +fp +fP +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +ab +gx +ms +ms +it +it +hO +hO +it +it +it +it +mP +gx +gx +gx +ab +ab +ab +gx +gx +ab +ab +ab +ab +ab +ab +ab +"} +(16,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fH +fH +fQ +fT +fp +fp +fp +fp +fP +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +ab +gx +ms +it +it +hO +mQ +hO +it +it +it +it +mP +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(17,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fq +fH +fH +fQ +fT +fV +gl +fp +fp +fP +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +ab +ms +ms +it +hO +hO +hO +hO +it +it +it +it +mP +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(18,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fH +ns +fQ +fT +fY +gj +fp +fp +fP +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +ab +ms +it +it +hO +hO +mT +hO +it +ms +it +it +ms +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(19,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fq +fH +fH +fQ +fT +fp +fp +fp +fp +fP +gB +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +ab +ab +ms +mD +it +hO +hO +hO +hO +it +it +it +it +ms +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(20,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +ft +fI +fH +fQ +fT +fZ +gm +fp +fp +fP +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +ab +ab +ms +ms +it +hO +hO +hO +hO +hO +it +it +it +ms +gx +gx +gx +ab +ab +ab +ab +ab +gx +gx +ab +ab +ab +ab +ab +"} +(21,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fu +fK +fO +fR +fT +gb +gn +fp +fp +fP +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +ab +ms +ms +mH +hO +hO +TZ +hO +hO +mH +it +it +ms +ms +gx +gx +ab +ab +ab +ab +ab +gx +gx +ab +ab +ab +ab +ab +"} +(22,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fv +fK +fO +fR +fT +fp +fp +fp +fp +fP +fN +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ms +it +it +hO +hO +hO +hO +hO +it +it +it +it +ms +gx +gx +gx +ab +ab +ab +ab +gx +gx +gx +ab +ab +ab +ab +"} +(23,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fy +fK +fO +fR +fT +fV +go +fp +fp +fP +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +ab +ab +ab +ab +ab +ms +it +it +it +hO +hO +hO +hO +it +it +ms +it +ms +ms +gx +gx +ab +ab +ab +ab +gx +gx +gx +ab +ab +ab +ab +"} +(24,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fz +fJ +fH +fQ +fT +gc +gj +fp +fp +fP +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +ab +ab +ab +ab +ab +ms +it +hO +hO +hO +mT +hO +hO +it +it +it +it +it +ms +ms +gx +ab +ab +ab +ab +gx +gx +gx +gx +ab +ab +ab +"} +(25,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fq +fH +fH +fQ +fT +fp +fp +fp +fp +fP +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +ab +ab +ab +ab +ms +it +hO +hO +hO +hO +hO +hO +it +it +it +ms +it +it +ms +gx +ab +ab +ab +ab +gx +gx +gx +gx +ab +ab +ab +"} +(26,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fH +fH +fQ +fT +fV +gp +fp +fp +fP +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +ab +ab +ab +gx +ms +it +hO +mQ +hO +hO +hO +it +it +it +it +it +it +it +mP +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +ab +ab +"} +(27,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fq +fH +fH +fQ +fT +gd +gj +fp +fp +fP +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +gx +ms +ms +it +hO +hO +hO +hO +it +it +ms +it +ms +it +it +it +ms +ms +ab +ab +ab +ab +ab +gx +gx +gx +ab +ab +ab +"} +(28,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fH +fH +fQ +fT +fp +fp +fp +fp +gA +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ms +it +it +it +hO +hO +it +it +ms +ms +it +it +it +it +it +it +ms +ab +ab +ab +ab +ab +gx +gx +gx +ab +ab +ab +"} +(29,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fq +fH +fH +fQ +fT +fV +gq +fp +fp +fP +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ms +ms +it +it +it +it +it +ms +ms +mP +mP +it +it +it +it +lR +ms +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(30,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fE +fI +fH +fQ +fT +ge +gj +fp +fp +fP +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +kx +kx +kx +kx +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ms +ms +ms +ms +ms +ms +ms +ab +ab +mP +mP +it +ms +it +it +mP +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(31,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fF +fJ +fH +fQ +fT +fp +fp +fp +fp +fP +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +hS +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +mP +it +it +it +ms +ms +ms +ms +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(32,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fq +fH +fH +fQ +fT +fV +gr +fp +fp +fP +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +gP +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +mP +mP +it +it +ms +ms +it +ms +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(33,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fL +fN +fN +fU +gf +gj +fp +fp +fP +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +ab +ab +ab +ab +gx +gx +gx +mP +it +it +it +it +mH +ms +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(34,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +fM +fM +fp +fp +fp +fp +fp +fP +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +ab +ab +ab +gx +gx +gx +gx +mP +mP +it +it +mP +mP +mP +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(35,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +fP +fN +fp +gg +gs +gv +gy +fP +fN +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +mP +mP +it +it +mP +mP +mP +ab +ab +ab +ab +ab +ab +ab +ab +"} +(36,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fP +fP +fP +fp +gh +gt +gw +fp +fP +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +mP +it +it +it +it +mP +mP +ab +ab +ab +ab +ab +ab +ab +"} +(37,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +ny +fP +fP +fP +fp +fp +fp +fp +fp +fP +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +it +nz +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kQ +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +it +kQ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +mP +mP +it +it +it +it +mP +mP +ab +ab +ab +ab +ab +ab +"} +(38,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fP +fP +fP +fP +fP +fP +fN +fP +fP +fP +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +kx +kx +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +gP +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +mP +mP +it +it +ms +it +it +mP +ab +ab +ab +ab +ab +ab +"} +(39,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +fN +fP +fP +fP +gu +fP +fP +fP +fN +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +gP +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +me +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +mP +mH +it +it +it +it +ms +mP +ab +ab +ab +ab +ab +ab +"} +(40,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +fp +fp +fp +fp +fp +fp +fp +fp +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +it +it +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +hO +hO +kx +ac +ac +ac +ac +ac +ac +kx +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +it +kx +kx +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +kx +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ms +ms +ms +it +it +it +ms +ms +ab +ab +ab +ab +ab +ab +"} +(41,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +it +it +it +it +kv +kx +kx +ab +ab +ab +ab +ab +ab +ab +kw +kw +hO +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +gP +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +ac +gP +kx +kx +kx +lW +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ms +ms +it +it +it +ms +ab +ab +ab +ab +ab +ab +"} +(42,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +fp +fp +fp +ng +ng +fp +fp +fp +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +it +it +it +hO +kw +dj +kx +kx +kx +kx +ab +ab +ab +ab +kw +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +kx +it +kx +kx +ab +ab +ab +ab +kx +kx +kx +kx +ac +ac +ac +gP +ac +kx +kx +ab +ab +kx +kx +kx +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +gW +ac +ac +ac +ac +ac +ac +ac +it +kx +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +iz +iz +mP +mP +mP +mP +mP +iz +iz +iz +iz +nc +ab +ab +ab +ab +ab +"} +(43,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +fp +nr +ne +nn +nn +ne +ne +fp +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +it +it +it +hO +hO +kw +dj +dj +dj +ac +kx +kx +kx +kx +kw +kw +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +gP +ac +kx +kx +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +kx +kx +kx +kx +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +gP +ac +ac +ac +ac +eO +ac +ac +eO +ac +mi +mt +mz +kx +mE +mP +iz +mP +iz +mP +mP +mP +iz +iz +iz +mP +iz +mP +iz +iz +iz +iz +iz +iz +ab +ab +ab +ab +ab +"} +(44,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +ne +ne +ne +nn +nn +ne +ne +nf +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +it +it +it +it +hO +hO +kw +dj +dj +dj +dj +dj +ac +ac +gP +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +kx +kx +kx +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +ma +kx +ac +ac +ac +ac +ac +ac +eO +aa +eO +ac +eO +ac +mj +mu +lP +mE +mE +iz +iz +mP +iz +iz +iz +mP +mJ +mJ +mJ +mJ +mJ +mJ +mU +mU +mY +mY +mU +mW +ab +ab +ab +ab +ab +"} +(45,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +ne +ne +ne +nn +nn +ne +nA +ne +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +it +it +it +it +hO +hO +hO +kw +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +kx +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +kx +kx +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +lW +kx +kx +ac +ac +ac +ac +gR +ac +ac +ac +ac +eO +ac +ac +ac +ac +mk +mu +mA +mA +mA +iz +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mJ +mW +mW +mW +mX +mY +mY +mY +mW +mW +ab +ab +ab +ab +ab +"} +(46,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +ne +nH +ne +nn +nn +ne +ne +ne +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +it +it +it +it +hO +hO +hO +hO +kw +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +kx +kx +ab +ab +ab +kx +kx +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +gR +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ml +mv +mv +mF +mJ +mJ +mJ +mJ +mU +mU +mU +mJ +iC +iC +mP +mP +mP +hO +iC +mZ +hO +hO +mP +mP +ab +ab +ab +ab +ab +"} +(47,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +ne +ne +ne +nn +nn +ne +ne +ne +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +it +it +it +it +hO +hO +hO +hO +hO +kw +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +kx +kx +kx +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +kx +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gR +eO +ac +ac +ac +ac +ac +mm +mv +mB +mB +iC +iC +iC +iC +iC +mP +mP +iC +iC +hO +hO +hO +hO +hO +hO +hO +hO +na +mP +mP +ab +ab +ab +ab +ab +"} +(48,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +ne +ne +nr +nn +nn +ne +nr +ne +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +it +it +it +hO +hO +hO +hO +hO +hO +it +kv +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +dj +cE +dj +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +kx +kx +kx +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +mn +mv +mC +mB +iC +iC +iC +iC +mP +mP +mP +mP +iC +hO +hO +hO +hO +hO +hO +hO +hO +mP +mP +mP +ab +ab +ab +ab +ab +"} +(49,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +ne +ne +ne +nn +nn +ne +ne +ne +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +it +it +it +hO +hO +hO +hO +hO +hO +it +kv +kx +ac +ac +ac +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gW +ac +ac +kx +kx +kx +kx +kx +kx +lW +kx +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +mo +mv +mu +mB +iC +iC +iC +iC +mP +mP +mP +mP +iC +hO +hO +hO +hO +hO +hO +hO +iC +mP +mP +mP +ab +ab +ab +ab +ab +"} +(50,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +nf +ne +ne +nn +nn +ne +ne +ne +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +cn +cn +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +it +it +it +hO +hO +hO +hO +hO +hO +it +it +ab +kx +ac +ac +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +eO +ac +ac +ac +ac +ac +ac +ac +eO +ac +ac +mm +mv +mB +mB +iC +iC +iC +iC +iC +mP +mP +iC +iC +iC +iC +hO +hO +hO +hO +hO +iC +mP +mP +mP +ab +ab +ab +ab +ab +"} +(51,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +ne +ne +ne +nn +nn +ne +ne +ne +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +cn +cn +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +it +it +it +hO +hO +hO +hO +hO +it +it +it +ab +kx +ac +ac +dj +dj +dj +dj +ac +ac +iO +iN +ac +ac +ac +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gU +ac +gR +ac +ac +ac +ac +ac +ac +gR +ac +ac +ac +gR +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +mp +mv +mu +mG +mJ +mJ +mJ +mJ +mJ +mJ +mU +mJ +iC +iC +iC +iC +hO +iC +hO +iC +iC +mP +mP +mP +ab +ab +ab +ab +ab +"} +(52,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +ne +ne +nf +nn +nn +ne +ne +ne +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +cn +cn +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +ab +gx +gx +it +it +it +hO +hO +hO +hO +hO +it +it +it +ab +kx +ac +ac +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +mk +mu +mA +mA +mA +iz +mJ +mJ +mJ +mV +mJ +mJ +mW +mW +mW +mU +mU +mU +mU +mU +mJ +nb +mW +mW +ab +ab +ab +ab +ab +"} +(53,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +ne +ne +ne +nn +nn +ne +nf +nH +fp +fp +fp +fm +fm +fm +fm +fm +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +ab +ab +ab +it +it +it +hO +hO +hO +hO +hO +it +it +it +ab +kx +ac +ac +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +eO +ac +ch +ac +mq +mu +lP +lP +mE +iz +iz +mP +iz +iz +iz +mP +mW +mW +mW +mW +mJ +mJ +mJ +mW +mW +mW +mW +mW +ab +ab +ab +ab +ab +"} +(54,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +ne +ne +ne +nn +nn +ne +ne +ne +fp +fp +fp +fm +fm +fm +fm +fm +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +ab +ab +it +it +it +it +hO +hO +hO +hO +it +it +it +ab +ab +kx +ac +ac +dj +dj +cE +dj +dj +dj +ac +ac +ac +ac +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gW +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +gW +ac +ac +ac +ac +ac +ac +eO +ac +ac +ac +mr +mt +mz +kx +mE +mP +iz +mP +mP +iz +iz +iz +iz +iz +mP +mP +mP +iz +iz +iz +iz +mP +mP +mP +ab +ab +ab +ab +ab +"} +(55,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +nr +ne +ne +nn +nn +ne +ne +ne +fp +fp +fp +fm +fm +fm +fm +fm +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +gx +gx +it +it +it +it +hO +hO +hO +hO +it +it +it +ab +ab +kx +ac +ac +ac +dj +dj +dj +dj +dj +dj +ac +ac +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +eO +mc +kx +kx +mE +mP +ab +ab +ab +ab +ab +ab +ab +iz +iz +iz +mP +mP +mP +mP +mP +iz +iz +iz +iz +ab +ab +ab +ab +ab +"} +(56,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +ne +ne +ne +nn +nn +ne +ne +ne +fp +fp +fp +fm +fm +fm +fm +fm +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +it +it +it +it +hO +hO +hO +hO +it +it +ab +ab +ab +kx +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(57,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +ne +ne +ne +nn +nn +ne +nv +ne +fp +fp +fp +fp +fp +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +it +it +it +hO +hO +hO +hO +hO +iK +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +cE +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gU +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +me +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(58,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +ne +nf +ne +nn +nn +ne +ne +ne +fp +fp +fp +fp +fp +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +it +it +it +it +hO +hO +hO +hO +it +it +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gW +ac +ac +ac +ac +ac +ac +gP +ac +ac +eO +ac +ac +ac +ac +ac +ac +kQ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(59,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +ne +ne +ne +nn +nn +nr +ne +nx +fp +fp +fp +fp +fp +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +it +it +it +it +it +hO +hO +hO +hO +it +gx +gx +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gR +ac +ac +ac +ac +ac +ac +ac +gR +ac +ac +ac +eO +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(60,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +ne +ne +nr +nn +nn +ne +ne +nt +ne +ne +ne +ne +nD +nE +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +it +it +it +it +it +hO +hO +hO +hO +hO +it +gx +gx +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(61,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +ne +ne +ne +nn +nn +ne +nu +nH +ne +nC +nf +nC +ne +nF +nG +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +it +it +it +it +hO +hO +hO +hO +hO +it +it +it +gx +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +eO +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(62,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +ne +ne +nH +nn +nn +nt +ne +ne +nr +ne +ne +ne +nw +ne +nE +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +it +it +it +hO +hO +hO +hO +hO +hO +it +it +it +gx +ab +ab +ab +kx +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +gW +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(63,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +nf +ne +ne +nn +nn +nn +nn +nn +nn +nn +nn +nl +nl +nn +nn +ng +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +it +it +ki +ki +kq +ks +ki +ki +ki +it +it +gx +gx +gx +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(64,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +ne +ne +nf +nn +nn +nn +nn +nn +nn +nn +nn +nl +nl +nn +nn +ng +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +it +it +it +ko +ki +ki +ki +ki +ku +ki +it +it +gx +gx +gx +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kQ +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(65,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +ne +ne +ne +ne +nf +ne +ne +ne +ne +ne +ne +ne +ne +nH +ne +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +it +it +hO +hO +hO +hO +hO +hO +it +it +it +gx +gx +gx +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gW +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gU +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(66,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +ne +nr +ne +ne +nH +ne +ne +ne +ne +nr +ne +ne +ne +ne +nr +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +hO +hO +hO +hO +hO +hO +it +it +it +it +gx +gx +gx +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +fA +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gW +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +kx +mc +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(67,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +fp +ne +ne +ne +ne +ne +np +ne +ne +ne +ne +ne +nf +ne +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +hO +hO +hO +hO +hO +hO +it +it +it +it +gx +gx +gx +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +fw +fB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(68,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +fp +fp +fp +fp +fp +fp +nq +fp +fp +fp +fp +fp +fp +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +hO +hO +hO +hO +hO +hO +it +it +it +it +gx +gx +gx +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +fw +fC +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kh +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +lW +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(69,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +fp +fp +fp +fp +nm +nm +nm +fp +fp +fp +fp +fp +fp +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +hO +hO +hO +hO +hO +hO +it +it +it +gx +gx +gx +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +hN +ac +ac +em +fx +fx +fB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gR +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(70,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +fp +fp +fp +fp +fp +nm +nm +fp +fp +fp +fp +fp +fp +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +hO +hO +hO +hO +hO +hO +it +it +it +gx +gx +gx +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +fw +fx +fx +fD +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(71,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fm +fm +fm +fm +fp +fp +fp +nm +nm +nm +fp +fp +fp +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +hO +hO +hO +hO +hO +hO +hO +it +it +gx +gx +gx +gx +ab +ab +ab +ab +ab +kx +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +fw +fx +fC +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(72,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fm +fm +fm +fm +fp +fp +fp +nm +nm +nm +fp +fp +fp +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +hO +hO +hO +hO +hO +hO +hO +it +it +gx +gx +gx +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cR +ek +ek +ek +ek +ek +ek +fx +fx +fC +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gU +ac +ac +kQ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(73,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fm +fm +fm +fm +fp +fp +fp +nm +nm +nm +fp +fp +fp +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +hO +hO +hO +hO +hO +hO +hO +hO +it +it +gx +gx +gx +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +cR +bS +ce +ce +ce +bS +bS +bS +fx +fx +fC +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(74,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fm +fm +fm +fm +fp +fp +fp +fp +nm +nm +fp +fp +fp +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +hO +hO +hO +hO +hO +hO +hO +hO +it +gx +gx +gx +ab +ab +ab +ab +ab +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +cR +bS +bS +cf +cf +cf +bS +bS +bS +fx +fx +fx +fB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +gW +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(75,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +cn +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +fp +nm +nm +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +cn +cn +cn +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +ab +ab +ab +hO +hO +hO +hO +hO +hO +hO +it +it +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ef +bS +bS +cg +cg +cg +bS +bS +bS +fx +fx +fx +fC +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(76,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +cn +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +fp +fp +nm +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +cn +cn +cn +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +ab +ab +ab +it +hO +hO +hO +hO +hO +hO +hO +it +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +dB +dB +dB +dB +dB +dB +dB +dB +dB +dB +dB +dB +cr +el +el +en +el +el +el +el +el +ep +ep +ep +er +dB +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(77,1,1) = {" +ab +ab +ab +ab +cn +cn +cn +cn +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +fp +nm +nm +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +cn +cn +cn +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +gx +gx +gx +it +it +it +it +hO +hO +hO +hO +hO +hO +hO +it +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +dB +an +an +an +an +an +an +an +ao +ao +an +an +an +an +an +an +an +an +ba +ba +an +eq +eq +eq +eq +an +dB +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(78,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +fp +fp +nm +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +gx +gx +it +it +it +it +it +ki +ki +ki +ki +ki +kr +it +it +gx +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +an +an +aq +aV +jr +au +jk +an +aq +aq +an +bl +bM +ij +bT +cs +bl +an +aq +aq +an +cS +aL +aL +aL +an +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(79,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +nm +nm +nm +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +it +gx +gx +it +it +ki +ki +ki +kp +ki +ki +it +it +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +dB +iZ +aN +jl +bb +bb +bb +eg +bm +eg +nS +an +eg +eg +eg +eg +eg +eg +hB +eg +aq +an +cT +cV +gL +cV +an +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(80,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +nm +nm +nm +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +it +it +gx +it +it +it +hO +hO +hO +hO +hO +hO +it +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +iZ +jy +jG +az +az +az +aq +an +eg +bh +an +cA +an +an +an +an +hx +an +eg +aq +an +cU +nR +aL +ec +an +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(81,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +nm +nm +nm +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +it +gx +gx +gx +gx +iK +hO +hO +hO +hO +hO +hO +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +iZ +bp +aq +az +az +az +aq +an +eg +aq +an +aq +aq +aq +aq +aq +aq +an +eg +aq +an +cV +MS +cV +cV +an +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(82,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +nm +nm +nm +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +it +gx +gx +gx +it +it +hO +hO +hO +hO +hO +hO +it +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +dB +an +an +aq +aA +aI +aA +aq +an +in +aq +an +bn +aq +aq +aq +aq +bh +an +eg +bh +an +aL +nR +aL +ed +an +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(83,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +nm +nm +nm +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +it +it +gx +it +it +it +hO +hO +hO +hO +hO +hO +it +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +dB +an +nU +an +an +an +aR +an +eg +aq +an +aq +aq +eg +aq +aq +aq +an +eg +aq +an +cU +cW +aL +gN +an +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +gW +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(84,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +nm +nm +nm +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +it +gx +it +it +hO +hO +hO +hO +hO +hO +hO +it +it +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +dB +an +as +aB +aH +an +an +an +eg +aq +an +cz +aq +eg +aq +aq +bh +an +eg +aq +an +ed +nR +aL +kE +an +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(85,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +nm +nm +nm +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +it +it +it +hO +hO +hO +hO +hO +hO +hO +hO +hO +it +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +dB +an +an +an +an +an +aS +hg +eg +bh +an +nT +bo +ht +bo +bo +cB +an +eg +eg +bV +aw +aw +gM +an +an +dB +gP +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(86,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +nm +nm +nm +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +it +it +it +hO +hO +hO +hO +hO +hO +hO +hO +hO +it +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +gP +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +an +at +aC +aH +an +an +an +eg +aq +an +aO +aO +hC +hC +hC +bb +bb +eg +aq +an +eb +cX +an +an +dB +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(87,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +nm +nm +nm +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +it +it +it +hO +hO +hO +hO +hO +hO +hO +hO +hO +it +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +dB +an +nU +an +an +an +aT +an +eg +aq +an +az +aq +aq +az +aq +aq +cO +eg +bh +an +an +an +an +dB +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +gP +ac +ac +ac +ac +md +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(88,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +nm +nm +nm +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +ab +it +it +it +hO +hO +hO +hO +hO +hO +hO +hO +hO +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +an +an +aq +au +jt +aV +aq +an +bs +aq +eh +az +aq +az +cO +az +ci +he +hG +aq +eN +an +dB +dB +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dX +dj +dj +dj +dj +dj +dX +dj +dj +dj +dj +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(89,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +nm +no +nm +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +it +it +it +it +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kC +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +gP +ac +ac +ac +dB +ja +aN +aq +az +az +az +aq +an +eg +aq +an +aP +az +ej +nB +hd +az +aO +eg +aq +aq +an +an +dB +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(90,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +nm +nm +nm +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +it +it +it +it +it +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +ab +gx +gx +gx +gx +ab +ab +ab +ab +ab +kx +kz +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +ja +jy +jF +az +az +az +aq +an +eg +bh +an +bq +az +ha +hc +hd +az +az +eg +aq +aq +aN +ao +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(91,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +fp +fp +fp +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +iK +it +it +it +it +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +gx +gx +gx +gx +gx +gx +gx +ab +ab +kx +it +ac +hV +ac +hT +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +dB +ja +bp +jm +bb +bb +bb +eg +iY +eg +aq +an +bt +az +ej +jx +hd +az +cO +eg +aq +aq +iR +ao +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(92,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +fp +fp +fp +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +it +it +it +it +it +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +iK +it +it +gx +gx +gx +gx +ab +ab +ab +kx +kB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +an +an +aq +aA +aI +aA +jj +an +eg +aq +an +cN +aq +az +aO +az +ci +hF +hG +aq +aq +bp +ao +dB +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dX +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(93,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fp +fp +fp +fp +fp +fp +fp +fp +fp +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +it +it +it +it +it +it +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +it +it +it +gx +gx +gx +gx +gx +ab +ab +ab +kx +kP +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +dB +dB +an +an +an +an +an +an +an +ct +aq +an +jE +aq +aq +az +aq +aq +aO +eg +aq +aq +an +an +dB +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +ea +cE +dj +dj +dj +dj +dX +dj +dj +dj +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(94,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +it +it +it +it +it +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +it +it +it +it +gx +gx +gx +gx +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +dB +an +an +aq +aV +ju +au +ji +an +eg +aq +an +de +de +de +de +de +bb +bb +eg +bh +an +an +dB +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dY +ea +dY +ea +dY +dj +dj +dj +dj +dj +dj +ac +ac +gW +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(95,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +it +it +it +it +it +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +it +iK +it +it +gx +gx +gx +gx +ab +ab +ab +ab +ab +kx +gP +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +jb +aN +jn +bb +bb +bb +eg +iX +eg +bh +an +hb +bU +ev +eu +cK +cD +an +eg +aq +aq +an +an +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +dj +dj +dj +dj +dj +dj +dY +ea +dY +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(96,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +ab +it +it +it +it +it +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +it +it +it +it +it +gx +gx +gx +gx +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +jb +jy +jH +az +az +az +aq +an +eg +aq +an +hn +aq +aq +aq +aq +aq +an +eg +aq +aq +aN +ao +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(97,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +fm +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +ab +it +it +it +iK +it +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +it +it +it +it +gx +gx +gx +ab +ab +ab +ab +ab +ab +kx +kx +kx +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +jb +bp +aq +az +az +az +aq +an +eg +aq +an +bv +bN +nO +aq +ap +aq +an +eg +aq +aq +iU +ao +dB +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(98,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +ab +ab +it +it +it +it +it +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +it +it +it +it +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +gP +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +an +an +aq +aA +aI +aA +aq +an +in +aq +an +an +an +an +bu +an +eo +an +eg +aq +aq +bp +ao +dB +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +gP +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(99,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +iK +it +it +it +it +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +it +it +it +it +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +kx +kQ +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +dB +an +nU +an +an +an +aU +an +eg +aq +an +bw +bO +bO +bO +bO +hz +hE +eg +aq +aq +an +an +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(100,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +cn +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +ab +it +it +it +it +it +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +it +it +it +it +it +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ch +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +dB +an +as +aB +aH +an +an +an +eg +aq +an +bx +bO +cJ +cF +cJ +hz +an +eg +bh +an +an +dB +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dX +dj +dj +dj +dj +dj +dj +dj +dj +dX +dj +dj +dj +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(101,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +ab +ab +it +it +it +it +it +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +it +it +it +it +iK +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +dB +an +an +an +an +an +hf +hy +eg +aq +an +by +hz +hz +hz +hz +hz +an +eg +aq +aq +an +an +dB +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(102,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +ab +ab +it +it +it +it +it +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +hO +it +it +it +it +it +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +dB +an +at +aC +aH +an +an +an +eg +bh +an +bz +bO +bW +ck +cj +hz +an +eg +aq +aq +aN +ao +dB +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dX +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(103,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +it +it +it +it +it +hO +hO +iL +iL +iL +iL +iL +iL +iL +iL +iL +it +it +it +it +it +it +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +dB +an +nU +an +an +an +aW +an +eg +aq +an +an +an +an +an +an +hA +an +eg +aq +aq +iS +ao +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(104,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +iK +it +it +it +it +iL +iL +iL +iL +iL +iL +iL +iL +iL +iL +iL +it +it +it +it +it +iK +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +kx +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +dB +an +an +aq +au +jv +aV +aq +an +bs +aq +an +bA +bB +bX +cl +cl +hi +an +eg +aq +aq +bp +ao +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(105,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +ab +ab +ab +gx +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +it +it +it +it +iL +iL +iL +iL +it +iL +iL +iL +it +it +iL +iL +it +it +iK +it +it +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +dB +jc +aN +aq +az +az +az +aq +an +eg +aq +an +hi +hi +hi +hi +hi +hi +an +hh +aq +aq +an +an +dB +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(106,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +it +it +it +it +it +it +it +it +it +iL +iL +iL +it +it +it +iL +iL +it +it +it +it +gx +gx +ab +gx +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +jc +jy +jI +az +az +az +aq +an +eg +aq +an +bC +bB +bY +is +dt +cG +an +eg +bh +an +an +dB +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +dj +dj +dj +ac +ac +gW +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(107,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +it +iK +it +it +it +it +it +it +it +iL +iL +kn +it +it +it +iL +iL +it +it +it +it +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +dB +jc +bp +jo +bb +bb +bb +eg +iW +eg +aq +an +an +an +an +an +an +an +an +eg +aq +aq +an +an +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dj +dj +dj +dj +ac +ac +ac +ac +ac +ac +ac +kx +kx +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(108,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +it +it +it +it +it +it +it +it +iv +iv +kj +iv +iv +it +it +iL +iL +iL +it +it +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +dB +an +an +au +aA +aI +aA +jg +an +eg +aq +an +aJ +bG +bE +cv +hq +cv +an +eg +aq +aq +aN +ao +dB +ac +gP +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(109,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +it +it +it +it +iv +iv +iM +iM +iM +iv +iv +it +it +iL +iL +it +it +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kg +dB +an +an +an +an +an +an +an +ct +bh +an +aK +bE +bE +bE +bE +lz +an +eg +aq +aq +iT +ao +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(110,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +gx +gx +gx +it +it +it +it +it +it +iv +iM +iM +iM +iM +iM +iv +it +it +iL +iL +it +it +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +an +an +aq +aV +jw +au +jh +an +eg +aq +an +bD +bE +bE +cI +hD +bE +nM +eg +aq +aq +bp +ao +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(111,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +gx +gx +gx +gx +it +it +it +it +it +iv +iP +iM +kl +iM +iM +iv +it +it +iL +iL +it +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +jd +aN +jp +bb +bb +bb +eg +iV +eg +aq +an +cP +cP +cP +cP +jq +cP +cP +eg +aq +aq +an +an +dB +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(112,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +it +it +it +iK +it +iv +iM +iM +iM +iM +iM +iv +it +it +iL +iL +it +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +it +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +gP +ac +ac +ac +dB +jd +jy +jJ +az +az +az +aq +an +eg +aq +an +bF +bP +cm +ho +bE +lz +an +eg +aq +an +an +dB +dB +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(113,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +it +it +it +it +iv +iv +iQ +km +iQ +iv +iv +it +it +iL +iL +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +it +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +jd +bp +aq +az +az +az +aq +an +eg +nS +an +bF +bQ +cu +hp +js +hp +an +eg +aq +an +dB +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(114,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +gx +gx +ab +it +it +it +iv +iv +iv +iv +iv +it +it +it +iL +iL +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +an +an +aq +aA +aI +aA +aq +an +in +nN +an +an +an +an +an +an +an +an +eg +bh +an +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(115,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +ab +ab +ab +gx +gx +gx +gx +gx +gx +kt +kt +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +dB +dB +an +nU +an +an +an +aU +an +eg +eg +nV +ei +et +hj +hr +hs +et +nV +eg +aq +an +dB +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(116,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +iL +iL +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +an +as +aB +aH +an +an +an +ar +an +an +an +an +an +an +an +an +an +cM +hm +an +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(117,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +kt +kt +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +cY +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +dB +dB +an +an +an +an +an +aX +bf +bb +an +bj +bH +an +kk +aq +aq +aq +io +bb +az +an +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(118,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +it +iL +iL +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +ax +an +aF +cL +aw +jC +bb +bb +bb +an +bk +bJ +an +cb +co +cw +aq +cH +cQ +ee +an +dB +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(119,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +it +it +iL +iL +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +kx +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dD +dH +dH +dH +dH +dH +dN +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +ax +av +aw +ed +hu +an +aY +bc +bg +an +nU +an +an +cc +cp +cx +eg +eg +cQ +hI +an +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(120,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +it +iL +iL +iL +gx +gx +gx +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +eG +eG +eH +eG +eG +ad +ad +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +ax +ed +aw +ed +hv +an +hl +bd +az +an +jf +ay +an +cd +cq +cy +aq +cH +hH +ee +an +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(121,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +it +iL +iL +iL +gx +gx +gx +gx +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ad +ad +jP +af +af +af +af +af +jP +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +ax +aD +aM +du +hw +an +aZ +be +az +bi +hk +bL +an +bn +aq +aq +aq +aq +az +az +an +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(122,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +it +it +iL +iL +it +it +gx +gx +gx +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +af +af +af +af +jB +af +af +af +af +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +gP +dB +ax +aE +aQ +dv +an +an +ao +ao +ao +an +an +je +an +an +jD +jD +an +jA +jz +an +an +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(123,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +gx +gx +gx +gx +gx +gx +gx +it +it +iL +iL +it +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +kx +kx +ac +ch +ac +ac +ac +ac +ac +ac +ac +ad +ew +af +af +al +kf +ff +eQ +ak +af +af +eY +ad +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +ax +ax +ax +ax +ax +dB +dB +dB +dB +dB +dB +dB +dB +an +ao +ao +an +ao +ao +an +dB +dB +ac +ac +gP +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(124,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +gx +gx +gx +gx +gx +gx +gx +it +it +iL +iL +iL +it +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +ad +af +af +ak +af +am +af +fe +af +af +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dB +dB +dB +dB +dB +dB +dB +ac +ac +ac +ac +ac +ac +dB +dB +dB +dB +dB +dB +dB +dB +dB +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +it +it +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(125,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +iL +iL +it +it +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +jM +af +af +af +jV +af +af +af +jM +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(126,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +iL +iL +it +it +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +gY +af +af +af +af +af +af +af +jR +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(127,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +iL +iL +it +it +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ch +ac +ac +ac +ac +ac +ad +gY +af +af +ak +af +ak +af +af +kD +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(128,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +iL +iL +iL +it +it +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ch +ac +ac +ad +jQ +af +ak +jX +af +ka +ke +af +eA +ad +ac +ac +ch +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dA +dC +dC +gO +dC +gO +dC +dC +dC +dC +lP +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(129,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +iz +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +iL +iL +it +it +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ad +gY +af +jW +af +af +jU +jT +af +jR +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dx +dz +dz +dz +dz +dz +dz +dz +dz +dz +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(130,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +iz +iz +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +iL +iL +iL +it +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ad +jM +af +kb +gZ +af +af +jS +af +jM +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +es +ac +ac +dx +dz +dz +dz +dz +dz +gX +dz +dz +dz +lX +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(131,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +iA +iC +gx +gx +iA +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +iL +iL +iL +it +it +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iK +kx +ac +ac +ac +ac +ac +ac +ac +ad +ad +af +af +ak +jL +af +kd +kc +af +af +ad +ad +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dy +dz +dz +dz +dz +dz +dz +dz +dz +gX +dz +lX +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(132,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +iB +iC +iG +iC +iH +gx +gx +gx +gx +gx +gx +gx +gx +iK +it +iL +iL +iL +it +it +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ad +ex +af +af +af +jZ +af +jY +af +af +af +eZ +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +dx +dz +ga +dz +dz +dz +dz +dz +dz +dz +dz +dz +lX +lX +lX +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(133,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +iz +iA +iC +iC +iC +iJ +iz +gx +gx +gx +gx +gx +it +it +it +it +iL +iL +iL +it +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +ac +ad +ad +af +af +af +af +af +af +af +af +af +ad +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dL +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +lX +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(134,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +iz +iz +iD +iH +iI +iz +iz +gx +gx +gx +gx +it +it +it +it +iL +iL +iL +it +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ch +ac +ch +ac +ac +ac +ac +ae +ad +ad +jO +af +af +af +af +af +jO +ad +ad +fb +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +dx +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(135,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +iz +iz +iz +iz +iz +it +gx +gx +gx +it +it +it +it +iL +iL +iL +it +it +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ag +cZ +ad +ad +eH +eG +lQ +eG +eH +ad +ad +cZ +fc +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dx +dz +dz +dz +dz +dz +dz +dz +gX +dz +dz +dz +dz +dz +gX +dz +lX +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(136,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +it +it +it +gx +gx +gx +gx +it +it +it +iL +iL +iL +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +iK +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ag +cZ +mw +bS +bS +eI +eM +eU +bS +bS +mw +cZ +fc +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dx +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +gX +dz +dz +dz +dz +dz +lX +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(137,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +it +it +it +gx +gx +gx +it +it +it +iL +iL +iL +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ch +ac +ag +cZ +bS +bS +eE +eJ +eR +eV +eE +bS +bS +cZ +fc +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dx +dz +gX +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +lX +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(138,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +hO +it +it +it +gx +gx +gx +it +it +iL +iL +iL +it +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +kx +ch +ac +ac +ac +ac +ac +ac +ac +ac +ag +cZ +bS +eD +eF +eJ +eR +eV +eF +eD +bS +cZ +fc +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +dx +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(139,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +hO +hO +it +it +iE +gx +gx +gx +it +it +iL +iL +iL +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ag +cZ +bS +eE +cZ +eJ +eR +eV +cZ +eE +bS +cZ +fc +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dx +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(140,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +hO +hO +it +it +it +gx +gx +it +it +it +iL +iL +iL +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ch +ac +ac +ac +ac +ac +ac +ah +cZ +bS +eF +cZ +eK +eR +eV +cZ +eF +bS +cZ +fc +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dx +dz +dz +gX +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +dz +kA +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(141,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +hO +hO +it +it +it +gx +it +it +it +it +it +it +it +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ag +cZ +bS +bS +cZ +eJ +lC +eV +cZ +bS +bS +cZ +fc +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +dx +dz +dz +dz +dz +aG +dg +dg +dE +dE +dE +dE +dE +dE +hZ +hZ +dg +dg +if +lX +lY +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(142,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +hO +hO +it +it +it +it +it +it +it +it +it +iK +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ch +ac +ac +ac +ag +cZ +bS +bS +cZ +nJ +eS +nK +cZ +bS +bS +cZ +fc +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dx +dz +dz +dz +dz +bK +dh +di +dF +dO +dF +dh +dF +dF +dF +dF +ic +dp +nh +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(143,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +it +hO +it +it +it +it +it +it +it +it +it +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +kx +ch +ac +ac +ac +ac +ac +ac +ac +ac +ag +cZ +bS +bS +bS +eJ +lC +eV +bS +bS +bS +cZ +fc +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dx +dz +dz +dz +kA +bK +di +di +ds +di +di +dw +di +hY +di +di +di +dh +nh +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(144,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +it +iE +hO +hO +it +it +it +it +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ag +cZ +bS +bS +bS +eK +eR +eW +bS +bS +bS +cZ +fc +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +dx +dz +dz +dz +dz +da +dk +di +dG +dG +dG +dG +dJ +dG +dI +dG +di +id +ni +lX +lY +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(145,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +hO +it +hO +hO +it +it +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +kx +ky +ac +ac +ac +ac +ac +ac +ac +ac +ac +ag +cZ +cZ +bS +bS +eL +eT +eX +bS +bS +cZ +cZ +fc +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +kx +kx +kx +kx +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +dx +dz +gX +dz +dz +db +dl +dr +dI +di +di +dU +fi +di +dh +dG +di +id +ni +lZ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(146,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +hO +hO +hO +hO +it +it +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ai +cZ +cZ +cZ +bS +bS +bS +bS +bS +cZ +cZ +cZ +fd +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +kx +kx +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +dx +dz +dz +dz +dz +dc +dm +di +dG +dP +di +dh +dW +dS +ia +dG +di +id +ni +lX +lY +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(147,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +hO +hO +hO +hO +it +it +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +kx +kx +ac +ac +ch +ac +ac +ac +ac +ac +ch +ac +ey +ez +eC +eC +eC +eC +eC +eC +eC +eC +eC +fa +ey +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +kx +kx +kx +it +kx +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +dx +dz +dz +dz +dz +dd +dn +di +dG +di +dS +di +hX +di +di +dG +di +ie +ni +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(148,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +hO +hO +ix +hO +it +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ky +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +kx +ab +ab +ab +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +ac +dx +dz +dz +dz +dz +dd +dn +ds +dG +di +dT +di +dh +di +dh +dG +di +id +ni +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(149,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +hO +hO +hO +hO +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +kx +kx +kx +kx +kx +kx +kx +ac +ac +ac +ac +ac +gP +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +gP +ac +dx +dz +dz +dz +dz +db +do +di +dG +di +dh +di +di +di +ib +dG +dw +id +nj +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(150,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +hO +hO +hO +hO +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ch +ac +ac +ac +ch +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +kx +kx +kx +kx +kx +kx +ac +ac +ac +ac +kx +kx +kx +kx +ab +ab +ab +ab +ab +kx +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +gP +kx +kx +ab +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +kx +kx +ac +kx +kx +lP +lX +dz +gX +dz +db +dl +di +dJ +dQ +di +dV +di +dU +dV +dI +dh +ie +ni +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(151,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +hO +hO +hO +hO +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +kx +kx +kx +kx +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +gP +ac +ac +ac +kx +kx +ab +ab +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +it +kx +ab +ab +lX +lX +dz +dz +da +dk +dw +dG +dI +dG +dG +dG +dG +dG +dG +di +id +ni +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(152,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +hO +hO +hO +hO +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +gP +ac +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +ab +ab +ab +ab +lX +lX +kA +bK +di +di +dh +di +di +dW +ds +di +di +di +di +di +nh +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(153,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +hO +hO +hO +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +lX +lX +bK +dp +dh +dK +dR +dK +dK +dK +dh +dK +dK +di +dp +nh +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(154,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +ix +hO +hO +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +ab +ab +kx +ac +ac +ac +ac +kx +kx +kx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +lX +df +dq +dq +dM +dM +dM +dZ +dM +dM +dM +dM +dq +dq +nk +lX +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(155,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +hO +hO +hO +it +hO +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ch +ac +ac +ac +ch +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +ab +kx +kx +kx +it +kV +kx +gx +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +lX +lX +lX +dz +dz +lX +lX +lX +dz +dz +dz +lX +lX +lX +lX +lZ +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(156,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +hO +hO +hO +it +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +kx +kx +kx +kx +kx +kx +kx +ac +ch +ac +ch +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +ab +ab +ab +gx +iv +iv +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +lX +lX +lZ +lX +ab +lX +lX +lX +lZ +lX +ab +gx +lX +lY +iL +it +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(157,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +it +it +iF +it +it +it +hO +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ch +ac +kx +kx +ab +ab +ab +ab +ab +kx +kx +kx +kx +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +ab +gx +gx +gx +iv +iv +gx +gx +gx +gx +it +it +gx +gx +lp +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +lY +ab +ab +ab +lY +ab +ab +lY +ab +ab +gx +gx +iL +iL +iL +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(158,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +it +it +it +it +it +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +ac +gW +ac +ac +ch +ac +ac +ac +ac +ch +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +iK +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +ab +gx +gx +gx +iv +iv +gx +gx +it +it +it +it +it +it +it +it +it +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +it +iL +iL +it +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(159,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +it +hO +hO +hO +hO +hO +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +ac +ac +ac +ac +ac +ac +ch +ac +ac +ac +ac +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +kU +it +it +gx +gx +kX +it +it +it +it +it +it +it +it +it +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +iL +iL +it +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(160,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +hO +hO +hO +hO +hO +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +kx +kx +kx +kx +kx +kx +kx +kx +kx +kx +kx +kx +kx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +it +it +it +gx +gx +it +it +it +it +it +it +it +gx +it +it +it +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +iL +iL +it +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(161,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +hO +hO +hO +hO +it +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +it +kT +it +gx +gx +gx +gx +it +it +it +it +it +it +lu +lu +lu +it +iK +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +iL +iL +iL +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(162,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +hO +hO +hO +it +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +gx +gx +gx +gx +gx +it +it +it +it +lu +it +it +it +lu +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +iL +iL +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(163,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ix +hO +hO +it +it +it +it +hO +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +it +it +kU +it +gx +gx +gx +gx +gx +it +it +it +it +it +nI +it +lu +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +ab +it +iL +iL +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(164,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +hO +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +it +it +it +hO +hO +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +kU +it +it +it +gx +gx +gx +gx +gx +gx +lp +gx +lu +it +it +it +lu +it +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +it +iL +iL +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(165,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +hO +hO +hO +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +iy +hO +it +it +it +hO +hO +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +it +kU +gx +gx +gx +gx +gx +gx +gx +gx +lB +lu +lu +iK +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +it +iL +iL +iL +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(166,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +hO +hO +hO +it +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +gx +it +it +it +hO +hO +hO +ix +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +it +it +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +gx +gx +gx +ab +iL +iL +iL +it +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(167,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +hL +hO +hO +hO +hO +hO +it +it +it +it +gx +gx +gx +it +it +it +it +gx +gx +hO +ix +hO +hO +hO +hO +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +gx +gx +gx +gx +gx +kS +it +it +gx +it +kU +it +kT +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +ab +gx +gx +ab +iL +iL +it +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(168,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +hM +hP +hQ +hP +hW +hO +it +gx +it +it +it +it +it +it +it +it +gx +gx +gx +gx +hO +hO +ix +hO +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +gx +gx +gx +ab +iL +iL +it +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(169,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +hM +hQ +hR +hQ +ig +il +hO +gx +gx +gx +it +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +kU +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +ab +ab +iL +iL +it +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(170,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +hM +hP +hQ +hP +ih +hO +hO +gx +gx +gx +iv +iw +iv +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +kT +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +ab +iL +iL +ab +ab +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(171,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +hL +hO +hO +hO +hO +hO +gx +gx +gx +gx +iv +iv +iv +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +kU +it +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +it +iL +iL +ab +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(172,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +hO +hO +hO +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +kS +gx +it +it +kU +gx +gx +gx +gx +gx +gx +gx +lh +gx +it +it +kU +it +it +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +it +iL +iL +iL +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(173,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +hO +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +gx +it +it +it +gx +gx +gx +gx +gx +la +it +it +it +it +gx +gx +it +it +it +kU +gx +it +kS +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +it +iL +iL +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(174,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +hO +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +gx +gx +gx +ab +gx +gx +gx +it +gx +it +it +it +gx +gx +gx +gx +it +it +it +it +it +it +it +it +it +it +it +it +it +it +it +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +iL +iL +iL +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(175,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hO +hO +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +gx +it +it +gx +gx +gx +gx +it +kU +it +gx +gx +kT +gx +it +gx +gx +it +it +it +it +it +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +iL +iL +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(176,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +hO +hU +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +it +it +gx +gx +gx +gx +it +it +it +gx +it +it +it +it +kU +gx +gx +lE +it +it +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +iL +iL +iL +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(177,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +iK +it +kU +it +gx +gx +gx +it +it +kT +it +it +it +it +kU +it +it +gx +it +it +it +it +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +it +iL +iL +iL +it +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(178,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +it +gx +gx +gx +gx +it +it +it +it +gx +gx +gx +gx +gx +gx +gx +it +gx +it +kT +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +it +iL +iL +iL +iL +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(179,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +gx +it +it +gx +gx +gx +gx +it +kU +it +it +ld +gx +lm +ld +gx +gx +gx +it +gx +it +it +it +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +it +iL +iL +iL +iL +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(180,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +gx +it +it +gx +gx +gx +it +it +gx +gx +gx +le +le +le +lg +le +lf +gx +it +gx +gx +it +it +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iL +iL +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(181,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +gx +it +gx +gx +gx +gx +kU +it +gx +gx +gx +gx +li +ld +lq +lk +lv +gx +it +gx +gx +it +it +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +iL +iL +it +it +it +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(182,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +gx +kT +it +gx +gx +gx +it +it +gx +gx +gx +lf +li +le +lr +le +ld +gx +it +gx +gx +it +it +kU +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iK +iL +iL +iL +it +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(183,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +kS +gx +it +kU +gx +gx +gx +it +it +gx +gx +gx +gx +lj +le +li +le +lw +gx +it +gx +it +it +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +it +it +it +iL +iL +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(184,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +gx +gx +gx +kW +it +gx +gx +gx +gx +gx +ln +le +ld +lx +gx +it +gx +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +iL +iL +it +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(185,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +gx +gx +gx +gx +it +it +it +gx +gx +gx +gx +gx +ls +le +ly +gx +kT +gx +it +it +it +it +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +ab +ab +ab +iL +iL +it +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(186,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +gx +gx +gx +gx +it +gx +kU +gx +gx +gx +gx +li +le +le +lo +gx +lD +gx +it +it +gx +it +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +gx +gx +it +iL +iL +it +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(187,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +gx +gx +gx +gx +it +it +it +it +gx +gx +le +lk +le +ld +lA +gx +gx +gx +lF +gx +gx +kU +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +gx +it +it +iL +iL +it +it +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(188,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +kU +it +gx +gx +gx +gx +it +iE +it +it +lg +le +le +lg +lt +gx +gx +gx +it +it +it +gx +it +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +ab +ab +iL +iL +ab +it +it +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(189,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +gx +gx +gx +gx +gx +kU +it +gx +lk +lo +gx +gx +gx +gx +gx +it +gx +gx +gx +it +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +iL +iL +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(190,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +kU +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +it +gx +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +gx +gx +gx +gx +gx +iL +iL +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(191,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +kT +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +it +gx +gx +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +gx +gx +gx +ab +ab +iL +iL +ab +ab +ab +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(192,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +it +it +gx +gx +kY +it +it +ll +it +kT +it +ll +it +kT +it +it +it +gx +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +ab +gx +ab +it +iL +iL +it +it +ab +ab +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(193,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +it +kU +it +it +it +it +it +it +gx +gx +gx +gx +gx +gx +it +it +it +kU +gx +it +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +ab +gx +ab +ab +iL +iL +it +it +it +ab +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(194,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +it +it +it +gx +it +kU +it +it +it +it +gx +it +gx +gx +gx +gx +it +it +gx +gx +gx +kT +it +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +gx +gx +ab +ab +gx +gx +gx +gx +gx +it +iL +iL +it +gx +it +ab +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(195,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +kS +it +it +it +it +kU +it +kT +it +it +it +gx +it +it +gx +it +gx +it +it +it +it +it +it +iK +gx +gx +it +it +it +kU +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +ab +gx +gx +gx +ab +ab +gx +gx +gx +ab +ab +gx +it +iL +iL +it +it +it +ab +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(196,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +gx +gx +gx +gx +gx +it +it +gx +it +kU +gx +it +it +it +gx +gx +gx +it +kT +it +gx +it +it +it +gx +it +it +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +iL +iL +ab +ab +it +ab +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(197,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +it +it +it +iK +it +gx +gx +it +it +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +gx +ab +ab +gx +gx +gx +gx +ii +ii +ab +ab +gx +iL +iL +it +ab +ab +ab +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(198,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +gx +gx +it +lp +it +it +it +it +gx +gx +it +kT +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +it +it +ab +it +iL +iL +it +ab +ab +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(199,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +kT +it +iu +gx +it +lG +gx +gx +it +lK +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +ab +gx +gx +gx +gx +gx +gx +gx +gx +ii +it +it +it +iL +iL +iL +ab +ab +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(200,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +kY +gx +it +it +it +gx +kU +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +it +it +iL +iL +iL +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(201,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +kU +it +gx +gx +gx +it +it +it +it +gx +gx +gx +gx +gx +gx +gx +gx +ab +gx +gx +gx +gx +gx +gx +gx +gx +ab +gx +gx +gx +gx +gx +gx +gx +gx +ii +ii +mf +iL +iL +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(202,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +gx +gx +gx +gx +kU +gx +it +it +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +ii +ii +ii +ii +ii +iL +mg +mh +it +it +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(203,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +lN +it +it +it +gx +gx +gx +gx +gx +it +it +iK +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +im +im +mM +im +mS +iL +iL +ii +it +it +iK +ii +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(204,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +kS +it +it +it +lM +it +gx +gx +gx +it +lH +ii +ii +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +ii +ii +ii +gx +ii +mO +im +ii +ii +ii +mS +ii +ii +ii +ii +ii +ii +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(205,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +kU +gx +it +it +kU +it +it +it +it +ii +iq +ii +gx +ii +ii +ii +ii +gx +ii +ii +ii +ii +gx +gx +ii +lb +im +ii +ii +ii +im +im +kF +iq +ii +im +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(206,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +kU +it +gx +gx +gx +gx +gx +it +it +ii +ik +ii +ir +ii +ii +ii +kH +im +ii +ii +ii +kH +im +ii +ii +gx +ii +im +im +kF +kH +im +im +im +kF +kF +ii +mM +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(207,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +gx +gx +gx +lJ +it +lp +ik +im +ip +jK +im +im +ir +ir +ir +ir +im +ir +ir +ir +ir +ii +gx +ii +im +kF +kF +im +im +im +im +im +im +im +im +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(208,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +gx +it +it +gx +gx +it +it +it +ii +ii +ii +jN +im +im +jK +im +im +jK +im +im +im +im +im +ii +ii +ii +im +my +kF +im +im +im +im +im +im +im +im +ii +gx +gx +gx +gx +gx +gx +gx +ab +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(209,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +lL +it +it +it +it +it +it +it +ik +im +ip +im +im +im +im +im +ir +ir +im +im +im +im +im +ii +kO +ii +im +kF +kF +im +im +kJ +im +im +ii +ii +ii +ii +gx +gx +gx +gx +gx +gx +gx +ab +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(210,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +iK +gx +it +it +kU +it +ii +ik +ii +im +jK +im +im +im +ir +im +im +im +kJ +im +im +ii +ii +ii +im +im +kF +im +im +im +im +mI +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(211,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +kT +it +it +it +it +kU +ii +im +im +im +im +jK +ir +ir +im +im +im +im +im +ir +im +ii +ii +ii +ii +im +im +im +im +kF +ii +ii +gx +gx +gx +gx +gx +ab +gx +ab +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(212,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +it +it +it +lI +ii +ii +ii +kF +kF +kF +im +im +im +im +im +im +im +im +im +nL +kH +im +nL +im +im +im +im +kF +im +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(213,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +kT +it +gx +gx +ii +ii +kG +ii +ii +ii +ii +kI +im +im +im +ir +im +ii +im +kF +ii +mN +im +im +im +kF +mR +ii +gx +gx +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(214,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +it +gx +gx +gx +gx +ii +ii +ii +gx +gx +ii +ii +ir +ir +ir +ii +ii +ii +im +im +ii +ii +ii +ii +ii +ii +ii +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(215,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +ir +im +ir +ii +kN +ii +kF +im +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(216,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +im +im +im +ii +ii +ii +im +im +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(217,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +kK +kL +kM +ii +gx +ii +im +kF +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(218,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +ii +ii +ii +ii +gx +ii +im +im +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(219,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +kF +mI +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(220,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +im +im +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(221,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gG +gG +gK +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +lc +lc +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(222,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gH +gH +gH +gH +gS +gH +gH +gH +gH +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +im +iq +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(223,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gH +gH +gH +gH +gH +gH +gH +gH +gH +hK +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +im +mI +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(224,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gH +gI +gH +gH +gH +gH +gH +gH +gH +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +iq +im +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(225,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gH +gH +gH +gH +gH +gH +gH +gH +gH +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +im +im +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(226,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gH +gH +gH +gH +gT +gH +gH +gH +gH +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +im +im +ii +gx +gx +gx +gx +gx +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(227,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gH +gH +gH +gH +gH +gH +hJ +gH +gH +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +im +im +ii +gx +gx +gx +gx +gx +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(228,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gH +gH +gQ +gH +gH +gH +gH +gH +gH +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +im +im +ii +gx +gx +gx +gx +gx +ab +gx +gx +gx +ab +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(229,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gH +gH +gH +gH +gV +gH +gH +gH +gH +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +im +im +ii +gx +gx +gx +ab +gx +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(230,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gH +gJ +gH +gH +gH +gH +gH +gH +gH +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +im +im +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(231,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +im +iq +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(232,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +im +im +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(233,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +iq +im +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(234,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +jN +im +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(235,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +lS +lS +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(236,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +lS +lS +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(237,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gD +gD +gD +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gG +gD +gD +gD +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +lS +lS +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(238,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +lT +mK +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(239,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +im +im +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(240,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +lS +mI +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(241,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +lS +mI +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(242,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +lS +im +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(243,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +lS +im +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(244,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +lS +im +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(245,1,1) = {" +ab +ab +ab +ab +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +kR +im +im +kR +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(246,1,1) = {" +ab +ab +ab +aj +aj +fh +fj +fj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +kZ +jN +im +kZ +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(247,1,1) = {" +ab +ab +ab +aj +eB +fj +fl +fj +fn +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +kR +jN +im +kR +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(248,1,1) = {" +ab +ab +ab +aj +eP +fj +fl +fj +fo +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +kZ +im +lS +kZ +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(249,1,1) = {" +ab +ab +ab +aj +fg +fj +fl +fj +fn +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +lU +lU +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(250,1,1) = {" +ab +ab +ab +aj +aj +fk +fj +fj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +lV +lV +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(251,1,1) = {" +ab +ab +ab +ab +aj +aj +aj +aj +aj +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +mb +mb +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(252,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +im +im +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(253,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +im +im +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(254,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +mx +mL +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(255,1,1) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ii +ii +ii +ii +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +gx +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} diff --git a/_maps/RandomZLevels/away_mission/TheBeach.dmm b/_maps/RandomZLevels/away_mission/TheBeach.dmm index 5430d8dd92..68eb5c164f 100644 --- a/_maps/RandomZLevels/away_mission/TheBeach.dmm +++ b/_maps/RandomZLevels/away_mission/TheBeach.dmm @@ -666,7 +666,7 @@ pixel_x = 24; specialfunctions = 4 }, -/obj/item/bedsheet/red, +/obj/effect/spawner/lootdrop/bedsheet, /turf/open/floor/wood, /area/awaymission/beach) "bU" = ( @@ -799,9 +799,7 @@ /turf/open/floor/wood, /area/awaymission/beach) "cn" = ( -/obj/machinery/vending/boozeomat{ - desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one. May not work for bartenders that don't have Nanotrasen bank accounts." - }, +/obj/machinery/vending/boozeomat, /turf/open/floor/wood, /area/awaymission/beach) "co" = ( @@ -897,9 +895,7 @@ /area/awaymission/beach) "cD" = ( /obj/structure/table/wood, -/obj/item/reagent_containers/rag{ - pixel_y = 7 - }, +/obj/item/reagent_containers/rag, /turf/open/floor/wood, /area/awaymission/beach) "cE" = ( @@ -1081,14 +1077,6 @@ /obj/item/clothing/glasses/heat, /turf/open/floor/plating/beach/sand, /area/awaymission/beach) -"iy" = ( -/obj/item/toy/seashell, -/turf/open/floor/plating/beach/coastline_t, -/area/awaymission/beach) -"MD" = ( -/obj/item/toy/seashell, -/turf/open/floor/plating/beach/sand, -/area/awaymission/beach) (1,1,1) = {" aa @@ -4660,9 +4648,9 @@ ac aw af ay -MD ak -MD +ak +ak aT ao aY @@ -4766,7 +4754,7 @@ ac aw af ay -MD +ak ak ak ak @@ -4875,7 +4863,7 @@ ay ak ak ak -MD +ak ak ak ak @@ -5216,7 +5204,7 @@ aY ae aw ag -MD +ak aZ ak ak @@ -5317,7 +5305,7 @@ ak ak ak ak -MD +ak aT aj aj @@ -5328,7 +5316,7 @@ ak ak ak ak -MD +ak aT ao ar @@ -6294,7 +6282,7 @@ ak ak ak ak -iy +ap ar ac ac @@ -6474,7 +6462,7 @@ ac ac ad ag -MD +ak ak ak ak @@ -6822,7 +6810,7 @@ cl bd bd bd -cD +cC cH ba ak @@ -6929,7 +6917,7 @@ cm bd bd bd -cC +cD cH ba ak @@ -8956,7 +8944,7 @@ ak ak ak ak -MD +ak ak ak cu @@ -10328,7 +10316,7 @@ ac ac aw ag -MD +ak ak ak ak @@ -10436,7 +10424,7 @@ ad af ay ak -MD +ak ak ak ak @@ -10574,7 +10562,7 @@ ak ak cO ak -iy +ap ar ac ac @@ -10787,7 +10775,7 @@ ak ak ak aK -MD +ak ap ar ac @@ -10970,7 +10958,7 @@ ac ac ax ag -MD +ak ak ak ak @@ -11000,7 +10988,7 @@ ak ak ak ak -MD +ak bo aq ar @@ -15007,7 +14995,7 @@ ad ag al ak -MD +ak ap ar ab diff --git a/_maps/RandomZLevels/away_mission/caves.dmm b/_maps/RandomZLevels/away_mission/caves.dmm index c84acf0131..159559d0af 100644 --- a/_maps/RandomZLevels/away_mission/caves.dmm +++ b/_maps/RandomZLevels/away_mission/caves.dmm @@ -12,7 +12,6 @@ /turf/open/lava/smooth{ desc = "Looks hot."; luminosity = 5; - name = "lava"; initial_gas_mix = "n2=23;o2=14" }, /area/awaymission/caves/BMP_asteroid/level_four) @@ -37,7 +36,6 @@ /turf/open/lava/smooth{ desc = "Looks hot."; luminosity = 5; - name = "lava"; initial_gas_mix = "n2=23;o2=14" }, /area/awaymission/caves/BMP_asteroid/level_three) @@ -116,7 +114,7 @@ }, /obj/item/veilrender/honkrender, /obj/item/clothing/mask/gas/clown_hat, -/obj/item/organ/heart/demon, +/obj/item/organ/heart/cursed, /turf/open/floor/engine/cult{ initial_gas_mix = "n2=23;o2=14" }, @@ -188,9 +186,7 @@ amount = 25 }, /obj/item/coin/antagtoken, -/obj/item/book/granter/spell/summonitem{ - name = "an extremely flamboyant book" - }, +/obj/item/book/granter/spell/smoke, /turf/open/floor/engine/cult{ initial_gas_mix = "n2=23;o2=14" }, @@ -239,7 +235,6 @@ /area/awaymission/caves/BMP_asteroid/level_three) "aM" = ( /obj/structure/ladder/unbreakable{ - anchored = 1; height = 1; id = "minedeep" }, @@ -266,7 +261,6 @@ /area/awaymission/caves/BMP_asteroid/level_three) "aP" = ( /obj/structure/ladder/unbreakable{ - anchored = 1; height = 1; id = "dungeon"; name = "rusty ladder" @@ -317,7 +311,6 @@ /turf/open/lava/smooth{ desc = "Looks hot."; luminosity = 5; - name = "lava"; initial_gas_mix = "n2=23;o2=14" }, /area/awaymission/caves/BMP_asteroid/level_four) @@ -356,7 +349,11 @@ /area/awaymission/caves/BMP_asteroid/level_four) "ba" = ( /obj/structure/destructible/cult/talisman, -/obj/item/book/granter/martial/plasma_fist, +/obj/item/storage/belt/champion, +/obj/item/melee/sabre{ + icon_state = "cultblade"; + name = "blood-red sabre" + }, /turf/open/floor/engine/cult{ initial_gas_mix = "n2=23;o2=14" }, @@ -446,12 +443,11 @@ }, /area/awaymission/caves/BMP_asteroid/level_four) "bo" = ( -/obj/structure/flora/rock, -/obj/item/soulstone/anybody, -/turf/open/floor/plating/asteroid/basalt{ +/obj/structure/trap/chill, +/turf/open/floor/plating/asteroid/basalt/lava{ initial_gas_mix = "n2=23;o2=14" }, -/area/awaymission/caves/BMP_asteroid/level_three) +/area/awaymission/caves/BMP_asteroid/level_four) "bp" = ( /obj/machinery/gateway{ dir = 10 @@ -516,8 +512,8 @@ }, /area/awaymission/caves/BMP_asteroid/level_three) "by" = ( -/obj/item/twohanded/mjollnir, /mob/living/simple_animal/hostile/poison/giant_spider/nurse, +/obj/item/nullrod/hammmer, /turf/open/floor/plating/asteroid/basalt{ initial_gas_mix = "n2=23;o2=14" }, @@ -531,8 +527,8 @@ /area/awaymission/caves/BMP_asteroid/level_four) "bA" = ( /obj/structure/destructible/cult/tome, -/obj/item/necromantic_stone, /obj/effect/decal/cleanable/blood, +/obj/item/immortality_talisman, /turf/open/floor/engine/cult{ initial_gas_mix = "n2=23;o2=14" }, @@ -563,7 +559,6 @@ /area/awaymission/caves/BMP_asteroid/level_four) "bF" = ( /obj/structure/ladder/unbreakable{ - anchored = 1; height = 2; id = "dungeon"; name = "rusty ladder" @@ -573,7 +568,9 @@ }, /area/awaymission/caves/BMP_asteroid/level_three) "bG" = ( -/obj/item/gun/ballistic/automatic/pistol/deagle/gold, +/obj/item/gun/ballistic/revolver/reverse{ + name = "suspicious .357 revovler" + }, /turf/open/floor/plating/asteroid/basalt/lava{ initial_gas_mix = "n2=23;o2=14" }, @@ -581,12 +578,14 @@ "bH" = ( /obj/effect/decal/remains/human, /obj/item/clothing/under/misc/patriotsuit, +/obj/structure/trap/chill, /turf/open/floor/plating/asteroid/basalt/lava{ initial_gas_mix = "n2=23;o2=14" }, /area/awaymission/caves/BMP_asteroid/level_four) "bI" = ( /obj/item/bedsheet/patriot, +/obj/structure/trap/chill, /turf/open/floor/plating/asteroid/basalt/lava{ initial_gas_mix = "n2=23;o2=14" }, @@ -606,7 +605,6 @@ /turf/open/lava/smooth{ desc = "Looks hot."; luminosity = 5; - name = "lava"; initial_gas_mix = "n2=23;o2=14" }, /area/awaymission/caves/BMP_asteroid) @@ -617,7 +615,6 @@ /turf/open/lava/smooth{ desc = "Looks hot."; luminosity = 5; - name = "lava"; initial_gas_mix = "n2=23;o2=14" }, /area/awaymission/caves/BMP_asteroid/level_two) @@ -734,7 +731,6 @@ /area/awaymission/caves/BMP_asteroid/level_two) "ce" = ( /obj/structure/ladder/unbreakable{ - anchored = 1; height = 1; id = "mineintro" }, @@ -1030,7 +1026,7 @@ /area/awaymission/caves/research) "cX" = ( /obj/structure/table, -/obj/item/melee/baton, +/obj/item/gun/energy/temperature, /turf/open/floor/plasteel{ initial_gas_mix = "n2=23;o2=14" }, @@ -1093,9 +1089,6 @@ /obj/structure/closet/secure_closet/miner{ name = "weapon equipment" }, -/obj/item/grenade/syndieminibomb/concussion, -/obj/item/grenade/syndieminibomb/concussion, -/obj/item/grenade/syndieminibomb/concussion, /turf/open/floor/plasteel{ initial_gas_mix = "n2=23;o2=14" }, @@ -1122,7 +1115,6 @@ /area/awaymission/caves/BMP_asteroid/level_two) "dj" = ( /obj/structure/ladder/unbreakable{ - anchored = 1; height = 2; id = "minedeep" }, @@ -1195,7 +1187,6 @@ "dw" = ( /obj/structure/bed, /obj/item/bedsheet, -/obj/effect/landmark/awaystart, /turf/open/floor/plasteel, /area/awaymission/caves/BMP_asteroid/level_two) "dx" = ( @@ -1376,35 +1367,35 @@ "eg" = ( /obj/effect/decal/cleanable/robot_debris/old, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eh" = ( /obj/structure/table, /obj/item/radio, /obj/item/radio, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "ei" = ( /obj/structure/table, /obj/item/paper_bin, /obj/item/pen, /turf/open/floor/plating, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "ej" = ( /turf/open/floor/plating, /area/awaymission/caves/BMP_asteroid) "ek" = ( /obj/structure/window{ - icon_state = "window"; dir = 8 }, /mob/living/simple_animal/hostile/mining_drone, /turf/open/floor/plating, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "el" = ( -/obj/structure/closet/secure_closet/personal, -/obj/item/gun/energy/laser/captain/scattershot, -/turf/open/floor/wood, -/area/awaymission/caves/northblock) +/obj/machinery/gateway{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) "em" = ( /obj/structure/closet/secure_closet/personal, /turf/open/floor/wood{ @@ -1433,20 +1424,19 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "er" = ( /obj/structure/chair/stool, /turf/open/floor/plating, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "es" = ( /obj/structure/window{ - icon_state = "window"; dir = 8 }, /obj/structure/window, /mob/living/simple_animal/hostile/mining_drone, /turf/open/floor/plating, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "et" = ( /obj/effect/decal/cleanable/shreds, /turf/open/floor/plating{ @@ -1467,37 +1457,47 @@ /obj/item/mining_scanner, /obj/item/mining_scanner, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "ex" = ( -/obj/structure/closet/secure_closet/miner, /obj/effect/decal/cleanable/cobweb, -/obj/item/survivalcapsule, -/obj/item/extinguisher/mini, -/turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) -"ey" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) -"ez" = ( -/obj/machinery/light/small/built{ - dir = 1 +/obj/structure/cable{ + icon_state = "0-4" }, +/obj/machinery/power/port_gen/pacman, +/obj/item/wrench, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) +"ey" = ( /obj/machinery/suit_storage_unit/mining{ desc = "An industrial unit made to hold space suits. Age has seemed to rust the sliding door mechanisms, making it difficult to open."; name = "rusted suit storage unit" }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) +"ez" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) "eA" = ( /obj/structure/table, /obj/item/paper/fluff/awaymissions/caves/work_notice, +/obj/machinery/light/small/built{ + dir = 1 + }, +/obj/item/stack/sheet/mineral/plasma, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eB" = ( -/obj/structure/barricade/wooden, +/obj/machinery/gateway{ + dir = 1 + }, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eC" = ( /obj/structure/table, /obj/item/gps/mining, @@ -1506,17 +1506,19 @@ /obj/item/clothing/glasses/meson, /obj/item/clothing/glasses/meson, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eD" = ( /obj/structure/closet/secure_closet/miner, /obj/item/survivalcapsule, /obj/item/extinguisher/mini, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eE" = ( -/obj/effect/landmark/awaystart, +/obj/machinery/gateway{ + dir = 5 + }, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eF" = ( /turf/closed/wall, /area/awaymission/caves/listeningpost) @@ -1526,7 +1528,7 @@ "eH" = ( /obj/machinery/vending/sustenance, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eI" = ( /obj/structure/closet/crate/trashcart, /obj/item/switchblade, @@ -1546,7 +1548,7 @@ "eL" = ( /obj/machinery/vending/sovietsoda, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eM" = ( /obj/machinery/light/small{ dir = 8 @@ -1593,7 +1595,7 @@ "eR" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eS" = ( /obj/machinery/light/small/built, /obj/machinery/suit_storage_unit/mining{ @@ -1601,11 +1603,11 @@ name = "rusted suit storage unit" }, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eT" = ( /obj/structure/closet/emcloset, /turf/open/floor/plasteel, -/area/awaymission/caves/BMP_asteroid) +/area/awaymission/caves/listeningpost) "eU" = ( /obj/structure/table, /obj/item/storage/toolbox/mechanical, @@ -1651,16 +1653,11 @@ /area/awaymission/caves/BMP_asteroid/level_two) "fc" = ( /obj/structure/closet/crate, -/obj/item/paper/fluff/awaymissions/caves/shipment_receipt, -/obj/item/gun/energy/laser/captain/scattershot, -/obj/item/gun/energy/laser/captain/scattershot, /obj/item/gun/energy/laser, -/obj/item/grenade/syndieminibomb/concussion, -/obj/item/grenade/syndieminibomb/concussion, -/obj/item/grenade/syndieminibomb/concussion, -/obj/item/slimepotion/fireproof, -/obj/item/slimepotion/fireproof, -/obj/item/clothing/glasses/thermal, +/obj/item/gun/energy/laser, +/obj/item/survivalcapsule, +/obj/item/kitchen/knife/combat/survival, +/obj/item/kitchen/knife/combat/survival, /turf/open/floor/plating/asteroid/basalt{ initial_gas_mix = "n2=23;o2=14" }, @@ -1708,11 +1705,14 @@ }, /area/awaymission/caves/BMP_asteroid/level_two) "fk" = ( -/obj/item/grenade/syndieminibomb/concussion, -/turf/open/floor/plating/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14" +/obj/machinery/gateway{ + dir = 8 }, -/area/awaymission/caves/BMP_asteroid/level_two) +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) "fl" = ( /obj/effect/decal/remains/human, /turf/open/floor/plating/asteroid/basalt{ @@ -1726,10 +1726,11 @@ /obj/structure/closet/crate{ icon_state = "crateopen" }, -/obj/item/paper/fluff/awaymissions/caves/shipment_receipt, -/obj/item/organ/eyes/robotic/thermals, -/obj/item/gun/energy/laser/captain/scattershot, -/obj/item/slimepotion/fireproof, +/obj/item/gun/energy/laser, +/obj/item/gun/energy/laser, +/obj/item/survivalcapsule, +/obj/item/kitchen/knife/combat/survival, +/obj/item/kitchen/knife/combat/survival, /turf/open/floor/plating/asteroid/basalt{ initial_gas_mix = "n2=23;o2=14" }, @@ -1791,11 +1792,14 @@ }, /area/awaymission/caves/BMP_asteroid/level_two) "fw" = ( -/obj/item/gun/energy/laser/captain/scattershot, -/turf/open/floor/plating/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14" +/obj/machinery/gateway/centeraway{ + calibrated = 0 }, -/area/awaymission/caves/BMP_asteroid/level_two) +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) "fx" = ( /obj/effect/bump_teleporter{ id = "mineintroup"; @@ -1968,7 +1972,6 @@ /area/awaymission/caves/BMP_asteroid) "ga" = ( /obj/structure/ladder/unbreakable{ - anchored = 1; height = 2; id = "mineintro" }, @@ -2035,11 +2038,14 @@ /turf/open/floor/plasteel, /area/awaymission/caves/BMP_asteroid) "gk" = ( -/obj/effect/landmark/awaystart, -/turf/open/floor/plating/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14" +/obj/machinery/gateway{ + dir = 4 }, -/area/awaymission/caves/BMP_asteroid/level_two) +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) "gl" = ( /obj/item/trash/plate, /turf/open/floor/plasteel, @@ -2260,7 +2266,6 @@ /turf/open/lava/smooth{ desc = "Looks hot."; luminosity = 5; - name = "lava"; initial_gas_mix = "n2=23;o2=14" }, /area/awaymission/caves/BMP_asteroid/level_four) @@ -2276,6 +2281,41 @@ /obj/effect/baseturf_helper/asteroid/basalt, /turf/closed/wall, /area/awaymission/caves/northblock) +"tk" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) +"CY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) +"GV" = ( +/obj/structure/barricade/wooden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) +"Hp" = ( +/obj/machinery/gateway, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) +"If" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/awaymission/caves/listeningpost) (1,1,1) = {" aa @@ -6581,7 +6621,7 @@ dO dP dI dZ -el +dA dt bL bL @@ -10180,13 +10220,13 @@ bL bL bL bL -dX -dX -dW -dW -dW -dW -dW +eG +eG +eF +eF +eF +eF +eF bL bL bL @@ -10432,18 +10472,18 @@ bL bL bM bL -bL -bL -bL -bL -bL -dX +eG +eG +eF +eF +eG +eG ex eD eD eD eD -dX +eG bL bL bL @@ -10689,18 +10729,18 @@ bL bL bM bM -bL -bL -bL -bL -bL -dW +eF +el +fk +If +eJ +eF ey -ev -ev -ev +eJ +eJ +eJ eR -dX +eG bL bL bL @@ -10946,18 +10986,18 @@ bL bL bL bM -bL -bL -bL -bL -bL -dX +eG +eB +fw +Hp +CY +GV ez -eE -ev -ev +eO +eJ +eJ eS -dX +eG bL bL bL @@ -11203,18 +11243,18 @@ bL bL bL bM -bL -bL -bL -bL -bL -dX +eG +eE +gk +tk +eJ +eG eA -ev -ev -ev +eJ +eJ +eJ eT -dW +eF bL bV bV @@ -11460,17 +11500,17 @@ bL bL bL bM -bL -bL -bL -bL -bL -dX -ev -ev -ev -ev -ev +eF +eF +eG +eG +eG +eG +eJ +eJ +eJ +eJ +eJ eF eG eG @@ -11719,15 +11759,15 @@ bL bV bV bL -dW -dX -dX -dX -eB -dW +eF +eG +eG +eG +eW +eF eH eL -ev +eJ eW eN eJ @@ -11976,11 +12016,11 @@ bL bV bV bL -dW +eF eg eq -ev -ev +eJ +eJ eF eF eF @@ -12233,11 +12273,11 @@ bL bV bV bL -dX +eG eh -ej +fm eg -ev +eJ eF eI eM @@ -12490,11 +12530,11 @@ bL bV bV bL -dX +eG ei er -ej -ev +fm +eJ eG eJ eN @@ -12624,7 +12664,7 @@ ae ac ac ac -bo +aj bv ac ag @@ -12747,11 +12787,11 @@ bL bV bV bL -dX -ej -ej -ev -ev +eG +fm +fm +eJ +eJ eG eJ eO @@ -13004,7 +13044,7 @@ bL bV bV bL -dW +eF ek es ew @@ -13261,11 +13301,11 @@ bL bV bV bV -dW -dW -dX -dX -dW +eF +eF +eG +eG +eF eF eK eP @@ -50925,7 +50965,7 @@ ad ai ai ai -ai +bo ai ai ad @@ -51181,7 +51221,7 @@ ad ad ad ai -ai +bo bG bI ai @@ -54147,7 +54187,7 @@ bJ bJ bJ cQ -gk +bJ bJ gs bJ @@ -64676,7 +64716,7 @@ bJ bK bK bK -fw +bJ bJ bJ cq @@ -64931,7 +64971,7 @@ bJ bJ bJ fe -fk +bJ fn fd bJ diff --git a/_maps/RandomZLevels/away_mission/challenge.dmm b/_maps/RandomZLevels/away_mission/challenge.dmm index bf164cb4fa..91b209ae9b 100644 --- a/_maps/RandomZLevels/away_mission/challenge.dmm +++ b/_maps/RandomZLevels/away_mission/challenge.dmm @@ -7,125 +7,81 @@ icon_state = "iron0" }, /area/awaymission/challenge/start) -"ac" = ( -/obj/structure/girder, -/turf/open/floor/plating/airless, -/area/awaymission/challenge/start) -"ad" = ( -/turf/open/floor/plating, -/area/awaymission/challenge/start) -"ae" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/awaymission/challenge/start) -"af" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/awaymission/challenge/start) "ag" = ( /obj/item/clothing/suit/space/syndicate/blue, /obj/item/clothing/head/helmet/space/syndicate/blue, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/awaymission/challenge/start) -"ah" = ( -/turf/open/floor/plasteel/airless, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "ai" = ( /obj/item/flashlight{ icon_state = "flashlight-on"; on = 1 }, -/turf/open/floor/plasteel/airless, -/area/awaymission/challenge/start) -"aj" = ( -/obj/effect/landmark/awaystart, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "ak" = ( /obj/effect/decal/remains/human, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "al" = ( /obj/effect/landmark/awaystart, -/turf/open/floor/plasteel/airless, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "am" = ( /obj/item/clothing/suit/space/syndicate/green, /obj/item/clothing/head/helmet/space/syndicate/green, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/awaymission/challenge/start) -"an" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "ao" = ( /obj/item/clothing/suit/space/syndicate/orange, /obj/item/clothing/head/helmet/space/syndicate/orange, -/turf/open/floor/plasteel/airless, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "ap" = ( /obj/item/gun/energy/laser/retro, -/turf/open/floor/plasteel/airless, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "aq" = ( /obj/item/stack/rods, -/turf/open/floor/plasteel, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "ar" = ( /obj/effect/decal/cleanable/oil, -/turf/open/floor/plasteel/airless, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "as" = ( /obj/effect/decal/remains/robot, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "at" = ( /obj/structure/girder, -/turf/open/floor/plating, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "au" = ( -/turf/closed/wall, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "av" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged4" - }, +/obj/item/storage/firstaid/regular, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "aw" = ( /obj/item/stack/rods, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "ax" = ( /obj/effect/decal/cleanable/oil, /mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/plating, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "ay" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel/airless, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "az" = ( /obj/item/clothing/suit/space/syndicate/black, /obj/item/clothing/head/helmet/space/syndicate/black, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, +/turf/open/floor/carpet, /area/awaymission/challenge/start) "aA" = ( /turf/closed/indestructible{ @@ -133,16 +89,18 @@ }, /area/awaymission/challenge/main) "aB" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/awaymission/challenge/main) +/obj/machinery/power/smes/magical, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/start) "aC" = ( /turf/open/floor/plating, /area/awaymission/challenge/main) "aD" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, +/obj/structure/fans/tiny, +/turf/open/floor/carpet, /area/awaymission/challenge/main) "aE" = ( /turf/closed/wall, @@ -151,16 +109,23 @@ /turf/open/floor/plating/airless, /area/awaymission/challenge/main) "aG" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" +/obj/machinery/power/terminal{ + dir = 8 }, -/area/awaymission/challenge/main) +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/airless, +/area/awaymission/challenge/start) "aH" = ( /turf/open/floor/plasteel/airless, /area/awaymission/challenge/main) "aI" = ( /obj/machinery/power/emitter/ctf{ - dir = 2 + active = 0 }, /turf/open/floor/plating/airless, /area/awaymission/challenge/main) @@ -191,7 +156,7 @@ "aO" = ( /obj/structure/window/reinforced, /obj/machinery/power/emitter/ctf{ - dir = 2 + active = 0 }, /turf/open/floor/plating/airless, /area/awaymission/challenge/main) @@ -210,6 +175,7 @@ /area/awaymission/challenge/main) "aS" = ( /obj/machinery/power/emitter/ctf{ + active = 0; dir = 4 }, /turf/open/floor/plating/airless, @@ -234,6 +200,7 @@ /area/awaymission/challenge/main) "aW" = ( /obj/machinery/power/emitter/ctf{ + active = 0; dir = 8 }, /turf/open/floor/plating/airless, @@ -294,15 +261,16 @@ /turf/open/floor/plating, /area/awaymission/challenge/main) "bf" = ( -/obj/machinery/power/emitter/ctf{ - dir = 1 - }, /obj/structure/window/reinforced{ dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/power/emitter/ctf{ + active = 0; + dir = 1 + }, /turf/open/floor/plating, /area/awaymission/challenge/main) "bg" = ( @@ -321,15 +289,16 @@ /turf/open/floor/plasteel, /area/awaymission/challenge/main) "bi" = ( -/obj/machinery/power/emitter/ctf{ - dir = 1 - }, /obj/structure/window/reinforced{ dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/power/emitter/ctf{ + active = 0; + dir = 1 + }, /turf/open/floor/plating, /area/awaymission/challenge/main) "bj" = ( @@ -337,22 +306,24 @@ /turf/open/floor/plating, /area/awaymission/challenge/main) "bk" = ( +/obj/machinery/light, /obj/machinery/power/emitter/ctf{ + active = 0; dir = 1 }, -/obj/machinery/light, /turf/open/floor/plating, /area/awaymission/challenge/main) "bl" = ( /obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/power/emitter/ctf{ - dir = 1 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/power/emitter/ctf{ + active = 0; + dir = 1 + }, /turf/open/floor/plating, /area/awaymission/challenge/main) "bm" = ( @@ -363,15 +334,15 @@ /turf/closed/wall/mineral/plastitanium, /area/awaymission/challenge/main) "bo" = ( -/obj/machinery/power/emitter/ctf{ - dir = 2 - }, /obj/structure/window/reinforced{ dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/power/emitter/ctf{ + active = 0 + }, /turf/open/floor/plating, /area/awaymission/challenge/main) "bp" = ( @@ -420,9 +391,7 @@ /area/awaymission/challenge/main) "bv" = ( /obj/structure/window/reinforced, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/awaymission/challenge/main) "bw" = ( @@ -435,15 +404,6 @@ }, /turf/open/floor/plating, /area/awaymission/challenge/main) -"bx" = ( -/obj/machinery/power/emitter/ctf{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/awaymission/challenge/main) "by" = ( /obj/machinery/light{ dir = 8 @@ -474,6 +434,7 @@ dir = 8 }, /obj/machinery/power/emitter/ctf{ + active = 0; dir = 8 }, /turf/open/floor/plating/airless, @@ -483,6 +444,7 @@ dir = 4 }, /obj/machinery/power/emitter/ctf{ + active = 0; dir = 4 }, /turf/open/floor/plating/airless, @@ -492,14 +454,10 @@ /turf/open/floor/plasteel/airless, /area/awaymission/challenge/main) "bF" = ( -/turf/open/floor/plasteel/white/corner{ - dir = 2 - }, +/turf/open/floor/plasteel/white/corner, /area/awaymission/challenge/main) "bG" = ( -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/awaymission/challenge/main) "bH" = ( /turf/open/floor/plasteel/white/corner{ @@ -531,36 +489,40 @@ /turf/open/floor/plating/airless, /area/awaymission/challenge/main) "bL" = ( -/obj/machinery/power/emitter/ctf{ +/obj/structure/window/reinforced{ dir = 1 }, -/obj/structure/window/reinforced{ +/obj/machinery/power/emitter/ctf{ + active = 0; dir = 1 }, /turf/open/floor/plating/airless, /area/awaymission/challenge/main) "bM" = ( /obj/machinery/power/emitter/ctf{ + active = 0; dir = 1 }, /turf/open/floor/plating/airless, /area/awaymission/challenge/main) "bN" = ( -/obj/machinery/power/emitter/ctf{ - dir = 1 - }, /obj/structure/window/reinforced{ dir = 4 }, +/obj/machinery/power/emitter/ctf{ + active = 0; + dir = 1 + }, /turf/open/floor/plating/airless, /area/awaymission/challenge/main) "bO" = ( -/obj/machinery/power/emitter/ctf{ - dir = 1 - }, /obj/structure/window/reinforced{ dir = 8 }, +/obj/machinery/power/emitter/ctf{ + active = 0; + dir = 1 + }, /turf/open/floor/plating/airless, /area/awaymission/challenge/main) "bP" = ( @@ -570,9 +532,7 @@ /area/awaymission/challenge/end) "bQ" = ( /obj/item/gun/ballistic/revolver/russian, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, +/turf/open/floor/plasteel/white/side, /area/awaymission/challenge/main) "bR" = ( /obj/structure/table/reinforced, @@ -602,9 +562,7 @@ /turf/open/floor/plating/airless, /area/awaymission/challenge/main) "bU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/white, /area/awaymission/challenge/main) "bV" = ( @@ -644,7 +602,7 @@ dir = 1 }, /obj/structure/rack, -/obj/item/clothing/suit/armor/heavy, +/obj/item/clothing/suit/armor/vest/russian, /turf/open/floor/wood, /area/awaymission/challenge/end) "cb" = ( @@ -670,7 +628,6 @@ "cf" = ( /obj/machinery/door/airlock/centcom{ name = "Airlock"; - opacity = 1; req_access_txt = "109" }, /turf/open/floor/plating, @@ -701,7 +658,7 @@ /area/awaymission/challenge/end) "ck" = ( /obj/structure/rack, -/obj/item/gun/ballistic/revolver/mateba, +/obj/item/gun/ballistic/revolver/doublebarrel/improvised, /turf/open/floor/wood, /area/awaymission/challenge/end) "cl" = ( @@ -758,7 +715,7 @@ /area/awaymission/challenge/end) "ct" = ( /obj/structure/rack, -/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/silenced, +/obj/item/gun/ballistic/revolver/detective, /turf/open/floor/wood, /area/awaymission/challenge/end) "cu" = ( @@ -773,13 +730,12 @@ /area/awaymission/challenge/end) "cw" = ( /obj/structure/rack, -/obj/item/gun/ballistic/automatic/l6_saw, +/obj/item/gun/ballistic/revolver/doublebarrel, /turf/open/floor/wood, /area/awaymission/challenge/end) "cx" = ( /obj/machinery/door/airlock/centcom{ name = "Security"; - opacity = 1; req_access_txt = "109" }, /turf/open/floor/plasteel/dark, @@ -807,7 +763,6 @@ "cB" = ( /obj/machinery/door/airlock/centcom{ name = "Administrator"; - opacity = 1; req_access_txt = "109" }, /turf/open/floor/plasteel/dark, @@ -903,150 +858,85 @@ /turf/open/floor/plating, /area/awaymission/challenge/end) "cR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/indestructible{ + icon_state = "iron0" + }, +/area/awaymission/challenge/start) +"cS" = ( /obj/machinery/gateway{ dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/awaymission/challenge/end) -"cS" = ( +/turf/open/floor/bluespace, +/area/awaymission/challenge/start) +"cT" = ( /obj/machinery/gateway{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/awaymission/challenge/end) -"cT" = ( +/turf/open/floor/bluespace, +/area/awaymission/challenge/start) +"cV" = ( /obj/machinery/gateway{ dir = 5 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/awaymission/challenge/end) -"cV" = ( -/obj/machinery/gateway{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/awaymission/challenge/end) +/turf/open/floor/bluespace, +/area/awaymission/challenge/start) "cW" = ( -/obj/machinery/gateway/centeraway{ - calibrated = 0 - }, +/obj/item/clothing/suit/space/hardsuit/shielded/syndi, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/documents/syndicate, +/obj/structure/safe, /turf/open/floor/plasteel/dark, /area/awaymission/challenge/end) "cX" = ( /obj/machinery/gateway{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/awaymission/challenge/end) +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/bluespace, +/area/awaymission/challenge/start) "cY" = ( +/obj/machinery/gateway/centeraway{ + calibrated = 0 + }, +/turf/open/floor/bluespace, +/area/awaymission/challenge/start) +"cZ" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/bluespace, +/area/awaymission/challenge/start) +"da" = ( /obj/machinery/gateway{ dir = 10 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/awaymission/challenge/end) -"cZ" = ( -/obj/machinery/gateway, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/awaymission/challenge/end) -"da" = ( -/obj/machinery/gateway{ - dir = 6 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/awaymission/challenge/end) +/turf/open/floor/bluespace, +/area/awaymission/challenge/start) "db" = ( /obj/structure/window/reinforced, /turf/open/floor/circuit, /area/awaymission/challenge/end) "dc" = ( +/obj/machinery/gateway, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-4" }, -/turf/open/floor/plasteel/dark, -/area/awaymission/challenge/end) +/turf/open/floor/bluespace, +/area/awaymission/challenge/start) "dd" = ( /obj/structure/window/reinforced{ dir = 8 @@ -1077,16 +967,6 @@ /area/awaymission/challenge/end) "di" = ( /obj/structure/table, -/obj/item/implanter/explosive, -/obj/item/implanter/explosive{ - pixel_y = 4 - }, -/obj/item/implanter/explosive{ - pixel_y = 8 - }, -/obj/item/implanter/explosive{ - pixel_y = 12 - }, /turf/open/floor/plasteel/dark, /area/awaymission/challenge/end) "dj" = ( @@ -1099,7 +979,6 @@ "dk" = ( /obj/machinery/door/airlock/centcom{ name = "Gateway Access"; - opacity = 1; req_access_txt = "109" }, /turf/open/floor/plasteel/dark, @@ -1111,23 +990,20 @@ /turf/open/floor/plating, /area/awaymission/challenge/end) "dm" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, /mob/living/simple_animal/hostile/syndicate{ name = "Syndicate Technician" }, /turf/open/floor/plasteel/dark, /area/awaymission/challenge/end) "dn" = ( -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/gateway{ + dir = 6 }, -/turf/open/floor/plasteel/dark, -/area/awaymission/challenge/end) +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/bluespace, +/area/awaymission/challenge/start) "do" = ( /obj/machinery/light, /turf/open/floor/circuit, @@ -1137,17 +1013,8 @@ /turf/open/floor/circuit, /area/awaymission/challenge/end) "dq" = ( -/obj/structure/cable, -/obj/machinery/power/smes/magical, -/turf/open/floor/circuit, -/area/awaymission/challenge/end) -"dr" = ( -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/circuit, -/area/awaymission/challenge/end) +/turf/open/floor/bluespace, +/area/awaymission/challenge/start) "ds" = ( /obj/structure/closet/l3closet, /turf/open/floor/circuit, @@ -27984,11 +27851,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +ab +ab +ab +ab +ab ab ab ab @@ -28239,20 +28106,20 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa ab -ac -af -an -ah -ad -an +ab +ab +cS +cX +da +ab +ab +at +au +au +au +au +au ax aA aF @@ -28496,21 +28363,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa ab -ad -aj -an +aB +ab +cT +cY +dc +dq +dq +au +al +au ao -af -an -av +au +au +au aA aA aA @@ -28753,23 +28620,23 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa ab -ae +aG +cR +cV +cZ +dn +ab +ab +au ak al -af -ad +au +au aw -av -aB -aC +au +aE +aH aJ aR aH @@ -29010,23 +28877,23 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa ab -af +ab +ab +ab +ab +ab +ab +ab +au al -ah -af +au +au at -af -an -aC -aG +au +au +aD +aH aK aR aH @@ -29072,9 +28939,9 @@ cd cn cH cN -cR -cV -cY +co +co +co db dg cd @@ -29276,14 +29143,14 @@ aa aa ab ag -ah +au al ap au -af +au ay aD -aC +aH aL aR aH @@ -29329,14 +29196,14 @@ cd cn cH cN -cS +co cW -cZ -dc -dc -dc +co +cd +cd +cd dm -dq +cn bP aa aa @@ -29532,12 +29399,12 @@ aa aa aa ab -ah +au al -ah +au aq at -an +au az aE aH @@ -29586,14 +29453,14 @@ cd cn cH cN -cT -cX -da +co +co +co db dh cd -dn -dr +cd +cn bP aa aa @@ -29790,12 +29657,12 @@ aa aa ab ai -ah +au al ar -af -av -ad +au +au +au aA aA aA @@ -30046,13 +29913,13 @@ aa aa aa ab -ah +au am -ad +au as av -ae -av +au +au aA aF aN @@ -31102,7 +30969,7 @@ aV aV aV aV -bx +bC aV aV aV diff --git a/_maps/RandomZLevels/away_mission/moonoutpost19.dmm b/_maps/RandomZLevels/away_mission/moonoutpost19.dmm index d85c8b12d6..83d1227c5e 100644 --- a/_maps/RandomZLevels/away_mission/moonoutpost19.dmm +++ b/_maps/RandomZLevels/away_mission/moonoutpost19.dmm @@ -18,7 +18,6 @@ /area/awaymission/moonoutpost19/hive) "ae" = ( /obj/machinery/computer/arcade{ - icon_state = "arcade"; dir = 1 }, /turf/open/floor/plasteel/dark, @@ -359,7 +358,6 @@ /mob/living/simple_animal/hostile/alien/queen/large{ desc = "A gigantic alien who is in charge of the hive and all of its loyal servants."; name = "alien queen"; - pixel_x = -16; plants_off = 1 }, /turf/open/floor/plating/asteroid{ @@ -435,9 +433,7 @@ }, /area/awaymission/moonoutpost19/syndicate) "aZ" = ( -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel/dark{ heat_capacity = 1e+006 }, @@ -490,9 +486,7 @@ /area/awaymission/moonoutpost19/syndicate) "bh" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 2 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel/dark{ heat_capacity = 1e+006 }, @@ -915,11 +909,9 @@ /area/awaymission/moonoutpost19/syndicate) "bT" = ( /obj/machinery/power/smes{ - charge = 0; input_level = 10000; inputting = 0; - output_level = 15000; - outputting = 1 + output_level = 15000 }, /obj/structure/cable{ icon_state = "0-8" @@ -961,7 +953,6 @@ /area/awaymission/moonoutpost19/hive) "bX" = ( /obj/machinery/conveyor{ - dir = 2; id = "awaysyndie" }, /obj/effect/turf_decal/stripes/line{ @@ -1334,8 +1325,7 @@ /area/awaymission/moonoutpost19/syndicate) "cC" = ( /obj/machinery/mineral/processing_unit{ - dir = 1; - output_dir = 2 + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -1426,8 +1416,6 @@ "cK" = ( /obj/structure/cable, /obj/machinery/power/apc/highcap/fifteen_k{ - dir = 2; - locked = 1; name = "Worn-out APC"; pixel_y = -25; req_access = null; @@ -1472,12 +1460,9 @@ "cN" = ( /obj/structure/cable, /obj/machinery/power/port_gen/pacman{ - desc = "A portable generator for emergency backup power."; name = "P.A.C.M.A.N.-type portable generator" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating{ heat_capacity = 1e+006 }, @@ -1486,12 +1471,9 @@ /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/machinery/power/port_gen/pacman/super{ - desc = "A portable generator for emergency backup power."; name = "S.U.P.E.R.P.A.C.M.A.N.-type portable generator" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plating{ heat_capacity = 1e+006 }, @@ -1823,7 +1805,6 @@ /obj/structure/closet/secure_closet{ desc = "It's a secure locker for personnel. The first card swiped gains control."; icon_state = "cabinet"; - locked = 1; name = "personal closet"; req_access_txt = "150" }, @@ -2036,8 +2017,7 @@ /turf/open/floor/plating{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; heat_capacity = 1e+006; - icon_plating = "asteroidplating"; - icon_state = "asteroidplating"; + icon_state = "platingdmg1"; temperature = 251 }, /area/awaymission/moonoutpost19/syndicate) @@ -2059,23 +2039,11 @@ /obj/machinery/light/small{ dir = 1 }, -/turf/open/floor/plating{ +/turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; - heat_capacity = 1e+006; - icon_plating = "asteroidplating"; - icon_state = "asteroidplating"; - temperature = 251 + heat_capacity = 1e+006 }, /area/awaymission/moonoutpost19/syndicate) -"dM" = ( -/turf/open/floor/plating{ - initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; - heat_capacity = 1e+006; - icon_plating = "asteroidplating"; - icon_state = "asteroidplating"; - temperature = 251 - }, -/area/awaymission/moonoutpost19/main) "dN" = ( /obj/item/stack/ore/iron{ pixel_x = -7; @@ -2400,14 +2368,12 @@ /area/awaymission/moonoutpost19/research) "eK" = ( /turf/open/floor/plasteel/white/side{ - dir = 2; heat_capacity = 1e+006 }, /area/awaymission/moonoutpost19/research) "eL" = ( /obj/structure/alien/weeds, /turf/open/floor/plasteel/white/side{ - dir = 2; heat_capacity = 1e+006 }, /area/awaymission/moonoutpost19/research) @@ -2467,7 +2433,6 @@ /area/awaymission/moonoutpost19/research) "eS" = ( /obj/machinery/power/port_gen/pacman{ - desc = "A portable generator for emergency backup power."; name = "P.A.C.M.A.N.-type portable generator" }, /obj/structure/cable{ @@ -2479,7 +2444,6 @@ /area/awaymission/moonoutpost19/research) "eT" = ( /obj/machinery/power/port_gen/pacman/super{ - desc = "A portable generator for emergency backup power."; name = "S.U.P.E.R.P.A.C.M.A.N.-type portable generator" }, /obj/structure/cable{ @@ -2525,8 +2489,7 @@ charge = 1.5e+006; input_level = 10000; inputting = 0; - output_level = 15000; - outputting = 1 + output_level = 15000 }, /turf/open/floor/plating{ heat_capacity = 1e+006 @@ -2619,9 +2582,7 @@ icon_state = "2-8" }, /obj/structure/alien/weeds, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -2655,7 +2616,6 @@ /area/awaymission/moonoutpost19/research) "fh" = ( /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/structure/table, @@ -2801,9 +2761,7 @@ icon_state = "1-4" }, /obj/structure/alien/weeds, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -3041,7 +2999,6 @@ "fT" = ( /obj/structure/closet/secure_closet{ icon_state = "sec"; - locked = 1; name = "security officer's locker"; req_access_txt = "201" }, @@ -3109,9 +3066,7 @@ icon_state = "1-2" }, /obj/structure/alien/weeds, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -3241,9 +3196,7 @@ pixel_x = 28 }, /obj/structure/alien/weeds, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -3471,9 +3424,7 @@ req_access = null; start_charge = 100 }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -3626,9 +3577,7 @@ pixel_x = 23; req_access = null }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -3712,7 +3661,6 @@ "hb" = ( /obj/machinery/light{ active_power_usage = 0; - dir = 2; icon_state = "tube-broken"; status = 2 }, @@ -3826,7 +3774,6 @@ req_access_txt = "201" }, /turf/open/floor/plasteel/white/side{ - dir = 2; heat_capacity = 1e+006 }, /area/awaymission/moonoutpost19/research) @@ -3842,7 +3789,6 @@ status = 2 }, /turf/open/floor/plasteel/white/side{ - dir = 2; heat_capacity = 1e+006 }, /area/awaymission/moonoutpost19/research) @@ -3867,7 +3813,6 @@ "hq" = ( /obj/structure/closet/secure_closet{ icon_state = "rd"; - locked = 1; name = "research director's locker"; req_access_txt = "201" }, @@ -3885,7 +3830,6 @@ pixel_y = 2 }, /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /turf/open/floor/plasteel/cafeteria{ @@ -3935,9 +3879,7 @@ }, /area/awaymission/moonoutpost19/research) "hw" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -4027,7 +3969,6 @@ }, /obj/machinery/light/small{ active_power_usage = 0; - dir = 2; icon_state = "bulb-broken"; status = 2 }, @@ -4303,7 +4244,6 @@ /obj/structure/closet/l3closet, /obj/machinery/light/small{ active_power_usage = 0; - dir = 2; icon_state = "bulb-broken"; status = 2 }, @@ -4453,7 +4393,6 @@ }, /obj/machinery/shower{ dir = 4; - icon_state = "shower"; name = "emergency shower" }, /obj/effect/turf_decal/stripes/line{ @@ -4581,7 +4520,6 @@ }, /obj/machinery/light/small{ active_power_usage = 0; - dir = 2; icon_state = "bulb-broken"; status = 2 }, @@ -4623,9 +4561,7 @@ /area/awaymission/moonoutpost19/research) "iL" = ( /obj/machinery/light/small, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -4720,9 +4656,7 @@ /turf/closed/wall/rust, /area/awaymission/moonoutpost19/arrivals) "iU" = ( -/obj/machinery/vending/boozeomat{ - req_access_txt = "0" - }, +/obj/machinery/vending/boozeomat, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -4911,7 +4845,7 @@ }, /area/awaymission/moonoutpost19/research) "jq" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ desc = "A plastic potted plant."; pixel_y = 3 }, @@ -5680,9 +5614,7 @@ /obj/machinery/door/firedoor/closed{ opacity = 0 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -5830,9 +5762,7 @@ /obj/structure/chair{ dir = 8 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -6048,9 +5978,7 @@ }, /area/awaymission/moonoutpost19/arrivals) "lG" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -6224,9 +6152,7 @@ }, /area/awaymission/moonoutpost19/arrivals) "mh" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; heat_capacity = 1e+006; @@ -6237,7 +6163,6 @@ /obj/machinery/portable_atmospherics/canister/air, /obj/effect/decal/cleanable/dirt, /obj/structure/window{ - icon_state = "window"; dir = 1 }, /turf/open/floor/plating{ @@ -6271,7 +6196,6 @@ /area/awaymission/moonoutpost19/arrivals) "mm" = ( /obj/structure/closet/secure_closet{ - icon_state = "secure"; locked = 0; name = "kitchen Cabinet"; req_access_txt = "201" @@ -6375,9 +6299,7 @@ /area/awaymission/moonoutpost19/arrivals) "mx" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; heat_capacity = 1e+006; @@ -6786,18 +6708,6 @@ heat_capacity = 1e+006 }, /area/awaymission/moonoutpost19/arrivals) -"nu" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating{ - initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; - heat_capacity = 1e+006; - icon_plating = "asteroidplating"; - icon_state = "asteroidplating"; - temperature = 251 - }, -/area/awaymission/moonoutpost19/arrivals) "nw" = ( /obj/machinery/washing_machine, /obj/effect/turf_decal/tile/blue{ @@ -6842,9 +6752,7 @@ pixel_x = 23; req_access = null }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; heat_capacity = 1e+006; @@ -7088,18 +6996,6 @@ heat_capacity = 1e+006 }, /area/awaymission/moonoutpost19/arrivals) -"nW" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating{ - initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; - heat_capacity = 1e+006; - icon_plating = "asteroidplating"; - icon_state = "asteroidplating"; - temperature = 251 - }, -/area/awaymission/moonoutpost19/arrivals) "nX" = ( /obj/structure/chair/comfy/black{ dir = 8 @@ -7117,9 +7013,7 @@ dir = 4 }, /obj/effect/decal/cleanable/generic, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; heat_capacity = 1e+006; @@ -7128,12 +7022,9 @@ /area/awaymission/moonoutpost19/arrivals) "nZ" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/plating{ +/turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; - heat_capacity = 1e+006; - icon_plating = "asteroidplating"; - icon_state = "asteroidplating"; - temperature = 251 + heat_capacity = 1e+006 }, /area/awaymission/moonoutpost19/main) "oa" = ( @@ -7144,7 +7035,7 @@ }, /area/awaymission/moonoutpost19/arrivals) "ob" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ desc = "A plastic potted plant."; pixel_y = 3 }, @@ -7163,12 +7054,9 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, -/turf/open/floor/plating{ +/turf/open/floor/plating/asteroid{ initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251"; - heat_capacity = 1e+006; - icon_plating = "asteroidplating"; - icon_state = "asteroidplating"; - temperature = 251 + heat_capacity = 1e+006 }, /area/awaymission/moonoutpost19/main) "od" = ( @@ -7203,7 +7091,6 @@ /obj/structure/window/reinforced, /obj/structure/closet/secure_closet{ icon_state = "science"; - locked = 1; name = "scientist's locker"; req_access_txt = "201" }, @@ -36454,7 +36341,7 @@ hI hI hI hI -nW +lj ba ba ba @@ -36711,7 +36598,7 @@ zZ nA nK Wf -dM +ba ba ba ba @@ -36968,7 +36855,7 @@ zZ lM lN Wf -dM +ba ba ba ba @@ -37225,7 +37112,7 @@ hI nB nL hI -nW +lj ba ba ba @@ -40774,7 +40661,7 @@ du dx dC dI -dM +ba ba ba ba @@ -41594,13 +41481,13 @@ hJ lM lN hI -dM ba ba ba -dM -dM -dM +ba +ba +ba +ba od ba ba @@ -41857,7 +41744,7 @@ nZ nZ nZ oc -dM +ba ba ba ba @@ -42108,13 +41995,13 @@ hI nJ nR hJ -dM ba ba ba -dM -dM -dM +ba +ba +ba +ba ba oe ba @@ -42872,9 +42759,9 @@ lN hJ ba ba -dM -dM -nu +ba +ba +mO ba ba ba diff --git a/_maps/RandomZLevels/away_mission/research.dmm b/_maps/RandomZLevels/away_mission/research.dmm index c07499fb57..d2b6099eb1 100644 --- a/_maps/RandomZLevels/away_mission/research.dmm +++ b/_maps/RandomZLevels/away_mission/research.dmm @@ -117,7 +117,7 @@ /turf/open/floor/plasteel/white, /area/awaymission/research/interior/engineering) "ax" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-20"; pixel_y = 3 }, @@ -919,7 +919,6 @@ /area/awaymission/research/interior/gateway) "ck" = ( /obj/machinery/door/window/eastright{ - icon_state = "right"; dir = 2 }, /obj/effect/landmark/awaystart, @@ -1363,16 +1362,6 @@ "dc" = ( /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/secure) -"dd" = ( -/obj/structure/closet/crate, -/obj/item/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; - name = "encrypted genetic data disk"; - read_only = 1 - }, -/obj/item/firing_pin/dna, -/turf/open/floor/plasteel/dark, -/area/awaymission/research/interior/secure) "de" = ( /obj/structure/filingcabinet, /obj/structure/filingcabinet, @@ -1391,8 +1380,8 @@ name = "encrypted genetic data disk"; read_only = 1 }, -/obj/item/dnainjector/xraymut, -/obj/item/dnainjector/xraymut, +/obj/item/dnainjector/glow, +/obj/item/storage/toolbox/syndicate, /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/secure) "dg" = ( @@ -1481,18 +1470,6 @@ "do" = ( /turf/closed/wall/r_wall, /area/awaymission/research/interior/security) -"dp" = ( -/obj/structure/closet/crate, -/obj/item/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; - name = "encrypted genetic data disk"; - read_only = 1 - }, -/obj/item/dnainjector/telemut, -/obj/item/dnainjector/telemut, -/obj/item/dnainjector/chavmut, -/turf/open/floor/plasteel/dark, -/area/awaymission/research/interior/secure) "dq" = ( /obj/machinery/light{ dir = 8 @@ -1743,8 +1720,6 @@ "dJ" = ( /obj/structure/rack, /obj/item/clothing/suit/armor/bulletproof, -/obj/item/clothing/suit/armor/bulletproof, -/obj/item/clothing/head/helmet/alt, /obj/item/clothing/head/helmet/alt, /obj/machinery/light/small{ dir = 4 @@ -1769,19 +1744,19 @@ /area/awaymission/research/interior/secure) "dL" = ( /obj/structure/closet/crate, -/obj/item/disk/data{ - desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off with the words 'DO NOT CLONE' hastily written over it."; - fields = list("label" = "Buffer1:George Melons", "UI" = "3c300f11b5421ca7014d8", "SE" = "430431205660551642142504334461413202111310233445620533134255", "UE" = "6893e6a0b0076a41897776b10cc2b324", "name" = "George Melons", "blood_type" = "B+"); - name = "old genetics data disk" - }, /obj/item/disk/data{ desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; name = "encrypted genetic data disk"; read_only = 1 }, -/obj/item/firing_pin/dna, -/obj/item/dnainjector/dwarf, -/obj/item/dnainjector/dwarf, +/obj/item/disk/data{ + desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off."; + fields = list("label" = "Buffer1:Kr-$$@##", "UI" = "f8f603857000f930127c4", "SE" = "414401462231053131010241514651403453121613263463440351136366", "UE" = "340008485c321e542aed4df7032ac04d", "name" = "Krystal Symers", "blood_type" = "A+"); + name = "dusty genetics data disk"; + read_only = 1 + }, +/obj/item/dnainjector/insulated, +/obj/item/gun/energy/disabler, /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/secure) "dM" = ( @@ -1792,15 +1767,17 @@ read_only = 1 }, /obj/item/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; - name = "encrypted genetic data disk"; + desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off."; + fields = list("label" = "Buffer1:Kr-$$@##", "UI" = "f8f603857000f930127c4", "SE" = "414401462231053131010241514651403453121613263463440351136366", "UE" = "340008485c321e542aed4df7032ac04d", "name" = "Krystal Symers", "blood_type" = "A+"); + name = "dusty genetics data disk"; read_only = 1 }, -/obj/item/dnainjector/chameleonmut, +/obj/item/dnainjector/glow, +/obj/item/storage/toolbox/syndicate, /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/secure) "dN" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /obj/effect/turf_decal/tile/purple{ @@ -1890,7 +1867,6 @@ "dU" = ( /obj/structure/rack, /obj/item/gun/ballistic/automatic/wt550, -/obj/item/gun/ballistic/automatic/wt550, /obj/item/ammo_box/magazine/wt550m9, /obj/item/ammo_box/magazine/wt550m9, /obj/effect/turf_decal/tile/red{ @@ -2070,7 +2046,6 @@ "ep" = ( /obj/structure/rack, /obj/item/gun/ballistic/automatic/pistol/m1911, -/obj/item/gun/ballistic/automatic/pistol/m1911, /obj/item/ammo_box/magazine/m45, /obj/item/ammo_box/magazine/m45, /obj/effect/turf_decal/tile/red{ @@ -3071,7 +3046,6 @@ icon_state = "4-8" }, /obj/machinery/door/airlock/highsecurity{ - aiDisabledIdScanner = 0; name = "Vault Storage"; req_access_txt = "36" }, @@ -3531,7 +3505,6 @@ /turf/open/floor/plasteel/white, /area/awaymission/research/interior/cryo) "gR" = ( -/obj/item/melee/classic_baton/telescopic, /obj/effect/turf_decal/tile/purple{ dir = 1 }, @@ -3542,6 +3515,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, +/obj/item/melee/baton/cattleprod, /turf/open/floor/plasteel/white, /area/awaymission/research/interior/cryo) "gS" = ( @@ -3914,7 +3888,6 @@ /area/awaymission/research/interior/cryo) "hw" = ( /obj/machinery/computer/arcade{ - icon_state = "arcade"; dir = 8 }, /turf/open/floor/plasteel/yellowsiding{ @@ -4126,20 +4099,22 @@ /area/awaymission/research/interior/security) "hS" = ( /obj/structure/closet/crate, +/obj/item/clothing/head/collectable/petehat{ + name = "dusty hat" + }, /obj/item/disk/data{ desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; name = "encrypted genetic data disk"; read_only = 1 }, /obj/item/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines. This one has the initials 'C.P' marked on the front. "; - name = "encrypted genetic data disk"; + desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off."; + fields = list("label" = "Buffer1:Kr-$$@##", "UI" = "f8f603857000f930127c4", "SE" = "414401462231053131010241514651403453121613263463440351136366", "UE" = "340008485c321e542aed4df7032ac04d", "name" = "Krystal Symers", "blood_type" = "A+"); + name = "dusty genetics data disk"; read_only = 1 }, -/obj/item/clothing/head/collectable/petehat{ - name = "dusty hat" - }, -/obj/item/firing_pin/dna, +/obj/item/dnainjector/gigantism, +/obj/item/kitchen/knife/combat/survival, /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/secure) "hT" = ( @@ -4150,12 +4125,13 @@ read_only = 1 }, /obj/item/disk/data{ - desc = "A specialized data disk for holding critical genetic backup data. Without proper passwords, information will turn up blank on most DNA machines."; - name = "encrypted genetic data disk"; + desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off."; + fields = list("label" = "Buffer1:Kr-$$@##", "UI" = "f8f603857000f930127c4", "SE" = "414401462231053131010241514651403453121613263463440351136366", "UE" = "340008485c321e542aed4df7032ac04d", "name" = "Krystal Symers", "blood_type" = "A+"); + name = "dusty genetics data disk"; read_only = 1 }, -/obj/item/firing_pin/dna, -/obj/item/dnainjector/hulkmut, +/obj/item/dnainjector/antenna, +/obj/item/clothing/suit/armor/vest, /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/secure) "hU" = ( @@ -4173,7 +4149,7 @@ /turf/open/floor/plasteel, /area/awaymission/research/interior/genetics) "hV" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/purple{ @@ -4268,7 +4244,7 @@ /turf/open/floor/plasteel, /area/awaymission/research/interior/security) "ii" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ desc = "A potted plant, it doesn't look very healthy..."; name = "dead potted plant" }, @@ -4296,10 +4272,14 @@ name = "encrypted genetic data disk"; read_only = 1 }, -/obj/item/firing_pin/dna/dredd, -/obj/item/firing_pin/dna/dredd, -/obj/item/dnainjector/lasereyesmut, -/obj/item/dnainjector/lasereyesmut, +/obj/item/disk/data{ + desc = "A data disk used to store cloning and genetic records. The name on the label appears to be scratched off."; + fields = list("label" = "Buffer1:Kr-$$@##", "UI" = "f8f603857000f930127c4", "SE" = "414401462231053131010241514651403453121613263463440351136366", "UE" = "340008485c321e542aed4df7032ac04d", "name" = "Krystal Symers", "blood_type" = "A+"); + name = "dusty genetics data disk"; + read_only = 1 + }, +/obj/item/dnainjector/gigantism, +/obj/item/kitchen/knife/combat/survival, /turf/open/floor/plasteel/dark, /area/awaymission/research/interior/secure) "im" = ( @@ -4603,7 +4583,6 @@ /area/awaymission/research/interior/bathroom) "iN" = ( /obj/machinery/shower{ - icon_state = "shower"; dir = 8 }, /turf/open/floor/plasteel/freezer, @@ -4746,7 +4725,7 @@ /turf/open/floor/wood, /area/awaymission/research/interior/dorm) "jm" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /turf/open/floor/plasteel/yellowsiding{ @@ -5350,7 +5329,7 @@ /turf/open/floor/plating, /area/awaymission/research/interior/medbay) "kC" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel/yellowsiding{ @@ -5707,7 +5686,7 @@ /turf/open/floor/plasteel/white, /area/awaymission/research/interior/medbay) "ly" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel/yellowsiding{ @@ -6185,7 +6164,7 @@ /turf/open/floor/plasteel/white, /area/awaymission/research/interior/escapepods) "mJ" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/effect/turf_decal/tile/green{ dir = 1 }, @@ -6222,7 +6201,7 @@ /turf/open/floor/grass, /area/awaymission/research/interior/escapepods) "mN" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /obj/effect/turf_decal/tile/green, @@ -6335,7 +6314,7 @@ /area/space/nearstation) "nb" = ( /obj/structure/table/wood, -/obj/item/book/granter/spell/random, +/obj/item/book/granter/spell/smoke, /turf/open/floor/mineral/plasma, /area/space/nearstation) "nc" = ( @@ -6460,6 +6439,11 @@ }, /turf/open/floor/plating, /area/awaymission/research/interior/maint) +"Hs" = ( +/obj/structure/table/wood, +/obj/item/book/granter/crafting_recipe/bone_bow, +/turf/open/floor/mineral/plasma, +/area/space/nearstation) "Km" = ( /obj/machinery/door/airlock/security/glass{ id_tag = "outerbrig"; @@ -6582,6 +6566,11 @@ }, /turf/open/floor/plating, /area/awaymission/research/interior/escapepods) +"ZZ" = ( +/obj/structure/table/wood, +/obj/item/book/granter/action/origami, +/turf/open/floor/mineral/plasma, +/area/space/nearstation) (1,1,1) = {" aa @@ -11121,8 +11110,8 @@ ab ab na nb -nb -nb +Hs +ZZ na ab ab @@ -31113,8 +31102,8 @@ ad ad ad cQ -dd -dp +dL +dL dL cQ dc @@ -31126,7 +31115,7 @@ cQ dc cQ hS -dM +il il cQ ad @@ -32399,7 +32388,7 @@ ad ad cQ df -dd +dM dM cQ dc @@ -32412,7 +32401,7 @@ dc cQ hT hT -dd +hT cQ ad ad diff --git a/_maps/RandomZLevels/away_mission/snowdin.dmm b/_maps/RandomZLevels/away_mission/snowdin.dmm index a40066df4f..c6b675acf6 100644 --- a/_maps/RandomZLevels/away_mission/snowdin.dmm +++ b/_maps/RandomZLevels/away_mission/snowdin.dmm @@ -417,7 +417,6 @@ dir = 1 }, /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/effect/turf_decal/tile/neutral{ @@ -1035,7 +1034,6 @@ /area/awaymission/snowdin/post/research) "cE" = ( /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/effect/decal/cleanable/dirt, @@ -1281,7 +1279,6 @@ "cY" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; piping_layer = 3; pixel_x = 5; pixel_y = 5 @@ -1329,7 +1326,6 @@ "db" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; piping_layer = 3; pixel_x = 5; pixel_y = 5 @@ -1389,7 +1385,6 @@ "df" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; piping_layer = 3; pixel_x = 5; pixel_y = 5 @@ -1861,7 +1856,6 @@ /area/awaymission/snowdin/post) "em" = ( /obj/machinery/power/apc{ - dir = 2; name = "Gateway APC"; pixel_y = -24; req_access = 150 @@ -1936,9 +1930,7 @@ /turf/open/floor/plasteel, /area/awaymission/snowdin/post/messhall) "et" = ( -/obj/machinery/vending/boozeomat{ - req_access_txt = "0" - }, +/obj/machinery/vending/boozeomat, /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ dir = 1 @@ -1968,7 +1960,6 @@ /area/awaymission/snowdin/post/messhall) "ew" = ( /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/effect/turf_decal/tile/bar, @@ -2210,7 +2201,6 @@ dir = 1 }, /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/effect/turf_decal/tile/blue{ @@ -2411,7 +2401,6 @@ /area/awaymission/snowdin/post/dorm) "fw" = ( /obj/machinery/sleeper{ - icon_state = "sleeper"; dir = 4 }, /obj/effect/turf_decal/tile/blue{ @@ -2631,7 +2620,6 @@ /area/awaymission/snowdin/post/hydro) "fT" = ( /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/effect/turf_decal/tile/green{ @@ -3808,7 +3796,6 @@ /area/awaymission/snowdin/post) "iu" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; piping_layer = 3; pixel_x = 5; pixel_y = 5 @@ -4483,7 +4470,8 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "jL" = ( -/obj/vehicle/ridden/atv, +/obj/vehicle/ridden/atv/snowmobile, +/obj/item/key, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "jM" = ( @@ -5060,8 +5048,9 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "lc" = ( -/obj/vehicle/ridden/atv, /obj/effect/decal/cleanable/oil, +/obj/vehicle/ridden/atv/snowmobile, +/obj/item/key, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "ld" = ( @@ -5285,7 +5274,6 @@ /area/awaymission/snowdin/post) "lv" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; piping_layer = 3; pixel_x = 5; pixel_y = 5 @@ -5421,7 +5409,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; piping_layer = 3; pixel_x = 5; pixel_y = 5 @@ -5468,7 +5455,6 @@ /area/awaymission/snowdin/post/hydro) "lG" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 2; piping_layer = 3; pixel_x = 5; pixel_y = 5 @@ -6601,7 +6587,6 @@ /obj/item/ammo_box/a762, /obj/structure/closet/secure_closet{ icon_state = "sec"; - locked = 1; name = "security officer's locker"; req_access_txt = "201" }, @@ -6800,7 +6785,6 @@ /area/awaymission/snowdin/post/hydro) "ot" = ( /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /turf/open/floor/plasteel, @@ -8715,7 +8699,6 @@ /area/awaymission/snowdin/outside) "sW" = ( /obj/machinery/power/turbine{ - dir = 2; luminosity = 2 }, /obj/structure/cable, @@ -9863,7 +9846,6 @@ "wm" = ( /obj/machinery/porta_turret/centcom_shuttle/weak{ desc = "A turret built with substandard parts and run down further with age."; - icon_state = "syndie_off"; dir = 9; faction = list("pirate") }, @@ -9958,7 +9940,6 @@ }, /obj/effect/light_emitter{ light_color = "#FAA019"; - light_power = 1; light_range = 4; name = "fire light" }, @@ -9990,7 +9971,6 @@ /area/awaymission/snowdin/outside) "wC" = ( /obj/vehicle/ridden/atv{ - icon_state = "atv"; dir = 4 }, /obj/effect/light_emitter{ @@ -11092,10 +11072,8 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/minipost) "zq" = ( -/obj/vehicle/ridden/atv{ - icon_state = "atv"; - dir = 8 - }, +/obj/vehicle/ridden/atv/snowmobile, +/obj/item/key, /turf/open/floor/plating, /area/awaymission/snowdin/post/minipost) "zr" = ( @@ -11412,12 +11390,6 @@ /obj/item/clothing/suit/hooded/wintercoat, /turf/open/floor/plating/snowed, /area/awaymission/snowdin/outside) -"Ah" = ( -/obj/structure/window/reinforced/fulltile/ice, -/obj/structure/grille, -/obj/item/clothing/suit/hooded/wintercoat, -/turf/open/floor/plating, -/area/awaymission/snowdin/post/minipost) "Ai" = ( /turf/open/floor/plating{ icon_state = "platingdmg1" @@ -11588,7 +11560,6 @@ }, /obj/effect/light_emitter{ light_color = "#FAA019"; - light_power = 1; light_range = 4; name = "fire light" }, @@ -12299,7 +12270,6 @@ desc = "It's a storage unit for a Syndicate boarding party." }, /obj/effect/turf_decal/bot_white, -/obj/item/gun/ballistic/automatic/pistol, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -12345,7 +12315,6 @@ /area/awaymission/snowdin/cave) "CP" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -12635,14 +12604,6 @@ /obj/item/stack/rods, /turf/open/floor/mineral/plastitanium/red, /area/awaymission/snowdin/cave) -"Ds" = ( -/obj/item/grenade/plastic/c4, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/awaymission/snowdin/cave) "Dt" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced{ @@ -12880,7 +12841,6 @@ /area/awaymission/snowdin/cave) "DU" = ( /obj/structure/shuttle/engine/heater{ - icon_state = "heater"; dir = 4 }, /obj/effect/turf_decal/stripes/line{ @@ -13215,26 +13175,14 @@ /obj/item/toy/plush/nukeplushie, /turf/open/floor/plasteel/dark, /area/awaymission/snowdin/cave) -"EE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/weather/snow, -/obj/machinery/suit_storage_unit{ - state_open = 1 - }, -/turf/open/floor/mineral/plastitanium{ - initial_gas_mix = "o2=22;n2=82;TEMP=180"; - planetary_atmos = 1; - temperature = 180 - }, -/area/awaymission/snowdin/cave) "EF" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, /obj/effect/turf_decal/weather/snow, -/obj/machinery/suit_storage_unit/syndicate, +/obj/item/clothing/suit/hooded/wintercoat/security, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/structure/rack, /turf/open/floor/mineral/plastitanium{ initial_gas_mix = "o2=22;n2=82;TEMP=180"; planetary_atmos = 1; @@ -13246,9 +13194,9 @@ dir = 5 }, /obj/effect/turf_decal/weather/snow, -/obj/machinery/suit_storage_unit{ - state_open = 1 - }, +/obj/item/clothing/suit/hooded/wintercoat/security, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/structure/rack, /turf/open/floor/mineral/plastitanium{ initial_gas_mix = "o2=22;n2=82;TEMP=180"; planetary_atmos = 1; @@ -13320,7 +13268,6 @@ /area/awaymission/snowdin/cave) "EN" = ( /obj/machinery/sleeper/syndie{ - icon_state = "sleeper_s"; dir = 1 }, /obj/effect/turf_decal/bot_white, @@ -13333,7 +13280,6 @@ "EP" = ( /obj/effect/turf_decal/bot_white, /obj/machinery/sleeper/syndie{ - icon_state = "sleeper_s"; dir = 1 }, /turf/open/floor/plasteel/dark, @@ -13757,7 +13703,6 @@ /area/awaymission/snowdin/cave/cavern) "FY" = ( /obj/machinery/conveyor{ - dir = 2; id = "snowdin_belt_mine" }, /obj/machinery/light/small{ @@ -13780,8 +13725,7 @@ /area/awaymission/snowdin/post/mining_main) "Gc" = ( /obj/structure/statue/snow/snowman{ - anchored = 1; - name = "snowman" + anchored = 1 }, /obj/item/pickaxe/mini{ pixel_x = 5; @@ -13868,7 +13812,6 @@ "Gn" = ( /obj/structure/plasticflaps, /obj/machinery/conveyor{ - dir = 2; id = "snowdin_belt_mine" }, /turf/open/floor/plating, @@ -14054,7 +13997,6 @@ output_dir = 2 }, /obj/machinery/conveyor{ - dir = 2; id = "snowdin_belt_mine" }, /turf/open/floor/plating, @@ -14170,7 +14112,6 @@ /area/awaymission/snowdin/post/mining_main/mechbay) "Hk" = ( /obj/machinery/conveyor{ - dir = 2; id = "snowdin_belt_mine" }, /turf/open/floor/plating, @@ -14286,11 +14227,9 @@ /area/awaymission/snowdin/post/mining_main/mechbay) "HC" = ( /obj/machinery/mineral/processing_unit{ - dir = 1; - output_dir = 2 + dir = 1 }, /obj/machinery/conveyor{ - dir = 2; id = "snowdin_belt_mine" }, /turf/open/floor/plating, @@ -14555,7 +14494,6 @@ /area/awaymission/snowdin/post/mining_main/mechbay) "In" = ( /obj/mecha/working/ripley/mining{ - icon_state = "ripley"; dir = 1 }, /obj/effect/turf_decal/bot, @@ -14615,11 +14553,9 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_main) "Ix" = ( -/obj/vehicle/ridden/atv{ - icon_state = "atv"; - dir = 1 - }, /obj/effect/decal/cleanable/oil, +/obj/vehicle/ridden/atv/snowmobile, +/obj/item/key, /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_main) "Iy" = ( @@ -27300,7 +27236,7 @@ oa dX yW yW -Ah +AX Av Lw yX @@ -36093,7 +36029,7 @@ CC El an an -EE +EF CC ae ae @@ -36607,7 +36543,7 @@ OF En Es Dp -EE +EF CC zh af @@ -38396,7 +38332,7 @@ CC CL CW Di -Ds +Di Di CC CX @@ -55604,7 +55540,7 @@ eL eJ tp qi -tt +tz qi tp eJ @@ -56372,13 +56308,13 @@ eJ eJ tp qi -tt +tz tv qi tt qi tv -tt +tz qi tp eJ @@ -57146,7 +57082,7 @@ eJ eJ tp qi -tt +tz qi tp eJ @@ -69622,7 +69558,7 @@ tp qi tz qi -tt +tz qi qi qi @@ -70385,7 +70321,7 @@ eJ gW tp qi -tt +tz tp qi qi @@ -71159,7 +71095,7 @@ qi qi tp qi -tt +tz qi tp tp diff --git a/_maps/RandomZLevels/away_mission/spacebattle.dmm b/_maps/RandomZLevels/away_mission/spacebattle.dmm deleted file mode 100644 index ca44e7d7b7..0000000000 --- a/_maps/RandomZLevels/away_mission/spacebattle.dmm +++ /dev/null @@ -1,68453 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/closed/mineral/random, -/area/space/nearstation) -"ab" = ( -/turf/open/space, -/area/space) -"ac" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/mob/living/simple_animal/hostile/syndicate/melee/sword, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ad" = ( -/obj/structure/shuttle/engine/propulsion/right{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate2) -"ae" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate2) -"af" = ( -/obj/structure/shuttle/engine/propulsion/left{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate2) -"ah" = ( -/turf/closed/wall/mineral/plastitanium, -/area/awaymission/spacebattle/syndicate2) -"ai" = ( -/obj/structure/shuttle/engine/heater{ - dir = 1 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/syndicate2) -"aj" = ( -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"ak" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate2) -"al" = ( -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"am" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/suit/space/hardsuit/syndi, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"an" = ( -/obj/structure/table/reinforced, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"ao" = ( -/obj/machinery/sleeper, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"ap" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/spacebattle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"aq" = ( -/obj/machinery/door/unpowered/shuttle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"ar" = ( -/obj/structure/table/reinforced, -/obj/item/grenade/empgrenade, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"as" = ( -/obj/structure/table/reinforced, -/obj/item/ammo_casing/c10mm, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"at" = ( -/obj/structure/table/reinforced, -/obj/item/gun/ballistic/automatic/c20r, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"aw" = ( -/obj/structure/shuttle/engine/propulsion/right{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate3) -"ax" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate3) -"ay" = ( -/obj/structure/shuttle/engine/propulsion/left{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate3) -"aA" = ( -/obj/structure/table/reinforced, -/obj/item/gun/ballistic/automatic/pistol, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"aB" = ( -/turf/closed/wall/mineral/plastitanium, -/area/awaymission/spacebattle/syndicate3) -"aC" = ( -/obj/structure/shuttle/engine/heater{ - dir = 1 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/syndicate3) -"aD" = ( -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"aE" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate3) -"aG" = ( -/mob/living/simple_animal/hostile/syndicate/melee/spacebattle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"aI" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/suit/space/hardsuit/syndi, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"aJ" = ( -/obj/structure/table/reinforced, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"aK" = ( -/obj/machinery/computer/shuttle{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"aP" = ( -/obj/structure/shuttle/engine/propulsion/right{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate1) -"aQ" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate1) -"aR" = ( -/obj/structure/shuttle/engine/propulsion/left{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate1) -"aT" = ( -/obj/machinery/sleeper, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"aU" = ( -/turf/closed/wall/mineral/plastitanium, -/area/awaymission/spacebattle/syndicate1) -"aV" = ( -/obj/structure/shuttle/engine/heater{ - dir = 1 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/syndicate1) -"aW" = ( -/obj/structure/window/reinforced, -/obj/structure/shuttle/engine/heater{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/syndicate2) -"aX" = ( -/obj/structure/window/reinforced, -/obj/structure/shuttle/engine/heater{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/syndicate2) -"aY" = ( -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"aZ" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"ba" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"bb" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate1) -"bc" = ( -/obj/machinery/porta_turret{ - dir = 8; - set_obj_flags = "EMAGGED"; - installation = /obj/item/gun/energy/lasercannon - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate2) -"bd" = ( -/obj/machinery/door/unpowered/shuttle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"be" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/suit/space/hardsuit/syndi, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"bf" = ( -/obj/structure/table/reinforced, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"bg" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/gloves/tackler/combat/insulated, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"bh" = ( -/obj/machinery/sleeper, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"bi" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/head/helmet/swat, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"bj" = ( -/obj/machinery/computer/pod{ - dir = 1; - id = "spacebattlepod3"; - name = "Hull Door Control" - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"bk" = ( -/obj/machinery/door/poddoor{ - icon_state = "pdoor1"; - id = "spacebattlepod3"; - name = "Front Hull Door"; - opacity = 1 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate2) -"bl" = ( -/obj/structure/table/reinforced, -/obj/item/grenade/plastic/c4, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"bm" = ( -/obj/machinery/door/unpowered/shuttle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"bn" = ( -/obj/structure/table/reinforced, -/obj/item/grenade/plastic/c4, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"bo" = ( -/obj/structure/table/reinforced, -/obj/item/grenade/spawnergrenade/manhacks, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"bp" = ( -/obj/structure/table/reinforced, -/obj/item/restraints/handcuffs, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"br" = ( -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"bt" = ( -/obj/structure/table/reinforced, -/obj/item/melee/transforming/energy/sword/saber/red, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"bu" = ( -/obj/machinery/computer/shuttle{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"bx" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/head/helmet/swat, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"by" = ( -/obj/machinery/porta_turret{ - dir = 8; - set_obj_flags = "EMAGGED"; - installation = /obj/item/gun/energy/lasercannon - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate3) -"bA" = ( -/obj/structure/chair, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate2) -"bC" = ( -/obj/machinery/computer/shuttle{ - dir = 1 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"bG" = ( -/obj/machinery/porta_turret{ - dir = 8; - set_obj_flags = "EMAGGED"; - installation = /obj/item/gun/energy/lasercannon - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate1) -"bH" = ( -/turf/closed/wall/mineral/plastitanium{ - dir = 8; - icon_state = "diagonalWall3" - }, -/area/awaymission/spacebattle/cruiser) -"bI" = ( -/obj/structure/shuttle/engine/propulsion/right{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/cruiser) -"bJ" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"bK" = ( -/obj/structure/shuttle/engine/propulsion/left{ - dir = 1 - }, -/turf/open/space, -/area/awaymission/spacebattle/cruiser) -"bL" = ( -/turf/closed/wall/mineral/plastitanium{ - dir = 1; - icon_state = "diagonalWall3" - }, -/area/awaymission/spacebattle/cruiser) -"bM" = ( -/turf/closed/wall/mineral/plastitanium, -/area/awaymission/spacebattle/cruiser) -"bN" = ( -/obj/structure/window/reinforced, -/obj/structure/shuttle/engine/heater{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"bO" = ( -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/cruiser) -"bP" = ( -/obj/structure/window/reinforced, -/obj/structure/shuttle/engine/heater{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"bQ" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/cruiser) -"bR" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/cruiser) -"bS" = ( -/turf/closed/wall/mineral/titanium/overspace, -/area/awaymission/spacebattle/cruiser) -"bT" = ( -/turf/closed/wall/mineral/titanium, -/area/awaymission/spacebattle/cruiser) -"bX" = ( -/obj/structure/shuttle/engine/propulsion/burst/left{ - dir = 8 - }, -/turf/open/space, -/area/awaymission/spacebattle/cruiser) -"bY" = ( -/obj/structure/shuttle/engine/heater{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"bZ" = ( -/obj/machinery/computer/telecomms/monitor{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ca" = ( -/turf/open/floor/plasteel{ - icon_state = "damaged5" - }, -/area/awaymission/spacebattle/cruiser) -"cb" = ( -/obj/machinery/computer/pod{ - dir = 1; - id = "spacebattlepod"; - name = "Hull Door Control" - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/cruiser) -"cc" = ( -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cd" = ( -/obj/machinery/door/unpowered/shuttle, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cf" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8 - }, -/turf/open/space, -/area/awaymission/spacebattle/cruiser) -"cg" = ( -/obj/structure/table/reinforced, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ci" = ( -/obj/machinery/door/poddoor/preopen{ - id = "spacebattlepod"; - name = "Front Hull Door" - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ck" = ( -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"cm" = ( -/turf/open/floor/plasteel{ - icon_state = "damaged4" - }, -/area/awaymission/spacebattle/cruiser) -"cn" = ( -/turf/open/floor/plasteel{ - icon_state = "damaged3" - }, -/area/awaymission/spacebattle/cruiser) -"cp" = ( -/turf/open/floor/plasteel{ - icon_state = "damaged1" - }, -/area/awaymission/spacebattle/cruiser) -"cq" = ( -/obj/effect/mob_spawn/human/engineer{ - mob_name = "Rosen Miller"; - name = "Rosen Miller" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cr" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ct" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/awaymission/spacebattle/cruiser) -"cv" = ( -/obj/machinery/power/smes/magical{ - desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; - name = "power storage unit" - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cw" = ( -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/turf/open/floor/plasteel{ - icon_state = "damaged2" - }, -/area/awaymission/spacebattle/cruiser) -"cx" = ( -/obj/item/stack/sheet/metal, -/obj/item/ammo_casing/c10mm, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cy" = ( -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cz" = ( -/obj/structure/closet/cabinet, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cA" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cB" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cC" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/snacks/sausage, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cD" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/enzyme, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cE" = ( -/obj/structure/table/reinforced, -/obj/item/kitchen/knife, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cF" = ( -/obj/structure/table/reinforced, -/obj/item/kitchen/rollingpin, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cG" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cH" = ( -/obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cI" = ( -/obj/structure/table/reinforced, -/obj/machinery/microwave, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cJ" = ( -/obj/machinery/door/unpowered/shuttle, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"cK" = ( -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"cL" = ( -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cM" = ( -/obj/item/ammo_casing/c10mm, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cN" = ( -/turf/open/floor/plasteel{ - icon_state = "damaged2" - }, -/area/awaymission/spacebattle/cruiser) -"cO" = ( -/obj/effect/landmark/awaystart, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cP" = ( -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cQ" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cS" = ( -/obj/effect/mob_spawn/human/engineer{ - mob_name = "Bill Sanchez"; - name = "Bill Sanchez" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"cT" = ( -/obj/machinery/door/unpowered/shuttle, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cU" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/snacks/fries, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cV" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/snacks/soup/stew, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cW" = ( -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"cY" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/end{ - dir = 1 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"cZ" = ( -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"da" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"db" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/spacebattle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"dc" = ( -/obj/machinery/computer/pod{ - dir = 1; - id = "spacebattlepod2"; - name = "Hull Door Control" - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/cruiser) -"dd" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle{ - dir = 4 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"de" = ( -/obj/machinery/shieldgen{ - anchored = 1 - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"df" = ( -/obj/structure/shuttle/engine/propulsion/right{ - dir = 8 - }, -/turf/open/space, -/area/awaymission/spacebattle/cruiser) -"dg" = ( -/obj/effect/mob_spawn/human/engineer{ - mob_name = "John Locke"; - name = "John Locke" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dh" = ( -/obj/structure/rack, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"di" = ( -/obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dj" = ( -/obj/structure/closet/secure_closet/engineering_welding, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dk" = ( -/obj/structure/closet/wardrobe/engineering_yellow, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dl" = ( -/obj/structure/closet/toolcloset, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dm" = ( -/obj/effect/mob_spawn/human/doctor{ - mob_name = "Daniel Kalla"; - name = "Daniel Kalla" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dn" = ( -/obj/effect/decal/cleanable/blood, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dr" = ( -/obj/machinery/door/poddoor/preopen{ - id = "spacebattlepod2"; - name = "Front Hull Door" - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"du" = ( -/obj/effect/decal/cleanable/blood, -/turf/closed/wall/mineral/titanium, -/area/awaymission/spacebattle/cruiser) -"dx" = ( -/obj/structure/chair, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dy" = ( -/obj/structure/rack, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dz" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dA" = ( -/obj/effect/landmark/awaystart, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dB" = ( -/obj/structure/closet/secure_closet/security, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dD" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"dE" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/directional{ - dir = 9 - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"dF" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"dG" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/directional{ - dir = 1 - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"dH" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/directional{ - dir = 5 - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"dJ" = ( -/obj/item/stack/rods, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dK" = ( -/obj/mecha/medical/odysseus, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"dL" = ( -/obj/mecha/working/ripley/firefighter, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"dM" = ( -/obj/structure/closet/crate{ - name = "Gold Crate" - }, -/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"dN" = ( -/obj/machinery/mech_bay_recharge_port{ - icon_state = "recharge_port"; - dir = 2 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/cruiser) -"dO" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"dP" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"dQ" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dR" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/peppermill, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dS" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dT" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dU" = ( -/obj/structure/rack, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dV" = ( -/obj/structure/closet/secure_closet/security, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"dX" = ( -/obj/effect/mob_spawn/human/engineer/rig{ - id_job = "Gunner"; - mob_name = "Andrew Thorn"; - name = "Andrew Thorn" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"dY" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle{ - dir = 4 - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"dZ" = ( -/obj/machinery/porta_turret{ - dir = 8; - set_obj_flags = "EMAGGED"; - installation = /obj/item/gun/energy/lasercannon - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"ea" = ( -/obj/effect/mob_spawn/human/engineer{ - mob_name = "Clay Dawson"; - name = "Clay Dawson" - }, -/turf/open/floor/plasteel{ - icon_state = "damaged5" - }, -/area/awaymission/spacebattle/cruiser) -"eb" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle{ - dir = 4 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ec" = ( -/obj/machinery/gateway{ - dir = 9 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ed" = ( -/obj/machinery/gateway{ - dir = 1 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ee" = ( -/obj/machinery/gateway{ - dir = 5 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ef" = ( -/mob/living/simple_animal/hostile/syndicate/melee/spacebattle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"eg" = ( -/obj/structure/closet/crate{ - name = "Gold Crate" - }, -/obj/item/mecha_parts/mecha_equipment/repair_droid, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"eh" = ( -/mob/living/simple_animal/hostile/syndicate/melee/spacebattle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"ei" = ( -/obj/structure/closet/l3closet/security, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ej" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ek" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/end, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"el" = ( -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"em" = ( -/obj/machinery/gateway{ - dir = 8 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"en" = ( -/obj/machinery/gateway/centeraway{ - calibrated = 0 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"eo" = ( -/obj/machinery/gateway{ - dir = 4 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ep" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"er" = ( -/turf/closed/wall/mineral/plastitanium, -/area/awaymission/spacebattle/syndicate4) -"et" = ( -/obj/machinery/gateway{ - dir = 10 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"eu" = ( -/obj/machinery/gateway, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ev" = ( -/obj/machinery/gateway{ - dir = 6 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ew" = ( -/obj/structure/chair, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate3) -"ex" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ey" = ( -/obj/effect/mob_spawn/human/bridgeofficer{ - mob_name = "Davis Hume"; - name = "Davis Hume" - }, -/obj/item/gun/ballistic/shotgun/automatic/combat, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ez" = ( -/obj/item/ammo_casing/shotgun, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eA" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/spacebattle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"eC" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eD" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eE" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eG" = ( -/obj/structure/chair, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate1) -"eH" = ( -/obj/effect/mob_spawn/human/engineer/rig{ - id_job = "Gunner"; - mob_name = "Peter West"; - name = "Peter West" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"eK" = ( -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate4) -"eL" = ( -/obj/machinery/computer/shuttle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate4) -"eM" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eN" = ( -/obj/item/shield/energy, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eO" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eP" = ( -/obj/machinery/computer/med_data{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eR" = ( -/obj/machinery/sleeper, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate4) -"eS" = ( -/obj/structure/chair{ - dir = 1 - }, -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate4) -"eT" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"eU" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eV" = ( -/obj/structure/table/reinforced, -/obj/item/kitchen/fork, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eW" = ( -/obj/effect/mob_spawn/human/syndicatesoldier, -/obj/item/melee/transforming/energy/sword/saber/red, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eX" = ( -/obj/effect/mob_spawn/human/bridgeofficer{ - mob_name = "Kurt Kliest"; - name = "Kurt Kliest" - }, -/obj/item/gun/ballistic/shotgun/automatic/combat, -/obj/item/ammo_casing/shotgun, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eY" = ( -/obj/item/ammo_casing/shotgun, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"eZ" = ( -/obj/machinery/computer/crew{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fa" = ( -/obj/effect/mob_spawn/human/engineer/rig{ - id_job = "Gunner"; - mob_name = "Eric Abnett"; - name = "Eric Abnett" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fb" = ( -/obj/structure/closet/crate, -/obj/item/clothing/glasses/night, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"fc" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fd" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fe" = ( -/obj/structure/chair{ - dir = 4 - }, -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/cruiser) -"ff" = ( -/obj/machinery/button/door{ - dir = 2; - id = "spacebattlestorage"; - name = "Secure Storage"; - pixel_x = 32 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fg" = ( -/obj/item/hand_labeler, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"fh" = ( -/obj/machinery/door/poddoor{ - id = "spacebattlestorage"; - name = "Secure Storage" - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fi" = ( -/obj/structure/chair{ - dir = 8 - }, -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/cruiser) -"fj" = ( -/obj/machinery/computer/security/telescreen, -/turf/closed/wall/mineral/titanium, -/area/awaymission/spacebattle/cruiser) -"fl" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate4) -"fm" = ( -/mob/living/simple_animal/hostile/syndicate/melee/sword, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fn" = ( -/obj/structure/closet/crate, -/obj/item/light/tube, -/obj/item/light/tube, -/obj/item/light/tube, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"fo" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fp" = ( -/obj/effect/mob_spawn/human/syndicatesoldier, -/obj/item/gun/ballistic/automatic/c20r, -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/obj/effect/decal/cleanable/blood, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fq" = ( -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fr" = ( -/obj/effect/mob_spawn/human/nanotrasensoldier, -/obj/item/gun/ballistic/automatic/wt550, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fs" = ( -/obj/item/ammo_casing/shotgun, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ft" = ( -/obj/item/ammo_casing/a357, -/obj/item/ammo_casing/a357, -/obj/item/gun/ballistic/revolver/mateba, -/obj/effect/mob_spawn/human/commander{ - mob_name = "Aaron Bowden"; - name = "Aaron Bowden" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fu" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fv" = ( -/obj/machinery/computer/shuttle{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fw" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "1" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fx" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "2" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fy" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "3" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fz" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "4" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fA" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "5" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fB" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "6" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fC" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "7" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fD" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "8" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fE" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "9" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fF" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "10" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fG" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "11" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fH" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "12" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fI" = ( -/obj/effect/landmark/awaystart, -/turf/open/floor/plasteel/cafeteria{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"fJ" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fK" = ( -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fL" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/plasteel{ - icon_state = "damaged1" - }, -/area/awaymission/spacebattle/cruiser) -"fM" = ( -/obj/item/ammo_casing/shotgun, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fN" = ( -/obj/effect/mob_spawn/human/syndicatesoldier, -/obj/item/gun/ballistic/automatic/c20r, -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/obj/effect/decal/cleanable/blood, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fO" = ( -/obj/item/ammo_casing/c10mm, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fP" = ( -/obj/machinery/computer/communications{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"fQ" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "13" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fR" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "14" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fS" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "15" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fT" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "16" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fU" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "17" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fV" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "18" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fW" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "19" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fX" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "20" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fY" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "21" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"fZ" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "22" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"ga" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "23" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gb" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "24" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gc" = ( -/obj/structure/closet/crate, -/obj/item/poster/random_contraband, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"gd" = ( -/obj/effect/mob_spawn/human/bridgeofficer{ - mob_name = "Robert Faver"; - name = "Robert Faver" - }, -/obj/item/ammo_casing/shotgun, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ge" = ( -/obj/structure/artilleryplaceholder/decorative{ - icon_state = "25" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gf" = ( -/obj/structure/artilleryplaceholder/decorative{ - icon_state = "26" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gg" = ( -/obj/structure/artilleryplaceholder/decorative{ - icon_state = "27" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gh" = ( -/obj/structure/artilleryplaceholder/decorative{ - icon_state = "28" - }, -/obj/machinery/artillerycontrol, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gi" = ( -/obj/structure/artilleryplaceholder/decorative{ - icon_state = "29" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gj" = ( -/obj/structure/artilleryplaceholder/decorative{ - icon_state = "30" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gk" = ( -/obj/structure/artilleryplaceholder/decorative{ - icon_state = "31" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gl" = ( -/obj/structure/artilleryplaceholder/decorative{ - icon_state = "32" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gm" = ( -/obj/structure/artilleryplaceholder/decorative{ - icon_state = "33" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gn" = ( -/obj/structure/artilleryplaceholder/decorative{ - icon_state = "34" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"go" = ( -/obj/structure/artilleryplaceholder{ - icon_state = "35" - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gp" = ( -/obj/structure/closet/crate/secure/weapon, -/obj/item/ammo_casing/a357, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"gq" = ( -/obj/structure/closet/crate, -/obj/item/lipstick/black, -/obj/item/lipstick/jade, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"gr" = ( -/obj/machinery/button/door{ - dir = 2; - id = "spacebattlestorage"; - name = "Secure Storage"; - pixel_x = 24 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"gs" = ( -/obj/machinery/computer/operating, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"gt" = ( -/obj/structure/table/reinforced, -/obj/item/scalpel, -/obj/item/circular_saw, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"gu" = ( -/obj/structure/table/reinforced, -/obj/item/retractor, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"gv" = ( -/obj/structure/table/reinforced, -/obj/item/hemostat, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"gw" = ( -/obj/structure/table/reinforced, -/obj/item/scalpel, -/turf/open/floor/plasteel/white/side{ - dir = 2 - }, -/area/awaymission/spacebattle/cruiser) -"gx" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"gy" = ( -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"gz" = ( -/obj/item/gun/ballistic/shotgun/automatic/combat, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"gC" = ( -/obj/structure/closet/crate/secure/weapon, -/obj/item/gun/energy/laser, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"gD" = ( -/obj/structure/closet/crate, -/obj/item/stack/spacecash/c10, -/obj/item/stack/spacecash/c10, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"gF" = ( -/obj/effect/mob_spawn/human/doctor{ - mob_name = "Adam Smith"; - name = "Adam Smith" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"gG" = ( -/obj/structure/table/optable, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"gH" = ( -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"gI" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"gJ" = ( -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/cruiser) -"gK" = ( -/obj/machinery/computer/security{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"gL" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green, -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"gM" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"gN" = ( -/obj/machinery/computer/secure_data{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"gO" = ( -/obj/effect/mob_spawn/human/engineer/rig{ - id_job = "Gunner"; - name = "Jeremy Tailor" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"gP" = ( -/obj/machinery/porta_turret{ - dir = 8; - set_obj_flags = "EMAGGED"; - installation = /obj/item/gun/energy/lasercannon - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/syndicate7) -"gR" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/syndicate4) -"gS" = ( -/obj/structure/reagent_dispensers/beerkeg, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"gT" = ( -/obj/item/stack/ore/bananium, -/obj/item/stack/ore/bananium, -/obj/item/stack/ore/bananium, -/obj/item/stack/ore/bananium, -/obj/item/stack/ore/bananium, -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"gU" = ( -/obj/machinery/computer/operating, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"gV" = ( -/obj/effect/mob_spawn/human/doctor{ - mob_name = "Allan Yoshimaru"; - name = "Allan Yoshimaru" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"gW" = ( -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"gX" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"gY" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"gZ" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ha" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/end, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"hc" = ( -/turf/closed/wall/mineral/plastitanium, -/area/awaymission/spacebattle/syndicate7) -"hd" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/space, -/area/awaymission/spacebattle/syndicate4) -"he" = ( -/obj/item/pickaxe, -/obj/item/gun/energy/plasmacutter, -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"hf" = ( -/obj/item/circular_saw, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"hg" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"hh" = ( -/obj/effect/mob_spawn/human/engineer/rig{ - id_job = "Gunner"; - mob_name = "Dan Hedricks"; - name = "Dan Hedricks" - }, -/obj/effect/decal/cleanable/blood, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"hi" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/end{ - dir = 1 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate7) -"hj" = ( -/obj/structure/table/reinforced, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate7) -"hk" = ( -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate7) -"hl" = ( -/obj/structure/shuttle/engine/heater{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/syndicate7) -"hm" = ( -/obj/structure/shuttle/engine/propulsion/right{ - dir = 4 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate7) -"hn" = ( -/obj/structure/closet/crate/large, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ho" = ( -/obj/structure/closet/crate/secure/plasma, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"hp" = ( -/obj/structure/closet/crate/medical, -/obj/item/storage/firstaid/fire, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"hq" = ( -/obj/structure/rack, -/obj/item/clothing/suit/space/hardsuit, -/obj/item/clothing/head/helmet/space/hardsuit, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"hr" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"hs" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ht" = ( -/turf/closed/wall/r_wall, -/area/awaymission/spacebattle/cruiser) -"hu" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle{ - dir = 4 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate7) -"hv" = ( -/obj/structure/shuttle/engine/propulsion/left{ - dir = 4 - }, -/turf/open/space, -/area/awaymission/spacebattle/syndicate7) -"hw" = ( -/obj/structure/closet/crate/large, -/mob/living/simple_animal/pet/dog/corgi/puppy, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"hx" = ( -/obj/structure/closet/crate, -/obj/item/paint/anycolor, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"hy" = ( -/obj/machinery/computer/mech_bay_power_console, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/cruiser) -"hz" = ( -/obj/structure/closet/crate/medical, -/obj/item/storage/firstaid/regular, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"hA" = ( -/obj/structure/closet/crate/medical, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"hB" = ( -/obj/machinery/door/unpowered/shuttle, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"hC" = ( -/obj/structure/chair, -/obj/effect/landmark/awaystart, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"hD" = ( -/obj/structure/table/reinforced, -/obj/item/storage/firstaid/regular, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"hE" = ( -/obj/structure/table/wood, -/obj/item/instrument/violin, -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"hF" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/plasteel{ - icon_state = "damaged3" - }, -/area/awaymission/spacebattle/cruiser) -"hI" = ( -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"hJ" = ( -/obj/structure/bed, -/obj/item/bedsheet/captain, -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"hK" = ( -/obj/structure/closet/secure_closet/captains, -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"hL" = ( -/obj/effect/mob_spawn/human/engineer{ - id_job = "Gunner"; - mob_name = "William Gannon"; - name = "William Gannon" - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"hM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"hN" = ( -/obj/structure/rack, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"hO" = ( -/obj/structure/rack, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"hP" = ( -/obj/structure/rack, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"hQ" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/plasteel{ - icon_state = "damaged4" - }, -/area/awaymission/spacebattle/cruiser) -"hS" = ( -/obj/machinery/computer/shuttle{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate7) -"hT" = ( -/obj/structure/chair{ - dir = 8 - }, -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate7) -"hU" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate7) -"hV" = ( -/obj/machinery/shower{ - icon_state = "shower"; - dir = 4 - }, -/obj/item/bikehorn/rubberducky, -/turf/open/floor/plasteel/freezer, -/area/awaymission/spacebattle/cruiser) -"hW" = ( -/turf/open/floor/plasteel/freezer, -/area/awaymission/spacebattle/cruiser) -"hX" = ( -/obj/machinery/shower{ - icon_state = "shower"; - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/awaymission/spacebattle/cruiser) -"hY" = ( -/obj/structure/toilet, -/turf/open/floor/plasteel/freezer, -/area/awaymission/spacebattle/cruiser) -"hZ" = ( -/obj/structure/table/reinforced, -/obj/item/storage/firstaid/fire, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"ib" = ( -/obj/machinery/door/unpowered/shuttle, -/turf/open/floor/plasteel/freezer, -/area/awaymission/spacebattle/cruiser) -"id" = ( -/obj/item/storage/firstaid/regular, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"ie" = ( -/obj/structure/table/reinforced, -/obj/item/storage/firstaid/o2, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"if" = ( -/obj/machinery/shower{ - icon_state = "shower"; - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/awaymission/spacebattle/cruiser) -"ig" = ( -/obj/machinery/shower{ - icon_state = "shower"; - dir = 8 - }, -/obj/item/soap, -/turf/open/floor/plasteel/freezer, -/area/awaymission/spacebattle/cruiser) -"ih" = ( -/obj/structure/rack, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/item/gun/energy/laser, -/obj/item/gun/energy/laser, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"ii" = ( -/obj/effect/mob_spawn/human/doctor{ - mob_name = "Herbert West"; - name = "Herbert West" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"ij" = ( -/obj/effect/mob_spawn/human/engineer{ - mob_name = "Carth Robinson"; - name = "Carth Robinson" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel/freezer, -/area/awaymission/spacebattle/cruiser) -"ik" = ( -/obj/structure/rack, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"il" = ( -/obj/machinery/sleeper, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"im" = ( -/obj/machinery/sleep_console, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"io" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/turf/open/floor/plasteel/freezer, -/area/awaymission/spacebattle/cruiser) -"ip" = ( -/obj/machinery/sleeper, -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/awaymission/spacebattle/cruiser) -"iq" = ( -/obj/machinery/sleep_console, -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/awaymission/spacebattle/cruiser) -"ir" = ( -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/awaymission/spacebattle/cruiser) -"is" = ( -/obj/effect/mob_spawn/human/engineer{ - mob_name = "Cyrion"; - name = "Cyrion" - }, -/obj/item/flamethrower/full, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"it" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/smg, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"iu" = ( -/obj/effect/mob_spawn/human/syndicatesoldier, -/obj/item/gun/ballistic/automatic/c20r, -/turf/open/floor/plasteel{ - icon_state = "damaged2" - }, -/area/awaymission/spacebattle/cruiser) -"iv" = ( -/obj/structure/shuttle/engine/propulsion/burst/right{ - dir = 8 - }, -/turf/open/space, -/area/awaymission/spacebattle/cruiser) -"iw" = ( -/obj/effect/mob_spawn/human/engineer{ - mob_name = "Mercutio"; - name = "Mercutio" - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"ix" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"iy" = ( -/obj/effect/mob_spawn/human/syndicatesoldier, -/turf/open/space, -/area/space/nearstation) -"iz" = ( -/turf/closed/wall/mineral/plastitanium, -/area/space/nearstation) -"iB" = ( -/obj/machinery/sleeper, -/turf/open/floor/mineral/plastitanium/red/airless, -/area/space/nearstation) -"iC" = ( -/turf/open/floor/mineral/plastitanium/red/airless, -/area/space/nearstation) -"iD" = ( -/obj/effect/mob_spawn/human/syndicatesoldier, -/turf/open/floor/mineral/plastitanium/red/airless, -/area/space/nearstation) -"iE" = ( -/turf/closed/mineral/bananium, -/area/space/nearstation) -"iF" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"iG" = ( -/obj/item/stack/rods, -/turf/open/floor/mineral/plastitanium/red/airless, -/area/space/nearstation) -"iI" = ( -/turf/closed/wall/mineral/plastitanium, -/area/awaymission/spacebattle/syndicate5) -"iL" = ( -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate5) -"iM" = ( -/obj/machinery/computer/shuttle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate5) -"iP" = ( -/obj/machinery/sleeper, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate5) -"iQ" = ( -/obj/structure/chair{ - dir = 1 - }, -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate5) -"iR" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) -"iS" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/space, -/area/space/nearstation) -"iT" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate5) -"iW" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/syndicate5) -"iX" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/space, -/area/awaymission/spacebattle/syndicate5) -"iZ" = ( -/turf/closed/wall/mineral/plastitanium, -/area/awaymission/spacebattle/syndicate6) -"jb" = ( -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate6) -"jc" = ( -/obj/machinery/computer/shuttle, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate6) -"jd" = ( -/obj/machinery/sleeper, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate6) -"je" = ( -/obj/structure/chair{ - dir = 1 - }, -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/mineral/plastitanium/red, -/area/awaymission/spacebattle/syndicate6) -"jf" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, -/area/awaymission/spacebattle/syndicate6) -"ji" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/syndicate6) -"jj" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/space, -/area/awaymission/spacebattle/syndicate6) -"jk" = ( -/turf/open/floor/plating/asteroid/airless, -/area/space/nearstation) -"jl" = ( -/turf/closed/wall/mineral/plasma, -/area/awaymission/spacebattle/secret) -"jm" = ( -/turf/open/floor/plasteel/rockvault/alien, -/area/awaymission/spacebattle/secret) -"jn" = ( -/obj/machinery/door/airlock/plasma, -/turf/closed/wall/mineral/plasma, -/area/awaymission/spacebattle/secret) -"jo" = ( -/obj/item/clothing/suit/space/hardsuit/wizard, -/turf/open/floor/plasteel/rockvault/alien, -/area/awaymission/spacebattle/secret) -"jp" = ( -/obj/mecha/combat/gygax, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"jq" = ( -/obj/structure/closet/crate{ - name = "Gold Crate" - }, -/obj/item/gun/medbeam/mech, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"jr" = ( -/mob/living/simple_animal/hostile/syndicate/melee/sword/space, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"js" = ( -/obj/structure/rack, -/obj/item/gun/ballistic/automatic/laser, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jt" = ( -/obj/structure/rack, -/obj/item/gun/energy/e_gun/advtaser, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"ju" = ( -/obj/structure/rack, -/obj/structure/window/reinforced, -/obj/item/gun/energy/laser, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jv" = ( -/mob/living/simple_animal/hostile/nanotrasen/ranged, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"jw" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - dir = 2; - id = "spacebattlearmory"; - name = "Weapon Cache" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"jx" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - dir = 2; - id = "spacebattlearmory2"; - name = "Weapon Cache" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"jy" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - dir = 2; - id = "spacebattlearmory1"; - name = "Weapon Cache" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"jz" = ( -/mob/living/simple_animal/hostile/syndicate/mecha_pilot{ - spawn_mecha_type = /obj/mecha/combat/gygax/dark/loaded - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"jA" = ( -/mob/living/simple_animal/hostile/nanotrasen/ranged/smg, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jB" = ( -/obj/structure/rack, -/obj/structure/window/reinforced, -/obj/item/gun/energy/e_gun/advtaser, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jC" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/landmark/awaystart, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"jD" = ( -/obj/structure/barricade/security, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jE" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"jF" = ( -/obj/structure/closet/crate, -/obj/item/ammo_box/magazine/recharge, -/obj/item/ammo_box/magazine/recharge, -/obj/item/ammo_box/magazine/recharge, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"jG" = ( -/obj/machinery/door/poddoor{ - id = "spacebattlearmory1"; - name = "Secure Cache 1" - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jH" = ( -/mob/living/simple_animal/hostile/nanotrasen/ranged, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jI" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jJ" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/armory_contraband, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"jL" = ( -/obj/machinery/door/poddoor{ - id = "spacebattlearmory"; - name = "Secure Armory" - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jM" = ( -/obj/effect/mob_spawn/human/bridgeofficer{ - mob_name = "Walter Strider"; - name = "Walter Strider" - }, -/obj/item/gun/ballistic/shotgun/automatic/combat, -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel{ - icon_state = "damaged3" - }, -/area/awaymission/spacebattle/cruiser) -"jN" = ( -/obj/structure/closet/crate, -/obj/item/ammo_box/magazine/recharge, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"jO" = ( -/obj/item/ammo_casing/shotgun, -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/obj/item/stack/sheet/metal, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"jP" = ( -/obj/structure/closet/crate/internals, -/obj/item/storage/firstaid/o2, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jQ" = ( -/obj/machinery/door/poddoor{ - id = "spacebattlearmory2"; - name = "Secure Cache 2" - }, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jR" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/wood, -/area/awaymission/spacebattle/cruiser) -"jS" = ( -/turf/open/floor/plasteel/airless, -/area/awaymission/spacebattle/cruiser) -"jT" = ( -/obj/item/stack/sheet/metal, -/turf/open/floor/plasteel/airless, -/area/awaymission/spacebattle/cruiser) -"jU" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, -/turf/open/floor/plasteel/airless, -/area/awaymission/spacebattle/cruiser) -"jV" = ( -/mob/living/simple_animal/hostile/syndicate/mecha_pilot{ - spawn_mecha_type = /obj/mecha/combat/gygax/dark/loaded - }, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"jW" = ( -/mob/living/simple_animal/hostile/syndicate/mecha_pilot{ - spawn_mecha_type = /obj/mecha/combat/gygax/dark/loaded - }, -/turf/open/floor/plasteel/airless, -/area/awaymission/spacebattle/cruiser) -"jX" = ( -/obj/structure/rack, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/item/gun/energy/pulse/pistol/loyalpin, -/obj/item/gun/energy/pulse/pistol/loyalpin, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"jY" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/smg/space, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"jZ" = ( -/obj/structure/rack, -/obj/item/gun/ballistic/automatic/laser, -/obj/item/gun/ballistic/automatic/laser, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"ka" = ( -/obj/effect/spawner/lootdrop/crate_spawner, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"kb" = ( -/obj/structure/girder, -/turf/open/floor/plating/airless, -/area/awaymission/spacebattle/cruiser) -"kc" = ( -/obj/structure/rack, -/obj/item/gun/energy/laser/scatter, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"kd" = ( -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"ke" = ( -/obj/item/stack/rods, -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"kf" = ( -/obj/structure/rack, -/obj/structure/window/reinforced, -/obj/item/gun/energy/laser/scatter, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"kg" = ( -/obj/structure/rack, -/obj/structure/window/reinforced, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"kh" = ( -/mob/living/simple_animal/hostile/syndicate, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"ki" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/end{ - dir = 1 - }, -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"kj" = ( -/turf/open/floor/mech_bay_recharge_floor, -/area/awaymission/spacebattle/cruiser) -"kk" = ( -/obj/item/shard, -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"kl" = ( -/obj/effect/mob_spawn/human/nanotrasensoldier, -/obj/item/gun/ballistic/automatic/wt550, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"km" = ( -/obj/structure/closet/crate{ - name = "Gold Crate" - }, -/obj/item/mecha_parts/mecha_equipment/drill, -/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"kn" = ( -/obj/machinery/computer/mech_bay_power_console{ - dir = 8 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"kp" = ( -/obj/structure/rack, -/obj/item/gun/energy/xray, -/turf/open/floor/engine, -/area/awaymission/spacebattle/cruiser) -"kq" = ( -/obj/machinery/porta_turret{ - dir = 8; - set_obj_flags = "EMAGGED"; - installation = /obj/item/gun/energy/lasercannon - }, -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"kr" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle{ - dir = 4 - }, -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"ks" = ( -/obj/machinery/mech_bay_recharge_port{ - icon_state = "recharge_port"; - dir = 2 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"kt" = ( -/obj/structure/barricade/security, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"ku" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/smg, -/turf/open/floor/plasteel/white, -/area/awaymission/spacebattle/cruiser) -"kv" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"kw" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/directional{ - dir = 10 - }, -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"kx" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/directional, -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"ky" = ( -/obj/structure/grille, -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"kz" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/directional{ - dir = 6 - }, -/turf/open/floor/engine/vacuum, -/area/awaymission/spacebattle/cruiser) -"kA" = ( -/obj/effect/mob_spawn/human/engineer{ - mob_name = "Javier Wismer"; - name = "Javier Wismer" - }, -/turf/open/floor/plasteel/airless, -/area/awaymission/spacebattle/cruiser) -"kB" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/electrical, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"kC" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/electrical, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"kD" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/plasteel, -/area/awaymission/spacebattle/cruiser) -"kE" = ( -/obj/item/shard, -/turf/open/space, -/area/space/nearstation) -"kF" = ( -/obj/item/stack/rods, -/turf/open/space, -/area/space/nearstation) -"kG" = ( -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/obj/item/ammo_casing/c10mm, -/mob/living/simple_animal/hostile/syndicate/ranged/smg, -/turf/open/floor/plasteel/freezer, -/area/awaymission/spacebattle/cruiser) -"kH" = ( -/obj/machinery/mech_bay_recharge_port{ - icon_state = "recharge_port"; - dir = 1 - }, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"kI" = ( -/obj/item/stack/sheet/metal, -/turf/open/space, -/area/space/nearstation) -"kJ" = ( -/obj/item/shard, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) -"kK" = ( -/obj/structure/lattice, -/obj/item/stack/rods, -/turf/open/space, -/area/space/nearstation) -"kL" = ( -/obj/structure/closet/crate, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion, -/turf/open/floor/plating, -/area/awaymission/spacebattle/cruiser) -"vw" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/awaymission/spacebattle/syndicate5) -"zS" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/awaymission/spacebattle/syndicate6) -"BO" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/awaymission/spacebattle/syndicate2) -"Dv" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/awaymission/spacebattle/syndicate3) -"UZ" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/awaymission/spacebattle/syndicate1) -"Wv" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/awaymission/spacebattle/cruiser) -"Yq" = ( -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/awaymission/spacebattle/syndicate4) - -(1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(2,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(4,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(5,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(6,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(7,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(8,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(9,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(10,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(11,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(12,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(13,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(14,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(15,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(16,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(17,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(18,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(19,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(20,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(21,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(22,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(23,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(24,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(25,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(26,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(27,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(28,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(29,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(30,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(31,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(32,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(33,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(34,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(35,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(36,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(37,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(38,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(39,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -ab -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(40,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(41,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(42,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(43,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(44,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(45,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(46,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(47,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(48,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(49,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(50,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -er -er -fl -fl -er -er -er -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(51,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -Yq -eK -eK -eK -eK -eK -eR -Yq -er -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(52,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -Yq -eR -eK -eK -eK -eK -eK -eK -eR -Yq -er -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(53,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -eK -eK -eK -eK -eK -eK -eK -eK -eK -eR -er -er -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(54,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -eL -eS -eK -eK -eK -eK -eK -eK -eK -eK -gR -hd -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(55,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -eK -eK -eK -eK -eK -eK -eK -eK -eK -eK -gR -hd -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(56,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -eK -eK -eK -eK -eK -eK -eK -eK -eK -eK -gR -hd -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(57,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -eL -eS -eK -eK -eK -eK -eK -eK -eK -eK -gR -hd -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(58,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -eK -eK -eK -eK -eK -eK -eK -eK -eK -eR -er -er -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(59,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -Yq -eR -eK -eK -eK -eK -eK -eK -eR -Yq -er -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(60,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -Yq -eK -eK -eK -eK -eK -eR -Yq -er -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(61,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -er -er -er -fl -fl -er -er -er -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(62,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(63,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(64,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(65,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(66,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(67,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(68,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(69,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(70,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(71,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(72,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aU -aU -aU -bb -bb -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -iI -iI -iT -iT -iI -iI -iI -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(73,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aP -aV -aY -aY -aY -be -aU -bh -aY -bh -aY -bh -aY -aU -bf -bo -bo -bf -bf -bx -aU -bh -bh -UZ -aU -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bX -cf -cf -cf -cf -cf -cf -cf -df -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bX -cf -cf -cf -cf -cf -cf -cf -iv -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -vw -iL -iL -iL -iL -iL -iP -vw -iI -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(74,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -ck -aY -aY -be -aU -aY -aY -aY -ck -aY -aY -aU -bf -aY -aY -aY -aY -aY -aU -aY -aY -eG -bC -aU -aU -aU -aU -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -bY -bY -bY -bY -bY -bY -bY -bY -bY -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -bY -bY -bY -bY -bY -bY -bY -bY -bY -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -vw -iP -iL -iL -iL -iL -iL -iL -iP -vw -iI -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(75,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -aY -aY -bf -aU -aY -aY -aY -aY -aY -aY -aU -bf -aY -ck -aY -aY -aY -aU -aY -aY -eG -bC -aU -aU -aU -aU -bG -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -bZ -cg -cg -cv -cv -cv -cg -cg -cg -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cg -cg -cg -cv -cv -cv -cg -cg -bZ -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -iL -iL -iL -iL -iL -iL -iL -iL -iL -iP -iI -iI -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(76,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -aY -aY -bf -aU -aY -aY -aY -aY -aY -aY -aU -bf -aY -aY -aY -aY -aY -aU -aY -aY -aY -UZ -aU -aU -aU -aU -aU -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -ca -cc -cc -cc -cc -cc -cc -cQ -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cc -cc -cc -cc -iw -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -iM -iQ -iL -iL -iL -iL -iL -iL -iL -iL -iW -iX -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(77,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -aY -aY -bf -aU -bh -aY -bh -aY -aY -aY -aU -bf -bp -bf -bf -aY -aY -aU -aY -aY -aY -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bH -bM -bM -bM -bM -bM -bM -bM -bM -bM -cc -cp -cc -cr -kl -cc -dg -du -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -iL -iL -iL -iL -iL -iL -iL -iL -iL -iL -iW -iX -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(78,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -aY -aY -bf -aU -aU -aU -aU -aU -bm -bm -aU -aU -aU -aU -aU -bm -bm -aU -aY -aY -aY -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bI -bN -bQ -fe -bQ -bQ -bO -bO -cb -Wv -bM -cc -cL -cc -cr -cr -cr -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -iL -iL -iL -iL -iL -iL -iL -iL -iL -iL -iW -iX -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(79,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -aY -aY -aY -aY -aY -aY -aY -aY -aY -aY -aY -eh -aY -aY -aY -aY -aY -aY -aY -aY -aY -bb -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bJ -bO -bO -bO -bO -bO -bO -bO -bO -ci -cm -cw -cp -cc -cQ -cc -dh -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -kB -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -iM -iQ -iL -iL -iL -iL -iL -iL -iL -iL -iW -iX -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(80,1,1) = {" -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -aY -aY -aY -aY -aY -aY -aY -aY -aY -aY -aY -eh -aY -aY -aY -aY -aY -aY -aY -aY -aY -bb -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bJ -bO -bO -bO -bO -bO -hy -bO -bO -ci -cn -cm -cM -cc -cc -cc -dh -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -kD -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -iL -iL -iL -iL -iL -iL -iL -iL -iL -iP -iI -iI -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(81,1,1) = {" -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -aY -aY -bf -aU -aU -aU -aU -aU -bm -bm -aU -aU -aU -aU -aU -bm -bm -aU -aY -aY -aY -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bK -bP -bR -fi -bR -bR -dN -bO -bO -Wv -bM -cx -cN -cM -cc -cc -dh -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -kC -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -vw -iP -iL -iL -iL -iL -iL -iL -iP -vw -iI -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(82,1,1) = {" -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -aY -aY -bg -aU -bh -aY -bh -aY -aY -aY -aU -bf -bf -bf -bf -aY -aY -aU -aY -aY -aY -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bL -bM -bM -bM -bM -bM -bM -bM -bM -bM -cp -cc -cN -cc -cc -cr -di -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -di -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -vw -iL -iL -iL -iL -iL -iP -vw -iI -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(83,1,1) = {" -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -aY -aY -bf -aU -aY -aY -aY -aY -aY -aY -aU -bf -aY -aY -aY -aY -aY -aU -aY -aY -aY -UZ -aU -aU -aU -aU -aU -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cc -cc -cS -cc -di -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -di -cc -cc -cc -cc -cr -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iI -iI -iI -iT -iT -iI -iI -iI -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(84,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -ck -aY -bf -aU -aY -aY -ck -aY -aY -aY -aU -bn -aY -aY -aY -eA -aY -aU -aY -aY -eG -bC -aU -aU -aU -aU -bG -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cL -cQ -cc -cc -dj -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -ht -dj -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(85,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aQ -aV -aY -aY -aY -bf -aU -aY -aY -aY -aY -aY -aY -aU -bn -aY -aY -aY -aY -aY -aU -aY -aY -eG -bC -aU -aU -aU -aU -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -kl -cy -cM -cc -cc -cc -dj -ht -el -ih -js -ju -jA -jD -ht -el -el -el -el -ht -jD -jA -ik -kc -kf -el -ht -dj -cc -cc -cc -cc -cc -is -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -"} -(86,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aR -aV -aY -aY -aY -bf -aU -bh -aY -bh -aY -bh -aY -aU -bf -bf -bf -bt -bf -bf -aU -bh -bh -UZ -aU -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cr -cc -cc -cc -cc -cc -cc -dk -ht -el -el -el -el -el -jD -jG -el -el -el -el -jQ -jD -el -el -el -el -el -ht -dk -cc -cc -cc -cc -cc -cc -it -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -"} -(87,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aU -aU -aU -bb -bb -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cc -cc -cc -cc -dk -ht -hN -el -el -el -jA -jD -ht -el -el -el -el -ht -jD -jA -el -el -el -hN -ht -dk -cc -cc -cc -cc -cc -cc -cc -cL -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(88,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cc -cO -cO -cO -dk -ht -hP -el -el -el -el -el -ht -el -el -el -el -ht -el -el -el -el -el -kp -ht -dk -cc -cc -cc -cc -cc -cN -cc -cL -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(89,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cr -cc -cO -cO -cO -dl -ht -hO -el -el -el -el -el -ht -el -el -el -el -ht -el -el -el -el -el -hO -ht -dl -cc -cc -cc -cc -fm -cM -cN -cN -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(90,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cq -cc -cc -cc -cc -cc -dl -ht -el -el -el -el -el -el -ht -jH -el -el -jH -ht -el -el -el -el -el -el -ht -dl -cc -cc -cc -cc -cc -cc -iu -cp -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(91,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cr -cc -cc -cc -cc -cc -dl -ht -el -ik -jt -jt -jB -el -ht -jD -jD -jD -jD -ht -el -jX -jZ -hP -kg -el -ht -dl -cc -cc -cc -cc -cc -cp -cN -cN -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(92,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cd -cd -bT -bT -bT -bT -bT -bT -bT -ht -ht -ht -ht -ht -ht -ht -ht -ht -jL -jL -ht -ht -ht -ht -ht -ht -ht -ht -ht -bT -bT -bT -bT -bT -bT -bT -cd -cd -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(93,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cz -cz -cz -cz -cz -cz -bT -cK -cK -cK -cK -cK -jE -jE -jI -el -el -jP -gp -gC -gC -gS -gS -hn -hw -bT -hV -hW -if -hW -if -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(94,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cc -cc -cc -cc -cc -cc -bT -cK -ec -em -et -cK -cK -cK -el -el -el -el -cK -cK -cK -gS -gS -hn -hn -bT -hW -hW -hW -hW -hW -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(95,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cA -cc -cA -cc -cA -cc -bT -cK -ed -en -eu -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -gT -he -hn -hn -bT -hX -hW -ig -hW -hX -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(96,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cc -cc -cc -cc -cc -cc -bT -cK -ee -eo -ev -cK -jF -fb -jE -jE -eT -gc -gq -gD -cK -ka -ka -hn -hn -bT -bT -bT -bT -du -bT -ib -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -iZ -iZ -jf -jf -iZ -iZ -iZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(97,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cA -cc -cA -cc -cA -cc -bT -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -ka -ka -hn -hn -bT -hY -ib -hW -ij -hW -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -zS -jb -jb -jb -jb -jb -jd -zS -iZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(98,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cc -cc -cc -cc -cc -cc -bT -dK -jp -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -ho -ho -bT -bT -bT -hW -hW -hW -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -zS -jd -jb -jb -jb -jb -jb -jb -jd -zS -iZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(99,1,1) = {" -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cA -cO -cA -cc -cA -cc -bT -dL -dL -cK -cK -cK -eT -eT -jJ -fn -jN -jN -eT -eT -cK -cK -cK -ho -ho -bT -hY -ib -hW -hW -hW -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -jb -jb -jb -jb -jb -jb -jb -jb -jb -jd -iZ -iZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(100,1,1) = {" -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cc -cc -cc -cc -cc -cc -bT -dM -jq -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -eT -hx -bT -bT -bT -hW -hW -hW -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -jc -je -jb -jb -jb -jb -jb -jb -jb -jb -ji -jj -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(101,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cA -cc -cA -cc -cA -cc -bT -km -eg -cK -cK -cK -cK -cK -fg -cK -cK -cK -cK -cK -jv -cK -cK -eT -kL -bT -hY -ib -hW -hW -hW -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -jb -jb -jb -jb -jb -jb -jb -jb -jb -jb -ji -jj -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(102,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cc -cc -cc -cc -cc -cc -bT -dO -dO -cK -jv -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -jJ -eT -bT -bT -bT -hW -hW -hW -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -jb -jb -jb -jb -jb -jb -jb -jb -jb -jb -ji -jj -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(103,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cA -cc -cA -cc -cA -cr -bT -dO -dO -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -eT -hz -bT -hY -ib -hW -kG -hW -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -jc -je -jb -jb -jb -jb -jb -jb -jb -jb -ji -jj -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -"} -(104,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cc -cc -cc -cc -cc -dm -bT -dP -dP -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -cK -hp -hz -bT -bT -bT -hW -hW -hW -hW -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -jb -jb -jb -jb -jb -jb -jb -jb -jb -jd -iZ -iZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(105,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cB -cc -cc -cc -cc -cr -bT -dP -dP -cK -kn -ks -kj -cK -kt -kt -kt -kt -gr -kj -kH -kn -cK -hp -hA -bT -hY -ib -hW -hW -io -io -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -iE -aa -iE -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -zS -jd -jb -jb -jb -jb -jb -jb -jd -zS -iZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(106,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -ct -bT -bT -cd -cd -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -fh -fh -fh -fh -bT -du -bT -bT -bT -bT -bT -bT -bT -bT -cd -cd -bT -bT -ct -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -zS -jb -jb -jb -jb -jb -jd -zS -iZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(107,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -fm -cc -cc -cc -cc -cc -cc -cc -cc -fr -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -gF -cr -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -fm -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iZ -iZ -iZ -jf -jf -iZ -iZ -iZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(108,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -fm -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -iE -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(109,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -ct -bT -bT -bT -bT -bT -bT -cd -cd -bT -bT -bT -bT -bT -bT -ct -cc -cc -ct -bT -bT -bT -bT -bT -bT -hB -hB -bT -bT -bT -bT -bT -bT -ct -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -iE -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(110,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cC -cP -cP -bT -da -da -da -da -da -da -da -dQ -dQ -da -bT -cc -cc -bT -gs -gG -gH -gU -gG -gH -gH -gH -gH -gH -gH -il -gH -ip -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -iE -iE -iE -iE -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(111,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cD -cP -cP -cT -da -da -da -da -da -da -dx -dS -eU -ep -bT -cc -cc -bT -gt -gH -gH -gH -gH -gH -gH -gH -gH -kh -gH -im -gH -iq -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iE -aa -aa -aa -aa -aa -iE -iE -iE -iE -aa -aa -iE -iE -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(112,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cE -cP -fI -bT -da -dn -da -da -da -da -dx -dS -dS -ep -bT -cc -cc -bT -gt -gH -gH -gH -gH -gH -gH -gH -gH -gH -gH -gH -gH -ir -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -iE -iE -iE -iE -aa -aa -iE -iE -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(113,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cF -cP -cP -cU -da -dn -dn -da -da -da -da -jC -jC -da -bT -cc -cc -bT -gu -gH -gH -gH -gH -gH -gH -ku -gH -gH -gH -il -gH -ip -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(114,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cG -cP -cP -cU -da -da -da -dQ -dQ -da -da -dQ -dQ -da -bT -cc -cc -bT -gv -gH -gH -gV -hf -gH -gH -gH -gH -gH -gH -im -gH -iq -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -iE -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(115,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cH -cP -cP -cV -da -da -hC -dR -dS -ep -dx -dR -dS -ep -bT -cc -cc -bT -gw -gH -gH -gW -gW -kh -gH -gH -gH -gH -ii -gH -gH -ir -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -iE -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(116,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cI -cP -cP -cW -da -da -hC -dS -dS -ep -dx -dS -eV -ep -bT -cc -cc -bT -gt -gH -gH -gH -gH -gH -gH -gH -gH -id -gW -il -gH -ip -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(117,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cI -cP -cP -cW -da -da -da -dT -dT -da -da -dT -dT -da -bT -cc -cc -bT -gs -gG -gH -gU -gG -gH -hD -hI -hZ -ie -gH -im -gH -iq -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(118,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -ct -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -ct -cc -cc -ct -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -bT -ct -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(119,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cn -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(120,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -it -cc -fL -cn -cn -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -jz -cc -cc -cc -cc -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(121,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bT -bT -bT -cJ -cJ -ct -cc -cc -ct -bT -bT -bT -bT -bT -cK -hs -bT -bT -cd -cd -bT -bT -bT -bT -bT -bT -bT -bT -bT -ct -cc -cc -ct -cJ -cJ -bT -bT -bT -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(122,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cK -cK -bT -cc -cc -bT -dy -dU -dU -dU -ex -cp -fL -fc -bT -fo -fJ -bT -gx -gI -gy -gy -gy -gy -hE -hJ -bT -cc -cc -bT -cK -cK -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(123,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cK -cK -bT -cc -cc -bT -dz -cc -cc -cc -ey -cQ -cc -fd -bT -fp -fK -bT -gy -gy -gy -gy -gy -gy -gy -gy -bT -cp -cc -bT -cK -cK -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(124,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cK -cK -bT -cc -cc -bT -dz -cc -cc -cc -ez -cc -cc -cp -cd -fq -jO -cd -jR -gy -gy -gy -gy -gy -gy -gy -cK -cp -cp -bT -cK -cK -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(125,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cK -cK -bT -cc -cc -bT -dA -cc -cc -cc -cc -cc -cQ -cn -hs -jM -cp -cK -gy -gy -gL -gM -hg -gy -gy -gy -hs -cQ -cc -bT -cK -cK -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(126,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cK -cK -bT -cc -cc -bT -dB -dV -ei -ei -cn -cm -cm -cn -cK -hF -fM -bT -gy -gy -gM -gX -gy -gy -gy -hK -bT -cc -cQ -bT -cK -cK -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(127,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cK -cK -bT -cc -cc -bT -bT -bT -bT -bT -bT -hs -cK -bT -ct -fo -fN -ct -bT -bT -bT -bT -bT -bT -bT -bT -bT -cc -cc -bT -cK -cK -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(128,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -cJ -cJ -bT -cc -cc -bT -dh -dh -dh -bT -eC -cn -fL -cp -ac -fs -fO -ac -eM -eM -eM -gY -bT -hq -dh -dh -bT -cp -cc -bT -cJ -cJ -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(129,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cm -cK -cm -cc -cc -bT -jw -eN -eW -cc -cL -cM -cc -cM -cc -cr -cc -gZ -bT -cc -cQ -cn -hs -cn -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(130,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -fL -cp -hs -cm -hQ -cc -bT -jy -cc -cc -cr -cM -cL -cM -cM -cc -cc -cc -gZ -bT -cc -cc -cp -bT -cn -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(131,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cp -hs -hF -cc -cc -bT -jx -cc -cc -cc -cc -cr -cc -gd -gz -cc -it -gZ -bT -cc -cc -hL -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(132,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ah -ah -ah -ak -ak -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cd -cc -cc -cc -bT -eD -cc -cc -cc -cc -cc -cc -eY -cc -cc -cc -gZ -bT -cc -cc -cc -cd -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(133,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ad -ai -aj -aj -aj -am -ah -ao -aj -ao -aj -ao -aj -ah -ar -an -an -an -at -an -ah -ao -ao -BO -ah -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cc -cc -cc -bT -eD -cr -eX -ez -cc -cr -cc -cc -cc -cc -cc -gZ -bT -cc -cc -cc -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(134,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -aj -am -ah -aj -aj -aj -aj -aj -aj -ah -an -aj -aj -aj -aj -aj -ah -aj -aj -bA -aK -ah -ah -ah -ah -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cc -cc -cc -bT -eD -cc -eY -cc -it -ft -cc -cc -cc -cc -cc -gZ -bT -cc -cc -cc -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(135,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -aj -an -ah -aj -aj -aG -aj -aj -aj -ah -an -aj -aj -al -aj -aj -ah -aj -aj -bA -aK -ah -ah -ah -ah -bc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cc -cc -cc -bT -eD -eO -eO -ff -eO -fu -eO -eO -cc -eO -eO -gZ -bT -cc -cc -cc -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(136,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -al -aj -an -ah -aj -aj -aj -aj -aj -aj -ah -an -aj -aj -aj -aj -aj -ah -aG -aj -aj -BO -ah -ah -ah -ah -ah -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -dC -dW -ej -bT -eE -eP -eZ -eE -fj -fv -fP -fj -eE -gK -gN -eE -bT -hr -dW -hM -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(137,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -aj -an -ah -ao -aj -ao -aj -aj -aj -ah -an -as -an -an -aj -aj -ah -aj -aj -aj -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -bT -cd -bT -bT -cY -eb -eb -eb -eb -eb -eb -eb -eb -eb -eb -ha -bT -bT -cd -bT -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(138,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -aj -an -ah -ah -ah -ah -ah -aq -aq -ah -ah -ah -ah -ah -aq -aq -ah -aj -aj -aj -ah -ad -aW -aZ -aZ -aZ -aZ -aZ -aj -bj -BO -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(139,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -aj -aj -aj -aj -aj -aj -ap -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -ak -ak -aj -aj -aj -aj -aj -aj -aj -aj -bk -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -jr -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(140,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -aj -aj -ap -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -aj -ak -ak -aj -aj -aj -aj -aj -aj -aj -aj -bk -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -gO -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(141,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -aj -an -ah -ah -ah -ah -ah -aq -aq -ah -ah -ah -ah -ah -aq -aq -ah -aj -aj -aj -ah -af -aX -ba -ba -ba -ba -ba -aj -aj -BO -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -fw -fQ -ge -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(142,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -aj -an -ah -ao -aj -ao -aj -aj -aj -ah -an -as -an -an -aj -aj -ah -aj -aj -aj -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -dD -dX -cZ -cZ -cZ -cZ -cZ -cZ -cZ -fx -fR -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(143,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -al -an -ah -aj -aj -aj -aj -aj -aj -ah -as -aj -aj -aj -aj -aj -ah -aj -aj -aj -BO -ah -ah -ah -ah -ah -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -fa -cZ -cZ -fy -fS -gf -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(144,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -aj -an -ah -aj -aj -aj -aj -aj -aj -ah -an -aj -aj -aj -aG -aj -ah -aj -aj -bA -aK -ah -ah -ah -ah -bc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -fz -fT -gg -cZ -cZ -cZ -cZ -cZ -cZ -jr -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(145,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ae -ai -aj -aj -aj -an -ah -aj -aj -aj -al -aj -aj -ah -an -aj -aj -aj -aj -aj -ah -aj -aj -bA -aK -ah -ah -ah -ah -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -it -bT -cZ -cZ -jr -cZ -cZ -cZ -cZ -cZ -cZ -fA -fU -gh -cZ -jV -cZ -cZ -hh -dD -cZ -cZ -bT -it -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(146,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -af -ai -aj -aj -aj -an -ah -ao -aj -ao -aj -ao -aj -ah -an -an -an -an -an -aA -ah -ao -ao -BO -ah -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -fB -fV -gi -cZ -cZ -cZ -cZ -cZ -dD -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(147,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ah -ah -ah -ak -ak -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -fC -fW -gj -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(148,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -fD -fX -gk -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(149,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -dD -eH -dD -cZ -cZ -cZ -fE -fY -gl -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(150,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -dD -dD -cZ -cZ -cZ -fF -fZ -gm -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(151,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -fG -ga -gn -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(152,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -fH -gb -go -cZ -cZ -jY -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(153,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(154,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -ct -bT -bT -bT -bT -bT -bT -bT -bT -ct -ab -ab -ct -bT -bT -bT -bT -bT -bT -bT -bT -ct -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(155,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cd -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -cd -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(156,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cd -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -cd -cc -cc -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(157,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bT -bT -bT -bT -bT -bT -bT -ct -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -ct -bT -bT -bT -bT -bT -bT -bT -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(158,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bT -bT -bT -bT -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -bT -bT -bT -bT -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(159,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ct -bT -bT -bT -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -bT -bT -bT -ct -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(160,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dE -dY -ek -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -ki -kr -kw -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(161,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -kd -kq -kv -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(162,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dG -dY -ek -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -ki -kr -kx -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(163,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jU -jS -bT -kd -kd -kq -kd -ab -ab -kE -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ix -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(164,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dG -dY -ek -el -bT -cc -cr -cc -bT -ab -ab -bT -jT -jS -jS -bT -kd -ki -kd -ix -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(165,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -bT -cc -kl -cr -bT -ab -ab -bT -jS -jS -jS -bT -kd -kd -ix -kJ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(166,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dG -dY -ek -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jT -jS -kb -kd -kk -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(167,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -cZ -kd -kI -kF -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ix -ix -iF -iF -iz -iz -iz -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(168,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dG -dY -ek -el -bT -cc -it -cc -bT -ab -ab -bT -jS -jW -jS -cZ -ke -ix -ab -ab -ab -ab -ab -ab -kE -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ix -iC -iC -iC -iC -iC -iB -iz -iz -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(169,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -kb -kd -ix -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iz -iB -iC -iC -iG -iC -iC -iC -iB -iz -iz -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(170,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dG -dY -ek -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jT -jS -kb -kd -ix -ix -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iC -iD -iC -iC -iC -iC -iC -iB -iz -iz -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(171,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -cd -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -cd -kd -kJ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iC -iC -iC -iC -iC -iC -iC -iC -iR -iS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(172,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dG -dY -ek -el -bT -cc -cc -cc -bT -ab -ab -bT -jU -jS -jS -bT -kd -ix -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ix -iC -iC -iC -iC -iC -iC -iC -iR -iS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(173,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jT -jS -bT -kd -kK -ab -ab -ab -ab -kF -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ix -ab -ab -ab -ix -iC -iC -iC -iC -iC -iC -iR -iS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(174,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dG -dY -ek -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -kd -ab -ab -kE -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ix -ab -ix -iC -iC -iC -iC -iC -iR -iS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(175,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -kk -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iC -ix -iC -iC -iC -iC -iC -iB -iz -iz -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(176,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dG -dY -ek -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -ki -ix -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iy -ab -ix -iB -iC -iC -iC -iG -iC -iC -iB -iz -iz -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(177,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -kd -kd -ky -ab -ab -kE -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iz -iz -iC -iC -iC -iC -iC -iB -iz -iz -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(178,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dG -dY -ek -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -ki -kr -kx -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -iz -iz -iz -iF -iF -iz -iz -iz -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(179,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -kd -kq -kv -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(180,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dG -dY -ek -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -ki -kr -kx -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ix -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(181,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dF -dZ -el -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -kd -kq -kv -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(182,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dH -dY -ek -el -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -kd -ki -kr -kz -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(183,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ct -bT -bT -bT -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -bT -bT -bT -ct -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(184,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aB -aB -aB -aE -aE -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bT -bT -bT -bT -bT -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -bT -bT -bT -bT -bT -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(185,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aw -aC -aD -aD -aD -aI -aB -aT -aD -aT -aD -aT -aD -aB -aJ -aJ -bl -aJ -aJ -aJ -aB -aT -aT -Dv -aB -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -bT -bT -bT -bT -bT -bT -bT -ct -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -ct -bT -bT -bT -bT -bT -bT -bT -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(186,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -br -aI -aB -aD -aD -aD -aD -aD -aD -aB -aJ -aD -aD -aD -aD -aD -aB -aD -aD -ew -bu -aB -aB -aB -aB -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cQ -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(187,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -aD -aJ -aB -aD -aD -aD -db -aD -aD -aB -aJ -aD -aD -aD -aD -aD -aB -aD -aD -ew -bu -aB -aB -aB -aB -by -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cm -cc -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(188,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -aD -aJ -aB -aD -aD -aD -aD -aD -aD -aB -aJ -aD -aD -aD -ef -aD -aB -aD -aD -aD -Dv -aB -aB -aB -aB -aB -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cm -cn -cp -cp -cn -cc -dJ -cc -cc -fr -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(189,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -aD -aJ -aB -aT -aD -aT -aD -aD -aD -aB -aJ -aJ -aJ -aJ -aD -aD -aB -aD -ef -aD -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bH -bM -bM -bM -bM -bM -bM -bM -bM -bM -cm -it -cc -cc -cc -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(190,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -aD -aJ -aB -aB -aB -aB -aB -bd -bd -aB -aB -aB -aB -aB -bd -bd -aB -aD -aD -aD -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bI -bN -fe -bQ -bQ -bQ -bO -bO -dc -Wv -bM -cp -cc -cc -cQ -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jU -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(191,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aE -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bJ -bO -bO -bO -bO -bO -gJ -bO -bO -dr -cn -cp -cn -cc -jz -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -kA -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(192,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aD -aE -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bJ -bO -bO -bO -bO -bO -hy -bO -bO -dr -ca -ea -cc -cc -cc -cc -cc -cQ -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(193,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -aD -aJ -aB -aB -aB -aB -aB -bd -bd -aB -aB -aB -aB -aB -bd -bd -aB -aD -aD -aD -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bK -bP -bR -bR -bR -bR -dN -bO -bO -Wv -bM -cc -ca -cc -cc -dJ -cc -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(194,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -aD -aJ -aB -aT -aD -aT -aD -aD -aD -aB -aJ -aJ -aJ -aJ -aD -aD -aB -aD -aD -aD -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bL -bM -bM -bM -bM -bM -bM -bM -bM -bM -cc -cn -cp -cQ -cc -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(195,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -br -aJ -aB -aD -aD -aD -aD -aD -aD -aB -aJ -aD -aD -aD -aD -aD -aB -aD -db -aD -Dv -aB -aB -aB -aB -aB -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cN -cc -cc -cc -cc -cc -it -cc -cc -cc -bT -ab -ab -bT -jS -jU -jS -jS -jS -jS -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(196,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -aD -aJ -aB -aD -aD -aD -br -aD -aD -aB -aJ -aD -db -aD -aD -aD -aB -aD -aD -ew -bu -aB -aB -aB -aB -by -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cp -cc -cc -dJ -cc -cc -cc -cc -cc -cc -fr -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(197,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ax -aC -aD -aD -aD -aJ -aB -aD -aD -aD -aD -aD -aD -aB -aJ -aD -aD -aD -aD -aD -aB -aD -aD -ew -bu -aB -aB -aB -aB -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -cc -bT -ab -ab -bT -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -jS -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(198,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ay -aC -aD -aD -aD -aJ -aB -aT -aD -aT -aD -aT -aD -aB -bi -aJ -aJ -aJ -aJ -aJ -aB -aT -aT -Dv -aB -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cY -dd -cJ -cY -eb -eb -eb -dd -cJ -cY -dd -bT -ab -ab -bT -cY -dd -cJ -cY -eb -eb -eb -dd -cJ -cY -dd -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -"} -(199,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aB -aB -aB -aE -aE -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -aB -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -ab -ab -bT -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -cZ -bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -"} -(200,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bS -cZ -de -cZ -de -cZ -de -cZ -de -cZ -de -cZ -bS -ab -ab -bS -cZ -de -cZ -de -cZ -de -cZ -de -cZ -de -cZ -bS -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -"} -(201,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -"} -(202,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -"} -(203,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -"} -(204,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -"} -(205,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -"} -(206,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -"} -(207,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -"} -(208,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -"} -(209,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -"} -(210,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -"} -(211,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(212,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(213,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(214,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(215,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(216,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(217,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(218,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(219,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(220,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(221,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(222,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(223,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(224,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(225,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(226,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(227,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(228,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(229,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -hc -hi -hu -hu -hu -hu -hu -hu -hc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(230,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -hc -hj -hj -hj -hS -hj -hj -hj -hc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(231,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -gP -hc -hk -hk -hk -hT -hk -hk -hk -hc -gP -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(232,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -hc -hc -hk -hk -hk -hk -hk -hk -hk -hc -hc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(233,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -hc -hk -hk -hk -hk -hk -hk -hk -hc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(234,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -hc -hk -hk -hk -hk -hk -hk -hk -hc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(235,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -hc -hk -hk -hk -hk -hk -hk -hk -hc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(236,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -hc -hk -hk -hk -hk -hk -hk -hk -hc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(237,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -hc -hk -hk -hk -hk -hk -hk -hk -hc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(238,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -hc -hl -hl -hc -hU -hc -hl -hl -hc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -jk -aa -jk -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -aa -aa -aa -aa -aa -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(239,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -hc -hm -hv -hc -ab -hc -hm -hv -hc -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -jk -aa -jk -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -aa -jl -jl -jl -jl -jl -jn -jl -jl -jl -jl -jl -aa -aa -aa -aa -aa -aa -"} -(240,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -jk -aa -aa -aa -aa -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -aa -jl -jm -jm -jm -jm -jm -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(241,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -jk -aa -aa -aa -aa -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -aa -jl -jm -jm -jm -jm -jm -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(242,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -aa -aa -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -aa -jl -jm -jm -jm -jm -jm -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(243,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -aa -jk -jk -jk -aa -jl -jm -jm -jm -jm -jm -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(244,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -aa -jl -jm -jm -jm -jm -jm -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(245,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -jk -aa -jl -jm -jm -jm -jm -jm -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(246,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jk -jk -jk -jk -jk -jk -jk -jk -aa -aa -aa -jk -jk -jk -jk -aa -aa -jl -jm -jm -jm -jm -jm -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(247,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jl -jm -jm -jm -jm -jm -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(248,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jl -jm -jm -jm -jm -jm -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(249,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jl -jm -jm -jm -jm -jm -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(250,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jl -jm -jm -jm -jm -jo -jm -jm -jm -jm -jl -aa -aa -aa -aa -aa -aa -"} -(251,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jl -jl -jl -jl -jl -jl -jl -jl -jl -jl -jl -aa -aa -aa -aa -aa -aa -"} -(252,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(253,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(254,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(255,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -jk -jk -jk -jk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} diff --git a/_maps/RandomZLevels/away_mission/undergroundoutpost45.dmm b/_maps/RandomZLevels/away_mission/undergroundoutpost45.dmm index 33fdb7a28d..10992c70bf 100644 --- a/_maps/RandomZLevels/away_mission/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/away_mission/undergroundoutpost45.dmm @@ -261,9 +261,7 @@ /area/awaymission/undergroundoutpost45/central) "aO" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -423,7 +421,6 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/closet/secure_closet{ icon_state = "sec"; - locked = 1; name = "security officer's locker"; req_access_txt = "201" }, @@ -626,8 +623,7 @@ /area/awaymission/undergroundoutpost45/central) "bB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5; - level = 1 + dir = 5 }, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -652,8 +648,7 @@ /area/awaymission/undergroundoutpost45/central) "bD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10; - level = 1 + dir = 10 }, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -811,8 +806,7 @@ /area/awaymission/undergroundoutpost45/central) "bV" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10; - level = 1 + dir = 10 }, /turf/closed/wall, /area/awaymission/undergroundoutpost45/central) @@ -1260,7 +1254,6 @@ }, /obj/machinery/portable_atmospherics/scrubber, /obj/structure/window{ - icon_state = "window"; dir = 8 }, /turf/open/floor/plating{ @@ -1282,7 +1275,6 @@ }, /obj/structure/reagent_dispensers/fueltank, /obj/structure/window{ - icon_state = "window"; dir = 4 }, /turf/open/floor/plating{ @@ -1291,8 +1283,7 @@ /area/awaymission/undergroundoutpost45/central) "cV" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10; - level = 1 + dir = 10 }, /turf/closed/wall/rust, /area/awaymission/undergroundoutpost45/central) @@ -1428,7 +1419,6 @@ /area/awaymission/undergroundoutpost45/central) "dm" = ( /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /turf/open/floor/plasteel{ @@ -1444,13 +1434,11 @@ }, /area/awaymission/undergroundoutpost45/central) "do" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ layer = 5 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/green{ - dir = 2 - }, +/obj/effect/turf_decal/tile/green, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -1729,7 +1717,6 @@ dir = 4 }, /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/effect/turf_decal/tile/green{ @@ -1858,9 +1845,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -2125,15 +2110,6 @@ icon_state = "platingdmg1" }, /area/awaymission/undergroundoutpost45/central) -"eu" = ( -/turf/open/floor/plating{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - heat_capacity = 1e+006; - icon_plating = "asteroidplating"; - icon_state = "asteroidplating"; - temperature = 363.9 - }, -/area/awaymission/undergroundoutpost45/caves) "ev" = ( /obj/item/clothing/under/misc/pj/red, /obj/structure/closet/secure_closet{ @@ -2328,9 +2304,7 @@ /obj/machinery/door/firedoor, /obj/item/folder/red, /obj/machinery/door/window/southleft{ - base_state = "left"; dir = 8; - icon_state = "left"; name = "Security Checkpoint"; req_access_txt = "201" }, @@ -2369,9 +2343,7 @@ /obj/structure/table/reinforced, /obj/machinery/door/firedoor, /obj/machinery/door/window/southleft{ - base_state = "left"; dir = 4; - icon_state = "left"; name = "Hydroponics Desk"; req_access_txt = "201" }, @@ -2508,9 +2480,7 @@ }, /area/awaymission/undergroundoutpost45/central) "fb" = ( -/obj/effect/turf_decal/tile/green{ - dir = 2 - }, +/obj/effect/turf_decal/tile/green, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -2568,7 +2538,6 @@ network = list("uo45") }, /obj/machinery/power/apc/highcap/fifteen_k{ - dir = 2; locked = 0; name = "Hydroponics APC"; pixel_y = -25; @@ -2972,7 +2941,7 @@ }, /area/awaymission/undergroundoutpost45/central) "fT" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ layer = 5 }, /obj/effect/decal/cleanable/dirt, @@ -3055,15 +3024,13 @@ /area/awaymission/undergroundoutpost45/central) "gc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5; - level = 1 + dir = 5 }, /turf/closed/wall/r_wall, /area/awaymission/undergroundoutpost45/central) "gd" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10; - level = 1 + dir = 10 }, /turf/closed/wall/r_wall, /area/awaymission/undergroundoutpost45/central) @@ -3319,7 +3286,6 @@ amount = 23 }, /turf/open/floor/plasteel/white/side{ - dir = 2; heat_capacity = 1e+006 }, /area/awaymission/undergroundoutpost45/research) @@ -3327,7 +3293,6 @@ /obj/structure/table, /obj/item/storage/toolbox/mechanical, /turf/open/floor/plasteel/white/side{ - dir = 2; heat_capacity = 1e+006 }, /area/awaymission/undergroundoutpost45/research) @@ -3452,7 +3417,6 @@ }, /obj/machinery/camera{ c_tag = "Research Lab"; - dir = 2; network = list("uo45","uo45r") }, /turf/open/floor/plasteel/white{ @@ -3461,7 +3425,6 @@ /area/awaymission/undergroundoutpost45/research) "gZ" = ( /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /turf/open/floor/plasteel/white{ @@ -3614,9 +3577,7 @@ }, /area/awaymission/undergroundoutpost45/crew_quarters) "ho" = ( -/obj/machinery/vending/boozeomat{ - req_access_txt = "0" - }, +/obj/machinery/vending/boozeomat, /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ dir = 1 @@ -4531,8 +4492,7 @@ /area/awaymission/undergroundoutpost45/gateway) "iX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10; - level = 1 + dir = 10 }, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 @@ -4626,7 +4586,6 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "jf" = ( /obj/structure/closet/secure_closet{ - icon_state = "secure"; locked = 0; name = "kitchen Cabinet"; req_access_txt = "201" @@ -5169,7 +5128,6 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/closet/secure_closet{ icon_state = "rd"; - locked = 1; name = "research director's locker"; req_access_txt = "201" }, @@ -5207,7 +5165,7 @@ }, /area/awaymission/undergroundoutpost45/gateway) "kh" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ layer = 5 }, /obj/effect/decal/cleanable/dirt, @@ -5934,7 +5892,6 @@ }, /obj/machinery/camera{ c_tag = "Gateway Ready Room"; - dir = 2; network = list("uo45","uo45r") }, /turf/open/floor/plasteel{ @@ -5971,7 +5928,6 @@ /obj/item/reagent_containers/spray/pepper, /obj/structure/closet/secure_closet{ icon_state = "sec"; - locked = 1; name = "security officer's locker"; req_access_txt = "201" }, @@ -6029,9 +5985,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -6041,9 +5995,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -6064,9 +6016,7 @@ dir = 1; network = list("uo45","uo45r") }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -6081,9 +6031,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -6096,9 +6044,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -6115,9 +6061,7 @@ name = "Research Division Access"; req_access_txt = "201" }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -6130,9 +6074,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -6151,9 +6093,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -6171,9 +6111,7 @@ pixel_y = -24 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -6183,7 +6121,6 @@ icon_state = "0-8" }, /obj/machinery/power/apc/highcap/fifteen_k{ - dir = 2; locked = 0; name = "UO45 Research Division APC"; pixel_y = -25; @@ -6196,9 +6133,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -6211,9 +6146,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -6234,9 +6167,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -6245,17 +6176,13 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, /area/awaymission/undergroundoutpost45/research) "lM" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -6270,9 +6197,7 @@ dir = 1; network = list("uo45","uo45r") }, -/obj/effect/turf_decal/tile/purple{ - dir = 2 - }, +/obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -6408,7 +6333,6 @@ }, /obj/machinery/camera{ c_tag = "Engineering Secure Storage"; - dir = 2; network = list("uo45") }, /turf/open/floor/plating{ @@ -6472,7 +6396,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/portable_atmospherics/scrubber, /obj/structure/window{ - icon_state = "window"; dir = 4 }, /obj/effect/decal/cleanable/dirt, @@ -6547,9 +6470,7 @@ pixel_y = -32 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/white{ heat_capacity = 1e+006 }, @@ -6744,7 +6665,6 @@ "mE" = ( /obj/structure/cable, /obj/machinery/power/apc/highcap/fifteen_k{ - dir = 2; locked = 0; name = "UO45 Gateway APC"; pixel_y = -25; @@ -6867,7 +6787,7 @@ /area/awaymission/undergroundoutpost45/research) "mQ" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ layer = 5 }, /turf/open/floor/plasteel/cafeteria{ @@ -7392,9 +7312,7 @@ /obj/structure/cable{ icon_state = "2-4" }, -/obj/effect/turf_decal/stripes/corner{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel/dark{ heat_capacity = 1e+006 }, @@ -7409,9 +7327,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/dark{ heat_capacity = 1e+006 }, @@ -7495,7 +7411,6 @@ }, /obj/machinery/computer/security/telescreen{ desc = "Used for monitoring the research division and the labs within."; - dir = 2; name = "research monitor"; network = list("uo45r") }, @@ -7687,7 +7602,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/machinery/camera{ c_tag = "Dormitories"; - dir = 2; network = list("uo45") }, /obj/effect/turf_decal/tile/neutral{ @@ -7943,8 +7857,7 @@ charge = 1.5e+006; input_level = 10000; inputting = 0; - output_level = 7000; - outputting = 1 + output_level = 7000 }, /turf/open/floor/plating{ heat_capacity = 1e+006 @@ -7956,8 +7869,7 @@ charge = 1.5e+006; input_level = 30000; inputting = 0; - output_level = 7000; - outputting = 1 + output_level = 7000 }, /turf/open/floor/plating{ heat_capacity = 1e+006 @@ -8091,9 +8003,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -8121,9 +8031,7 @@ "oJ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -8164,9 +8072,7 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "oM" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 2 - }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -8281,7 +8187,6 @@ dir = 1 }, /obj/machinery/power/port_gen/pacman{ - desc = "A portable generator for emergency backup power."; name = "P.A.C.M.A.N.-type portable generator" }, /obj/structure/cable{ @@ -8296,7 +8201,6 @@ dir = 1 }, /obj/machinery/power/port_gen/pacman/super{ - desc = "A portable generator for emergency backup power."; name = "S.U.P.E.R.P.A.C.M.A.N.-type portable generator" }, /obj/item/wrench, @@ -8315,7 +8219,6 @@ dir = 1 }, /obj/machinery/power/port_gen/pacman{ - desc = "A portable generator for emergency backup power."; name = "P.A.C.M.A.N.-type portable generator" }, /obj/structure/cable{ @@ -8471,7 +8374,7 @@ }, /area/awaymission/undergroundoutpost45/research) "pl" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ layer = 5 }, /obj/effect/decal/cleanable/dirt, @@ -8676,7 +8579,6 @@ /area/awaymission/undergroundoutpost45/engineering) "pE" = ( /obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos{ - dir = 2; icon_state = "in"; id_tag = "UO45_air_out"; name = "air out" @@ -8688,7 +8590,6 @@ /area/awaymission/undergroundoutpost45/engineering) "pF" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/atmos{ - dir = 2; id = "UO45_air_in" }, /turf/open/floor/engine/air, @@ -9012,7 +8913,6 @@ /obj/item/clothing/glasses/hud/health, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/white/corner{ - dir = 2; heat_capacity = 1e+006 }, /area/awaymission/undergroundoutpost45/research) @@ -9025,7 +8925,6 @@ /obj/item/hand_labeler, /obj/item/clothing/neck/stethoscope, /turf/open/floor/plasteel/white/side{ - dir = 2; heat_capacity = 1e+006 }, /area/awaymission/undergroundoutpost45/research) @@ -9248,7 +9147,6 @@ }, /obj/machinery/camera{ c_tag = "Atmospherics"; - dir = 2; network = list("uo45") }, /obj/structure/table, @@ -9257,7 +9155,6 @@ pixel_y = 5 }, /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/item/multitool, @@ -9303,21 +9200,15 @@ dir = 10 }, /obj/machinery/portable_atmospherics/scrubber, -/obj/effect/turf_decal/bot{ - dir = 2 - }, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel{ - dir = 2; heat_capacity = 1e+006 }, /area/awaymission/undergroundoutpost45/engineering) "qN" = ( /obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/bot{ - dir = 2 - }, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel{ - dir = 2; heat_capacity = 1e+006 }, /area/awaymission/undergroundoutpost45/engineering) @@ -9544,7 +9435,7 @@ }, /area/awaymission/undergroundoutpost45/engineering) "rk" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ layer = 5 }, /obj/effect/turf_decal/tile/yellow{ @@ -9560,7 +9451,6 @@ /area/awaymission/undergroundoutpost45/engineering) "rl" = ( /obj/machinery/firealarm{ - dir = 2; pixel_y = 24 }, /obj/structure/tank_dispenser{ @@ -9643,7 +9533,6 @@ }, /obj/machinery/power/apc/highcap/fifteen_k{ dir = 8; - locked = 1; name = "UO45 Engineering APC"; pixel_x = -25; req_access = null; @@ -9683,7 +9572,6 @@ /obj/item/clothing/head/helmet, /obj/structure/closet/secure_closet{ icon_state = "sec"; - locked = 1; name = "security officer's locker"; req_access_txt = "201" }, @@ -9750,11 +9638,8 @@ "rx" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/machinery/portable_atmospherics/scrubber, -/obj/effect/turf_decal/bot{ - dir = 2 - }, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel{ - dir = 2; heat_capacity = 1e+006 }, /area/awaymission/undergroundoutpost45/engineering) @@ -10167,9 +10052,7 @@ name = "Privacy Shutters" }, /obj/machinery/door/window/southleft{ - base_state = "left"; dir = 4; - icon_state = "left"; name = "Engineering Reception"; req_access_txt = "201" }, @@ -10260,7 +10143,6 @@ "sj" = ( /obj/structure/cable, /obj/machinery/power/apc/highcap/fifteen_k{ - dir = 2; locked = 0; name = "UO45 Mining APC"; pixel_y = -25; @@ -10280,9 +10162,7 @@ }, /obj/item/storage/backpack/satchel/eng, /obj/item/clothing/gloves/fingerless, -/obj/effect/turf_decal/tile/brown{ - dir = 2 - }, +/obj/effect/turf_decal/tile/brown, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -10290,8 +10170,7 @@ "sk" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Mix to Distro"; - on = 0 + name = "Mix to Distro" }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -10955,9 +10834,7 @@ }, /area/awaymission/undergroundoutpost45/crew_quarters) "tv" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 2 - }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/machinery/portable_atmospherics/pump, /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -10969,9 +10846,7 @@ /area/awaymission/undergroundoutpost45/engineering) "tw" = ( /obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 2 - }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/structure/window/reinforced{ dir = 4; layer = 2.9 @@ -11145,8 +11020,7 @@ /area/awaymission/undergroundoutpost45/engineering) "tK" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5; - level = 1 + dir = 5 }, /turf/closed/wall/rust, /area/awaymission/undergroundoutpost45/research) @@ -11404,11 +11278,8 @@ dir = 1 }, /obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/bot{ - dir = 2 - }, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel{ - dir = 2; heat_capacity = 1e+006 }, /area/awaymission/undergroundoutpost45/engineering) @@ -11716,17 +11587,13 @@ }, /area/awaymission/undergroundoutpost45/research) "uL" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 2 - }, +/obj/machinery/atmospherics/components/binary/valve, /turf/open/floor/plating{ heat_capacity = 1e+006 }, /area/awaymission/undergroundoutpost45/research) "uM" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 2 - }, +/obj/machinery/atmospherics/components/binary/valve, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -11813,8 +11680,7 @@ /area/awaymission/undergroundoutpost45/engineering) "uV" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5; - level = 1 + dir = 5 }, /obj/structure/chair/office/dark{ dir = 8 @@ -12342,9 +12208,7 @@ /obj/structure/sign/warning/electricshock{ pixel_y = -32 }, -/obj/machinery/vending/engivend{ - req_access_txt = "0" - }, +/obj/machinery/vending/engivend, /obj/machinery/camera{ c_tag = "Engineering Foyer"; dir = 1; @@ -12402,11 +12266,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel{ - dir = 2; heat_capacity = 1e+006 }, /area/awaymission/undergroundoutpost45/engineering) @@ -12415,11 +12276,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel{ - dir = 2; heat_capacity = 1e+006 }, /area/awaymission/undergroundoutpost45/engineering) @@ -12428,11 +12286,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, -/obj/effect/turf_decal/bot{ - dir = 2 - }, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel{ - dir = 2; heat_capacity = 1e+006 }, /area/awaymission/undergroundoutpost45/engineering) @@ -12486,7 +12341,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ layer = 5 }, /obj/effect/decal/cleanable/dirt, @@ -13274,7 +13129,6 @@ /area/awaymission/undergroundoutpost45/engineering) "xl" = ( /obj/machinery/conveyor{ - dir = 2; id = "UO45_mining" }, /obj/effect/turf_decal/stripes/line{ @@ -13328,7 +13182,6 @@ /area/awaymission/undergroundoutpost45/mining) "xq" = ( /obj/machinery/conveyor{ - dir = 2; id = "UO45_mining" }, /obj/structure/sign/warning/nosmoking{ @@ -13383,8 +13236,7 @@ /area/awaymission/undergroundoutpost45/mining) "xw" = ( /obj/machinery/mineral/processing_unit{ - dir = 1; - output_dir = 2 + dir = 1 }, /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -13468,7 +13320,6 @@ /area/awaymission/undergroundoutpost45/mining) "xE" = ( /obj/machinery/conveyor{ - dir = 2; id = "UO45_mining" }, /obj/machinery/light/small{ @@ -13604,7 +13455,6 @@ /area/awaymission/undergroundoutpost45/mining) "xS" = ( /obj/machinery/mech_bay_recharge_port{ - icon_state = "recharge_port"; dir = 8 }, /obj/structure/cable{ @@ -42626,7 +42476,7 @@ tT gy uN hH -eu +eJ eJ ad ad @@ -42883,7 +42733,7 @@ tU uw uO vk -eu +eJ eJ eJ ad @@ -43140,7 +42990,7 @@ tV ux uP hH -eu +eJ eJ eJ eJ @@ -48811,7 +48661,7 @@ ww xZ yc ww -eu +eJ eJ eJ eJ @@ -49068,7 +48918,7 @@ xX ya yd yf -eu +eJ eJ eJ eJ @@ -49325,7 +49175,7 @@ xY yb ye ww -eu +eJ eJ eJ eJ @@ -51326,9 +51176,9 @@ ad ad ad ad -eu -eu -eu +eJ +eJ +eJ fn eJ eJ diff --git a/_maps/RandomZLevels/away_mission/wildwest.dmm b/_maps/RandomZLevels/away_mission/wildwest.dmm index 064be0907a..ef4eabdc65 100644 --- a/_maps/RandomZLevels/away_mission/wildwest.dmm +++ b/_maps/RandomZLevels/away_mission/wildwest.dmm @@ -50,15 +50,13 @@ /turf/open/floor/circuit/off, /area/awaymission/wildwest/vault) "an" = ( -/turf/open/floor/plasteel/cult{ - name = "engraved floor" - }, +/turf/open/floor/plasteel/cult, /area/awaymission/wildwest/vault) "ao" = ( /turf/open/floor/circuit/green/off, /area/awaymission/wildwest/vault) "ap" = ( -/obj/machinery/wish_granter_dark, +/obj/item/nullrod/claymore/glowing, /turf/open/floor/circuit/green/off, /area/awaymission/wildwest/vault) "aq" = ( @@ -69,54 +67,72 @@ /obj/machinery/gateway{ dir = 9 }, -/turf/open/floor/circuit/green/off, -/area/awaymission/wildwest/vault) +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wildwest/mines) "as" = ( /obj/machinery/gateway{ dir = 1 }, -/turf/open/floor/circuit/green/off, -/area/awaymission/wildwest/vault) +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wildwest/mines) "at" = ( /obj/machinery/gateway{ dir = 5 }, -/turf/open/floor/circuit/green/off, -/area/awaymission/wildwest/vault) +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wildwest/mines) "au" = ( /obj/machinery/gateway{ dir = 8 }, -/turf/open/floor/circuit/green/off, -/area/awaymission/wildwest/vault) +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wildwest/mines) "av" = ( /obj/machinery/gateway/centeraway{ calibrated = 0 }, -/turf/open/floor/circuit/green/off, -/area/awaymission/wildwest/vault) +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wildwest/mines) "aw" = ( /obj/machinery/gateway{ dir = 4 }, -/turf/open/floor/circuit/green/off, -/area/awaymission/wildwest/vault) +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wildwest/mines) "ax" = ( /obj/machinery/gateway{ dir = 10 }, -/turf/open/floor/circuit/green/off, -/area/awaymission/wildwest/vault) +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wildwest/mines) "ay" = ( /obj/machinery/gateway, -/turf/open/floor/circuit/green/off, -/area/awaymission/wildwest/vault) +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wildwest/mines) "az" = ( /obj/machinery/gateway{ dir = 6 }, -/turf/open/floor/circuit/green/off, -/area/awaymission/wildwest/vault) +/turf/open/floor/plating/ironsand{ + icon_state = "ironsand1" + }, +/area/awaymission/wildwest/mines) "aA" = ( /obj/effect/meatgrinder, /turf/open/floor/circuit/green/off, @@ -162,9 +178,7 @@ /area/awaymission/wildwest/vault) "aL" = ( /obj/item/paper/fluff/awaymissions/wildwest/grinder, -/turf/open/floor/plasteel/cult{ - name = "engraved floor" - }, +/turf/open/floor/plasteel/cult, /area/awaymission/wildwest/vault) "aM" = ( /turf/closed/mineral/silver, @@ -174,9 +188,7 @@ /area/awaymission/wildwest/mines) "aO" = ( /obj/effect/mob_spawn/human/corpse/syndicatecommando, -/turf/open/floor/plasteel/cult{ - name = "engraved floor" - }, +/turf/open/floor/plasteel/cult, /area/awaymission/wildwest/vault) "aP" = ( /obj/effect/decal/cleanable/blood/splatter, @@ -349,11 +361,6 @@ /obj/structure/bed, /turf/open/floor/wood, /area/awaymission/wildwest/mines) -"bC" = ( -/obj/structure/table/wood, -/obj/item/gun/ballistic, -/turf/open/floor/wood, -/area/awaymission/wildwest/mines) "bD" = ( /obj/structure/table/wood, /turf/open/floor/wood, @@ -595,17 +602,8 @@ dir = 5 }, /area/awaymission/wildwest/mines) -"ch" = ( -/obj/structure/table/wood, -/obj/item/gun/ballistic, -/turf/open/floor/plasteel/cafeteria{ - dir = 5 - }, -/area/awaymission/wildwest/mines) "ci" = ( -/obj/structure/mineral_door/wood{ - icon_state = "wood" - }, +/obj/structure/mineral_door/wood, /turf/open/floor/wood, /area/awaymission/wildwest/mines) "cj" = ( @@ -755,7 +753,7 @@ /area/awaymission/wildwest/mines) "cL" = ( /obj/structure/table/wood, -/obj/item/twohanded/dualsaber, +/obj/item/nullrod/claymore/saber/red, /turf/open/floor/wood, /area/awaymission/wildwest/gov) "cM" = ( @@ -767,9 +765,7 @@ /turf/open/floor/wood, /area/awaymission/wildwest/gov) "cO" = ( -/obj/structure/mineral_door/wood{ - icon_state = "wood" - }, +/obj/structure/mineral_door/wood, /turf/open/floor/wood, /area/awaymission/wildwest/gov) "cP" = ( @@ -946,17 +942,13 @@ /turf/open/floor/carpet, /area/awaymission/wildwest/mines) "dm" = ( -/obj/structure/mineral_door/wood{ - icon_state = "wood" - }, +/obj/structure/mineral_door/wood, /turf/open/floor/plating/ironsand{ icon_state = "ironsand1" }, /area/awaymission/wildwest/mines) "dn" = ( -/obj/structure/mineral_door/wood{ - icon_state = "wood" - }, +/obj/structure/mineral_door/wood, /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/plating/ironsand{ icon_state = "ironsand1" @@ -1048,9 +1040,7 @@ }, /area/awaymission/wildwest/gov) "dD" = ( -/obj/structure/mineral_door/wood{ - icon_state = "wood" - }, +/obj/structure/mineral_door/wood, /turf/open/floor/plating/ironsand{ icon_state = "ironsand1" }, @@ -1176,7 +1166,6 @@ /area/awaymission/wildwest/gov) "dV" = ( /obj/machinery/shower{ - icon_state = "shower"; dir = 4 }, /turf/open/floor/plasteel/cafeteria{ @@ -1185,7 +1174,6 @@ /area/awaymission/wildwest/mines) "dW" = ( /obj/machinery/shower{ - icon_state = "shower"; dir = 8 }, /turf/open/floor/plasteel/cafeteria{ @@ -1610,7 +1598,7 @@ /turf/open/floor/plasteel/cafeteria, /area/awaymission/wildwest/mines) "fi" = ( -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/suture, /obj/effect/turf_decal/tile/blue{ dir = 4 }, @@ -2009,10 +1997,6 @@ /obj/machinery/photocopier, /turf/open/floor/wood, /area/awaymission/wildwest/mines) -"gm" = ( -/obj/item/gun/ballistic, -/turf/open/floor/wood, -/area/awaymission/wildwest/mines) "gn" = ( /mob/living/simple_animal/hostile/netherworld, /turf/open/floor/grass, @@ -2195,10 +2179,9 @@ /area/awaymission/wildwest/mines) "gW" = ( /obj/structure/table/reinforced, -/obj/item/clothing/suit/space/syndicate/black/orange, -/obj/item/clothing/head/helmet/space/syndicate/black/orange, -/obj/item/clothing/mask/gas/syndicate, /obj/item/tank/internals/oxygen, +/obj/item/clothing/suit/space/syndicate/blue, +/obj/item/clothing/head/helmet/space/syndicate/blue, /turf/open/floor/mineral/titanium/yellow, /area/awaymission/wildwest/refine) "gX" = ( @@ -32762,9 +32745,9 @@ aT aN aN aT -aT -aT -aT +ar +au +ax aT aT aT @@ -33019,9 +33002,9 @@ aT aN aN aT -aT -aT -aT +as +av +ay aT aT aT @@ -33276,9 +33259,9 @@ aT aN aN aT -aT -aT -aT +at +aw +az aT aT aT @@ -38117,7 +38100,7 @@ bu bz bM bM -ch +bM by bu bj @@ -39913,7 +39896,7 @@ bj bj aT bu -bC +bD bj bj bu @@ -46340,7 +46323,7 @@ aT bu bD bj -bC +bD cl bj bj @@ -47563,9 +47546,9 @@ aa ab ab ab -ar -au -ax +ao +ao +ao ao ao ao @@ -47820,9 +47803,9 @@ aa ab ab ab -as -av -ay +ao +ao +ao ao ao ao @@ -48077,9 +48060,9 @@ aa aa ab ab -at -aw -az +ao +ao +ao ao ao ao @@ -48850,7 +48833,7 @@ aa ab ab ao -ao +ap ao ab ab @@ -51159,7 +51142,7 @@ aa aa aa ab -ap +ao ao aq ab @@ -52283,7 +52266,7 @@ eX dj bj bu -gm +bj bj eM bj diff --git a/_maps/iceboxstation.dm b/_maps/iceboxstation.dm deleted file mode 100644 index 10928bd8a5..0000000000 --- a/_maps/iceboxstation.dm +++ /dev/null @@ -1 +0,0 @@ -#define FORCE_MAP "_maps/icebox.json" diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index c8f2c151b5..ed4a150e09 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -3993,8 +3993,6 @@ }, /obj/structure/closet/wardrobe/white, /obj/item/clothing/under/suit/waiter, -/obj/item/clothing/under/suit/waiter, -/obj/item/clothing/under/suit/waiter, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "ahD" = ( @@ -4127,24 +4125,18 @@ /turf/open/floor/plasteel, /area/security/main) "ahO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4; - pixel_y = 5 - }, /obj/structure/chair/sofa/left{ dir = 1 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "ahP" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/closet/wardrobe/mixed, /obj/item/clothing/under/costume/kilt, -/obj/item/clothing/under/costume/kilt, -/obj/item/clothing/under/dress/skirt/purple, -/obj/item/clothing/head/beret, -/obj/item/clothing/head/beret, -/obj/item/clothing/head/beret, /obj/structure/sign/poster/official/fashion{ pixel_x = -32 }, @@ -4675,13 +4667,13 @@ /turf/open/floor/plating, /area/maintenance/fore/secondary) "aiB" = ( -/obj/machinery/vending/kink, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/sign/poster/official/fashion{ pixel_y = 32 }, +/obj/machinery/vending/autodrobe, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aiC" = ( @@ -10717,21 +10709,7 @@ /obj/structure/closet{ name = "Holodeck Outfits" }, -/obj/item/clothing/under/trek/Q, -/obj/item/clothing/under/trek/command/next, -/obj/item/clothing/under/trek/command/next, -/obj/item/clothing/under/trek/command/next, -/obj/item/clothing/under/trek/engsec/next, -/obj/item/clothing/under/trek/engsec/next, -/obj/item/clothing/under/trek/engsec/next, -/obj/item/clothing/under/trek/engsec/next, -/obj/item/clothing/under/trek/medsci/next, -/obj/item/clothing/under/trek/medsci/next, -/obj/item/clothing/under/trek/medsci/next, /obj/item/clothing/under/misc/blue_camo, -/obj/item/clothing/under/misc/blue_camo, -/obj/item/clothing/under/costume/gladiator, -/obj/item/clothing/under/costume/gladiator, /obj/machinery/firealarm{ dir = 4; pixel_x = -24 @@ -13940,8 +13918,7 @@ /area/crew_quarters/dorms) "aFk" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4; - pixel_y = 5 + dir = 4 }, /turf/open/floor/wood, /area/crew_quarters/bar) @@ -14441,13 +14418,12 @@ /turf/closed/wall, /area/crew_quarters/theatre) "aGw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4; - pixel_y = 5 - }, /obj/machinery/light/small{ dir = 4 }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, /turf/open/floor/wood, /area/crew_quarters/bar) "aGx" = ( @@ -15098,10 +15074,6 @@ /turf/open/floor/plasteel, /area/crew_quarters/dorms) "aHV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1; - pixel_x = 5 - }, /obj/machinery/light/small{ dir = 4 }, @@ -15114,6 +15086,9 @@ /obj/item/reagent_containers/rag/towel/random, /obj/item/reagent_containers/rag/towel/random, /obj/item/reagent_containers/rag/towel/random, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, /turf/open/floor/mineral/titanium/blue, /area/crew_quarters/toilet) "aHY" = ( @@ -16721,10 +16696,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/structure/sign/poster/contraband/robust_softdrinks{ - pixel_x = -32; - pixel_y = 32 - }, /turf/open/floor/plasteel, /area/hallway/primary/central) "aMh" = ( @@ -17799,7 +17770,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-20" }, /turf/open/floor/plasteel, @@ -17947,7 +17918,6 @@ /obj/structure/cable{ icon_state = "0-8" }, -/obj/machinery/status_display/evac, /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ id = "bridge blast"; @@ -17972,21 +17942,6 @@ }, /turf/open/floor/plating, /area/bridge) -"aPW" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/status_display/evac, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/turf/open/floor/plating, -/area/bridge) "aPX" = ( /obj/structure/cable{ icon_state = "0-8" @@ -18310,7 +18265,6 @@ /obj/structure/closet/wardrobe/white, /obj/item/clothing/suit/ghost_sheet, /obj/item/clothing/suit/ghost_sheet, -/obj/item/clothing/suit/ghost_sheet, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aQP" = ( @@ -18338,10 +18292,10 @@ /turf/open/floor/plasteel, /area/crew_quarters/locker) "aQV" = ( -/obj/machinery/vending/autodrobe, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/vending/clothing, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aQW" = ( @@ -18355,7 +18309,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/vending/games, +/obj/machinery/vending/kink, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aQY" = ( @@ -18838,9 +18792,6 @@ name = "Station Intercom (General)"; pixel_x = -27 }, -/obj/item/clothing/head/beret, -/obj/item/clothing/head/beret, -/obj/item/clothing/head/russobluecamohat, /obj/item/clothing/head/russobluecamohat, /turf/open/floor/plasteel, /area/crew_quarters/locker) @@ -19161,6 +19112,7 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/port) "aSY" = ( @@ -19323,7 +19275,6 @@ dir = 8 }, /obj/item/clothing/under/costume/kilt, -/obj/item/clothing/under/costume/kilt, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aTy" = ( @@ -19841,11 +19792,6 @@ department = "Locker Room"; pixel_x = -32 }, -/obj/item/clothing/under/misc/assistantformal, -/obj/item/clothing/under/misc/assistantformal, -/obj/item/clothing/under/misc/assistantformal, -/obj/item/clothing/under/color/grey, -/obj/item/clothing/under/color/grey, /turf/open/floor/plasteel, /area/crew_quarters/locker) "aUW" = ( @@ -20456,13 +20402,6 @@ "aWn" = ( /obj/structure/closet/wardrobe/black, /obj/item/clothing/shoes/jackboots, -/obj/item/clothing/under/rank/civilian/janitor/maid, -/obj/item/clothing/under/rank/civilian/janitor/maid, -/obj/item/clothing/under/costume/maid, -/obj/item/clothing/under/costume/maid, -/obj/item/clothing/accessory/maidapron, -/obj/item/clothing/accessory/maidapron, -/obj/item/clothing/head/beret/black, /obj/item/clothing/head/beret/black, /turf/open/floor/plasteel, /area/crew_quarters/locker) @@ -21169,7 +21108,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /turf/open/floor/plasteel, @@ -21730,7 +21669,7 @@ dir = 1; pixel_y = -24 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-08" }, /turf/open/floor/wood, @@ -21811,12 +21750,10 @@ dir = 4; pixel_x = 11 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, /obj/structure/mirror{ pixel_x = 28 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet/locker) "aZp" = ( @@ -21889,6 +21826,7 @@ /area/crew_quarters/toilet/locker) "aZw" = ( /obj/effect/landmark/blobstart, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet/locker) "aZx" = ( @@ -22247,6 +22185,7 @@ c_tag = "Locker Room Toilets"; dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet/locker) "bax" = ( @@ -22381,13 +22320,6 @@ /area/maintenance/port) "baO" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/mirror{ - pixel_x = 28 - }, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet/locker) "baP" = ( @@ -22573,9 +22505,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet/locker) "bbs" = ( @@ -22942,9 +22872,8 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bct" = ( -/obj/structure/chair/wood/wings, -/turf/open/floor/plating, -/area/maintenance/port) +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) "bcu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/airlock/maintenance{ @@ -23421,9 +23350,12 @@ /turf/open/floor/carpet, /area/bridge/meeting_room) "bdJ" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/turf/open/floor/plating, -/area/maintenance/port) +/obj/machinery/door/airlock{ + id_tag = "LockerShitter3"; + name = "Unit 3" + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet/locker) "bdK" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -23440,6 +23372,7 @@ dir = 8 }, /obj/structure/bedsheetbin/color, +/obj/structure/table, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/locker) "bdN" = ( @@ -23989,13 +23922,6 @@ }, /turf/closed/wall, /area/maintenance/disposal) -"bfa" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/mineral/wood/fifty{ - amount = 20 - }, -/turf/open/floor/plating, -/area/maintenance/port) "bfb" = ( /obj/structure/sign/warning/vacuum/external{ pixel_y = 32 @@ -24300,7 +24226,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-13" }, /turf/open/floor/plasteel, @@ -24349,7 +24275,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/plasteel, @@ -24471,14 +24397,12 @@ /turf/open/floor/plating, /area/maintenance/port) "bgr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plating, -/area/maintenance/port) -"bgs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/structure/table/wood/fancy/purple, -/turf/open/floor/plating, -/area/maintenance/port) +/obj/machinery/door/airlock{ + id_tag = "LockerShitter4"; + name = "Unit 4" + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet/locker) "bgt" = ( /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, @@ -25093,7 +25017,7 @@ dir = 4 }, /turf/closed/wall, -/area/maintenance/port) +/area/crew_quarters/toilet/locker) "bhR" = ( /obj/structure/grille, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -29239,14 +29163,7 @@ /turf/open/floor/plating, /area/maintenance/starboard) "brz" = ( -/obj/structure/table, -/obj/item/pen, -/obj/machinery/camera{ - c_tag = "Experimentor Lab"; - network = list("ss13","rd") - }, -/obj/item/hand_labeler, -/obj/item/stack/packageWrap, +/obj/machinery/rnd/bepis, /turf/open/floor/plasteel/white/side, /area/science/explab) "brA" = ( @@ -29263,11 +29180,14 @@ "brC" = ( /obj/structure/table, /obj/item/folder/white, -/obj/item/folder/white, /obj/machinery/airalarm{ pixel_y = 23 }, /obj/item/radio/off, +/obj/machinery/camera{ + c_tag = "Experimentor Lab"; + network = list("ss13","rd") + }, /turf/open/floor/plasteel/white/side, /area/science/explab) "brD" = ( @@ -29912,7 +29832,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel/white, @@ -34001,7 +33921,7 @@ /obj/machinery/light_switch{ pixel_y = -23 }, -/obj/item/twohanded/required/kirbyplants/dead, +/obj/item/kirbyplants/dead, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/heads/hor) "bCg" = ( @@ -34357,7 +34277,10 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, /area/science/storage) "bCY" = ( /obj/effect/turf_decal/tile/blue{ @@ -34422,7 +34345,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, /area/science/storage) "bDg" = ( /obj/structure/rack, @@ -34447,7 +34373,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, /area/science/storage) "bDk" = ( /obj/structure/table, @@ -34795,7 +34724,8 @@ icon_state = "4-8" }, /obj/effect/landmark/xeno_spawn, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, /area/science/storage) "bDZ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -34816,13 +34746,15 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, /area/science/storage) "bEc" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, /area/science/storage) "bEd" = ( /obj/structure/disposalpipe/segment{ @@ -34946,7 +34878,7 @@ "bEo" = ( /obj/machinery/portable_atmospherics/canister/toxins, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, +/turf/open/floor/engine, /area/science/storage) "bEp" = ( /obj/machinery/portable_atmospherics/canister/toxins, @@ -34954,7 +34886,7 @@ pixel_y = 32 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, +/turf/open/floor/engine, /area/science/storage) "bEq" = ( /obj/machinery/power/apc{ @@ -35550,7 +35482,10 @@ /obj/machinery/light/small{ dir = 8 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, /area/science/storage) "bFJ" = ( /obj/structure/bed, @@ -36083,7 +36018,8 @@ /area/medical/medbay/central) "bGY" = ( /obj/machinery/portable_atmospherics/scrubber/huge, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/bot, +/turf/open/floor/engine, /area/science/storage) "bGZ" = ( /obj/machinery/holopad, @@ -36146,7 +36082,8 @@ dir = 4; network = list("ss13","rd") }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, /area/science/storage) "bHf" = ( /obj/structure/disposalpipe/segment, @@ -36776,20 +36713,23 @@ "bIz" = ( /obj/machinery/portable_atmospherics/canister/carbon_dioxide, /obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, +/turf/open/floor/engine, /area/science/storage) "bIA" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, +/turf/open/floor/engine, /area/science/storage) "bIB" = ( /obj/machinery/portable_atmospherics/canister/nitrous_oxide, /obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, +/turf/open/floor/engine, /area/science/storage) "bIC" = ( -/turf/open/floor/plasteel, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, /area/science/storage) "bID" = ( /obj/structure/disposalpipe/segment{ @@ -38200,7 +38140,7 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/machinery/chem_dispenser, +/obj/machinery/chem_dispenser/apothecary, /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bLV" = ( @@ -39146,7 +39086,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /turf/open/floor/plasteel/white/side{ dir = 1 }, @@ -47919,8 +47859,6 @@ "clO" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/closet/wardrobe/grey, -/obj/item/clothing/under/misc/assistantformal, -/obj/item/clothing/under/misc/assistantformal, /obj/machinery/camera{ c_tag = "Dorms East - Holodeck"; dir = 4 @@ -48417,8 +48355,8 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/item/twohanded/rcl/pre_loaded, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /turf/open/floor/plasteel, /area/engine/engineering) "cnB" = ( @@ -48956,8 +48894,8 @@ "cpn" = ( /obj/machinery/light, /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/engine_smes) @@ -51982,24 +51920,15 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "cBn" = ( -/obj/structure/closet, -/obj/item/stack/tile/carpet/royalblue{ - amount = 24 +/obj/structure/sink{ + dir = 4; + pixel_x = 11 }, -/obj/item/stack/tile/carpet/green{ - amount = 24 +/obj/structure/mirror{ + pixel_x = 28 }, -/obj/item/stack/tile/carpet/purple{ - amount = 24 - }, -/obj/item/stack/tile/carpet/orange{ - amount = 24 - }, -/obj/item/stack/tile/wood{ - amount = 24 - }, -/turf/open/floor/plating, -/area/maintenance/port) +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) "cBo" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/wood, @@ -52157,7 +52086,7 @@ /obj/structure/table/reinforced, /obj/machinery/cell_charger, /obj/item/stock_parts/cell/high/plus, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /turf/open/floor/plasteel, /area/crew_quarters/heads/chief) "cBN" = ( @@ -52469,6 +52398,19 @@ /obj/structure/closet/boxinggloves, /turf/open/floor/plasteel, /area/crew_quarters/fitness) +"cFG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) "cGz" = ( /obj/structure/table/wood, /obj/item/instrument/violin, @@ -52857,10 +52799,6 @@ }, /turf/open/floor/plasteel/airless/solarpanel, /area/solar/starboard/aft) -"cMS" = ( -/obj/item/chair/wood, -/turf/open/floor/plating, -/area/maintenance/port) "cNa" = ( /obj/structure/cable, /obj/machinery/power/solar{ @@ -53839,6 +53777,10 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/security/range) +"dZm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/storage/art) "eaI" = ( /obj/structure/table/reinforced, /obj/item/radio/intercom{ @@ -53864,7 +53806,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-04" }, /turf/open/floor/plasteel/white, @@ -53918,14 +53860,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, /area/security/execution/transfer) -"epC" = ( -/obj/machinery/door/airlock{ - desc = "To keep the station within regulations, space IKEA requires one storage cupboard for their Nanotrasen partnership to continue."; - id_tag = "MaintDorm1"; - name = "Furniture Storage" - }, -/turf/open/floor/plasteel/dark, -/area/maintenance/port) "epD" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /obj/machinery/light{ @@ -54005,7 +53939,7 @@ /turf/open/floor/plating, /area/crew_quarters/fitness) "exP" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /turf/open/floor/plasteel, @@ -54193,6 +54127,11 @@ }, /turf/open/floor/plasteel, /area/security/processing) +"fbp" = ( +/obj/structure/tank_dispenser, +/obj/effect/turf_decal/bot, +/turf/open/floor/engine, +/area/science/storage) "fcn" = ( /obj/structure/lattice, /turf/closed/wall/r_wall, @@ -54346,7 +54285,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-06" }, /turf/open/floor/plasteel/white/corner{ @@ -54544,7 +54483,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18" }, /turf/open/floor/plasteel, @@ -54649,10 +54588,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/fore) -"gfr" = ( -/obj/structure/bed, -/turf/open/floor/plating, -/area/maintenance/port) "gfC" = ( /obj/effect/turf_decal/tile/red, /obj/structure/chair{ @@ -54906,17 +54841,28 @@ /area/crew_quarters/fitness) "gQX" = ( /obj/machinery/button/door{ - desc = "Alright, GAMER! Want to take your PWRGAME addiction to the MAX? Just smash this button with your chubby chetto encrusted hands an- oh, you broke the switch. Good job, idiot."; - id = "RIPFUN"; - name = "Powerful Gamer Toggle"; + id = "LockerShitter4"; + name = "Door Bolt Control"; normaldoorcontrol = 1; - pixel_x = -24; - pixel_y = 7; + pixel_x = 14; + pixel_y = 38; specialfunctions = 4 }, -/obj/structure/table_frame/wood, -/turf/open/floor/plating, -/area/maintenance/port) +/obj/structure/toilet/secret/low_loot{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/sink{ + dir = 1; + pixel_y = 25 + }, +/obj/structure/mirror{ + pixel_y = 32 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet/locker) "gRZ" = ( /obj/structure/bookcase{ name = "Forbidden Knowledge" @@ -54994,16 +54940,6 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel, /area/crew_quarters/fitness) -"hew" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port) "hgG" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/extinguisher_cabinet{ @@ -55041,10 +54977,6 @@ }, /turf/closed/wall, /area/crew_quarters/dorms) -"hnl" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/port) "hnU" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -55139,21 +55071,18 @@ /turf/open/floor/wood, /area/crew_quarters/bar) "hPs" = ( -/obj/structure/fireplace{ - pixel_y = -6 - }, /obj/machinery/airalarm{ dir = 8; pixel_x = 23 }, -/turf/open/floor/plating, -/area/maintenance/port) +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) "hPP" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 }, /turf/closed/wall, /area/quartermaster/warehouse) @@ -55355,13 +55284,6 @@ /obj/effect/turf_decal/tile/green, /turf/open/floor/plasteel, /area/hallway/primary/starboard) -"iwB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/maintenance/port) "izg" = ( /obj/item/cigbutt/cigarbutt, /turf/open/floor/plating, @@ -55603,9 +55525,7 @@ }, /area/maintenance/bar) "jrE" = ( -/obj/structure/sign/poster/official/random{ - pixel_x = 32 - }, +/obj/item/beacon, /turf/open/floor/plasteel/white, /area/science/circuit) "jtj" = ( @@ -55989,6 +55909,10 @@ /area/maintenance/fore/secondary) "khV" = ( /obj/machinery/vending/cola/red, +/obj/structure/sign/poster/contraband/robust_softdrinks{ + pixel_x = -32; + pixel_y = 32 + }, /turf/open/floor/plasteel/dark, /area/hallway/primary/central) "kls" = ( @@ -56275,10 +56199,6 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"kQO" = ( -/obj/structure/reagent_dispensers/keg/semen, -/turf/open/floor/plating, -/area/maintenance/bar) "kSb" = ( /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -56410,7 +56330,7 @@ }, /area/maintenance/bar) "lsk" = ( -/obj/machinery/vending/autodrobe, +/obj/machinery/vending/kink, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "ltK" = ( @@ -56524,7 +56444,7 @@ /turf/open/floor/plasteel, /area/security/processing) "lPr" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /turf/open/floor/plasteel, @@ -57342,17 +57262,29 @@ /turf/open/floor/plasteel, /area/security/prison) "omY" = ( -/obj/item/flashlight/lamp/green{ - pixel_x = -2; - pixel_y = 15 +/obj/machinery/button/door{ + id = "LockerShitter3"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 14; + pixel_y = 38; + specialfunctions = 4 }, -/obj/structure/dresser{ - desc = "There's plenty of clothes here to change into! It has a surprising amount of variety, too."; - name = "Dresser"; - pixel_y = 7 +/obj/structure/toilet/secret/low_loot{ + dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/port) +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/sink{ + dir = 1; + pixel_y = 25 + }, +/obj/structure/mirror{ + pixel_y = 32 + }, +/turf/open/floor/mineral/titanium/blue, +/area/crew_quarters/toilet/locker) "oqj" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -57572,12 +57504,7 @@ "oZl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/closet/wardrobe/pjs, -/obj/item/clothing/under/costume/maid, -/obj/item/clothing/under/costume/maid, /obj/item/clothing/under/rank/civilian/janitor/maid, -/obj/item/clothing/under/rank/civilian/janitor/maid, -/obj/item/clothing/accessory/maidapron, -/obj/item/clothing/accessory/maidapron, /obj/machinery/light{ dir = 8 }, @@ -57621,6 +57548,9 @@ /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/wood, /area/crew_quarters/bar) "plS" = ( @@ -57671,7 +57601,6 @@ /turf/open/floor/wood, /area/crew_quarters/bar) "pqs" = ( -/obj/machinery/vending/clothing, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -58095,7 +58024,7 @@ /turf/open/floor/carpet, /area/crew_quarters/theatre) "qTV" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel/white, @@ -58167,11 +58096,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/vending/kink, /obj/machinery/light{ dir = 4; light_color = "#e8eaff" }, +/obj/machinery/vending/games, /turf/open/floor/plasteel, /area/crew_quarters/fitness) "rgL" = ( @@ -58273,11 +58202,6 @@ dir = 4 }, /obj/structure/closet/wardrobe/black, -/obj/item/clothing/under/dress/skirt, -/obj/item/clothing/head/beret/black, -/obj/item/clothing/head/beret/black, -/obj/item/clothing/under/custom/trendy_fit, -/obj/item/clothing/under/custom/trendy_fit, /obj/item/clothing/under/dress/sundress, /turf/open/floor/plasteel, /area/crew_quarters/fitness) @@ -58446,6 +58370,10 @@ }, /turf/open/floor/plasteel, /area/science/mixing) +"rNG" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/ai_monitored/storage/eva) "rPU" = ( /turf/open/floor/plasteel/white/side{ dir = 4 @@ -58972,11 +58900,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/dorms) -"txm" = ( -/obj/structure/table/wood/fancy/royalblue, -/obj/item/crowbar/red, -/turf/open/floor/plating, -/area/maintenance/port) "tyX" = ( /obj/structure/cable{ icon_state = "4-8" @@ -59521,11 +59444,10 @@ /turf/open/floor/plasteel, /area/engine/atmos) "uQS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1; - pixel_x = 5 - }, /obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, /turf/open/floor/mineral/titanium/blue, /area/crew_quarters/toilet) "uRd" = ( @@ -60272,6 +60194,12 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) +"wTk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/locker) "wUg" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -60874,6 +60802,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/maintenance/fore/secondary) +"yeA" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/hallway/primary/central) "yhx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -77204,10 +77136,10 @@ aXQ aXQ aXQ aXQ -aPz -aPz -epC -aPz +aXQ +aXQ +aXQ +aXQ bhQ bjj bkF @@ -77461,9 +77393,9 @@ aXQ aZt aXQ ycd -aPz +aXQ omY -cMS +aXQ gQX bhQ bjj @@ -77718,12 +77650,12 @@ aXQ aZv aXQ bbL -aPz +aXQ bdJ -txm +aXQ bgr -iwB -hew +bhQ +bjj bkF aaa aaa @@ -77975,10 +77907,10 @@ aWy aYe bbq aZw -aPz +wTk +bct +bct bct -bfa -gfr bhQ bjk bkE @@ -78232,11 +78164,11 @@ aXp baO aZo baw -aPz +cFG hPs cBn -bgs -hnl +bct +bhQ bjk bkF aaa @@ -78489,10 +78421,10 @@ aXQ aXQ aXQ aXQ -aPz -aPz -aPz -aPz +aXQ +aXQ +aXQ +aXQ bhQ bjk aPz @@ -79015,7 +78947,7 @@ blW blW bqi cyD -blW +aZE cyD bvS blW @@ -81567,7 +81499,7 @@ aPF aQZ aRa aTF -aPG +dZm aSX hPP aZF @@ -82646,7 +82578,7 @@ mrR dKP odx rBq -kQO +evR bCq bUs bLv @@ -87984,7 +87916,7 @@ ayL ayW ayW ayW -ayW +rNG aJq aJq aOE @@ -90558,7 +90490,7 @@ aKF aMf aNB aOE -aPW +aPS aRr aSD ceh @@ -91582,7 +91514,7 @@ gfD woR dgz aJw -aJw +yeA aMh aJq aOE @@ -106265,7 +106197,7 @@ bzC bAH bCb bDc -bEo +fbp bDf bEb bGY diff --git a/_maps/map_files/CogStation/CogStation.dmm b/_maps/map_files/CogStation/CogStation.dmm index ebb3493a35..2f27c3f747 100644 --- a/_maps/map_files/CogStation/CogStation.dmm +++ b/_maps/map_files/CogStation/CogStation.dmm @@ -233,7 +233,6 @@ /turf/open/floor/plasteel/stairs/left, /area/security/brig) "aaH" = ( -/obj/machinery/computer/communications, /obj/machinery/light{ dir = 1; light_color = "#e8eaff" @@ -242,6 +241,14 @@ c_tag = "Armory Motion Sensor"; pixel_x = 22 }, +/obj/structure/rack, +/obj/item/gun/energy{ + pixel_y = -6 + }, +/obj/item/gun/energy{ + pixel_y = -3 + }, +/obj/item/gun/energy, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "aaI" = ( @@ -479,24 +486,39 @@ /turf/open/space/basic, /area/solar/starboard/fore) "abk" = ( -/obj/structure/closet/crate/secure/plasma{ - name = "Ballistics Crate" +/obj/structure/closet/crate/secure/gear{ + name = "Grenade Crate" }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/item/gun/ballistic/automatic/wt550, -/obj/item/gun/ballistic/automatic/wt550, -/obj/item/ammo_box/magazine/wt550m9/wtrubber, -/obj/item/ammo_box/magazine/wt550m9/wtrubber, -/obj/item/ammo_box/magazine/wt550m9/wtrubber, -/obj/item/ammo_box/magazine/wt550m9/wtrubber, +/obj/item/storage/box/flashbangs{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/item/storage/box/teargas{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/grenade/barrier, +/obj/item/grenade/barrier, +/obj/item/grenade/barrier, /turf/open/floor/plasteel, /area/ai_monitored/security/armory) "abl" = ( /obj/machinery/airalarm{ pixel_y = 24 }, +/obj/structure/rack, +/obj/item/gun/energy/laser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/energy/laser, +/obj/item/gun/energy/laser{ + pixel_x = 3; + pixel_y = -3 + }, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "abm" = ( @@ -518,35 +540,9 @@ /turf/open/floor/plasteel, /area/ai_monitored/security/armory) "abo" = ( -/obj/structure/closet/crate/secure/gear{ - name = "Grenade Crate" - }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/item/storage/box/flashbangs{ - pixel_x = 3; - pixel_y = 2 - }, -/obj/item/storage/box/teargas{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/grenade/syndieminibomb/concussion/frag{ - pixel_x = -4 - }, -/obj/item/grenade/syndieminibomb/concussion/frag{ - pixel_x = -4 - }, -/obj/item/grenade/barrier, -/obj/item/grenade/barrier, -/obj/item/grenade/barrier, -/obj/item/grenade/chem_grenade/incendiary{ - pixel_x = 3 - }, -/obj/item/grenade/chem_grenade/incendiary{ - pixel_x = 3 - }, /turf/open/floor/plasteel, /area/ai_monitored/security/armory) "abp" = ( @@ -593,23 +589,37 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "abv" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"abw" = ( -/obj/structure/closet/crate/secure/weapon{ - name = "Energy Gun Crate" +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 }, +/turf/closed/wall/r_wall, +/area/maintenance/fore) +"abw" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/item/gun/energy/laser, -/obj/item/gun/energy/laser, -/obj/item/gun/energy{ - pixel_y = -6 +/obj/structure/rack, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_x = -3; + pixel_y = 3 }, -/obj/item/gun/energy{ - pixel_y = -6 +/obj/item/clothing/suit/armor/bulletproof, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001; + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001; + pixel_x = 3; + pixel_y = -3 }, /turf/open/floor/plasteel, /area/ai_monitored/security/armory) @@ -741,9 +751,10 @@ /turf/open/floor/plasteel/checker, /area/hallway/secondary/entry) "abO" = ( -/obj/item/electropack, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) +/obj/structure/chair/comfy/brown, +/obj/item/beacon, +/turf/open/floor/carpet/royalblue, +/area/bridge) "abP" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -839,6 +850,10 @@ /area/maintenance/fore) "acc" = ( /obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "solitarylock"; + name = "Brig Lockdown" + }, /turf/open/floor/plating, /area/security/brig) "acd" = ( @@ -927,9 +942,6 @@ /obj/item/clothing/mask/gas/sechailer/swat{ pixel_x = -4 }, -/obj/item/clothing/glasses/hud/security/night, -/obj/item/clothing/glasses/hud/security/night, -/obj/item/clothing/glasses/hud/security/night, /turf/open/floor/plasteel, /area/ai_monitored/security/armory) "acl" = ( @@ -1007,6 +1019,9 @@ pixel_x = 8; pixel_y = 2 }, +/obj/item/electropack{ + pixel_x = -10 + }, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "acv" = ( @@ -1036,7 +1051,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/vending/security, +/obj/item/gun/energy/e_gun/advtaser{ + pixel_y = 6 + }, +/obj/item/gun/energy/e_gun/advtaser, +/obj/item/gun/energy/e_gun/advtaser{ + pixel_y = -6 + }, +/obj/structure/rack, /turf/open/floor/plasteel, /area/ai_monitored/security/armory) "acz" = ( @@ -1181,13 +1203,13 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel/checker, /area/hallway/secondary/entry) "acS" = ( -/obj/machinery/atmospherics/components/binary/valve, +/obj/machinery/atmospherics/components/binary/valve/digital/on, /turf/open/floor/plating, /area/maintenance/fore) "acT" = ( @@ -1228,11 +1250,10 @@ /obj/effect/turf_decal/tile/purple{ dir = 1 }, -/obj/structure/closet/crate/freezer, /obj/machinery/firealarm{ pixel_y = 26 }, -/obj/item/reagent_containers/food/snacks/meat/slab, +/obj/machinery/washing_machine, /turf/open/floor/plasteel, /area/crew_quarters/lounge) "acW" = ( @@ -1299,7 +1320,7 @@ /turf/open/floor/plating, /area/crew_quarters/observatory) "ade" = ( -/obj/machinery/atmospherics/components/binary/valve, +/obj/machinery/atmospherics/components/binary/valve/digital/on, /turf/closed/wall/r_wall, /area/maintenance/fore) "adf" = ( @@ -1383,7 +1404,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel/dark/corner{ @@ -1836,6 +1857,9 @@ dir = 8 }, /obj/effect/turf_decal/tile/neutral, +/obj/machinery/light_switch{ + pixel_y = -24 + }, /turf/open/floor/plasteel/dark, /area/crew_quarters/observatory) "aez" = ( @@ -2123,10 +2147,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/valve, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/components/binary/valve/digital/on, /turf/open/floor/plating, /area/maintenance/fore) "afh" = ( @@ -2382,6 +2406,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/washing_machine, /turf/open/floor/plasteel/checker, /area/hallway/secondary/entry) "afP" = ( @@ -2615,9 +2640,6 @@ /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/mob/living/simple_animal/pet/redpanda{ - name = "Stinky" - }, /turf/open/floor/plasteel, /area/crew_quarters/lounge) "agt" = ( @@ -2646,6 +2668,11 @@ pixel_y = 28 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/displaycase/labcage{ + desc = "A glass lab container for storing smelly creatures."; + name = "stinky panda containment"; + start_showpiece_type = /mob/living/simple_animal/pet/redpanda/stinky + }, /turf/open/floor/plasteel, /area/crew_quarters/lounge) "agx" = ( @@ -3068,6 +3095,10 @@ /area/crew_quarters/kitchen) "ahy" = ( /obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "solitarylock"; + name = "Brig Lockdown" + }, /turf/open/floor/plating, /area/security/warden) "ahz" = ( @@ -3565,6 +3596,8 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/genpop, /turf/open/floor/plasteel, /area/security/brig) "aiL" = ( @@ -3602,7 +3635,7 @@ /turf/open/floor/wood, /area/crew_quarters/fitness) "aiS" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-06" }, /turf/open/floor/wood, @@ -3685,9 +3718,6 @@ /turf/open/space/basic, /area/solar/starboard/fore) "ajd" = ( -/obj/structure/disposalpipe/junction/flip{ - dir = 8 - }, /obj/structure/cable{ icon_state = "1-2" }, @@ -3697,6 +3727,9 @@ /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/starboard/fore) "aje" = ( @@ -3742,9 +3775,6 @@ /turf/open/floor/plasteel, /area/crew_quarters/bar) "ajj" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, /obj/structure/cable{ icon_state = "1-8" }, @@ -3773,6 +3803,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/washing_machine, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -3877,7 +3908,7 @@ /area/security/brig) "ajA" = ( /obj/effect/turf_decal/bot, -/obj/structure/closet/secure_closet/brig, +/obj/structure/closet/secure_closet/genpop, /turf/open/floor/plasteel, /area/security/brig) "ajB" = ( @@ -3887,6 +3918,10 @@ }, /obj/effect/turf_decal/delivery, /obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/preopen{ + id = "briglockdown"; + name = "Brig Lockdown" + }, /turf/open/floor/plasteel, /area/security/prison) "ajC" = ( @@ -5100,10 +5135,10 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/structure/disposalpipe/junction/flip{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, /turf/open/floor/plating, /area/maintenance/starboard/fore) "amu" = ( @@ -5499,11 +5534,10 @@ /turf/open/floor/plating, /area/maintenance/disposal) "ann" = ( -/obj/effect/turf_decal/plaque{ +/obj/effect/landmark/event_spawn, +/turf/open/floor/goonplaque{ desc = "It reads 'In honor of spacemen past, whose work allowed this station to find its new home. The fact that you stand on a station originally built light years away is a definitive representation of the ingenuity of the human spirit.' Beneath this is the image of a spaceman rocketing upwards by means of what appears to be a match and flatulence." }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, /area/hallway/secondary/entry) "ano" = ( /obj/structure/disposalpipe/segment, @@ -7445,8 +7479,9 @@ /turf/closed/wall/r_wall, /area/maintenance/starboard/central) "arF" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4; + name = "hot loop to space" }, /turf/open/floor/plating, /area/engine/engineering{ @@ -7522,9 +7557,9 @@ /turf/open/floor/plating, /area/router/service) "arN" = ( -/obj/machinery/atmospherics/components/binary/valve{ +/obj/machinery/atmospherics/components/binary/valve/digital{ dir = 4; - name = "Sauna" + name = "gas to sauna" }, /turf/open/floor/plating, /area/engine/engineering{ @@ -8289,7 +8324,7 @@ /turf/open/floor/plating, /area/router/service) "atv" = ( -/obj/machinery/atmospherics/components/binary/valve{ +/obj/machinery/atmospherics/components/binary/valve/digital/on{ dir = 4 }, /turf/open/floor/plating, @@ -9256,8 +9291,9 @@ /turf/open/floor/plasteel, /area/router/service) "avE" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4; + name = "generator to hot loop" }, /turf/open/floor/engine, /area/engine/supermatter{ @@ -9306,7 +9342,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 10 }, -/turf/open/floor/engine, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/engine/supermatter{ name = "Thermo-Electric Generator" }) @@ -9377,7 +9416,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/visible{ dir = 6 }, -/turf/open/floor/engine, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/engine/supermatter{ name = "Thermo-Electric Generator" }) @@ -9522,7 +9564,7 @@ /obj/effect/turf_decal/tile/green{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, @@ -9705,6 +9747,10 @@ /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 }, +/obj/machinery/door/poddoor/preopen{ + id = "briglockdown"; + name = "Brig Lockdown" + }, /turf/open/floor/plasteel, /area/security/prison) "awI" = ( @@ -9794,6 +9840,10 @@ dir = 1 }, /obj/effect/turf_decal/tile/bar, +/obj/machinery/door/poddoor/preopen{ + id = "briglockdown"; + name = "Brig Lockdown" + }, /turf/open/floor/plasteel, /area/security/main) "awR" = ( @@ -9857,32 +9907,41 @@ /turf/open/floor/plasteel, /area/storage/tools) "awW" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4; + name = "cold loop to space" }, /turf/open/floor/plating, /area/engine/engineering{ name = "Engine Room" }) "awX" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 }, -/turf/closed/wall/r_wall, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, /area/engine/supermatter{ name = "Thermo-Electric Generator" }) "awY" = ( -/obj/structure/closet/wardrobe/orange, /obj/effect/turf_decal/tile/red{ dir = 1 }, /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "solitarylock"; + name = "Solitary Lockdown"; + pixel_x = -24; + req_access_txt = "2" + }, /turf/open/floor/plasteel, /area/security/brig) "awZ" = ( @@ -9988,7 +10047,7 @@ pixel_y = 28 }, /obj/effect/turf_decal/bot, -/obj/structure/closet/secure_closet/brig, +/obj/structure/closet/secure_closet/genpop, /turf/open/floor/plasteel, /area/security/brig) "axj" = ( @@ -10091,10 +10150,13 @@ /turf/open/floor/plasteel, /area/hydroponics) "axt" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plating, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/engine/supermatter{ name = "Thermo-Electric Generator" }) @@ -10334,7 +10396,10 @@ /area/crew_quarters/locker) "axQ" = ( /obj/structure/window/reinforced/spawner/east, -/turf/open/floor/engine, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/engine/supermatter{ name = "Thermo-Electric Generator" }) @@ -10512,7 +10577,10 @@ }) "ayo" = ( /obj/structure/window/reinforced/spawner/west, -/turf/open/floor/engine, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/engine/supermatter{ name = "Thermo-Electric Generator" }) @@ -10744,6 +10812,10 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/door/poddoor/preopen{ + id = "briglockdown"; + name = "Brig Lockdown" + }, /turf/open/floor/plasteel, /area/security/main) "ayP" = ( @@ -10907,6 +10979,7 @@ /area/maintenance/port/central) "aze" = ( /obj/machinery/power/apc{ + dir = 1; name = "AI Chamber APC"; pixel_y = 24 }, @@ -11188,10 +11261,13 @@ /turf/open/floor/plasteel, /area/hallway/secondary/civilian) "azE" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 }, -/turf/closed/wall/r_wall, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, /area/engine/supermatter{ name = "Thermo-Electric Generator" }) @@ -11575,17 +11651,10 @@ /turf/open/floor/plasteel, /area/hydroponics/lobby) "aAv" = ( -/obj/structure/rack, /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/item/gun/energy/e_gun/advtaser{ - pixel_y = 6 - }, -/obj/item/gun/energy/e_gun/advtaser, -/obj/item/gun/energy/e_gun/advtaser{ - pixel_y = -6 - }, +/obj/machinery/vending/security, /turf/open/floor/plasteel, /area/security/brig) "aAw" = ( @@ -11613,7 +11682,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, +/turf/open/floor/engine, /area/engine/supermatter{ name = "Thermo-Electric Generator" }) @@ -12120,6 +12189,10 @@ dir = 1 }, /obj/effect/turf_decal/tile/bar, +/obj/machinery/door/poddoor/preopen{ + id = "briglockdown"; + name = "Brig Lockdown" + }, /turf/open/floor/plasteel, /area/security/main) "aBy" = ( @@ -12132,7 +12205,7 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /obj/machinery/camera{ @@ -12680,6 +12753,10 @@ }, /obj/effect/turf_decal/delivery, /obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/preopen{ + id = "briglockdown"; + name = "Brig Lockdown" + }, /turf/open/floor/plasteel, /area/security/prison) "aCI" = ( @@ -13571,10 +13648,10 @@ /turf/open/floor/plasteel, /area/hydroponics/lobby) "aEs" = ( -/obj/machinery/atmospherics/components/binary/valve{ +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/atmospherics/components/binary/valve/digital/on{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /turf/open/floor/plating, /area/maintenance/solars/port) "aEt" = ( @@ -13718,7 +13795,7 @@ /turf/open/floor/carpet, /area/chapel/main) "aEJ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-08" }, /turf/open/floor/wood, @@ -13756,7 +13833,7 @@ /turf/open/floor/wood, /area/crew_quarters/barbershop) "aEP" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /turf/open/floor/wood, /area/crew_quarters/barbershop) "aEQ" = ( @@ -14313,7 +14390,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, +/turf/open/floor/engine, /area/engine/supermatter{ name = "Thermo-Electric Generator" }) @@ -14335,7 +14412,9 @@ /turf/open/floor/plasteel, /area/storage/emergency/generic) "aFX" = ( -/obj/structure/filingcabinet, +/obj/machinery/computer/security/hos{ + dir = 4 + }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) "aFY" = ( @@ -14770,6 +14849,9 @@ c_tag = "Security - Head of Security's Office"; pixel_x = 22 }, +/obj/structure/chair/comfy/brown{ + dir = 8 + }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) "aGL" = ( @@ -15264,8 +15346,8 @@ }, /obj/item/stack/medical/gauze, /obj/item/reagent_containers/blood, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /obj/structure/extinguisher_cabinet{ pixel_x = -26 }, @@ -16259,8 +16341,9 @@ }, /obj/effect/turf_decal/tile/red, /obj/item/storage/belt/medical, -/obj/item/clothing/suit/space/hardsuit/medical, /obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/suit/space/eva/paramedic, +/obj/item/clothing/head/helmet/space/eva/paramedic, /turf/open/floor/plasteel/white, /area/medical/medbay/zone2{ name = "Medbay Treatment Center" @@ -16441,11 +16524,28 @@ /turf/open/floor/plasteel, /area/security/main) "aJV" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/closed/wall, -/area/security/prison) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) "aJW" = ( /obj/machinery/cryopod{ dir = 8 @@ -16733,7 +16833,7 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/machinery/flasher/portable, +/obj/machinery/rnd/production/techfab/department/security, /turf/open/floor/plasteel, /area/security/brig) "aKz" = ( @@ -16741,7 +16841,13 @@ /area/storage/emergency/generic) "aKA" = ( /obj/structure/table/wood, -/obj/item/storage/box/ids, +/obj/machinery/button/door{ + id = "bridge blast"; + name = "Bridge Blast Door Control"; + pixel_x = -6; + pixel_y = -3; + req_access_txt = "19" + }, /turf/open/floor/carpet/royalblue, /area/bridge) "aKB" = ( @@ -16804,7 +16910,6 @@ /obj/structure/table/wood, /obj/item/storage/toolbox/emergency, /obj/item/crowbar/red, -/obj/item/beacon, /turf/open/floor/carpet/royalblue, /area/bridge) "aKH" = ( @@ -16969,6 +17074,9 @@ icon_state = "0-2"; pixel_y = 1 }, +/obj/machinery/door/poddoor/preopen{ + id = "hos" + }, /turf/open/floor/plating, /area/crew_quarters/heads/hos) "aLb" = ( @@ -17073,7 +17181,7 @@ /area/security/brig) "aLl" = ( /obj/effect/turf_decal/delivery, -/obj/machinery/vending/autodrobe/all_access, +/obj/machinery/vending/autodrobe, /turf/open/floor/plasteel, /area/hallway/primary/port/fore) "aLm" = ( @@ -17200,7 +17308,7 @@ /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-06" }, /turf/open/floor/plasteel, @@ -17297,6 +17405,10 @@ "aLI" = ( /obj/structure/table/wood, /obj/item/storage/box/PDAs, +/obj/item/storage/box/ids{ + pixel_x = 3; + pixel_y = 3 + }, /turf/open/floor/carpet/royalblue, /area/bridge) "aLJ" = ( @@ -18256,7 +18368,7 @@ pixel_x = 22 }, /obj/machinery/power/apc/highcap/fifteen_k{ - areastring = "area/tcommsat/computer"; + areastring = "/area/tcommsat/server"; dir = 1; name = "Telecomms Server APC"; pixel_y = 24 @@ -18265,7 +18377,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/tcommsat/computer) +/area/tcommsat/server) "aND" = ( /turf/open/floor/plasteel/white, /area/medical{ @@ -18535,13 +18647,13 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/delivery, /obj/structure/window/reinforced/spawner, -/turf/open/floor/plasteel, +/turf/open/floor/engine, /area/engine/supermatter{ name = "Thermo-Electric Generator" }) "aOl" = ( /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, +/turf/open/floor/engine, /area/engine/supermatter{ name = "Thermo-Electric Generator" }) @@ -18594,7 +18706,7 @@ /obj/effect/turf_decal/delivery, /obj/item/extinguisher, /obj/structure/window/reinforced/spawner, -/turf/open/floor/plasteel, +/turf/open/floor/engine, /area/engine/supermatter{ name = "Thermo-Electric Generator" }) @@ -18608,7 +18720,7 @@ /obj/structure/sign/warning/securearea{ pixel_x = -32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_y = 3 }, @@ -18624,7 +18736,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /turf/open/floor/plasteel/dark/side{ dir = 1 }, @@ -18830,17 +18942,19 @@ /turf/open/floor/engine, /area/engine/gravity_generator) "aOQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4; + name = "cold loop to generator" }, -/turf/closed/wall/r_wall, +/turf/open/floor/engine, /area/engine/supermatter{ name = "Thermo-Electric Generator" }) "aOR" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/window/reinforced/spawner/east, -/turf/open/floor/engine, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/dark, /area/engine/supermatter{ name = "Thermo-Electric Generator" }) @@ -18889,7 +19003,8 @@ "aOY" = ( /obj/machinery/atmospherics/pipe/simple/supply/visible, /obj/structure/window/reinforced/spawner/west, -/turf/open/floor/engine, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/dark, /area/engine/supermatter{ name = "Thermo-Electric Generator" }) @@ -19318,7 +19433,7 @@ icon_state = "4-8" }, /turf/open/floor/plating/airless, -/area/space/nearstation) +/area/crew_quarters/fitness/cogpool) "aPS" = ( /obj/machinery/holopad, /turf/open/floor/plasteel/white, @@ -19337,6 +19452,10 @@ /obj/structure/cable{ icon_state = "0-2" }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, /turf/open/floor/plating, /area/bridge) "aPV" = ( @@ -19347,6 +19466,10 @@ /obj/structure/cable{ icon_state = "0-2" }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, /turf/open/floor/plating, /area/bridge) "aPW" = ( @@ -19357,6 +19480,10 @@ /obj/structure/cable{ icon_state = "0-8" }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, /turf/open/floor/plating, /area/bridge) "aPX" = ( @@ -19549,13 +19676,13 @@ /turf/open/floor/plating, /area/space/nearstation) "aQs" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 - }, /obj/machinery/firealarm{ dir = 1; pixel_y = -26 }, +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4 + }, /turf/open/floor/engine, /area/engine/supermatter{ name = "Thermo-Electric Generator" @@ -19727,7 +19854,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02" }, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ @@ -19840,7 +19967,6 @@ /area/hallway/secondary/service) "aRa" = ( /obj/structure/table/wood, -/obj/item/clothing/gloves/color/yellow, /obj/item/lighter, /obj/item/multitool{ pixel_x = 6 @@ -19964,7 +20090,6 @@ /area/hallway/secondary/civilian) "aRl" = ( /obj/structure/table/wood, -/obj/item/clothing/gloves/color/yellow, /obj/item/restraints/handcuffs, /obj/item/laser_pointer/blue, /obj/structure/cable{ @@ -20059,11 +20184,9 @@ /turf/open/space/basic, /area/space/nearstation) "aRw" = ( -/obj/vehicle/ridden/secway, /obj/machinery/firealarm{ pixel_y = 26 }, -/obj/item/key/security, /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hop) "aRx" = ( @@ -20160,7 +20283,7 @@ }, /obj/effect/turf_decal/stripes/line, /obj/structure/cable, -/turf/open/floor/plasteel, +/turf/open/floor/engine, /area/engine/supermatter{ name = "Thermo-Electric Generator" }) @@ -20283,7 +20406,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ @@ -20817,7 +20940,7 @@ /obj/machinery/firealarm{ pixel_y = 26 }, -/obj/machinery/atmospherics/components/binary/valve, +/obj/machinery/atmospherics/components/binary/valve/digital/on, /turf/open/floor/plating, /area/maintenance/aft/secondary{ name = "Aft Air Hookup" @@ -21082,6 +21205,10 @@ /obj/structure/cable{ icon_state = "0-2" }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, /turf/open/floor/plating, /area/bridge) "aTI" = ( @@ -21141,7 +21268,7 @@ name = "Station Intercom (Common)"; pixel_x = -26 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /turf/open/floor/plasteel, @@ -21231,8 +21358,9 @@ /area/security/courtroom) "aTZ" = ( /obj/machinery/door/firedoor, -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4; + name = "hot loop to space" }, /turf/open/floor/plating, /area/engine/engineering{ @@ -21684,7 +21812,7 @@ dir = 1 }, /obj/effect/turf_decal/tile/red, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /obj/machinery/airalarm{ @@ -22259,7 +22387,7 @@ /area/maintenance/department/eva) "aWr" = ( /obj/machinery/gateway{ - dir = 9 + dir = 10 }, /turf/open/floor/engine, /area/gateway) @@ -22654,16 +22782,7 @@ /area/maintenance/central) "aXe" = ( /obj/machinery/bookbinder, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/library) "aXf" = ( /obj/structure/window/reinforced/spawner/east, @@ -22682,7 +22801,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/library) "aXh" = ( /obj/machinery/atmospherics/pipe/simple/supply/visible{ @@ -22732,9 +22851,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "aXm" = ( -/obj/machinery/gateway{ - dir = 1 - }, +/obj/machinery/gateway, /turf/open/floor/engine, /area/gateway) "aXn" = ( @@ -22778,11 +22895,7 @@ /area/ai_monitored/storage/eva) "aXs" = ( /obj/machinery/gateway{ - dir = 5 - }, -/obj/machinery/camera{ - c_tag = "Research - Gateway Chamber"; - network = list("ss13","rd") + dir = 6 }, /turf/open/floor/engine, /area/gateway) @@ -22810,7 +22923,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-08" }, /turf/open/floor/plasteel/dark/side, @@ -22864,28 +22977,20 @@ dir = 1; light_color = "#e8eaff" }, -/obj/item/stack/sheet/mineral/bananium{ - amount = 50 - }, -/obj/structure/closet/crate{ - name = "bananium crate" - }, +/obj/structure/closet/crate/silvercrate, /turf/open/floor/plasteel/dark, /area/ai_monitored/nuke_storage) "aXE" = ( /obj/effect/turf_decal/bot_white, -/obj/item/ship_in_a_bottle, -/obj/structure/closet/crate, +/obj/structure/closet/crate/goldcrate, /turf/open/floor/plasteel/dark, /area/ai_monitored/nuke_storage) "aXF" = ( -/obj/effect/turf_decal/bot_white/left, -/obj/item/stack/tile/brass/fifty, -/obj/structure/closet/crate{ - name = "brass crate" +/obj/machinery/atmospherics/components/binary/valve/digital{ + name = "gas to hot loop" }, /turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) +/area/engine/teg_hot) "aXG" = ( /obj/machinery/disposal/bin, /obj/effect/turf_decal/tile/blue, @@ -23088,7 +23193,7 @@ /area/crew_quarters/fitness/cogpool) "aYc" = ( /obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/library) "aYd" = ( /obj/machinery/atmospherics/components/unary/tank/air, @@ -23281,7 +23386,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/atmospherics/pipe/simple/orange/hidden, @@ -23356,12 +23461,16 @@ /turf/open/floor/plasteel/grimy, /area/security/detectives_office) "aYG" = ( -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/light, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 }, /turf/open/floor/plasteel, -/area/library) +/area/hallway/primary/aft) "aYH" = ( /obj/effect/turf_decal/tile/yellow{ dir = 8 @@ -23380,7 +23489,7 @@ /obj/structure/extinguisher_cabinet{ pixel_y = -32 }, -/obj/item/paper/guides/cogstation/letter_sec, +/obj/item/paper/fluff/cogstation/secsolars, /turf/open/floor/plasteel, /area/security/main) "aYJ" = ( @@ -23729,7 +23838,6 @@ /obj/item/stack/spacecash/c1000, /obj/effect/turf_decal/bot_white/left, /obj/item/stack/sheet/mineral/diamond, -/obj/item/gun/ballistic/revolver/mateba, /obj/item/clothing/under/costume/soviet, /obj/item/clothing/suit/armor/vest/russian_coat, /obj/item/clothing/head/helmet/rus_helmet, @@ -23737,10 +23845,13 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/nuke_storage) "aZt" = ( -/obj/structure/closet/crate/necropolis/tendril, -/obj/effect/turf_decal/bot_white/right, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, /turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) "aZu" = ( /obj/machinery/blackbox_recorder, /obj/effect/turf_decal/bot_white, @@ -23797,7 +23908,7 @@ }, /obj/item/paper_bin, /obj/item/pen, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/lawoffice) "aZA" = ( /obj/structure/table/reinforced, @@ -23811,7 +23922,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/lawoffice) "aZB" = ( /obj/structure/disposalpipe/segment{ @@ -23833,7 +23944,7 @@ dir = 8 }, /obj/item/book/manual/wiki/security_space_law, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/lawoffice) "aZD" = ( /obj/structure/disposalpipe/segment{ @@ -23896,7 +24007,7 @@ dir = 1 }, /obj/effect/landmark/start/lawyer, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/lawoffice) "aZJ" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ @@ -23960,7 +24071,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/lawoffice) "aZO" = ( /obj/structure/disposalpipe/segment{ @@ -24124,10 +24235,10 @@ /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, /obj/effect/turf_decal/stripes/white/full, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/lawoffice) "bae" = ( -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/lawoffice) "baf" = ( /obj/effect/turf_decal/stripes/line{ @@ -24259,11 +24370,16 @@ /turf/open/floor/carpet, /area/crew_quarters/bar) "bau" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Aft Maintenance - Port"; + pixel_x = 22 }, -/turf/open/floor/plasteel, -/area/library) +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) "bav" = ( /obj/structure/chair/sofa/right, /obj/machinery/firealarm{ @@ -24285,14 +24401,13 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/library) "bay" = ( -/obj/effect/turf_decal/tile/yellow, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/library) "baz" = ( /obj/machinery/photocopier, @@ -24334,17 +24449,10 @@ /turf/open/floor/plasteel/dark, /area/security/checkpoint/customs) "baE" = ( -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /obj/structure/disposalpipe/segment{ dir = 9 }, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/library) "baF" = ( /obj/structure/chair/office/dark{ @@ -24541,19 +24649,12 @@ /turf/open/floor/plasteel, /area/ai_monitored/turret_protected/ai) "baX" = ( -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /obj/machinery/firealarm{ dir = 1; pixel_y = -26 }, /obj/structure/displaycase, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/library) "baY" = ( /obj/structure/disposalpipe/segment{ @@ -24670,7 +24771,7 @@ "bbm" = ( /obj/structure/chair/stool, /obj/effect/landmark/start/lawyer, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/lawoffice) "bbn" = ( /obj/machinery/light{ @@ -24685,7 +24786,7 @@ /obj/structure/closet/crate, /obj/item/book/manual/wiki/security_space_law, /obj/item/book/manual/wiki/security_space_law, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/lawoffice) "bbp" = ( /obj/structure/table/wood, @@ -24703,13 +24804,13 @@ /area/library) "bbr" = ( /obj/structure/filingcabinet/employment, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/lawoffice) "bbs" = ( /obj/structure/table/wood, /obj/item/camera, /obj/item/pen/red, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/lawoffice) "bbt" = ( /turf/open/floor/plasteel/white, @@ -24727,9 +24828,8 @@ /turf/open/floor/plating, /area/space/nearstation) "bbv" = ( -/obj/structure/lattice, /turf/open/space, -/area/space/nearstation) +/area/space) "bbw" = ( /obj/effect/turf_decal/tile/brown{ dir = 1 @@ -24993,7 +25093,7 @@ /turf/closed/wall/r_wall, /area/space/nearstation) "bcd" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /turf/open/floor/plasteel/white, @@ -25143,7 +25243,7 @@ name = "Aft Air Hookup" }) "bcv" = ( -/obj/machinery/atmospherics/components/binary/valve, +/obj/machinery/atmospherics/components/binary/valve/digital/on, /turf/open/floor/plating, /area/maintenance/aft/secondary{ name = "Aft Air Hookup" @@ -25198,7 +25298,7 @@ name = "Aft Air Hookup" }) "bcE" = ( -/obj/machinery/atmospherics/components/binary/valve{ +/obj/machinery/atmospherics/components/binary/valve/digital/on{ dir = 4 }, /turf/closed/wall/r_wall, @@ -25546,7 +25646,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/obj/machinery/portable_atmospherics/pump, /turf/open/floor/plasteel, /area/science/mixing) "bdu" = ( @@ -25830,14 +25929,6 @@ /turf/open/floor/plating, /area/security/courtroom/jury) "bec" = ( -/obj/structure/closet/crate/science, -/obj/item/stack/sheet/metal/ten, -/obj/item/stack/sheet/glass/five, -/obj/item/stack/rods/twentyfive, -/obj/item/target/syndicate, -/obj/item/target/alien, -/obj/item/target, -/obj/item/target/clown, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 10 }, @@ -25863,11 +25954,6 @@ /area/science/test_area) "beg" = ( /obj/effect/turf_decal/bot_white, -/obj/structure/closet/crate, -/obj/item/clothing/suit/space/hardsuit/ert{ - desc = "A suit used by Nanotrasen Special Operatives."; - name = "NT-SO suit" - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/nuke_storage) "beh" = ( @@ -25877,9 +25963,13 @@ /turf/open/floor/plating/airless, /area/science/test_area) "bei" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on, -/turf/open/floor/engine/vacuum, -/area/science/mixing) +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) "bej" = ( /turf/open/floor/plasteel, /area/quartermaster/sorting) @@ -25899,12 +25989,14 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bem" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/manifold/general/hidden{ - dir = 8 +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4; + name = "hot loop to generator" }, -/turf/open/floor/plating, -/area/science/mixing) +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) "ben" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -25930,15 +26022,18 @@ name = "Research Director's Office APC"; pixel_x = -24 }, +/obj/item/reagent_containers/food/snacks/muffin/berry, /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hor) "beq" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/manifold/general/hidden{ - dir = 4 +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4; + name = "generator to cold loop" }, -/turf/open/floor/plating, -/area/science/mixing) +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) "ber" = ( /obj/effect/turf_decal/delivery, /obj/structure/disposalpipe/segment, @@ -26052,15 +26147,21 @@ /obj/machinery/light{ dir = 4 }, -/turf/open/floor/engine, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/engine/supermatter{ name = "Thermo-Electric Generator" }) "beI" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/turf/open/floor/plating, -/area/science/mixing) +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) "beJ" = ( /turf/open/floor/plasteel, /area/hallway/primary/central) @@ -26286,11 +26387,15 @@ /turf/open/floor/plating, /area/maintenance/department/security) "bfn" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber{ - dir = 4 +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4; + name = "cold loop to space" }, -/turf/open/floor/engine/vacuum, -/area/science/mixing) +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) "bfo" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 @@ -26396,6 +26501,7 @@ dir = 1 }, /obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on, /turf/open/floor/plating, /area/crew_quarters/fitness/cogpool) "bfz" = ( @@ -26653,21 +26759,24 @@ /turf/open/floor/plasteel, /area/quartermaster/sorting) "bga" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/hallway/primary/aft"; + dir = 1; + name = "Aft Primary Hallway APC"; + pixel_x = 1; + pixel_y = 24 }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 }, -/turf/open/floor/plasteel, -/area/science/mixing) +/turf/open/floor/plating, +/area/maintenance/aft) "bgb" = ( /obj/structure/disposalpipe/sorting/mail{ sortType = 30 @@ -26716,7 +26825,6 @@ "bgh" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/violet/hidden{ - icon_state = "pipe11-2"; dir = 6 }, /turf/open/space/basic, @@ -26930,19 +27038,14 @@ /turf/open/floor/plasteel, /area/science/mixing) "bgD" = ( -/obj/machinery/atmospherics/components/binary/valve, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 +/obj/machinery/light{ + dir = 1; + light_color = "#c1caff" }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/mixing) +/obj/item/target, +/obj/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/science/test_area) "bgE" = ( /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -26999,8 +27102,8 @@ /area/quartermaster/warehouse) "bgJ" = ( /obj/machinery/portable_atmospherics/pump, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 }, /turf/open/floor/plating, /area/crew_quarters/fitness/cogpool) @@ -27321,16 +27424,16 @@ /turf/open/floor/wood, /area/medical/medbay/lobby) "bhy" = ( -/obj/machinery/atmospherics/components/binary/pump, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 +/obj/structure/closet/crate/science, +/obj/item/stack/sheet/metal/ten, +/obj/item/stack/sheet/glass/five, +/obj/item/stack/rods/twentyfive, +/obj/item/target/syndicate, +/obj/item/target/alien, +/obj/item/target, +/obj/item/target/clown, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 }, /turf/open/floor/plasteel, /area/science/mixing) @@ -27342,13 +27445,16 @@ /turf/open/floor/plasteel, /area/security/courtroom) "bhA" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/delivery, -/obj/structure/disposalpipe/trunk{ - dir = 4 +/obj/item/stack/cable_coil/red, +/obj/item/multitool, +/obj/item/wrench, +/obj/item/stack/sheet/metal/five{ + pixel_x = 6; + pixel_y = -6 }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) +/obj/item/paper/fluff/cogstation/letter_arrd, +/turf/open/floor/plating, +/area/maintenance/disposal) "bhB" = ( /obj/structure/table/wood, /obj/item/stack/packageWrap, @@ -27463,7 +27569,7 @@ dir = 1 }, /obj/structure/disposalpipe/segment, -/obj/item/twohanded/required/kirbyplants/dead, +/obj/item/kirbyplants/dead, /turf/open/floor/plasteel, /area/security/main) "bhO" = ( @@ -27498,7 +27604,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_y = 3 }, @@ -27679,6 +27785,10 @@ /obj/structure/cable{ icon_state = "0-2" }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, /turf/open/floor/plating, /area/bridge) "bil" = ( @@ -27695,10 +27805,6 @@ /turf/open/floor/plating, /area/quartermaster/storage) "bim" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 1 - }, -/obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) "bin" = ( @@ -27918,7 +28024,7 @@ dir = 4; light_color = "#c1caff" }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-20"; pixel_y = 3 }, @@ -27995,27 +28101,16 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "biT" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, +/obj/machinery/pipedispenser, /turf/open/floor/plasteel, /area/science/mixing) "biU" = ( -/obj/machinery/gateway{ - dir = 10 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/engine, -/area/gateway) +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) "biV" = ( /turf/closed/wall, /area/storage/primary) @@ -28222,7 +28317,6 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hor) "bjt" = ( -/obj/item/reagent_containers/food/snacks/muffin/berry, /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hor) "bju" = ( @@ -28343,6 +28437,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/item/paper/guides/cogstation/letter_atmos, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -28450,7 +28545,7 @@ /turf/open/floor/plasteel, /area/quartermaster/warehouse) "bjN" = ( -/obj/machinery/vending/autodrobe/all_access, +/obj/machinery/vending/autodrobe, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/quartermaster/office) @@ -28813,6 +28908,10 @@ /obj/structure/cable{ icon_state = "0-4" }, +/obj/machinery/door/poddoor/preopen{ + id = "capblast"; + name = "blast door" + }, /turf/open/floor/plating, /area/crew_quarters/heads/captain) "bkD" = ( @@ -28857,7 +28956,7 @@ dir = 4; light_color = "#c1caff" }, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /obj/item/stock_parts/cell/high/plus, /obj/item/clothing/glasses/meson, /obj/item/cartridge/atmos, @@ -29286,15 +29385,7 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/item/surgical_drapes, -/obj/item/scalpel, -/obj/item/circular_saw{ - pixel_y = 16 - }, -/obj/item/hemostat, -/obj/item/retractor, -/obj/item/surgicaldrill, -/obj/item/cautery, +/obj/item/storage/backpack/duffelbag/med/surgery, /turf/open/floor/plasteel/white, /area/medical/medbay/zone2{ name = "Medbay Treatment Center" @@ -29513,9 +29604,12 @@ /turf/closed/wall/r_wall, /area/science/mixing) "blU" = ( -/obj/machinery/gateway, -/turf/open/floor/engine, -/area/gateway) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/closet/cardboard, +/turf/open/floor/plating, +/area/maintenance/aft) "blV" = ( /obj/machinery/computer/cargo{ dir = 8 @@ -29842,21 +29936,12 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bmE" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/mixing) +/turf/closed/wall/r_wall, +/area/gateway) "bmF" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -29867,9 +29952,6 @@ /turf/closed/wall, /area/crew_quarters/fitness/cogpool) "bmG" = ( -/obj/machinery/gateway{ - dir = 6 - }, /turf/open/floor/engine, /area/gateway) "bmH" = ( @@ -30251,21 +30333,12 @@ /turf/open/floor/plasteel, /area/quartermaster/sorting) "bnj" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'BOMB RANGE"; + name = "BOMB RANGE" }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/mixing) +/turf/closed/wall, +/area/science/test_area) "bnk" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer, /obj/machinery/light{ @@ -30275,11 +30348,11 @@ /turf/open/floor/plasteel, /area/science/mixing) "bnl" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4 +/obj/machinery/gateway{ + dir = 9 }, -/turf/open/floor/engine/vacuum, -/area/science/mixing) +/turf/open/floor/engine, +/area/gateway) "bnm" = ( /obj/machinery/atmospherics/pipe/manifold/orange/hidden{ dir = 4 @@ -30539,7 +30612,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bnQ" = ( -/obj/machinery/atmospherics/components/binary/valve, +/obj/machinery/atmospherics/components/binary/valve/digital/on, /turf/closed/wall/r_wall, /area/maintenance/aft/secondary{ name = "Aft Air Hookup" @@ -31012,9 +31085,6 @@ /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "boQ" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 - }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 4 @@ -31637,8 +31707,14 @@ }, /area/hallway/secondary/exit) "bqq" = ( -/turf/closed/wall, -/area/science/robotics/lab) +/obj/machinery/chem_master, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/camera{ + c_tag = "Medbay - Chemistry Lab"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel, +/area/medical/chemistry) "bqr" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -31650,10 +31726,15 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bqs" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, /turf/open/floor/plating, -/area/science/robotics/lab) +/area/maintenance/aft) "bqt" = ( /obj/structure/table, /obj/effect/turf_decal/tile/red{ @@ -31667,7 +31748,6 @@ /obj/item/clothing/mask/surgical, /obj/item/healthanalyzer, /obj/item/clothing/neck/stethoscope, -/obj/item/razor, /turf/open/floor/plasteel/white, /area/medical/medbay/zone2{ name = "Medbay Treatment Center" @@ -31732,16 +31812,8 @@ /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "bqz" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/machinery/light, -/obj/structure/disposalpipe/junction/flip{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) +/turf/closed/wall, +/area/medical/chemistry) "bqA" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -31821,7 +31893,6 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, -/obj/machinery/portable_atmospherics/pump, /turf/open/floor/plasteel, /area/science/mixing) "bqJ" = ( @@ -32231,9 +32302,26 @@ /turf/open/floor/plasteel, /area/hallway/secondary/civilian) "brz" = ( -/obj/machinery/computer/rdconsole/robotics, -/turf/open/floor/circuit, -/area/science/robotics/lab) +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/science/research"; + name = "Research Sector APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) "brA" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -32291,14 +32379,14 @@ /turf/open/floor/plasteel, /area/hallway/secondary/civilian) "brF" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/stripes/white/full, -/obj/effect/turf_decal/stripes/line, -/obj/structure/disposalpipe/trunk{ - dir = 1 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chem1"; + name = "chem lab shutters" }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/medical/chemistry) "brG" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -32313,13 +32401,9 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) "brH" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/medical/chemistry) "brI" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -32337,32 +32421,26 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "brJ" = ( -/obj/machinery/vending/assist, -/obj/machinery/light/small{ - dir = 1; - light_color = "#ffc1c1" +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/door/airlock/maintenance{ + name = "Chemistry Maintenance"; + req_access_txt = "5; 33" + }, +/turf/open/floor/plating, +/area/medical/chemistry) "brK" = ( -/obj/structure/closet/crate/medical, -/obj/item/storage/firstaid/regular{ - empty = 1; - name = "First-Aid (empty)" +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/chem_dispenser, +/obj/machinery/airalarm{ + pixel_y = 24 }, -/obj/item/storage/firstaid/regular{ - empty = 1; - name = "First-Aid (empty)" - }, -/obj/item/storage/firstaid/regular{ - empty = 1; - name = "First-Aid (empty)" - }, -/obj/item/healthanalyzer, -/obj/item/healthanalyzer, -/obj/item/healthanalyzer, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, -/area/science/robotics/lab) +/area/medical/chemistry) "brL" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -32521,7 +32599,7 @@ /turf/open/floor/plasteel, /area/maintenance/disposal) "brZ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02" }, /turf/open/floor/wood, @@ -32791,7 +32869,6 @@ "bsz" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/violet/hidden{ - icon_state = "pipe11-2"; dir = 4 }, /turf/open/space/basic, @@ -32842,14 +32919,14 @@ /turf/open/floor/grass, /area/hydroponics) "bsG" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/sign/poster/contraband/borg_fancy_2{ + pixel_y = 32 }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-03" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) +/turf/open/floor/plasteel, +/area/maintenance/aft) "bsH" = ( /obj/structure/table/glass, /obj/item/storage/box/syringes{ @@ -32887,21 +32964,41 @@ /turf/open/floor/grass, /area/hydroponics) "bsL" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/effect/landmark/start/roboticist, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/structure/table, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/reagentgrinder{ + pixel_y = 8 + }, +/obj/item/storage/box/syringes, +/obj/item/storage/box/beakers{ + pixel_x = -2; + pixel_y = -2 + }, +/turf/open/floor/plasteel, +/area/medical/chemistry) "bsM" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/dark, +/turf/closed/wall, /area/science/robotics/lab) "bsN" = ( +/obj/structure/table, /obj/effect/turf_decal/stripes/line, -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/machinery/light{ + dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/cable_coil/random, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/screwdriver{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/medical/chemistry) "bsO" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -32909,20 +33006,22 @@ /turf/closed/wall/r_wall, /area/hallway/secondary/civilian) "bsP" = ( -/obj/effect/turf_decal/stripes/corner{ +/obj/structure/disposalpipe/trunk{ dir = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/stripes/white/full, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/medical/chemistry) "bsQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/stripes/line{ + dir = 6 }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel, +/area/medical/chemistry) "bsR" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/grimy, @@ -32937,15 +33036,13 @@ "bsT" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/violet/hidden{ - icon_state = "pipe11-2"; dir = 10 }, /turf/open/space/basic, /area/space/nearstation) "bsU" = ( -/obj/effect/landmark/start/roboticist, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/dark, /area/science/robotics/lab) "bsV" = ( /turf/closed/wall, @@ -33083,18 +33180,27 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "btn" = ( -/obj/machinery/computer/mech_bay_power_console, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"bto" = ( -/turf/open/floor/mech_bay_recharge_floor, -/area/science/robotics/lab) -"btp" = ( -/obj/machinery/mech_bay_recharge_port{ - dir = 8 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics"; + name = "robotics lab shutters" }, /turf/open/floor/plating, /area/science/robotics/lab) +"bto" = ( +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"btp" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "btq" = ( /obj/machinery/vending/cigarette, /obj/effect/decal/cleanable/dirt, @@ -33108,17 +33214,22 @@ /turf/open/floor/plasteel, /area/hallway/secondary/civilian) "btr" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/components/binary/valve/digital/on{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/department/chapel) "bts" = ( -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/effect/decal/cleanable/dirt, +/obj/structure/light_construct/small{ + icon_state = "bulb-construct-stage1"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) "btt" = ( /obj/structure/chair{ dir = 8 @@ -33148,12 +33259,12 @@ /turf/closed/wall, /area/hallway/secondary/civilian) "btv" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/belt/utility, -/obj/item/stack/cable_coil/random, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/aft) "btw" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -33371,16 +33482,16 @@ /turf/open/floor/plating, /area/router) "bua" = ( -/obj/machinery/camera{ - c_tag = "Robotics Backroom"; - dir = 8; - network = list("ss13","medbay"); - pixel_y = -22 +/obj/effect/turf_decal/tile/purple{ + dir = 1 }, -/obj/structure/sign/poster/contraband/borg_fancy_2{ - pixel_x = 32 +/obj/effect/turf_decal/tile/purple{ + dir = 4 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/side, /area/science/robotics/lab) "bub" = ( /obj/effect/turf_decal/tile/yellow, @@ -33435,11 +33546,9 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "buj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/maintenance/aft) "buk" = ( /obj/structure/cable{ icon_state = "1-2" @@ -33454,15 +33563,9 @@ /turf/open/floor/plating, /area/router) "bul" = ( -/obj/machinery/light_switch{ - pixel_x = 24 - }, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/aft) "bum" = ( /obj/structure/closet/crate, /obj/effect/spawner/lootdrop/maintenance, @@ -33671,6 +33774,13 @@ /obj/structure/cable{ icon_state = "2-4" }, +/obj/machinery/button/door{ + id = "capblast"; + name = "Window Blast Door Control"; + pixel_x = -6; + pixel_y = -3; + req_access_txt = "19" + }, /turf/open/floor/carpet/blue, /area/crew_quarters/heads/captain) "buN" = ( @@ -33683,6 +33793,10 @@ /obj/structure/cable{ icon_state = "0-8" }, +/obj/machinery/door/poddoor/preopen{ + id = "capblast"; + name = "blast door" + }, /turf/open/floor/plating, /area/crew_quarters/heads/captain) "buP" = ( @@ -33824,7 +33938,7 @@ /turf/open/floor/plating, /area/construction) "bvf" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/carpet{ @@ -34079,11 +34193,11 @@ /turf/open/floor/carpet/green, /area/crew_quarters/heads/hop) "bvK" = ( -/obj/structure/table/optable, -/obj/item/tank/internals/anesthetic, -/obj/item/clothing/mask/breath, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) "bvL" = ( /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ @@ -34108,7 +34222,7 @@ /turf/open/floor/plasteel, /area/quartermaster/warehouse) "bvN" = ( -/obj/machinery/atmospherics/components/binary/valve{ +/obj/machinery/atmospherics/components/binary/valve/digital/on{ dir = 4 }, /turf/closed/wall, @@ -34261,9 +34375,11 @@ /turf/open/floor/plating, /area/maintenance/department/chapel) "bwf" = ( -/obj/machinery/computer/operating, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) "bwg" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -34381,7 +34497,9 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/autolathe, +/obj/machinery/autolathe/secure{ + name = "public autolathe" + }, /turf/open/floor/plating, /area/maintenance/disposal) "bwt" = ( @@ -34563,11 +34681,15 @@ name = "Engine Room" }) "bwK" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 +/obj/machinery/camera{ + c_tag = "Research - Gateway Chamber"; + network = list("ss13","rd") }, -/turf/open/floor/engine/vacuum, -/area/science/mixing) +/obj/machinery/gateway{ + dir = 1 + }, +/turf/open/floor/engine, +/area/gateway) "bwL" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/disposalpipe/segment{ @@ -34576,11 +34698,11 @@ /turf/open/floor/plating, /area/router) "bwM" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 +/obj/machinery/gateway{ + dir = 5 }, -/turf/open/floor/engine/vacuum, -/area/science/mixing) +/turf/open/floor/engine, +/area/gateway) "bwN" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 @@ -34940,15 +35062,19 @@ }, /area/maintenance/disposal) "bxz" = ( -/obj/item/stack/cable_coil/red, -/obj/item/multitool, -/obj/item/wrench, -/obj/item/stack/sheet/metal/five{ - pixel_x = 6; - pixel_y = -6 +/obj/effect/turf_decal/tile/yellow{ + dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/disposal) +/obj/machinery/computer/station_alert, +/obj/structure/sign/poster/official/safety_eye_protection{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/paper/guides/cogstation/letter_eng, +/turf/open/floor/plasteel, +/area/engine/break_room) "bxA" = ( /obj/machinery/announcement_system, /turf/open/floor/plasteel/dark, @@ -35241,7 +35367,6 @@ /turf/open/floor/carpet/green, /area/crew_quarters/heads/hop) "bye" = ( -/obj/structure/safe/floor, /obj/effect/turf_decal/tile/green, /obj/effect/turf_decal/tile/green{ dir = 1 @@ -35252,8 +35377,7 @@ /obj/effect/turf_decal/tile/green{ dir = 4 }, -/obj/item/radio/headset/headset_cent, -/obj/item/radio/headset/headset_cent, +/obj/machinery/photocopier, /turf/open/floor/plasteel, /area/science/server{ name = "Computer Core" @@ -35386,12 +35510,17 @@ /turf/open/floor/plating, /area/maintenance/starboard/central) "byw" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -28 +/obj/machinery/airalarm{ + pixel_y = 24 }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) "byx" = ( /obj/machinery/telecomms/processor/preset_three, /turf/open/floor/circuit/telecomms/mainframe, @@ -35421,9 +35550,25 @@ /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) "byD" = ( -/obj/effect/landmark/start/roboticist, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/machinery/camera{ + c_tag = "Medbay - Lobby"; + network = list("ss13","rd") + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) "byE" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -35809,13 +35954,23 @@ /turf/open/floor/plasteel/white, /area/gateway) "bzA" = ( -/obj/structure/cable{ - icon_state = "0-2" +/obj/machinery/power/apc{ + areastring = "/area/medical/chemistry"; + dir = 1; + name = "Chemistry APC"; + pixel_y = 24 }, -/turf/closed/wall, -/area/science/research{ - name = "Research Sector" - }) +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "bzB" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 6 @@ -35858,11 +36013,14 @@ /turf/open/floor/plating, /area/router) "bzG" = ( -/obj/machinery/light{ - dir = 8 +/obj/effect/turf_decal/tile/yellow{ + dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "bzH" = ( /obj/structure/disposalpipe/segment, /obj/structure/grille/broken, @@ -35877,11 +36035,25 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bzJ" = ( -/obj/structure/sign/warning/biohazard, -/turf/closed/wall, -/area/science/robotics/lab) +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) "bzK" = ( -/obj/machinery/disposal/bin, +/obj/machinery/disposal/bin{ + name = "Chapel Corpse Delivery" + }, /obj/structure/disposalpipe/trunk{ dir = 1 }, @@ -36257,16 +36429,17 @@ name = "Medbay Treatment Center" }) "bAz" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/floor/engine/vacuum, -/area/science/mixing) +/obj/machinery/gateway{ + dir = 8 + }, +/turf/open/floor/engine, +/area/gateway) "bAA" = ( /obj/structure/lattice, /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/violet/hidden{ - icon_state = "pipe11-2"; dir = 10 }, /turf/open/space/basic, @@ -36280,30 +36453,65 @@ /turf/open/floor/plasteel, /area/quartermaster/sorting) "bAC" = ( -/obj/machinery/recharge_station, -/obj/effect/turf_decal/stripes/line{ - dir = 9 +/obj/effect/turf_decal/tile/yellow{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "bAD" = ( -/obj/machinery/recharge_station, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/obj/machinery/door/window/eastleft{ + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "bAE" = ( -/obj/effect/turf_decal/stripes/line{ +/obj/structure/disposalpipe/segment, +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "chem1"; + name = "Shutters Control Button"; + pixel_x = -8; + pixel_y = 24; + req_access_txt = "29" + }, +/obj/effect/landmark/start/chemist, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/effect/landmark/start/ai/secondary, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/obj/structure/extinguisher_cabinet{ + pixel_x = 5; + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "bAF" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/science/mixing) +/obj/machinery/gateway/centerstation, +/turf/open/floor/engine, +/area/gateway) "bAG" = ( /obj/machinery/atmospherics/components/binary/valve{ dir = 4 @@ -36360,6 +36568,7 @@ name = "Chief Medical Officer's Office APC"; pixel_y = 24 }, +/mob/living/simple_animal/pet/cat/Runtime, /turf/open/floor/plasteel/white, /area/crew_quarters/heads/cmo) "bAK" = ( @@ -36383,11 +36592,11 @@ name = "Medbay Treatment Center" }) "bAN" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 1 +/obj/machinery/gateway{ + dir = 4 }, -/turf/open/floor/engine/vacuum, -/area/science/mixing) +/turf/open/floor/engine, +/area/gateway) "bAO" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ dir = 4 @@ -36396,9 +36605,6 @@ /turf/open/floor/plasteel, /area/maintenance/department/chapel) "bAP" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -36651,12 +36857,24 @@ /turf/open/floor/plating, /area/maintenance/disposal) "bBs" = ( -/obj/machinery/aug_manipulator, -/obj/effect/turf_decal/stripes/line{ - dir = 5 +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "bBt" = ( /obj/structure/cable{ icon_state = "4-8" @@ -36839,12 +37057,25 @@ name = "Power Monitoring" }) "bBP" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/door/window/eastright{ + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/turf/open/floor/plasteel/white, /area/medical/chemistry) "bBQ" = ( -/turf/closed/wall, -/area/medical/chemistry) +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) "bBR" = ( /obj/structure/cable{ icon_state = "0-8" @@ -36949,7 +37180,10 @@ /obj/machinery/light{ dir = 8 }, -/turf/open/floor/engine, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/engine/supermatter{ name = "Thermo-Electric Generator" }) @@ -36992,11 +37226,27 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hop) "bCf" = ( -/obj/structure/sign/warning/fire, -/turf/closed/wall/r_wall, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/landmark/start/chemist, +/turf/open/floor/plasteel/white, /area/medical/chemistry) "bCg" = ( -/turf/closed/wall/r_wall, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/landmark/start/chemist, +/turf/open/floor/plasteel/white, /area/medical/chemistry) "bCh" = ( /obj/effect/spawner/structure/window/reinforced, @@ -37023,10 +37273,10 @@ /turf/closed/wall, /area/maintenance/disposal) "bCl" = ( -/obj/machinery/atmospherics/components/binary/valve{ +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/atmospherics/components/binary/valve/digital/on{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /turf/open/floor/plating, /area/maintenance/department/eva) "bCm" = ( @@ -37276,7 +37526,7 @@ c_tag = "Central Plaza - Legal Desk"; dir = 1 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/lawoffice) "bCT" = ( /obj/structure/window/reinforced/spawner/north, @@ -37320,9 +37570,21 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bCY" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/science/robotics/lab) +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "bCZ" = ( /obj/machinery/conveyor{ dir = 8; @@ -37403,7 +37665,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/effect/decal/cleanable/dirt, -/obj/item/pipe_meter, +/obj/machinery/meter, /turf/open/floor/plating, /area/maintenance/department/chapel) "bDk" = ( @@ -37487,7 +37749,7 @@ /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 }, -/obj/item/pipe_meter, +/obj/machinery/meter, /turf/closed/wall/r_wall, /area/crew_quarters/kitchen/backroom) "bDs" = ( @@ -37714,13 +37976,9 @@ /turf/open/floor/plasteel/stairs, /area/crew_quarters/bar) "bDT" = ( -/obj/machinery/chem_heater, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/medical/chemistry) +/obj/machinery/mecha_part_fabricator, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bDU" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/hidden, /obj/effect/spawner/structure/window/reinforced, @@ -38486,8 +38744,12 @@ "bFu" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics"; + name = "robotics lab shutters" + }, /turf/open/floor/plating, -/area/medical/chemistry) +/area/science/robotics/lab) "bFv" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -38507,18 +38769,33 @@ }, /obj/structure/cable, /obj/machinery/power/apc{ - areastring = "area/science/xenobiology"; + areastring = "/area/science/xenobiology"; name = "Xenobiology Lab APC"; pixel_y = -24 }, /turf/open/floor/plasteel, /area/science/xenobiology) "bFx" = ( -/obj/machinery/chem_dispenser, -/obj/effect/turf_decal/stripes/line, -/obj/item/reagent_containers/glass/beaker/large, -/turf/open/floor/plasteel, -/area/medical/chemistry) +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = 1 + }, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = 1 + }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/machinery/requests_console{ + department = "Robotics"; + departmentType = 2; + name = "Robotics RC"; + pixel_y = 31; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bFy" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ @@ -38546,33 +38823,22 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bFB" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 +/obj/structure/bodycontainer/morgue{ + dir = 2 }, -/obj/effect/turf_decal/stripes/white/full, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bFC" = ( /obj/structure/table, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/machinery/firealarm{ - pixel_y = 26 - }, -/obj/item/storage/fancy/donut_box, -/obj/item/storage/box/beakers, -/obj/item/clothing/glasses/science, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/item/mmi, +/obj/item/mmi, +/obj/item/mmi, +/obj/item/storage/box/bodybags, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bFD" = ( /obj/structure/disposaloutlet{ dir = 4 @@ -38584,9 +38850,18 @@ /turf/open/floor/plasteel, /area/quartermaster/sorting) "bFE" = ( -/obj/machinery/smoke_machine, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/structure/table/glass, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/reagent_containers/glass/beaker/large, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/dropper, +/turf/open/floor/plasteel/white, /area/medical/chemistry) "bFF" = ( /obj/machinery/light_switch{ @@ -38598,8 +38873,8 @@ /turf/open/floor/plating, /area/storage/tech) "bFG" = ( -/obj/structure/sign/departments/chemistry, -/turf/closed/wall, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, /area/medical/chemistry) "bFH" = ( /obj/machinery/power/apc{ @@ -38755,7 +39030,7 @@ /turf/open/floor/wood, /area/crew_quarters/fitness) "bFR" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-08" }, /turf/open/floor/wood, @@ -38865,20 +39140,9 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bFZ" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/machinery/light_switch{ - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - dir = 1 - }, +/obj/machinery/chem_heater, /turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/area/medical/chemistry) "bGa" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/dark, @@ -39221,7 +39485,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-20"; pixel_y = 3 }, @@ -39566,7 +39830,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /turf/open/floor/plasteel, @@ -39582,7 +39846,6 @@ /area/maintenance/solars/starboard/aft) "bHA" = ( /obj/machinery/atmospherics/pipe/simple/violet/hidden{ - icon_state = "pipe11-2"; dir = 5 }, /turf/closed/wall/r_wall, @@ -39592,53 +39855,26 @@ /turf/open/floor/plating, /area/crew_quarters/locker) "bHC" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/machinery/firealarm{ - pixel_y = 26 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 +/obj/effect/turf_decal/tile/yellow{ + dir = 8 }, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/area/medical/chemistry) "bHD" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/maintenance/aft) "bHE" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - dir = 1 +/obj/effect/turf_decal/tile/yellow{ + dir = 8 }, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/area/medical/chemistry) "bHF" = ( /obj/structure/table/reinforced, /obj/item/assembly/timer{ @@ -39660,27 +39896,11 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "bHG" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Medbay - Starboard"; - network = list("ss13","rd") - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/maintenance/aft) "bHH" = ( /obj/structure/table, /obj/machinery/recharger, @@ -39695,30 +39915,15 @@ }, /area/gateway) "bHI" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/area/medical/medbay/lobby) "bHJ" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 10 +/obj/item/kirbyplants{ + icon_state = "plant-03" }, /turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/area/medical/medbay/lobby) "bHK" = ( /obj/structure/sign/warning/biohazard, /turf/closed/wall, @@ -39740,7 +39945,6 @@ /area/maintenance/solars/starboard/aft) "bHO" = ( /obj/machinery/atmospherics/pipe/simple/violet/hidden{ - icon_state = "pipe11-2"; dir = 8 }, /turf/closed/wall/r_wall, @@ -39835,52 +40039,40 @@ /obj/structure/disposalpipe/junction{ dir = 8 }, -/turf/open/floor/plating, -/area/medical/chemistry) -"bId" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 4 +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics"; + name = "robotics lab shutters" }, +/turf/open/floor/plating, +/area/science/robotics/lab) +"bId" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel/dark/side{ + dir = 9 + }, +/area/science/robotics/lab) +"bIe" = ( /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/obj/effect/turf_decal/tile/yellow{ +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plasteel/dark/side{ dir = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/mob/living/simple_animal/bot/firebot, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bIe" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/area/science/robotics/lab) "bIf" = ( /obj/effect/turf_decal/tile/purple{ - dir = 4 + dir = 8 }, -/obj/effect/landmark/start/chemist, -/obj/effect/turf_decal/tile/yellow{ +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/dark/side{ dir = 1 }, -/obj/structure/chair/office/light{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/area/science/robotics/lab) "bIg" = ( /obj/structure/table, /obj/effect/turf_decal/tile/purple{ @@ -39898,32 +40090,23 @@ name = "Research Sector" }) "bIh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bIi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bIj" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bIk" = ( /obj/machinery/smartfridge/chemistry/preloaded, /turf/closed/wall, /area/medical/chemistry) +"bIj" = ( +/obj/machinery/door/window/southright, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bIk" = ( +/turf/closed/wall/r_wall, +/area/science/robotics/lab) "bIl" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -40002,15 +40185,15 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bIt" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/purple{ - dir = 4 +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 5 +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, /turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/area/medical/chemistry) "bIu" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical{ @@ -40144,17 +40327,24 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "bIL" = ( -/obj/structure/closet/l3closet/scientist, -/obj/effect/turf_decal/tile/purple{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/chemistry) "bIM" = ( -/turf/open/floor/plasteel/white, +/obj/machinery/shower{ + desc = "The HS-451. Standard Nanotrasen Hygiene Division design, although it looks like this one was installed more recently."; + dir = 8; + name = "emergency shower"; + pixel_y = -4 + }, +/obj/structure/window/reinforced/spawner/north, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, /area/medical/chemistry) "bIN" = ( /obj/structure/disposalpipe/segment{ @@ -40333,15 +40523,9 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bJd" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "bJe" = ( /obj/structure/closet/secure_closet/personal/patient, /obj/effect/turf_decal/tile/blue, @@ -40356,20 +40540,14 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bJf" = ( -/obj/structure/closet/secure_closet/personal/patient, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/purple{ - dir = 8 +/obj/machinery/door/airlock/maintenance{ + name = "Chemistry Maintenance"; + req_access_txt = "5; 33" }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/window/reinforced/spawner, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/medical/chemistry) "bJg" = ( /obj/structure/table, /obj/effect/turf_decal/tile/red{ @@ -40434,7 +40612,7 @@ name = "Information Office APC"; pixel_y = 24 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/lawoffice) "bJn" = ( /obj/structure/table, @@ -40571,27 +40749,48 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bJC" = ( -/obj/effect/turf_decal/tile/purple{ +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/machinery/button/door{ + id = "robotics2"; + name = "Shutters Control Button"; + pixel_x = 24; + pixel_y = -24; + req_access_txt = "29" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bJD" = ( -/obj/machinery/chem_heater, -/obj/effect/turf_decal/stripes/line{ - dir = 9 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/medical/chemistry) +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bJE" = ( -/obj/machinery/chem_dispenser, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10; + pixel_x = -5 }, -/obj/item/reagent_containers/glass/beaker/large, -/turf/open/floor/plasteel, -/area/medical/chemistry) +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/stack/cable_coil/random{ + pixel_x = 2; + pixel_y = 2 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bJF" = ( /obj/effect/turf_decal/tile/purple{ dir = 1 @@ -40624,8 +40823,12 @@ /area/hallway/primary/central) "bJH" = ( /obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics2"; + name = "robotics lab shutters" + }, /turf/open/floor/plating, -/area/medical/chemistry) +/area/science/robotics/lab) "bJI" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -40655,9 +40858,9 @@ /area/medical/medbay/central) "bJM" = ( /obj/machinery/camera/preset/toxins{ - dir = 4; - network = list("rd","toxins","ss13") + dir = 4 }, +/obj/item/target, /turf/open/floor/plating/airless, /area/science/test_area) "bJN" = ( @@ -40797,30 +41000,47 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "bKd" = ( -/obj/structure/closet/bombcloset, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bKe" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bKf" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, /obj/effect/turf_decal/tile/purple{ dir = 4 }, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "robotics"; + name = "Shutters Control Button"; + pixel_y = 8; + req_access_txt = "29"; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/science/robotics/lab) +"bKe" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/science/robotics/lab) +"bKf" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bKg" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -40835,7 +41055,9 @@ /turf/open/floor/plasteel, /area/medical/medbay/central) "bKi" = ( -/obj/machinery/disposal/bin, +/obj/machinery/disposal/bin{ + name = "Morgue Delivery Bin" + }, /obj/structure/disposalpipe/trunk, /obj/effect/turf_decal/stripes/red/full, /turf/open/floor/plasteel/white, @@ -41015,14 +41237,10 @@ }) "bKw" = ( /obj/structure/window/reinforced/spawner/west, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /obj/structure/sign/poster/official/nanotrasen_logo{ pixel_y = -32 }, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/library) "bKx" = ( /obj/effect/turf_decal/tile/blue{ @@ -41099,11 +41317,9 @@ /turf/open/floor/carpet/green, /area/crew_quarters/heads/hop) "bKH" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/science/storage) +/obj/item/beacon, +/turf/open/floor/plating/airless, +/area/science/test_area) "bKI" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8 @@ -41148,70 +41364,88 @@ /turf/open/floor/engine, /area/science/xenobiology) "bKN" = ( -/obj/machinery/vending/wardrobe/chem_wardrobe, -/obj/effect/turf_decal/tile/purple{ - dir = 4 +/obj/structure/table, +/obj/item/book/manual/wiki/robotics_cyborgs{ + pixel_x = -3; + pixel_y = -2 }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 +/obj/item/book/manual/ripley_build_and_repair{ + pixel_x = 3; + pixel_y = 2 }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/item/mmi/posibrain, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bKO" = ( -/obj/structure/closet/crate/medical, -/obj/effect/turf_decal/tile/purple{ - dir = 8 +/obj/structure/table, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/multitool{ + pixel_x = 3 }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 +/obj/item/multitool{ + pixel_x = 3 }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 +/obj/item/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = -1 }, -/obj/item/stack/sheet/mineral/plasma, -/obj/item/stack/sheet/mineral/plasma, -/obj/item/reagent_containers/glass/bottle/ammonia, -/obj/item/reagent_containers/glass/bottle/atropine, -/obj/item/reagent_containers/glass/bottle/bromine, -/obj/item/reagent_containers/glass/bottle/charcoal, -/obj/item/reagent_containers/glass/bottle/diethylamine, -/obj/item/reagent_containers/glass/bottle/epinephrine, -/obj/item/reagent_containers/glass/bottle/ethanol, -/obj/item/reagent_containers/glass/bottle/formaldehyde, -/obj/item/reagent_containers/glass/bottle/iron, -/obj/item/reagent_containers/glass/bottle/morphine, -/obj/item/reagent_containers/glass/bottle/salglu_solution, -/obj/item/reagent_containers/glass/bottle/toxin, -/obj/item/reagent_containers/glass/bottle/carbon, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/item/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = -1 + }, +/obj/item/storage/toolbox/electrical{ + pixel_x = -1; + pixel_y = 4 + }, +/obj/item/storage/toolbox/electrical{ + pixel_x = -1; + pixel_y = 4 + }, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bKP" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/window/reinforced{ - dir = 8 +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000; + pixel_y = 3; + pixel_x = 4 }, -/obj/machinery/door/window/northright{ - name = "Emergency Shower" +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000; + pixel_x = -6; + pixel_y = 6 }, -/turf/open/floor/plasteel, -/area/medical/chemistry) +/obj/item/stock_parts/cell/high{ + charge = 100; + maxcharge = 15000 + }, +/obj/machinery/button/door{ + id = "robotics3"; + name = "Shutters Control Button"; + pixel_x = 24; + pixel_y = -24; + req_access_txt = "29" + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bKQ" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/shower{ - dir = 8; - name = "emergency shower"; - pixel_y = -4 - }, -/turf/open/floor/plasteel, -/area/medical/chemistry) +/obj/machinery/droneDispenser, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bKR" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -41226,7 +41460,7 @@ /obj/machinery/airalarm{ pixel_y = 24 }, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/library) "bKS" = ( /obj/machinery/door/firedoor, @@ -41588,13 +41822,13 @@ /turf/open/floor/plasteel, /area/quartermaster/warehouse) "bLB" = ( -/obj/vehicle/ridden/wheelchair, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 +/obj/machinery/light, +/obj/item/target, +/obj/structure/window/reinforced{ + dir = 1 }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/turf/open/floor/plating/airless, +/area/science/test_area) "bLC" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden, /turf/open/floor/plasteel, @@ -41684,7 +41918,6 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "bLL" = ( -/obj/vehicle/ridden/wheelchair, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -41791,7 +42024,7 @@ /turf/open/floor/plasteel/cafeteria, /area/medical/medbay/central) "bLX" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02" }, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ @@ -41810,7 +42043,6 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "bMa" = ( -/obj/vehicle/ridden/wheelchair, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -42170,13 +42402,13 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/violet/hidden{ - icon_state = "pipe11-2"; dir = 5 }, /turf/open/space/basic, /area/space/nearstation) "bML" = ( /obj/structure/flora/tree/palm, +/mob/living/carbon/monkey, /turf/open/floor/grass, /area/medical/virology) "bMM" = ( @@ -42294,7 +42526,6 @@ pixel_y = -32 }, /obj/machinery/atmospherics/pipe/simple/violet/hidden{ - icon_state = "pipe11-2"; dir = 4 }, /turf/open/space/basic, @@ -43271,7 +43502,6 @@ "bPh" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/violet/hidden{ - icon_state = "pipe11-2"; dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -43367,7 +43597,6 @@ }, /obj/machinery/atmospherics/pipe/simple/supplymain/visible, /obj/machinery/atmospherics/pipe/simple/violet/hidden{ - icon_state = "pipe11-2"; dir = 4 }, /turf/open/space/basic, @@ -43677,7 +43906,6 @@ "bPX" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/violet/hidden{ - icon_state = "pipe11-2"; dir = 9 }, /turf/open/space/basic, @@ -43723,7 +43951,7 @@ pixel_x = 22 }, /obj/machinery/turretid{ - control_area = "area/ai_monitored/turret_protected/ai"; + control_area = "/area/ai_monitored/turret_protected/ai"; dir = 1; name = "AI Chamber turret control"; pixel_x = 5; @@ -43734,7 +43962,7 @@ dir = 6 }, /turf/open/floor/plasteel, -/area/ai_monitored/turret_protected/ai_upload_foyer) +/area/ai_monitored/turret_protected/ai) "bQc" = ( /obj/structure/bodycontainer/morgue{ dir = 8 @@ -43868,21 +44096,25 @@ /turf/open/floor/plasteel/showroomfloor, /area/medical/morgue) "bQp" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (Common)"; - pixel_x = -26 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/maintenance/aft) "bQq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/tile/yellow{ + dir = 1 }, -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 +/obj/effect/turf_decal/tile/yellow, +/obj/structure/table/wood, +/obj/machinery/airalarm{ + pixel_y = 24 }, +/obj/item/modular_computer/laptop/preset/civilian, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/paper/guides/cogstation/letter_atmos, /turf/open/floor/plasteel, /area/engine/break_room) "bQr" = ( @@ -43987,7 +44219,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/green, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/lawoffice) "bQB" = ( /obj/structure/table, @@ -44336,7 +44568,7 @@ "bRe" = ( /obj/machinery/computer/security/wooden_tv, /obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/lawoffice) "bRf" = ( /obj/structure/disposalpipe/segment, @@ -44415,7 +44647,6 @@ /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supplymain/visible, /obj/machinery/atmospherics/pipe/simple/violet/hidden{ - icon_state = "pipe11-2"; dir = 8 }, /turf/open/space/basic, @@ -44428,7 +44659,6 @@ "bRp" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/violet/hidden{ - icon_state = "pipe11-2"; dir = 5 }, /turf/open/space/basic, @@ -44516,7 +44746,7 @@ dir = 1; network = list("minisat") }, -/turf/open/floor/circuit/green/telecomms, +/turf/open/floor/circuit/green, /area/science/server{ name = "Computer Core" }) @@ -44754,13 +44984,20 @@ /obj/effect/turf_decal/tile/purple{ dir = 1 }, -/obj/effect/turf_decal/tile/yellow, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/power/apc{ + areastring = "/area/science/robotics/lab"; + dir = 8; + name = "Robotics Lab APC"; + pixel_x = -25 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/plasteel, -/area/science/research{ - name = "Research Sector" - }) +/area/science/robotics/lab) "bRU" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 @@ -44768,11 +45005,15 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "bRV" = ( -/obj/structure/sign/departments/chemistry, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/closed/wall, -/area/medical/chemistry) +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics"; + name = "robotics lab shutters" + }, +/turf/open/floor/plating, +/area/science/robotics/lab) "bRW" = ( /obj/effect/turf_decal/bot, /obj/structure/cable{ @@ -44827,33 +45068,22 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bSd" = ( -/obj/structure/closet/secure_closet/chemical, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, +/obj/structure/table, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/clothing/glasses/welding, +/obj/item/clothing/glasses/welding, /obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bSe" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/requests_console{ - department = "Robotics"; - departmentType = 2; - name = "Robotics RC"; - pixel_x = -30; - receive_ore_updates = 1 +/obj/machinery/computer/rdconsole/robotics{ + dir = 1 }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) @@ -45181,6 +45411,7 @@ /obj/machinery/cell_charger, /obj/item/stock_parts/cell/high/plus, /obj/item/stock_parts/cell/high/plus, +/obj/item/stack/cable_coil/red, /turf/open/floor/plasteel/white, /area/science/lab) "bSN" = ( @@ -45439,7 +45670,7 @@ dir = 4; pixel_x = -23 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/lawoffice) "bTq" = ( /obj/effect/spawner/structure/window/reinforced, @@ -45502,7 +45733,7 @@ /turf/open/floor/plating, /area/quartermaster/warehouse) "bTy" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 9 }, @@ -45542,27 +45773,30 @@ }, /area/medical/medbay/lobby) "bTC" = ( -/obj/effect/turf_decal/tile/yellow{ +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ dir = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bTD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/disposalpipe/junction{ + dir = 1 }, -/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark/side{ + dir = 5 + }, +/area/science/robotics/lab) +"bTD" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bTE" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/white, @@ -45591,7 +45825,6 @@ "bTJ" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/violet/hidden{ - icon_state = "pipe11-2"; dir = 8 }, /turf/open/space/basic, @@ -45933,7 +46166,7 @@ icon_state = "0-4" }, /turf/open/floor/plating, -/area/hallway/primary/aft) +/area/gateway) "bUv" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -46218,7 +46451,6 @@ /obj/structure/lattice, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/violet/hidden{ - icon_state = "pipe11-2"; dir = 10 }, /turf/open/space/basic, @@ -46679,6 +46911,10 @@ icon_state = "0-4" }, /obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "capblast"; + name = "blast door" + }, /turf/open/floor/plating, /area/crew_quarters/heads/captain) "bVO" = ( @@ -46766,7 +47002,7 @@ /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/lawoffice) "bVV" = ( /obj/machinery/light_switch{ @@ -47414,7 +47650,7 @@ pixel_x = 24; pixel_y = 6 }, -/obj/item/twohanded/required/kirbyplants/photosynthetic, +/obj/item/kirbyplants/photosynthetic, /turf/open/floor/plasteel, /area/crew_quarters/heads/chief) "bXg" = ( @@ -47616,7 +47852,7 @@ }, /obj/effect/turf_decal/tile/purple, /obj/machinery/light, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel, @@ -47730,6 +47966,10 @@ /obj/structure/cable{ icon_state = "0-8" }, +/obj/machinery/door/poddoor/preopen{ + id = "capblast"; + name = "blast door" + }, /turf/open/floor/plating, /area/crew_quarters/heads/captain) "bXJ" = ( @@ -47760,11 +48000,11 @@ name = "Research Sector" }) "bXL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/item/storage/belt/utility, +/turf/open/floor/plasteel, +/area/maintenance/aft) "bXM" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/conveyor{ @@ -48030,31 +48270,22 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "bYo" = ( -/obj/structure/closet/emcloset, /obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) +/obj/machinery/computer/mech_bay_power_console, +/turf/open/floor/circuit/green, +/area/science/robotics/mechbay) "bYp" = ( -/obj/structure/rack, -/obj/item/clothing/suit/fire/firefighter, -/obj/item/clothing/mask/gas, -/obj/item/wrench, -/obj/item/light/tube, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) +/turf/open/floor/plasteel/recharge_floor, +/area/science/robotics/mechbay) "bYq" = ( /obj/machinery/light/small{ dir = 1 }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) +/obj/machinery/mech_bay_recharge_port{ + dir = 8 + }, +/turf/open/floor/circuit/green, +/area/science/robotics/mechbay) "bYr" = ( /obj/effect/turf_decal/tile/purple{ dir = 8 @@ -48129,9 +48360,7 @@ }) "bYv" = ( /turf/closed/wall, -/area/science/research{ - name = "Research Sector" - }) +/area/science/robotics/mechbay) "bYw" = ( /obj/effect/turf_decal/tile/purple{ dir = 4 @@ -48151,10 +48380,8 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) +/turf/open/floor/circuit, +/area/science/robotics/mechbay) "bYy" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -48165,13 +48392,8 @@ /obj/structure/cable{ icon_state = "1-4" }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) +/turf/open/floor/circuit, +/area/science/robotics/mechbay) "bYz" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 10 @@ -48195,24 +48417,9 @@ name = "Research Sector" }) "bYB" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/item/clothing/gloves/color/latex, -/obj/item/book/manual/wiki/chemistry, -/obj/item/reagent_containers/dropper, -/obj/item/radio/headset/headset_medsci, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/science/robotics/lab) "bYC" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, @@ -48240,91 +48447,63 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "bYF" = ( -/obj/machinery/portable_atmospherics/pump, /obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) +/obj/structure/cable, +/obj/machinery/recharge_station, +/turf/open/floor/circuit/green, +/area/science/robotics/mechbay) "bYG" = ( -/obj/machinery/door/poddoor{ - id = "toxmixex" - }, -/turf/open/floor/engine/vacuum, -/area/science/mixing) -"bYH" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) -"bYI" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ +/obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/effect/turf_decal/tile/yellow{ +/obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/effect/turf_decal/tile/yellow, -/obj/item/storage/box/beakers, -/obj/item/assembly/timer{ - pixel_y = 6 - }, -/obj/item/assembly/timer{ - pixel_y = 6 - }, -/obj/item/assembly/timer{ - pixel_y = 6 - }, -/obj/item/assembly/timer{ - pixel_y = 6 - }, -/obj/item/assembly/igniter{ - pixel_y = -4 - }, -/obj/item/assembly/igniter{ - pixel_y = -4 - }, -/obj/item/assembly/igniter{ - pixel_y = -4 - }, -/obj/item/assembly/igniter{ - pixel_y = -4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ - dir = 8 +/obj/structure/window/reinforced/spawner/west, +/obj/machinery/sleeper{ + dir = 4 }, /turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bYJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bYH" = ( +/obj/structure/sign/poster/contraband/kss13{ + pixel_y = -32 }, +/obj/structure/cable, +/obj/machinery/recharge_station, +/turf/open/floor/circuit/green, +/area/science/robotics/mechbay) +"bYI" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/science/robotics/lab) +"bYJ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bYK" = ( -/obj/effect/turf_decal/tile/yellow, -/obj/structure/disposalpipe/sorting/mail{ - dir = 8; - sortType = 4 - }, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 + dir = 5 }, /turf/open/floor/plasteel/white, -/area/medical/chemistry) +/area/medical/medbay/lobby) "bYL" = ( /obj/effect/turf_decal/tile/purple{ dir = 4 @@ -48455,13 +48634,13 @@ name = "Computer Core" }) "bYY" = ( -/turf/open/floor/circuit/green/telecomms, +/turf/open/floor/circuit/green, /area/science/server{ name = "Computer Core" }) "bYZ" = ( /obj/structure/disposalpipe/segment, -/turf/open/floor/circuit/green/telecomms, +/turf/open/floor/circuit/green, /area/science/server{ name = "Computer Core" }) @@ -48492,7 +48671,7 @@ }, /obj/item/circuitboard/machine/rdserver, /obj/item/disk/tech_disk, -/turf/open/floor/circuit/green/telecomms, +/turf/open/floor/circuit/green, /area/science/server{ name = "Computer Core" }) @@ -48502,7 +48681,7 @@ }, /obj/machinery/light, /obj/structure/disposalpipe/segment, -/turf/open/floor/circuit/green/telecomms, +/turf/open/floor/circuit/green, /area/science/server{ name = "Computer Core" }) @@ -48758,7 +48937,7 @@ name = "Research Sector" }) "bZF" = ( -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/library) "bZG" = ( /obj/effect/turf_decal/tile/purple{ @@ -48791,7 +48970,7 @@ /area/library) "bZK" = ( /obj/structure/bookcase/random/nonfiction, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/library) "bZL" = ( /obj/machinery/air_sensor/atmos/nitrous_tank, @@ -48833,21 +49012,13 @@ /turf/closed/wall/r_wall, /area/library) "bZT" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/purple{ - dir = 4 +/obj/structure/table/optable{ + name = "Robotics Operating Table" }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/item/storage/box/pillbottles, -/obj/item/hand_labeler, -/obj/item/clothing/glasses/science, -/obj/structure/sign/poster/official/safety_eye_protection{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/item/tank/internals/anesthetic, +/obj/item/clothing/mask/breath, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "bZU" = ( /obj/structure/table/wood, /obj/machinery/door/window/northright{ @@ -48936,7 +49107,6 @@ /obj/structure/lattice, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/violet/hidden{ - icon_state = "pipe11-2"; dir = 5 }, /turf/open/space/basic, @@ -48965,18 +49135,17 @@ /turf/open/floor/plasteel, /area/engine/atmos) "caj" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ +/obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, /turf/open/floor/plasteel/white, -/area/medical/chemistry) +/area/medical/medbay/central) "cak" = ( /obj/structure/sign/warning/fire, /turf/closed/wall/r_wall, @@ -49075,9 +49244,12 @@ /turf/open/floor/engine/n2, /area/engine/atmos) "caz" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/science/explab) +/obj/machinery/door/airlock/research{ + name = "Mech Bay"; + req_access_txt = "29" + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/mechbay) "caA" = ( /obj/structure/closet/radiation, /turf/open/floor/plasteel, @@ -49095,6 +49267,7 @@ pixel_y = 3 }, /obj/item/storage/toolbox/mechanical, +/obj/item/stack/cable_coil/red, /turf/open/floor/plasteel, /area/science/explab) "caD" = ( @@ -49124,32 +49297,24 @@ /area/engine/atmos) "caG" = ( /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 8 }, -/turf/open/floor/plasteel/dark/side{ - dir = 8 - }, +/turf/open/floor/plasteel/dark, /area/science/explab) "caH" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/landmark/start/chemist, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/chair/office/light, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 + dir = 6 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, /turf/open/floor/plasteel/white, -/area/medical/chemistry) +/area/medical/medbay/central) "caI" = ( /obj/structure/table/reinforced, /obj/item/integrated_electronics/analyzer, @@ -49188,15 +49353,9 @@ /turf/open/floor/engine/o2, /area/engine/atmos) "caO" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/aft) +/obj/machinery/rnd/production/circuit_imprinter/department/science, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "caP" = ( /obj/structure/chair/office/light, /obj/effect/turf_decal/stripes/line, @@ -49227,7 +49386,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-06" }, /obj/machinery/airalarm{ @@ -49333,19 +49492,26 @@ /turf/open/floor/engine, /area/science/explab) "cbf" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/sleeper{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"cbg" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/engine, +/area/science/storage) +"cbh" = ( /obj/machinery/rnd/experimentor, /turf/open/floor/engine, /area/science/explab) -"cbg" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/turf/open/floor/plating, -/area/science/storage) -"cbh" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1 - }, -/turf/open/floor/plating, -/area/science/storage) "cbi" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -49355,6 +49521,10 @@ icon_state = "0-8" }, /obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "capblast"; + name = "blast door" + }, /turf/open/floor/plating, /area/crew_quarters/heads/captain) "cbj" = ( @@ -49394,16 +49564,26 @@ /turf/open/floor/engine, /area/science/explab) "cbm" = ( -/obj/item/beacon, -/turf/open/floor/engine, -/area/science/explab) +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Medbay Maintenance"; + req_access_txt = "5" + }, +/turf/open/floor/plating, +/area/medical/medbay/central) "cbn" = ( /obj/structure/window/reinforced{ dir = 4; layer = 2.9 }, /obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plating, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/engine, /area/science/storage) "cbo" = ( /obj/machinery/disposal/bin, @@ -49422,6 +49602,10 @@ icon_state = "0-8" }, /obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "capblast"; + name = "blast door" + }, /turf/open/floor/plating, /area/crew_quarters/heads/captain) "cbq" = ( @@ -49431,23 +49615,35 @@ /turf/open/floor/engine, /area/science/explab) "cbr" = ( -/obj/structure/table/optable, -/turf/open/floor/engine, -/area/science/explab) +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) "cbs" = ( -/obj/machinery/computer/operating, -/turf/open/floor/engine, -/area/science/explab) +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) "cbt" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/engine, /area/science/explab) "cbu" = ( /obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, /area/science/storage) "cbv" = ( /obj/machinery/atmospherics/pipe/simple/general/visible, @@ -49499,7 +49695,10 @@ }) "cbC" = ( /obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/turf/open/floor/plating, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/engine, /area/science/storage) "cbD" = ( /obj/effect/turf_decal/tile/neutral{ @@ -49575,18 +49774,25 @@ name = "Thermo-Electric Generator" }) "cbK" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ dir = 1 }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/sign/departments/chemistry{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, /turf/open/floor/plasteel/white, -/area/medical/chemistry) +/area/medical/medbay/lobby) "cbL" = ( /obj/structure/cable{ icon_state = "4-8" @@ -49644,18 +49850,9 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "cbP" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/button/door{ - id = "toxmixex"; - name = "vent control"; - pixel_x = -24; - pixel_y = 8 - }, /turf/open/floor/plasteel, /area/science/mixing) "cbQ" = ( @@ -49777,21 +49974,8 @@ /turf/open/floor/plating/airless, /area/router/aux) "ccd" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "cce" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 @@ -49872,19 +50056,10 @@ /turf/open/floor/plasteel/stairs, /area/maintenance/department/chapel) "ccm" = ( -/obj/structure/table, -/obj/effect/turf_decal/stripes/line{ - dir = 10 +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 }, -/obj/machinery/mecha_part_fabricator, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass{ - amount = 20; - layer = 3.2 - }, -/turf/open/floor/plasteel, +/turf/closed/wall/r_wall, /area/science/robotics/lab) "ccn" = ( /obj/effect/decal/cleanable/dirt, @@ -49949,9 +50124,7 @@ "cct" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall, -/area/science/research{ - name = "Research Sector" - }) +/area/science/robotics/mechbay) "ccu" = ( /obj/structure/cable{ icon_state = "1-2" @@ -50040,16 +50213,23 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/window/westleft{ - name = "Chemistry Desk"; - req_access_txt = "33" - }, /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics2"; + name = "robotics lab shutters" + }, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Robotics Desk"; + req_access_txt = "29" + }, /turf/open/floor/plasteel/white, -/area/medical/chemistry) +/area/science/robotics/lab) "ccC" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -50138,6 +50318,7 @@ dir = 8; light_color = "#e8eaff" }, +/obj/machinery/rnd/bepis, /turf/open/floor/engine, /area/science/explab) "ccM" = ( @@ -50323,7 +50504,6 @@ /turf/open/floor/plasteel, /area/engine/break_room) "cdh" = ( -/obj/machinery/photocopier, /obj/machinery/airalarm{ pixel_y = 24 }, @@ -50419,7 +50599,6 @@ }, /obj/machinery/atmospherics/pipe/simple/supplymain/visible, /obj/machinery/atmospherics/pipe/simple/violet/hidden{ - icon_state = "pipe11-2"; dir = 8 }, /turf/open/space/basic, @@ -50723,35 +50902,52 @@ /turf/closed/wall/r_wall, /area/engine/teg_hot) "cdW" = ( -/obj/effect/turf_decal/tile/blue, -/obj/machinery/airalarm{ - pixel_y = 24 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 }, -/obj/machinery/light{ +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics2"; + name = "robotics lab shutters" + }, +/turf/open/floor/plating, +/area/science/robotics/lab) +"cdX" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/landmark/start/chemist, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/machinery/sleep_console{ - dir = 4 +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medical)"; + pixel_y = -30 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 }, /turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) -"cdX" = ( -/obj/effect/turf_decal/tile/blue, +/area/medical/chemistry) +"cdY" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/machinery/sleeper{ - dir = 4 +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, /turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) -"cdY" = ( -/obj/effect/turf_decal/tile/blue, -/obj/machinery/sleep_console{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) +/area/medical/medbay/central) "cdZ" = ( /turf/closed/wall/r_wall, /area/medical/medbay/lobby) @@ -50775,46 +50971,12 @@ /turf/open/floor/plasteel, /area/quartermaster/sorting) "ceb" = ( -/obj/structure/table, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light{ - dir = 1 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "robotics3"; + name = "robotics lab shutters" }, -/obj/item/stack/sheet/plasteel{ - amount = 15 - }, -/obj/item/storage/belt/utility, -/obj/item/crowbar/large, -/obj/item/multitool, -/obj/item/assembly/prox_sensor{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/mecha_part_fabricator, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass{ - amount = 20; - layer = 3.2 - }, -/obj/item/stack/sheet/plasteel{ - amount = 15 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/science/robotics/lab) "cec" = ( /obj/structure/table/glass, @@ -51737,27 +51899,17 @@ /turf/open/floor/plasteel, /area/engine/atmos) "cfU" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/purple{ - dir = 4 +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/tile/purple{ +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/item/clothing/gloves/color/latex, -/obj/item/book/manual/wiki/cit/chem_recipies, -/obj/item/book/manual/wiki/cit/chemistry{ - pixel_x = 2; - pixel_y = -3 - }, -/obj/item/reagent_containers/dropper, -/obj/machinery/atmospherics/pipe/manifold/orange/hidden, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/item/beacon, +/turf/open/floor/plasteel, +/area/engine/break_room) "cfV" = ( /obj/machinery/door/airlock/external{ name = "Atmospherics External Airlock"; @@ -51870,28 +52022,25 @@ /turf/open/floor/plasteel, /area/engine/atmos) "cgf" = ( -/obj/structure/table, -/obj/structure/table, -/obj/machinery/reagentgrinder, /obj/effect/turf_decal/tile/purple{ - dir = 4 + dir = 1 }, /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 9 +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/science/robotics/lab) "cgg" = ( /obj/effect/landmark/start/atmospheric_technician, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ @@ -51941,8 +52090,9 @@ pixel_y = 24; req_access_txt = "10" }, -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4; + name = "atmos mix to burn" }, /turf/open/floor/plasteel/dark, /area/engine/teg_hot) @@ -51990,19 +52140,17 @@ /turf/open/floor/plasteel, /area/quartermaster/warehouse) "cgr" = ( +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/science/robotics/mechbay"; + dir = 1; + name = "Mech Bay APC"; + pixel_y = 28 + }, /obj/structure/cable{ icon_state = "0-2" }, -/obj/machinery/power/apc{ - areastring = "/area/science/research"; - dir = 1; - name = "Research Sector APC"; - pixel_y = 24 - }, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) +/turf/open/floor/plasteel/dark, +/area/science/robotics/mechbay) "cgs" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -52265,8 +52413,9 @@ /turf/open/floor/plating, /area/maintenance/disposal) "cgU" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4; + name = "manual mix to burn" }, /turf/open/floor/plasteel/dark, /area/engine/teg_hot) @@ -52462,7 +52611,7 @@ /turf/open/floor/plasteel/dark, /area/engine/atmos) "chr" = ( -/obj/machinery/atmospherics/components/binary/valve, +/obj/machinery/atmospherics/components/binary/valve/digital, /turf/open/floor/plasteel/dark, /area/engine/teg_hot) "chs" = ( @@ -52681,7 +52830,7 @@ req_access_txt = "38" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/lawoffice) "chQ" = ( /obj/effect/turf_decal/tile/neutral{ @@ -52711,7 +52860,7 @@ /obj/structure/cable{ icon_state = "2-4" }, -/turf/open/floor/plating, +/turf/open/floor/engine, /area/science/storage) "chS" = ( /obj/machinery/suit_storage_unit/atmos, @@ -52725,25 +52874,33 @@ /obj/machinery/atmospherics/components/unary/tank/air{ dir = 1 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/engine, /area/science/storage) "chU" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 1 }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, +/turf/open/floor/wood, /area/library) "chV" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 }, -/turf/open/floor/plating, -/area/science/storage) +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "chW" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -52877,7 +53034,6 @@ /obj/effect/turf_decal/delivery, /obj/machinery/door/window/westleft{ name = "Science Desk"; - req_access_txt = "0"; req_one_access_txt = "29;47" }, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ @@ -52936,9 +53092,7 @@ dir = 4 }, /turf/closed/wall, -/area/science/research{ - name = "Research Sector" - }) +/area/science/robotics/mechbay) "cip" = ( /obj/machinery/mass_driver{ id = "cargo_in"; @@ -53154,21 +53308,20 @@ /turf/open/floor/plasteel, /area/quartermaster/warehouse) "ciQ" = ( -/obj/structure/cable{ - icon_state = "0-4" +/obj/structure/disposalpipe/segment{ + dir = 10 }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/hallway/primary/aft"; - dir = 1; - name = "Aft Primary Hallway APC"; - pixel_x = 1; - pixel_y = 24 +/obj/effect/turf_decal/tile/yellow{ + dir = 8 }, -/turf/open/floor/plating, -/area/maintenance/aft) +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "ciR" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/red, @@ -53224,7 +53377,7 @@ "ciW" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 8; - sortType = 14 + sortType = 11 }, /obj/structure/cable{ icon_state = "4-8" @@ -53259,7 +53412,7 @@ /turf/open/floor/plasteel, /area/engine/teg_hot) "ciZ" = ( -/obj/machinery/atmospherics/components/binary/valve, +/obj/machinery/atmospherics/components/binary/valve/digital, /turf/open/floor/plasteel, /area/engine/teg_hot) "cja" = ( @@ -53437,13 +53590,8 @@ /turf/open/floor/carpet, /area/library) "cjw" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, +/turf/open/floor/wood, /area/library) "cjx" = ( /obj/structure/cable{ @@ -53453,7 +53601,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/library) "cjy" = ( /obj/machinery/recharge_station, @@ -53466,7 +53614,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/photosynthetic, +/obj/item/kirbyplants/photosynthetic, /turf/open/floor/plasteel, /area/hallway/primary/aft) "cjA" = ( @@ -53478,7 +53626,7 @@ dir = 4; pixel_x = -28 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/quartermaster/office) "cjB" = ( @@ -53726,6 +53874,12 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, +/obj/machinery/button/door{ + id = "hos"; + name = "HoS Office Shutters"; + pixel_y = -32; + pixel_x = -5 + }, /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/hos) "cjX" = ( @@ -53769,23 +53923,24 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "cka" = ( -/obj/item/beacon, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "ckb" = ( -/obj/machinery/chem_master, -/obj/effect/turf_decal/stripes/line{ - dir = 5 +/obj/machinery/aug_manipulator, +/obj/machinery/camera/autoname{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plasteel, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "ckc" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/machinery/atmospherics/pipe/simple/general/visible, @@ -53810,22 +53965,17 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, +/turf/open/floor/wood, /area/library) "ckf" = ( /obj/effect/turf_decal/tile/purple{ dir = 4 }, +/obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/obj/effect/turf_decal/tile/yellow, /turf/open/floor/plasteel, /area/science/research{ name = "Research Sector" @@ -53873,16 +54023,11 @@ c_tag = "Research Maintenance"; dir = 4 }, -/obj/machinery/power/apc{ - areastring = "/area/maintenance/department/science"; - dir = 8; - name = "Research Wing Maintenance APC"; - pixel_x = -24 +/obj/structure/cable{ + icon_state = "2-4" }, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) +/turf/open/floor/circuit, +/area/science/robotics/mechbay) "ckl" = ( /turf/open/space/basic, /area/space/station_ruins) @@ -53912,17 +54057,13 @@ name = "Engine Room" }) "ckp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/effect/turf_decal/tile/yellow{ + dir = 8 }, -/obj/machinery/light, -/obj/structure/table, -/obj/item/book/manual/wiki/robotics_cyborgs, -/obj/item/mmi, -/obj/item/mmi, -/obj/item/mmi, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/obj/effect/turf_decal/tile/blue, +/obj/effect/landmark/start/chemist, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "ckq" = ( /obj/structure/closet/crate/hydroponics, /obj/machinery/light_switch{ @@ -54028,8 +54169,8 @@ /obj/machinery/light_switch{ pixel_x = -24 }, -/obj/item/twohanded/rcl/pre_loaded, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /obj/item/stack/cable_coil/red, /obj/item/stack/cable_coil/red, /obj/item/stock_parts/cell/high/plus, @@ -54042,7 +54183,6 @@ /turf/open/floor/plasteel, /area/engine/teg_cold) "ckC" = ( -/obj/machinery/atmospherics/components/binary/valve, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -54052,34 +54192,22 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/components/binary/valve/digital{ + name = "gas to cold loop" + }, /turf/open/floor/plasteel, /area/engine/teg_cold) "ckD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/effect/turf_decal/tile/yellow{ + dir = 8 }, -/obj/structure/table, -/obj/item/storage/belt/utility, -/obj/item/crowbar/large, -/obj/item/multitool, -/obj/item/assembly/prox_sensor{ - pixel_x = -6; - pixel_y = 4 +/obj/effect/turf_decal/tile/blue, +/obj/structure/sign/warning/fire{ + pixel_x = 32; + pixel_y = -32 }, -/obj/item/assembly/prox_sensor{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -6; - pixel_y = 4 - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "ckE" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, @@ -54325,9 +54453,16 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "clc" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/plating, -/area/science/storage) +/obj/machinery/vending/wardrobe/chem_wardrobe, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "cld" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -54484,20 +54619,9 @@ /area/library) "clv" = ( /obj/structure/table, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/item/clothing/gloves/color/latex, -/obj/item/storage/box/syringes, -/obj/item/reagent_containers/dropper, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/item/storage/backpack/duffelbag/med/surgery, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "clw" = ( /obj/effect/landmark/start/librarian, /obj/machinery/newscaster{ @@ -54966,17 +55090,13 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/bar) "cmB" = ( -/obj/structure/cable{ - icon_state = "0-8" +/obj/structure/window/reinforced/spawner/west, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/northright{ + name = "Emergency Shower" }, -/obj/machinery/power/apc{ - areastring = "/area/science/robotics/lab"; - dir = 4; - name = "Robotics Lab APC"; - pixel_x = 24 - }, -/turf/open/floor/plating, -/area/maintenance/aft) +/turf/open/floor/plasteel, +/area/medical/chemistry) "cmC" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 @@ -55044,6 +55164,10 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, +/obj/item/radio/off{ + pixel_x = -3; + pixel_y = 1 + }, /turf/open/floor/plasteel, /area/science/server{ name = "Computer Core" @@ -55070,11 +55194,22 @@ /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "cmK" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plating, -/area/science/storage) +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "cmL" = ( /obj/effect/landmark/blobstart, /turf/open/floor/plating, @@ -55096,7 +55231,7 @@ name = "Station Intercom (Security)"; pixel_y = -28 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/lawoffice) "cmO" = ( /obj/effect/turf_decal/bot, @@ -55132,20 +55267,51 @@ /turf/open/floor/engine, /area/science/xenobiology) "cmR" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "cmS" = ( -/obj/machinery/chem_master, -/obj/effect/turf_decal/stripes/line{ - dir = 5 +/obj/structure/rack, +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/medical/chemistry) +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/healthanalyzer{ + pixel_x = 4; + pixel_y = -4 + }, +/obj/item/healthanalyzer{ + pixel_x = 4; + pixel_y = -4 + }, +/obj/item/healthanalyzer{ + pixel_x = 4; + pixel_y = -4 + }, +/obj/item/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "cmT" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -55168,19 +55334,20 @@ /turf/open/floor/plasteel, /area/security/checkpoint/supply) "cmU" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/obj/machinery/sleeper{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Medbay - Lobby"; - network = list("ss13","rd") +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, +/obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) +/area/medical/chemistry) "cmV" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -55347,14 +55514,16 @@ name = "Research Observatory" }) "cnk" = ( -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/light, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "cnl" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 @@ -55491,11 +55660,20 @@ name = "Computer Core" }) "cnz" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, -/turf/open/floor/plating, -/area/science/storage) +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/obj/structure/sign/departments/chemistry{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "cnA" = ( /obj/effect/turf_decal/tile/brown{ dir = 4 @@ -55595,7 +55773,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/atmospherics/components/binary/valve{ +/obj/machinery/atmospherics/components/binary/valve/digital{ dir = 4 }, /turf/open/floor/plasteel, @@ -55629,7 +55807,8 @@ /turf/open/space/basic, /area/solar/starboard/aft) "cnO" = ( -/turf/open/floor/plating, +/obj/effect/landmark/event_spawn, +/turf/open/floor/engine, /area/science/storage) "cnP" = ( /obj/structure/lattice/catwalk, @@ -55691,7 +55870,11 @@ /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plating, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/engine, /area/science/storage) "cnW" = ( /obj/structure/chair/office/dark{ @@ -55705,19 +55888,17 @@ }, /area/library) "cnX" = ( -/obj/vehicle/ridden/secway, -/obj/item/key/security, /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/vehicle/ridden/wheelchair, /turf/open/floor/plasteel, /area/medical/medbay/central) "cnY" = ( -/obj/vehicle/ridden/secway, -/obj/item/key/security, /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/vehicle/ridden/wheelchair, /turf/open/floor/plasteel, /area/medical/medbay/central) "cnZ" = ( @@ -55849,22 +56030,20 @@ /turf/open/floor/plasteel, /area/engine/teg_hot) "col" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "com" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/maintenance{ - name = "Robotics Storage"; - req_access_txt = "29" +/obj/machinery/chem_master, +/obj/effect/turf_decal/stripes/end{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plasteel, +/area/medical/chemistry) "con" = ( /obj/structure/cable{ icon_state = "1-2" @@ -55951,11 +56130,11 @@ /turf/open/floor/plasteel, /area/crew_quarters/heads/chief) "cov" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/turf/open/floor/plating, -/area/science/robotics/lab) +/obj/structure/sign/warning/nosmoking{ + pixel_y = -32 + }, +/turf/closed/wall, +/area/medical/medbay/central) "cow" = ( /obj/machinery/door/airlock/external/glass{ name = "Asteroid Mining Access"; @@ -55976,10 +56155,15 @@ /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "cox" = ( -/obj/machinery/vending/wardrobe/robo_wardrobe, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "coy" = ( /obj/structure/sign/poster/official/safety_internals{ pixel_x = -32 @@ -56085,10 +56269,25 @@ /turf/open/floor/engine, /area/science/explab) "coH" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plating, -/area/medical/chemistry) +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/research{ + name = "Robotics Lab"; + req_access_txt = "29" + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "coI" = ( /obj/structure/closet/secure_closet/medical1, /obj/effect/turf_decal/tile/yellow{ @@ -56285,6 +56484,8 @@ c_tag = "Medbay - Cryogenics"; dir = 1 }, +/obj/item/reagent_containers/glass/beaker/cryoxadone, +/obj/item/reagent_containers/glass/beaker/cryoxadone, /turf/open/floor/plasteel/white, /area/medical/medbay/zone2{ name = "Medbay Treatment Center" @@ -56420,7 +56621,7 @@ /obj/machinery/newscaster{ pixel_x = -30 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/lawoffice) "cpn" = ( /obj/effect/turf_decal/tile/neutral, @@ -56478,8 +56679,6 @@ }, /area/crew_quarters/heads/captain) "cpt" = ( -/obj/vehicle/ridden/secway, -/obj/item/key/security, /obj/machinery/newscaster{ pixel_x = -30 }, @@ -56494,7 +56693,7 @@ }, /obj/machinery/holopad, /obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/library) "cpv" = ( /obj/structure/table, @@ -56504,36 +56703,17 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "cpw" = ( -/obj/structure/table, /obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/screwdriver, -/obj/item/stack/cable_coil/random, -/obj/item/stack/cable_coil/random, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Research - Chemistry Lab"; dir = 4 }, -/obj/machinery/requests_console{ - department = "Chemistry"; - departmentType = 1; - name = "Chemistry RC"; - pixel_x = -30; - receive_ore_updates = 1 +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/science/robotics/lab) "cpx" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden, /turf/open/floor/mineral/titanium/blue, @@ -56555,10 +56735,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/valve{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/disposalpipe/segment{ +/obj/machinery/atmospherics/components/binary/valve/digital{ dir = 4 }, /turf/open/floor/plasteel, @@ -56572,8 +56752,11 @@ /turf/open/space/basic, /area/space/station_ruins) "cpD" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/engine, /area/science/storage) "cpE" = ( /obj/structure/fans/tiny, @@ -56632,12 +56815,13 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "cpI" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ +/obj/machinery/chem_dispenser, +/obj/effect/turf_decal/stripes/end{ dir = 4 }, +/obj/structure/window/reinforced/spawner, /turf/open/floor/plasteel, -/area/science/robotics/lab) +/area/medical/chemistry) "cpJ" = ( /turf/closed/wall/r_wall/rust, /area/quartermaster/office) @@ -56746,7 +56930,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/valve{ +/obj/machinery/atmospherics/components/binary/valve/digital{ dir = 4 }, /turf/open/floor/plasteel, @@ -57026,18 +57210,17 @@ /turf/open/floor/plasteel, /area/engine/break_room) "cqt" = ( -/obj/effect/turf_decal/tile/yellow{ +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ dir = 4 }, -/obj/machinery/computer/station_alert, -/obj/structure/sign/poster/official/safety_eye_protection{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/structure/noticeboard/qm{ + dir = 4; + pixel_x = -32 }, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/quartermaster/sorting) "cqu" = ( /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -57106,20 +57289,11 @@ /turf/open/floor/plasteel, /area/engine/break_room) "cqz" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/table/wood, -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/obj/item/modular_computer/laptop/preset/civilian, -/obj/effect/turf_decal/tile/blue{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 }, /turf/open/floor/plasteel, -/area/engine/break_room) +/area/science/robotics/lab) "cqA" = ( /obj/structure/cable{ icon_state = "1-2" @@ -57432,24 +57606,32 @@ /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "crf" = ( -/obj/structure/cable, -/obj/machinery/power/apc{ - areastring = "/area/medical/chemistry"; - name = "Chemistry Lab APC"; - pixel_y = -26 - }, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/dark, +/area/science/robotics/mechbay) "crg" = ( -/obj/structure/reagent_dispensers/fueltank/high, -/obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/obj/machinery/door/airlock/medical/glass{ + name = "Chemistry Lab"; + req_access_txt = "5; 33" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "crh" = ( /obj/machinery/mass_driver{ dir = 1; @@ -57504,9 +57686,14 @@ /turf/open/floor/plating, /area/engine/teg_cold) "crn" = ( -/obj/machinery/atmospherics/components/binary/valve, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chem1"; + name = "chem lab shutters" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plating, -/area/science/storage) +/area/medical/chemistry) "cro" = ( /turf/closed/wall/r_wall/rust, /area/maintenance/starboard/aft) @@ -57622,7 +57809,7 @@ "cry" = ( /obj/structure/bookcase/random/religion, /obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/library) "crz" = ( /obj/effect/turf_decal/tile/yellow, @@ -57640,7 +57827,7 @@ "crA" = ( /obj/structure/bookcase/random/fiction, /obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/library) "crB" = ( /obj/structure/lattice, @@ -57958,12 +58145,14 @@ /turf/open/floor/plasteel, /area/security/checkpoint/supply) "csi" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "chem1"; + name = "chem lab shutters" }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/turf/open/floor/plating, +/area/medical/chemistry) "csj" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 @@ -58234,7 +58423,7 @@ icon_state = "4-8" }, /obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/library) "csI" = ( /obj/structure/table/wood, @@ -58263,9 +58452,22 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "csK" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/door/window/northright{ + name = "Medbay Desk"; + req_access_txt = "5" + }, +/obj/item/clipboard, +/obj/item/clothing/glasses/hud/health, /obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/closed/wall, -/area/science/robotics/lab) +/obj/item/pen, +/obj/item/clothing/glasses/hud/health, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) "csL" = ( /obj/effect/landmark/xmastree/rdrod, /turf/open/floor/carpet{ @@ -58314,8 +58516,7 @@ name = "Engine Room" }) "csR" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plating, +/turf/open/floor/engine, /area/science/storage) "csS" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ @@ -58335,19 +58536,13 @@ /turf/open/floor/plating, /area/storage/tech) "csV" = ( -/obj/machinery/chem_master, -/obj/effect/turf_decal/stripes/line{ - dir = 6 +/obj/machinery/mecha_part_fabricator, +/obj/machinery/camera{ + c_tag = "Robotics Lab"; + network = list("ss13","rd") }, -/obj/machinery/light{ - dir = 1 - }, -/obj/item/radio/intercom{ - name = "Station Intercom (Common)"; - pixel_y = 26 - }, -/turf/open/floor/plasteel, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "csW" = ( /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, @@ -58365,10 +58560,11 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "csZ" = ( -/obj/machinery/holopad, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) "cta" = ( /obj/effect/landmark/blobstart, /obj/effect/landmark/xeno_spawn, @@ -59078,20 +59274,9 @@ name = "Research Observatory" }) "cum" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/structure/disposalpipe/trunk, -/obj/structure/sign/poster/official/science{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/machinery/computer/operating, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "cun" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/food/snacks/meat/steak, @@ -59109,21 +59294,14 @@ /turf/open/floor/plating, /area/hallway/primary/aft) "cup" = ( -/obj/structure/table, -/obj/item/surgical_drapes, -/obj/item/scalpel, -/obj/item/circular_saw{ - pixel_y = 16 +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/obj/item/hemostat, -/obj/item/retractor, -/obj/item/cautery, -/obj/item/clothing/gloves/color/latex, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "cuq" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -59179,7 +59357,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/photosynthetic, +/obj/item/kirbyplants/photosynthetic, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -59471,38 +59649,29 @@ /area/medical/medbay/central) "cuY" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - name = "Chemistry Lab"; - req_access_txt = "8;33;47" - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/turf/open/floor/plasteel, -/area/medical/chemistry) +/obj/machinery/door/airlock/research{ + name = "Robotics Lab"; + req_access_txt = "29" + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "cuZ" = ( /obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ dir = 8 }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, +/area/science/robotics/lab) "cva" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -59652,22 +59821,26 @@ /area/medical/virology) "cvt" = ( /obj/effect/turf_decal/tile/purple{ - dir = 8 + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/obj/effect/turf_decal/tile/yellow, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"cvu" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/science/robotics/lab) +"cvu" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "cvv" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -59968,56 +60141,42 @@ /area/janitor) "cvQ" = ( /obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/obj/effect/landmark/start/chemist, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/chair/office/light, +/turf/open/floor/plasteel/dark/side, +/area/science/robotics/lab) +"cvR" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + sortType = 23 + }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"cvR" = ( -/obj/structure/table, -/obj/item/storage/toolbox/emergency, -/obj/item/clothing/head/welding, -/obj/item/clothing/glasses/welding, -/obj/item/weldingtool, -/obj/machinery/camera{ - c_tag = "Robotics"; - dir = 8; - network = list("ss13","medbay"); - pixel_y = -22 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 26 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"cvS" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/purple{ +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/item/paper_bin, -/obj/item/pen, -/obj/item/clothing/glasses/science, -/obj/item/hand_labeler{ - pixel_y = 8 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 - }, /turf/open/floor/plasteel/white, -/area/medical/chemistry) +/area/medical/medbay/central) +"cvS" = ( +/obj/machinery/vending/wardrobe/robo_wardrobe, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "cvT" = ( /obj/structure/extinguisher_cabinet, /turf/closed/wall, @@ -60137,23 +60296,18 @@ /turf/open/floor/plasteel/dark, /area/security/checkpoint/customs) "cwb" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Research Maintenance"; - req_one_access_txt = "12;47" - }, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/door/airlock/research{ + name = "Mech Bay"; + req_access_txt = "29" }, -/turf/open/floor/plating, -/area/science/research{ - name = "Research Sector" - }) +/turf/open/floor/circuit, +/area/science/robotics/mechbay) "cwc" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -60343,11 +60497,22 @@ /turf/open/floor/plasteel, /area/engine/workshop) "cws" = ( -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "cwt" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/orange/hidden, @@ -60638,19 +60803,41 @@ /turf/open/floor/plasteel, /area/quartermaster/warehouse) "cxf" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"cxg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"cxh" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 5 +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cxg" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cxh" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/landmark/start/chemist, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "cxi" = ( /obj/structure/rack, /obj/effect/turf_decal/tile/yellow{ @@ -61060,7 +61247,6 @@ name = "Mining Conveyor Access"; pixel_x = 8; pixel_y = -24; - req_access_txt = "0"; req_one_access_txt = "10;24;48" }, /turf/open/floor/plasteel, @@ -61176,10 +61362,6 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 8; - icon_state = "intact" - }, /obj/structure/disposalpipe/segment{ dir = 9 }, @@ -61257,6 +61439,7 @@ pixel_y = 24 }, /obj/machinery/power/apc{ + dir = 4; name = "Restrooms APC"; pixel_x = 24 }, @@ -61290,19 +61473,11 @@ /turf/open/floor/plating, /area/maintenance/aft) "cyu" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-4" +/obj/structure/closet/wardrobe/chemistry_white{ + anchored = 1 }, -/obj/machinery/camera{ - c_tag = "Aft Maintenance - Port"; - pixel_x = 22 - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/aft) +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "cyv" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -61366,24 +61541,38 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/lobby) "cyB" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/sign/poster/official/medical_green_cross{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "cyC" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "cyD" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -61398,50 +61587,32 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/lobby) "cyF" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, +/obj/structure/closet/secure_closet/chemical, /turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) +/area/medical/chemistry) "cyG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) +/obj/machinery/chem_master, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) "cyH" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/maintenance{ - name = "Aft Maintenance"; - req_access_txt = "12" +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/medical/medbay/lobby) -"cyI" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/aft) +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cyI" = ( +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "cyJ" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -61458,41 +61629,37 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/lobby) "cyL" = ( -/obj/structure/closet/cardboard, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 5 }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/aft) +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "cyM" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cyN" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/maintenance{ - name = "Robotics Lab Maintenance"; - req_access_txt = "29" - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ +/obj/structure/closet/secure_closet/personal/patient, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/purple{ dir = 8 }, -/turf/open/floor/plating, -/area/science/robotics/lab) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cyN" = ( +/obj/machinery/chem_dispenser/apothecary, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) "cyO" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -61857,16 +62024,23 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/heads/cmo) "czv" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - name = "Morgue"; - req_access_txt = "5;29" +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "czw" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 @@ -61913,18 +62087,12 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hor) "czB" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/maintenance{ - name = "Medbay Maintenance"; - req_access_txt = "5" +/obj/effect/turf_decal/tile/yellow{ + dir = 4 }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "czC" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -61958,41 +62126,24 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "czF" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/structure/disposalpipe/sorting/mail/flip{ - sortType = 23 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/area/medical/chemistry) "czG" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/showroomfloor, /area/medical/morgue) "czH" = ( /obj/effect/turf_decal/tile/purple{ - dir = 8 + dir = 1 }, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ +/obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark/side{ + dir = 6 + }, +/area/science/robotics/lab) "czI" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -62027,9 +62178,16 @@ /turf/open/floor/plasteel/white, /area/medical/genetics) "czM" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/obj/machinery/requests_console{ + department = "Chemistry"; + departmentType = 2; + name = "Chemistry RC"; + pixel_x = 30; + pixel_y = 0; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "czN" = ( /obj/structure/closet/crate/trashcart, /obj/structure/sign/departments/custodian{ @@ -62054,11 +62212,12 @@ /turf/open/floor/plating, /area/maintenance/disposal) "czP" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 10 +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/light/small{ + dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) "czQ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment, @@ -62135,24 +62294,14 @@ /turf/open/floor/plasteel, /area/maintenance/disposal) "czW" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/machinery/door/airlock/research/glass{ - name = "Robotics Lab"; - req_access_txt = "29" - }, -/obj/effect/turf_decal/tile/purple{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/obj/effect/turf_decal/tile/purple{ +/obj/structure/chair/office/light{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) "czX" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/orange/hidden, @@ -62211,14 +62360,11 @@ /turf/open/floor/plasteel, /area/maintenance/disposal) "cAc" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/turf/open/floor/plasteel/white, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, /area/medical/medbay/central) "cAd" = ( /obj/structure/disposalpipe/segment, @@ -62343,23 +62489,17 @@ /turf/open/floor/plating, /area/maintenance/disposal) "cAo" = ( -/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/effect/turf_decal/tile/blue, -/obj/machinery/door/window/northright{ - name = "Medbay Desk"; - req_access_txt = "5" +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 }, -/obj/item/clipboard, -/obj/item/clothing/glasses/hud/health, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/item/paper/fluff/cogstation/sleepers, -/obj/item/pen, -/obj/item/clothing/glasses/hud/health, /turf/open/floor/plasteel/white, -/area/medical/medbay/lobby) +/area/medical/medbay/central) "cAp" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ @@ -63793,17 +63933,13 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 6 }, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 }, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/library) "cCK" = ( /obj/structure/cable{ @@ -64181,7 +64317,7 @@ /obj/structure/sign/warning/securearea{ pixel_x = -32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /obj/machinery/airalarm{ @@ -64395,25 +64531,40 @@ /turf/open/floor/engine, /area/gateway) "cDL" = ( -/obj/machinery/gateway{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 - }, -/turf/open/floor/engine, -/area/gateway) -"cDM" = ( -/obj/machinery/gateway/centerstation, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 8 - }, -/turf/open/floor/engine, -/area/gateway) -"cDN" = ( -/obj/machinery/gateway{ +/obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Medbay - Apothecary"; + dir = 8; + network = list("ss13","medbay"); + pixel_y = -22 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cDM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/table/glass, +/obj/item/book/manual/wiki/chemistry, +/obj/item/book/manual/wiki/chemistry{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science{ + pixel_x = 2; + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/medical/chemistry) +"cDN" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 }, @@ -64473,6 +64624,10 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, +/obj/item/stack/cable_coil/red, +/obj/item/stack/cable_coil/red{ + pixel_x = 3 + }, /turf/open/floor/plasteel, /area/gateway) "cDU" = ( @@ -65082,15 +65237,18 @@ name = "Research Sector" }) "cEN" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, /obj/structure/disposalpipe/segment, /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plasteel, /area/science/research{ name = "Research Sector" @@ -65101,37 +65259,24 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/door/airlock/research{ - name = "Chemistry Lab"; - req_access_txt = "8; 33" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/medical/chemistry) -"cEP" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 4 +/obj/machinery/door/airlock/research{ + name = "Robotics Lab"; + req_access_txt = "29" }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, /obj/structure/cable{ icon_state = "1-2" }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"cEP" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "cEQ" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -65482,16 +65627,8 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/item/surgical_drapes, -/obj/item/scalpel, -/obj/item/circular_saw{ - pixel_y = 16 - }, -/obj/item/hemostat, -/obj/item/retractor, -/obj/item/surgicaldrill, -/obj/item/cautery, /obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/item/storage/backpack/duffelbag/med/surgery, /turf/open/floor/plasteel/white, /area/medical/medbay/zone2{ name = "Medbay Treatment Center" @@ -65828,68 +65965,31 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "cFV" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 }, /obj/structure/cable{ icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "cFW" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/disposalpipe/segment{ +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) "cFX" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/machinery/chem_heater, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/research/glass{ - name = "Chemistry Lab"; - req_access_txt = "33" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) "cFY" = ( /turf/open/floor/plasteel, /area/router/air) @@ -66333,10 +66433,54 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "cGF" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/engine, /area/science/storage) "cGG" = ( +/obj/machinery/power/apc{ + areastring = "/area/science/storage"; + dir = 4; + name = "Toxins Storage APC"; + pixel_x = 24 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/science/storage) +"cGH" = ( +/obj/machinery/camera{ + c_tag = "Toxins Lab - Storage"; + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/engine, +/area/science/storage) +"cGI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/chair/office/light, +/obj/effect/landmark/start/chemist, +/turf/open/floor/plasteel, +/area/medical/chemistry) +"cGJ" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/engine, +/area/science/storage) +"cGK" = ( +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/engine, +/area/science/storage) +"cGL" = ( /obj/structure/table, /obj/item/extinguisher, /obj/item/storage/toolbox/mechanical, @@ -66346,60 +66490,11 @@ pixel_x = -7; pixel_y = 3 }, -/obj/structure/cable, -/obj/machinery/power/apc{ - areastring = "/area/science/storage"; - dir = 4; - name = "Toxins Storage APC"; - pixel_x = 24 - }, -/turf/open/floor/plating, -/area/science/storage) -"cGH" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/camera{ - c_tag = "Toxins Lab - Storage"; - dir = 1 - }, -/turf/open/floor/plating, -/area/science/storage) -"cGI" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plating, -/area/science/storage) -"cGJ" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plating, -/area/science/storage) -"cGK" = ( -/obj/structure/window/reinforced{ - dir = 4; - layer = 2.9 - }, -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, -/turf/open/floor/plating, -/area/science/storage) -"cGL" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/light/small, -/turf/open/floor/plating, +/turf/open/floor/engine, /area/science/storage) "cGM" = ( /obj/structure/tank_dispenser, -/turf/open/floor/plating, -/area/science/storage) -"cGN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/science/storage) -"cGO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 10 - }, -/turf/closed/wall/r_wall, +/turf/open/floor/engine, /area/science/storage) "cGP" = ( /obj/effect/spawner/structure/window/reinforced, @@ -66410,7 +66505,7 @@ name = "Plasma Canister Storage"; req_access_txt = "7;8" }, -/turf/open/floor/plating, +/turf/open/floor/engine, /area/science/storage) "cGR" = ( /obj/effect/landmark/start/scientist, @@ -66440,16 +66535,30 @@ /turf/open/floor/plasteel/white, /area/science/circuit) "cGU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plating/airless, -/area/science/storage) +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/door/airlock/medical{ + name = "Morgue"; + req_access_txt = "5;6" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) "cGV" = ( /obj/machinery/portable_atmospherics/canister/toxins, -/turf/open/floor/plating, +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine, /area/science/storage) "cGW" = ( /obj/effect/landmark/blobstart, -/turf/open/floor/plating, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, /area/science/storage) "cGX" = ( /obj/structure/cable{ @@ -66471,9 +66580,6 @@ /turf/open/floor/plasteel/white, /area/science/circuit) "cGZ" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1 - }, /turf/open/floor/plating/airless, /area/science/storage) "cHa" = ( @@ -66485,7 +66591,8 @@ c_tag = "Toxins Lab - Plasma Storage"; dir = 1 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine, /area/science/storage) "cHb" = ( /obj/structure/cable{ @@ -66525,6 +66632,7 @@ /obj/item/stock_parts/cell/high/plus, /obj/item/stock_parts/cell/high/plus, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/item/stack/cable_coil/red, /turf/open/floor/plasteel/white, /area/science/circuit) "cHg" = ( @@ -66679,14 +66787,8 @@ dir = 8; network = list("ss13","medbay") }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/dark/side{ - dir = 8 - }, +/turf/open/floor/plasteel/dark, /area/science/explab) "cHw" = ( /obj/structure/disposalpipe/segment, @@ -66761,10 +66863,6 @@ /obj/structure/cable{ icon_state = "0-8" }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, /obj/machinery/power/apc{ areastring = "/area/science/explab"; dir = 4; @@ -66772,14 +66870,13 @@ pixel_x = 24 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/dark/side{ - dir = 8 - }, +/turf/open/floor/plasteel/dark, /area/science/explab) "cHD" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 6 }, +/obj/item/beacon, /turf/open/floor/engine, /area/science/explab) "cHE" = ( @@ -66967,13 +67064,18 @@ /turf/open/floor/plasteel, /area/security/checkpoint/supply) "cHW" = ( -/obj/machinery/rnd/production/circuit_imprinter, -/obj/item/reagent_containers/glass/beaker, -/obj/structure/sign/poster/official/state_laws{ - pixel_y = 32 +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 2; + icon_state = "left"; + name = "Chemistry Desk"; + req_access_txt = "33" }, -/turf/open/floor/circuit, -/area/science/robotics/lab) +/turf/open/floor/plasteel, +/area/medical/chemistry) "cHX" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -67337,7 +67439,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/photosynthetic, +/obj/item/kirbyplants/photosynthetic, /obj/machinery/airalarm{ pixel_y = 24 }, @@ -67996,13 +68098,13 @@ name = "Engineering Construction Area" }) "cJK" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4 + }, /turf/open/floor/plating, /area/engine/engineering{ name = "Engine Room" @@ -68297,12 +68399,14 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/lobby) "cKi" = ( -/obj/structure/sign/poster/official/space_cops{ - pixel_y = 32 +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/door/airlock/medical{ + name = "Apothecary"; + req_access_txt = "5" }, -/obj/machinery/atmospherics/pipe/manifold/orange/hidden, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) +/turf/open/floor/plasteel/showroomfloor, +/area/medical/medbay/central) "cKj" = ( /obj/structure/closet/secure_closet/CMO, /obj/effect/turf_decal/tile/blue, @@ -68534,15 +68638,23 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "cKH" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8 +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plasteel, -/area/science/mixing) +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "cKI" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -69807,17 +69919,24 @@ /turf/open/floor/plating/airless, /area/router/aux) "cNJ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/maintenance/aft) +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Medbay - Starboard"; + network = list("ss13","rd") + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "cNK" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on{ dir = 4 @@ -69900,14 +70019,18 @@ /turf/open/floor/plating, /area/quartermaster/miningdock/airless) "cNV" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/science/robotics/lab) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "cNW" = ( /obj/structure/lattice/catwalk, /obj/machinery/camera{ @@ -70593,40 +70716,14 @@ icon_state = "4-8" }, /obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/circuit, +/area/science/robotics/mechbay) "cPw" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/structure/sign/poster/contraband/kss13{ - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/maintenance/department/science{ - name = "Research Maintenance" - }) -"cPx" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/obj/structure/sign/poster/official/medical_green_cross{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) +/turf/open/floor/plasteel/dark, +/area/science/robotics/mechbay) "cPy" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -70823,46 +70920,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"cPP" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/plus, -/obj/item/stock_parts/cell/high/plus{ - pixel_y = 8 - }, -/obj/item/stock_parts/cell/high/plus{ - pixel_y = 8 - }, -/obj/item/assembly/flash/handheld{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/flash/handheld{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/flash/handheld{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/flash/handheld{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/flash/handheld{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/flash/handheld{ - pixel_x = -8; - pixel_y = 4 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) "cPQ" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -71497,6 +71554,10 @@ /obj/structure/cable{ icon_state = "0-8" }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, /turf/open/floor/plating, /area/bridge) "cQT" = ( @@ -71505,6 +71566,10 @@ /obj/structure/cable{ icon_state = "0-4" }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, /turf/open/floor/plating, /area/bridge) "cQU" = ( @@ -71515,10 +71580,14 @@ /obj/structure/cable{ icon_state = "0-2" }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, /turf/open/floor/plating, /area/bridge) "cQV" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02" }, /obj/structure/cable{ @@ -71664,7 +71733,7 @@ icon_state = "1-8" }, /obj/machinery/turretid{ - control_area = "area/science/server"; + control_area = "/area/science/server"; icon_state = "control_stun"; name = "Computer Core turret control"; pixel_x = -3; @@ -71672,7 +71741,9 @@ req_access_txt = "65" }, /turf/open/floor/plasteel, -/area/ai_monitored/turret_protected/ai_upload_foyer) +/area/science/server{ + name = "Computer Core" + }) "cVq" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 4 @@ -71699,6 +71770,13 @@ /obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/atmos) +"dYm" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/storage) "eCy" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 9 @@ -71838,6 +71916,17 @@ }, /turf/open/space/basic, /area/space/nearstation) +"gVV" = ( +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/engine, +/area/science/storage) "hcR" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 5 @@ -71877,6 +71966,13 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) +"hFa" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/engine, +/area/science/storage) "hKC" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ dir = 5 @@ -72017,11 +72113,27 @@ }, /turf/open/space/basic, /area/space/nearstation) +"mBP" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel, +/area/science/mixing) "mEa" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible, /obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/atmos) +"mIm" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light{ + light_color = "#cee5d2" + }, +/turf/open/floor/engine, +/area/science/storage) "mIT" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/simple/supplymain/visible, @@ -72362,6 +72474,9 @@ /obj/item/pen, /turf/open/floor/plasteel, /area/engine/atmos) +"xxP" = ( +/turf/closed/wall, +/area/quartermaster/storage) "xCy" = ( /obj/machinery/atmospherics/components/binary/pump, /obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ @@ -78441,11 +78556,11 @@ aaa aaa aaa aaa -aaf +bnj aaw bHZ aaw -aaf +bnj aaa aaa aaa @@ -79211,13 +79326,13 @@ aaa aaa aaa aaw -acp +bgD acp beh -acp +bKH crL acp -acp +bLB aaw aaa aaa @@ -79983,11 +80098,11 @@ aaa aaa aaa aaa -aaf +bnj aaw crG aaw -aaf +bnj aaa aaa aaa @@ -80498,9 +80613,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -80755,9 +80870,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -81012,9 +81127,9 @@ aaa aaa aaa aaa -aaa +aaU bbv -aaa +aaU aaa aaa aaa @@ -81269,9 +81384,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -81526,9 +81641,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -81783,9 +81898,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -82040,9 +82155,9 @@ aaa aaa aaa aaa -aaa +aaU bbv -aaa +aaU aaa aaa aaa @@ -82297,9 +82412,9 @@ aaa aaa aaa aaa -aaa +aaU bbv -aaa +aaU aaa aaa aaa @@ -82554,9 +82669,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -82811,9 +82926,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -83068,9 +83183,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -83325,9 +83440,9 @@ aaa aaa aaa aaa -aaa +aaU bbv -aaa +aaU aaa aaa aaa @@ -83582,9 +83697,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -83839,9 +83954,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -84096,9 +84211,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -84353,9 +84468,9 @@ aaa aaa aaa aaa -aaa +aaU bbv -aaa +aaU aaa aaa aaa @@ -84610,9 +84725,9 @@ aaa aaa aaa aaa -aaa +aaU bbv -aaa +aaU aaa aaa aaa @@ -84867,9 +84982,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -85124,9 +85239,9 @@ aaa aaa aaa aaa -aaa +aaU bbv -aaa +aaU aaa aaa aaa @@ -85381,9 +85496,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -85638,9 +85753,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -85895,9 +86010,9 @@ aaa aaa aaa aaa -aaa +aaU bbv -aaa +aaU aaa aaa aaa @@ -86152,9 +86267,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -86409,9 +86524,9 @@ aaa aaa aaa aaa -aaa +aaU bbv -aaa +aaU aaa aaa aaa @@ -86666,9 +86781,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -86923,9 +87038,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -87180,9 +87295,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -87437,9 +87552,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -87694,9 +87809,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -87951,9 +88066,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -88208,9 +88323,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -88465,9 +88580,9 @@ aaa aaa aaa aaa -aaa +aaU bbv -aaa +aaU aaa aaa aaa @@ -88722,9 +88837,9 @@ aaa aaa aaa aaa -aaa +aaU bbv -aaa +aaU aaa aaa aaa @@ -88979,9 +89094,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -89236,9 +89351,9 @@ aaa aaa aaa aaa +aaU aaa -bbv -aaa +aaU aaa aaa aaa @@ -89493,9 +89608,9 @@ aaa aaa aaa aaa -aaa +aaU bbv -aaa +aaU aaa aaa aaa @@ -89750,9 +89865,9 @@ aaa aaa aaa aaa -aaa +aaU bbv -aaa +aaU aaa aaa aaa @@ -90007,8 +90122,8 @@ aaa aaa aaa aaa +aaU aaa -bbv aaU aaa aaa @@ -90264,8 +90379,8 @@ aaa aaa aaa aaa -aaa aaU +aaa aaU aaU aaU @@ -90273,7 +90388,7 @@ aaU aaU aaa aaa -aaa +aaU aaU aaa aaa @@ -90522,13 +90637,13 @@ aaa aaa aWj aaU -aaU +aaa bcy cnU cnU cnU bZW -aaU +aaa aaU aaU cbb @@ -90779,15 +90894,15 @@ aaa bcw aUZ bcw -aaU +aaa bcy bdc byc bdc bcy -bYG -bYG -bYG +aaU +aaU +aaa cbb cbg chT @@ -91042,15 +91157,15 @@ bfp cwY bOD bcy -bwK -bAz -bAN -cGN -cbg -chV -crn -cGI -cGN +aaU +aaU +aaa +cbb +hFa +csR +csR +csR +cbb aaU aaU aaU @@ -91243,7 +91358,7 @@ aGM cQQ aHF aII -aJu +abO aKG aRe aXS @@ -91299,16 +91414,16 @@ bfo blG bfo bcy -bwM -bAz -bAN -bKH -cbh -clc +aaa +aaU +aaU +cbb +csR +csR cGJ -cGJ -cGO -cGU +dYm +cbb +cGZ cGZ cbb bxT @@ -91549,20 +91664,20 @@ aaa aaa bcy bdf -bdf +mBP crJ blT bqJ bBN bKI bOr -bnl -bdc -bfn +aaa +aaU +aaa cbb cbn -cmK -cnO +csR +gVV cGK cbb cbb @@ -91813,12 +91928,12 @@ bfo blI bfo bWS -bfo -bAF -bfo +bcw +bcw +bcw bcy cbu -cnz +csR cGF cGL cGP @@ -92070,17 +92185,17 @@ bwN bJY bLE bOE -cKH +bJY cKI cbP bcy cbC cnO -cnO +csR csR cGQ cGW -cGV +mIm cbb bKa cGq @@ -92329,7 +92444,7 @@ bAG cnT boQ cKJ -bga +bAP bcy chR cnV @@ -92584,7 +92699,7 @@ bgC bdf boR bDL -boR +boQ cKJ bAP bcy @@ -92832,13 +92947,13 @@ aaa aaa aaa aaa -bUo -bbF -bbN -bim -bem -bgD -bmE +aaU +aaU +aaa +aaa +bcw +bdf +bdf bpM bFp bvj @@ -93089,13 +93204,13 @@ aaa aaa aaa aaa -bUo -bbL -bbN bim -beq +aaU +aaU +aaa +bcw bhy -bnj +bdf bpR bJw bLc @@ -93346,10 +93461,10 @@ aaa aaa aaa aaU -bZW -bcy -bcy -bcy +aaa +aaa +aaU +aaU bcy biK bdf @@ -93377,9 +93492,9 @@ caP caT caX caX -cbf caX -cbr +cbh +caX caX cbx cav @@ -93603,13 +93718,13 @@ aaa aaa aaa aaU -bdc -bdc -bdc -bei -beI +aaa +aaa +aaa +aaU +bcw biT -bmE +bdf bpR bwD bLx @@ -93635,8 +93750,8 @@ caT caY caX caX -cbm -cbs +caX +caX caX ctI cav @@ -93860,8 +93975,8 @@ aaU aaU aaU aaU -bcy -bcy +aaa +aaa bgW bgW bgW @@ -95169,7 +95284,7 @@ bYv bYv cio cct -caz +cct bOO cHq cHs @@ -95323,7 +95438,7 @@ adb anU aaR aqa -amZ +awY adO acN amZ @@ -95334,8 +95449,8 @@ alM axK axX azk -awY -awY +acN +acN azl aJw anU @@ -95426,15 +95541,15 @@ cct bYo ckk bYF -bBP +cct bFu bIc -bBQ -bBQ -bFG +btn +btn +bsM cuY -bCg -bCg +bIk +bIk cbB cbB cbB @@ -95683,15 +95798,15 @@ bYv bYp bYx cPw -bBQ -bFE +caz +ccd bId -bIL +cpw cpw bKd cuZ bKN -bCg +bIk aaU aaU aaU @@ -95829,8 +95944,8 @@ aas aaA aaH aic -abv -abO +aaF +aaF acu aaA acU @@ -95940,15 +96055,15 @@ bYv bYq cPv bYH -bBQ +bYv bDT bIe -bIM -bIM -bIM +bYB +bto +bYB cvt -bJD -bJH +bSe +ceb aaU aaa aaa @@ -96191,21 +96306,21 @@ bpz aaa aaU bXU -bKs -bKv +aJV +brz bYv cgr bYy crf -bBQ +bYv bFx bIf -bIM +bto csZ -bIM +bto cvQ -bJE -bJH +caO +ceb aaU aaa aaa @@ -96369,7 +96484,7 @@ aCH aew aIn aew -aJV +aFG aew aew ayT @@ -96451,18 +96566,18 @@ bXU bKs bLG bYv -bzA +bYv cwb bYv -bBQ +bYv csV bIe bYB -cfU -bIM -cvt +cqz +bYB +bua cmS -bJH +ceb aaU aaa aaa @@ -96719,7 +96834,7 @@ cgf bKe czH bKO -bJH +ceb aaU aaa aaa @@ -96885,7 +97000,7 @@ aJt aJN aQg akv -aeJ +aew ayU aSQ aTg @@ -96976,7 +97091,7 @@ cka cmR cFV bKP -bJH +ceb aaU aaa aaa @@ -97142,7 +97257,7 @@ aLf aJO aQi alU -aeJ +aew ayW aSQ aAB @@ -97225,15 +97340,15 @@ cfZ bWX bWX ckf -bCf +bIk bFB bIh -bYK +ccd bJC bKf cFW bKQ -bCg +bIk aaU aaa aaa @@ -97399,7 +97514,7 @@ akv aKa aKw alU -aeJ +aew azc aSQ aAB @@ -97430,11 +97545,11 @@ bgx bdg bdg aWZ -aXF +aZf aYk aYk aYk -aZt +aYg aWZ bdg bdg @@ -97482,15 +97597,15 @@ bXU bXU bXU bWa -bCg +bIk bFC -bIi -caj +bIj +ccd bJD -bCg -cFX +ccm +coH bJH -bCg +bIk cOI cOI cOI @@ -97637,7 +97752,7 @@ alq alq apn aqF -aeJ +aew agD ahr aiH @@ -97739,12 +97854,12 @@ aaU aaU aaU aaU -bCg +bIk clv -bIi -caH +bsU +ccd bJE -bCg +ccm cOx cOA cOE @@ -97996,12 +98111,12 @@ aaa aaa aaa aaU -bCg +bIk bZT -bIi -cbK +bsU +ccd ckb -coH +cdW cOy cOB cOF @@ -98253,12 +98368,12 @@ aaU aaU aaU aaU -bCg +bIk cum bIj ccd cvS -bCg +bIk cOz cOC cOG @@ -98510,12 +98625,12 @@ brU cdZ brU brU -bCg -bFG +bIk +bIk bIk ccB bJH -bCg +bIk cGb bRI cOH @@ -98733,7 +98848,7 @@ bZC cjv aYc bZF -bau +bay bZU cnW bbq @@ -99000,7 +99115,7 @@ aaa aaa aaa aaa -aaU +aUk aUk aUk cnm @@ -99247,7 +99362,7 @@ aXg bZK bZF csH -bau +bay bKw bZH bZH @@ -99257,12 +99372,12 @@ aaa aaa aaa aaa -aaU -aaa aUk +bnl +bAz aWr -cDL -biU +cDN +bmG aUk bWr cEl @@ -99514,12 +99629,12 @@ aaa aaa aaa aaa -aaU -aaa aUk +bwK +bAF aXm -cDM -blU +cDN +bmG aUk bWc bWo @@ -99535,7 +99650,7 @@ bRJ bth bTB cek -cAo +csK cKk cKl cKm @@ -99759,7 +99874,7 @@ bbs aZy cry crA -aYG +bZF cCJ baE bZS @@ -99771,9 +99886,9 @@ aaa aaa aaa aaa -bUq -bUq aUk +bwM +bAN aXs cDN bmG @@ -100028,7 +100143,7 @@ bTW bTW bTW bTW -bUr +bmE bUu aUk aXt @@ -100832,7 +100947,7 @@ cqb bKy cFv bJI -bLB +bJI bLL bMa ctF @@ -101073,9 +101188,9 @@ bXi bXq caQ bXC -bXL -cyF -bst +bvK +bHI +bYK buK bst bst @@ -101086,7 +101201,7 @@ cEY bvn bJg bQl -bQl +bYG cFw bpa bQn @@ -101330,9 +101445,9 @@ buF bDm bqe ceY -bst -cyG -bst +bwf +bHJ +cbr cDE cDG cEa @@ -101587,9 +101702,9 @@ bbh bbh bqm bqm -cdW -cyG -cdY +byw +bst +cbr cDF cDJ cKC @@ -101844,9 +101959,9 @@ bbh bpA bXz bqm -cmU -cyG -cdX +byD +bHJ +cbs buS cDZ czg @@ -101857,7 +101972,7 @@ cFb bEl bJn bQm -bQm +cbf bop bpe bQz @@ -102099,11 +102214,11 @@ ccp cJe bbh bpB -bPw +btv bqm -bsG -cyG -bsG +bzJ +bst +cbK buS bAJ czh @@ -102356,11 +102471,11 @@ ccw csM cyo cyt -bPw -bqm -bqm -cyH -bqm +blU +bqz +bAD +bIi +bBP buS caR czi @@ -102612,18 +102727,18 @@ cIH cgv coE bxM -cyu -cNJ -cyB -cyC -cyI -cyL +bau +bXt +brH +bAE +bIt +cdX buS buS buS buS buS -bFZ +cnz cEZ bJa aKZ @@ -102635,7 +102750,7 @@ bqR bAM cvx bMk -bMv +bMw bMD bMv bMv @@ -102869,18 +102984,18 @@ cIF cgB bqr bbh +bga +bqs +brJ +bBs +bIL ciQ -bpD -bpD -cmB -bpD -cyM -cyB -cyB -cyB -cyB -czB -czF +cmK +cws +czv +cmU +crg +cvR cFd bEl aMm @@ -103127,17 +103242,17 @@ cgB bqx bbh bPw -bqq -bqq -bqq -bqq -bqq -bqq -bqq -bqq -bqq -bqq -bHC +bqz +bqz +bzA +bFE +bFG +col +cxh +czB +cnk +bqz +cKH cFe cFk cFm @@ -103384,17 +103499,17 @@ cgB bqr bbh bPw +bqz bqq -brz -bsL -bSe -bJd -bQp -byw bzG -bAC -bCY -bHD +bFZ +ckp +com +cyu +czF +cDM +crn +cxf cFf bEl aOF @@ -103641,17 +103756,17 @@ cgB bqr bbh bPw -bqq +bqz +brK +bCf +bJd +ckD +cpI +cyF +czM +cGI cHW -bsM -btn -buj -bvK -bts -bts -bAD -bCY -bHD +cxg cFf bJb bJJ @@ -103898,17 +104013,17 @@ cgB bqr bcT bPw -bqq -ccm -bsM -bto -buj -bwf -byD -bts -bAE -bCY -bHE +bqz +bsL +bzG +bFG +clc +bqz +bqz +bqz +bqz +bqz +cNJ cAm cAt cAv @@ -104152,20 +104267,20 @@ bbh bdF cIL ciF -bqz +aYG bdu -caO -cov -ceb +biU +brF bsN -btp -buj -cup -bts -bts -ckp -bqq -bHG +bCg +bHC +cmB +bqz +cyG +czP +bBQ +cKi +cNV cFf bJc bJL @@ -104309,7 +104424,7 @@ agK adF adj aaU -abz +abv acP aef afg @@ -104412,17 +104527,17 @@ ciW bqC bdu bXt -bqs -brF -bsP -cnk csi -cvu -cxf -cxh -ckD -bqq -cPx +bsP +bAC +bHC +bIM +bqz +cyN +czW +cFX +bRI +cyB cFh bJe cRb @@ -104669,19 +104784,19 @@ cjV bdu bdu bXu -bqq -brH +bqz bsQ -col -bul -cws -cxg -czM -bBs bCY -bHI +bHE +bqz +bqz +bMj +cAc +cov +bMj +cyC cFf -bJc +btp bJN cHO bKz @@ -104926,17 +105041,17 @@ cgB bTv bcT bQE -bqq -bqq -bqq -com -bqq -cws -byD -czP -cxf -czW -cAc +bqz +bqz +bqz +bJf +bqz +caj +cdY +cAo +cdY +cup +cyH cFi bMF bNF @@ -105183,19 +105298,19 @@ cgB bYW bcT bQE -bqq +bsV +bsG +bHD +bHD +bMj +caH +chV +cDL cox -cNV -cpI -csK -cKi -cvR -cPP -bts -bCY -bHJ -bIt -bJf +cvu +cyI +cyL +cyM bJO cKp cHS @@ -105440,16 +105555,16 @@ cgB bbh bbh bQE -bqq -brJ -bsU -crg -bqq -cyN -bqq -bzJ -czv -bqq +bsV +bts +bHG +bQp +bMj +cbm +byQ +bHK +cGU +byQ bHK bIu bJh @@ -105697,11 +105812,11 @@ cgB bbh bpm bQE -bqq -brK -bua -btv -bqq +bsV +buj +bpD +bXL +bsV cyO byN bzK @@ -105954,11 +106069,11 @@ cmn bWZ bXj bXv -bqq -bqq -bqq -bqq -bqq +bsV +bul +bpD +bsV +bsV cyP byQ bzS @@ -108241,7 +108356,7 @@ cfK cgb cgw chj -chr +aXF chD cid cju @@ -108753,8 +108868,8 @@ arB asw atb avl -awW aMa +crv aOE aQc clz @@ -109011,10 +109126,10 @@ cJw cJN asR awe -awX -azE -azE -aOQ +asS +asS +asS +asS avC aQe ckx @@ -109268,17 +109383,17 @@ asD asR asR avE -axt -axt -axt -axt -avE +avQ +avQ +avQ +avQ +bem aQe asR aSK aSr aeI -cqt +bxz bwP cBn cBH @@ -109781,13 +109896,13 @@ tjb asx asS auD -avI +awX axQ beH axQ -avQ +aZt avI -avE +beI asS aSL aTZ @@ -110295,7 +110410,7 @@ anE anE aQT ayb -axM +axt aCZ aRG aOl @@ -110308,7 +110423,7 @@ aUf aeI bnp cmO -bQq +cfU cmm cri cdH @@ -110809,16 +110924,16 @@ arO asC asS auY -avV +azE ayo bCb ayo -avQ +bei avV aQs asS bwJ -aTZ +bfn aXh cqw bSx @@ -111063,7 +111178,7 @@ cJD cmu atF arY -arF +awW asS avc awa @@ -111323,12 +111438,12 @@ cJK cJL cJO asR -avE +aOQ bev cbJ aOx aPc -avE +beq aQe asR crw @@ -111591,7 +111706,7 @@ aRR cpj aSr aeI -cqz +bQq cqI bQM cdl @@ -114938,7 +115053,7 @@ bbV bjf bkh blu -bbV +ciI ccZ cgs cxo @@ -116735,7 +116850,7 @@ cPH bfU bFD bgO -bhA +cqt bUQ cvj cDg @@ -117983,7 +118098,7 @@ bwb aMs cAb cAl -bxz +bhA bgP bzO caD @@ -121108,7 +121223,7 @@ bgT bjr bkr ble -bgT +xxP bnC boD bgT diff --git a/_maps/map_files/CogStation/FOLDER.txt b/_maps/map_files/CogStation/FOLDER.txt deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 104cee0b9d..0d3665c58d 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -124,33 +124,6 @@ }, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) -"aaq" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"aar" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating, -/area/engine/supermatter) "aas" = ( /obj/docking_port/stationary/random{ id = "pod_lavaland1"; @@ -170,265 +143,10 @@ /obj/effect/landmark/xeno_spawn, /turf/open/space, /area/solar/starboard/fore) -"aav" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/oil, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"aaw" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"aax" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engpa"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aay" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engpa"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aaz" = ( -/obj/effect/decal/cleanable/oil, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engpa"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aaA" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engpa"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aaB" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engpa"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aaC" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engpa"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"aaD" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engpa"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating, -/area/engine/engineering) "aaE" = ( /obj/structure/lattice/catwalk, /turf/open/space, /area/solar/starboard/fore) -"aaF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating, -/area/engine/atmospherics_engine) -"aaG" = ( -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/structure/cable/white{ - icon_state = "0-2" - }, -/obj/structure/cable/white{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating, -/area/engine/atmospherics_engine) -"aaH" = ( -/obj/structure/cable/white{ - icon_state = "0-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating, -/area/engine/atmospherics_engine) -"aaI" = ( -/obj/structure/dresser, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/sign/poster/contraband/scum{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/cafeteria, -/area/maintenance/port/fore) -"aaJ" = ( -/obj/item/twohanded/required/kirbyplants/random, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/sign/poster/official/nt_storm_officer{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/security/main) -"aaK" = ( -/obj/machinery/flasher/portable, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/sign/poster/official/nt_storm{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"aaL" = ( -/obj/structure/rack, -/obj/item/gun/energy/ionrifle, -/obj/item/clothing/suit/armor/laserproof, -/obj/item/gun/energy/temperature/security, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/sign/poster/official/ion_rifle{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"aaM" = ( -/obj/machinery/vending/wardrobe/medi_wardrobe, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/sign/poster/official/medical_green_cross{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/medical/storage) -"aaN" = ( -/obj/structure/bed/roller, -/obj/machinery/iv_drip, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/structure/sign/poster/official/medical_green_cross{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) "aaO" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -436,54 +154,15 @@ "aaP" = ( /turf/closed/wall/mineral/plastitanium, /area/hallway/secondary/entry) -"aaQ" = ( -/obj/structure/sign/poster/official/medical_green_cross, -/turf/closed/wall, -/area/medical/medbay/central) -"aaR" = ( -/obj/structure/table/wood, -/obj/item/assembly/igniter, -/obj/item/assembly/igniter, -/obj/item/assembly/timer{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/contraband/scum{ - pixel_x = 32 - }, -/obj/structure/sign/poster/contraband/scum{ - pixel_x = 32 - }, -/obj/structure/sign/poster/contraband/scum{ - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) "aaS" = ( /turf/closed/wall/mineral/plastitanium, /area/construction/mining/aux_base) -"aaT" = ( +"abe" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) -"aaU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aaV" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) "abf" = ( /turf/closed/wall, /area/hallway/secondary/entry) @@ -508,6 +187,15 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) +"abq" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "abs" = ( /obj/docking_port/stationary{ dwidth = 1; @@ -645,7 +333,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -691,7 +379,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "acp" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/yellow{ dir = 1 }, @@ -1200,6 +888,19 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/construction/mining/aux_base) +"adY" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/door/window{ + req_one_access_txt = "48,50" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) "aea" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ @@ -1318,7 +1019,7 @@ name = "Construction RC"; pixel_y = 32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/yellow{ dir = 1 }, @@ -1381,7 +1082,7 @@ dir = 1 }, /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel, @@ -1391,7 +1092,7 @@ dir = 1 }, /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel, @@ -1408,7 +1109,7 @@ dir = 1 }, /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -1672,14 +1373,14 @@ /area/hallway/secondary/entry) "agk" = ( /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "agl" = ( /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel, @@ -1985,7 +1686,7 @@ dir = 4; pixel_x = -24 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, @@ -2225,7 +1926,7 @@ /area/maintenance/starboard/fore) "aio" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/sign/poster/contraband/random{ pixel_y = 32 }, @@ -2296,7 +1997,7 @@ /area/maintenance/starboard/fore) "ais" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -2950,7 +2651,7 @@ dir = 4 }, /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -3010,7 +2711,7 @@ "ajR" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -3423,7 +3124,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "akJ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral, @@ -3447,7 +3148,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "akN" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -3700,7 +3401,7 @@ /turf/open/floor/plasteel/grimy, /area/security/vacantoffice) "alo" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ pixel_y = 24 }, @@ -3781,7 +3482,7 @@ pixel_x = 26; pixel_y = 26 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -4205,7 +3906,7 @@ /turf/open/floor/plasteel/grimy, /area/hallway/secondary/entry) "amq" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/grimy, /area/hallway/secondary/entry) "amr" = ( @@ -4473,7 +4174,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/electronic_marketing_den) "amN" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -4504,7 +4205,7 @@ /turf/open/floor/wood, /area/crew_quarters/electronic_marketing_den) "amQ" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/electronic_marketing_den) "amR" = ( @@ -4534,7 +4235,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/electronic_marketing_den) "amV" = ( @@ -4830,7 +4531,7 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "anB" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -4860,7 +4561,7 @@ /turf/open/floor/plasteel, /area/maintenance/starboard/fore) "anD" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -5598,7 +5299,7 @@ /turf/open/floor/plasteel/dark, /area/engine/atmospherics_engine) "aoM" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/dark, /area/crew_quarters/electronic_marketing_den) "aoN" = ( @@ -5899,7 +5600,7 @@ /turf/open/floor/plasteel, /area/maintenance/starboard/fore) "apt" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plating, /area/maintenance/starboard/fore) "apu" = ( @@ -6293,7 +5994,7 @@ /turf/open/floor/plasteel/grimy, /area/security/vacantoffice) "aqf" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/security/vacantoffice) "aqg" = ( @@ -6386,7 +6087,7 @@ /obj/machinery/newscaster{ pixel_y = -32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/grimy, @@ -6783,7 +6484,7 @@ /turf/open/floor/wood, /area/crew_quarters/electronic_marketing_den) "aqT" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable/white, /obj/machinery/power/apc{ areastring = "/area/crew_quarters/electronic_marketing_den"; @@ -7245,7 +6946,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "arM" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -7280,7 +6981,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "arQ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -8761,7 +8462,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/neutral{ @@ -8819,7 +8520,7 @@ /area/hallway/secondary/entry) "auq" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/neutral, @@ -9379,6 +9080,17 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) +"avk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plating, +/area/engine/atmospherics_engine) "avl" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{ @@ -10196,7 +9908,7 @@ /turf/open/floor/plating, /area/crew_quarters/toilet/auxiliary) "awM" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/camera{ c_tag = "Auxiliary Restroom"; name = "restroom camera" @@ -10496,7 +10208,7 @@ "axr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/bot, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "axs" = ( @@ -10536,6 +10248,20 @@ }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) +"axv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plating, +/area/engine/supermatter) "axw" = ( /obj/structure/cable{ icon_state = "4-8" @@ -10593,6 +10319,19 @@ }, /turf/open/floor/engine, /area/engine/supermatter) +"axD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plating, +/area/engine/supermatter) "axE" = ( /obj/structure/cable{ icon_state = "2-8" @@ -10620,7 +10359,7 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "axG" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/sign/warning/nosmoking{ pixel_x = 32 }, @@ -10704,6 +10443,15 @@ }, /turf/open/floor/plasteel, /area/maintenance/port/fore) +"axN" = ( +/obj/structure/dresser, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/sign/poster/contraband/scum{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/cafeteria, +/area/maintenance/port/fore) "axO" = ( /obj/structure/table/wood, /obj/item/camera, @@ -11250,6 +10998,20 @@ }, /turf/open/floor/circuit/green, /area/engine/supermatter) +"ayM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/oil, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plating, +/area/engine/supermatter) "ayN" = ( /obj/structure/cable{ icon_state = "2-8" @@ -11844,6 +11606,19 @@ }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) +"azS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plating, +/area/engine/supermatter) "azT" = ( /obj/machinery/power/rad_collector/anchored, /obj/machinery/atmospherics/pipe/manifold/general/visible{ @@ -12524,7 +12299,7 @@ name = "Maintenance Garden" }) "aBh" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light/small{ dir = 1 }, @@ -12577,7 +12352,7 @@ name = "Maintenance Garden" }) "aBm" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/status_display/evac{ pixel_y = 32 }, @@ -12599,7 +12374,7 @@ name = "Maintenance Garden" }) "aBo" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light/small{ dir = 1 }, @@ -13913,7 +13688,7 @@ /turf/open/floor/plasteel/grimy, /area/hallway/secondary/service) "aDH" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/sign/nanotrasen{ pixel_x = 32 }, @@ -14150,10 +13925,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/quartermaster/storage) -"aEh" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/quartermaster/storage) "aEi" = ( /obj/structure/cable/white{ icon_state = "0-2" @@ -14829,7 +14600,7 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aFu" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -15020,7 +14791,7 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aFH" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -15036,7 +14807,7 @@ /turf/open/floor/plasteel, /area/engine/atmospherics_engine) "aFJ" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -15901,9 +15672,6 @@ /turf/open/floor/plasteel/dark, /area/maintenance/disposal/incinerator) "aGU" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -15918,9 +15686,6 @@ /turf/open/floor/plasteel/dark, /area/maintenance/disposal/incinerator) "aGV" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, /obj/structure/cable/white{ icon_state = "2-4" }, @@ -15959,7 +15724,7 @@ /turf/open/floor/plasteel/dark, /area/maintenance/disposal/incinerator) "aGX" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, @@ -16112,7 +15877,7 @@ /area/engine/atmospherics_engine) "aHj" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -16179,7 +15944,7 @@ /turf/open/floor/plasteel, /area/maintenance/port/fore) "aHq" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/newscaster{ pixel_x = -32 }, @@ -16269,7 +16034,7 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/bar) "aHx" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -16807,17 +16572,18 @@ /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "aIu" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/cable{ icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "aIv" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/structure/cable{ icon_state = "4-8" }, @@ -16828,6 +16594,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "aIw" = ( @@ -16921,6 +16690,24 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, /area/engine/atmospherics_engine) +"aID" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plating, +/area/engine/atmospherics_engine) "aIE" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ @@ -16940,6 +16727,18 @@ }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) +"aIF" = ( +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plating, +/area/engine/atmospherics_engine) "aIG" = ( /obj/machinery/portable_atmospherics/canister/toxins, /obj/effect/turf_decal/bot, @@ -18423,10 +18222,10 @@ /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/dark/corner, /area/maintenance/disposal/incinerator) "aLi" = ( @@ -18440,26 +18239,15 @@ "aLj" = ( /obj/machinery/meter, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/general/visible, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, /turf/open/floor/plasteel/dark/corner, /area/maintenance/disposal/incinerator) "aLk" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Port to Turbine" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/corner, -/area/maintenance/disposal/incinerator) -"aLl" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, @@ -18788,7 +18576,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "aLO" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/brown{ dir = 1 }, @@ -18892,7 +18680,7 @@ /turf/open/floor/plasteel, /area/security/checkpoint/supply) "aLV" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/airalarm{ dir = 8; pixel_x = 24 @@ -19071,7 +18859,7 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, @@ -19335,7 +19123,7 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/abandoned_gambling_den/secondary) "aMR" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/grimy, /area/crew_quarters/abandoned_gambling_den/secondary) "aMS" = ( @@ -19345,7 +19133,7 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/abandoned_gambling_den/secondary) "aMT" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm{ pixel_y = 23 @@ -19368,7 +19156,7 @@ }, /area/crew_quarters/abandoned_gambling_den/secondary) "aMV" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/abandoned_gambling_den/secondary) "aMW" = ( @@ -19961,13 +19749,15 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, /obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{ pixel_y = 27 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "aNV" = ( @@ -20022,7 +19812,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -20033,6 +19822,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aOa" = ( @@ -20053,7 +19843,6 @@ /area/engine/atmos) "aOb" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general/visible, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -20096,9 +19885,6 @@ name = "Station Intercom"; pixel_y = 26 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -20111,29 +19897,6 @@ }, /turf/open/floor/plasteel/dark, /area/engine/atmos) -"aOe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"aOf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/atmos) "aOh" = ( /obj/machinery/status_display/evac{ pixel_y = 32 @@ -20141,9 +19904,6 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -20157,9 +19917,6 @@ /turf/open/floor/plasteel/dark, /area/engine/atmos) "aOj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -20177,16 +19934,10 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/atmos) "aOl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -20204,9 +19955,6 @@ /obj/machinery/light{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 10 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -20233,7 +19981,7 @@ /turf/open/floor/plasteel/dark, /area/engine/atmos) "aOo" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -20459,7 +20207,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/grimy, /area/crew_quarters/bar/atrium) "aOH" = ( @@ -21035,9 +20783,6 @@ /turf/open/floor/plasteel/dark/corner, /area/maintenance/disposal/incinerator) "aPD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -21048,6 +20793,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aPE" = ( @@ -21061,15 +20809,15 @@ /obj/structure/table/reinforced, /obj/item/paper_bin, /obj/item/pen, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -21080,10 +20828,11 @@ pixel_y = 1 }, /obj/structure/tank_dispenser, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/effect/turf_decal/tile/yellow{ +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/dark/corner{ @@ -21096,10 +20845,10 @@ pixel_y = 1 }, /obj/machinery/computer/atmos_control, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/effect/turf_decal/tile/yellow{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/dark/corner{ @@ -21112,11 +20861,10 @@ pixel_y = 1 }, /obj/machinery/computer/atmos_alert, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/effect/turf_decal/tile/yellow{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/dark/corner{ @@ -21132,10 +20880,10 @@ /obj/item/crowbar/red, /obj/item/wrench, /obj/item/clothing/mask/gas, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/effect/turf_decal/tile/yellow{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/dark/corner{ @@ -21159,10 +20907,10 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/effect/turf_decal/tile/yellow{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/checker, @@ -21184,15 +20932,15 @@ /obj/item/electronics/airalarm, /obj/item/electronics/firealarm, /obj/item/electronics/firealarm, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -21217,7 +20965,7 @@ /turf/open/floor/plasteel/checker, /area/engine/atmos) "aPO" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, @@ -21242,7 +20990,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aPQ" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -21265,7 +21013,6 @@ dir = 8 }, /obj/structure/table/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/item/stack/rods{ amount = 23 }, @@ -21740,7 +21487,7 @@ /area/quartermaster/sorting) "aQE" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/airalarm{ dir = 8; pixel_x = 24 @@ -21978,7 +21725,7 @@ /area/security/prison) "aRb" = ( /obj/machinery/light/small, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/red{ dir = 8 @@ -22022,7 +21769,7 @@ /turf/open/floor/plasteel, /area/security/prison) "aRg" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small, /turf/open/floor/plating{ @@ -22130,9 +21877,6 @@ /turf/open/floor/plating, /area/maintenance/disposal/incinerator) "aRq" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -22143,6 +21887,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aRr" = ( @@ -22173,6 +21920,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "aRt" = ( @@ -22186,17 +21934,6 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"aRu" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "aRv" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 @@ -22206,16 +21943,6 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"aRw" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "aRx" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 @@ -22265,7 +21992,6 @@ /obj/machinery/light{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -22288,9 +22014,6 @@ /turf/open/floor/plasteel/dark, /area/engine/atmos) "aRD" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -22301,6 +22024,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aRE" = ( @@ -23222,7 +22948,6 @@ /turf/open/space, /area/space/nearstation) "aST" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -23233,6 +22958,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aSU" = ( @@ -23246,15 +22972,19 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/turf/open/floor/plasteel/checker, -/area/engine/atmos) -"aSV" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ dir = 6 }, +/turf/open/floor/plasteel/checker, +/area/engine/atmos) +"aSV" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "aSW" = ( @@ -23278,30 +23008,6 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Port to Turbine" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aSY" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Port to Filter" - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -23378,7 +23084,6 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -23392,13 +23097,12 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aTd" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 1 - }, -/obj/machinery/meter, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "aTe" = ( @@ -23409,17 +23113,16 @@ dir = 1; pixel_y = 1 }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Air to Pure" - }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 + }, +/obj/machinery/meter, /turf/open/floor/plasteel/cafeteria, /area/engine/atmos) "aTf" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -23430,6 +23133,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Air to Pure" + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aTg" = ( @@ -23690,7 +23397,10 @@ /area/crew_quarters/bar/atrium) "aTH" = ( /obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/coffee, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = -4; + pixel_y = 2 + }, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -23934,7 +23644,7 @@ /turf/open/floor/plasteel, /area/quartermaster/office) "aTY" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light{ dir = 4 }, @@ -24567,7 +24277,6 @@ /turf/open/floor/plating, /area/security/prison) "aUL" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/machinery/light/small{ dir = 8 }, @@ -24581,12 +24290,15 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"aUM" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 6 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"aUM" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -24598,16 +24310,20 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aUN" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "aUO" = ( @@ -24626,23 +24342,6 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"aUP" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "aUQ" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 @@ -24651,6 +24350,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/plasteel/dark/corner, /area/engine/atmos) "aUR" = ( @@ -24715,7 +24415,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -24729,7 +24428,6 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aUW" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, @@ -24746,12 +24444,13 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, /turf/open/floor/plasteel/white/corner, /area/engine/atmos) "aUY" = ( @@ -24773,7 +24472,7 @@ /turf/open/floor/engine/air, /area/engine/atmos) "aVc" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den/secondary) @@ -24872,7 +24571,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/camera{ c_tag = "Service Hallway - Aft"; @@ -25865,16 +25564,13 @@ /area/engine/atmos) "aWy" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/atmos) -"aWz" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ +/obj/machinery/atmospherics/pipe/layer_manifold{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"aWz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -25886,6 +25582,11 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "CO2 to Pure" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aWA" = ( @@ -25896,11 +25597,6 @@ dir = 1; pixel_y = 1 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "CO2 to Pure" - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -25911,73 +25607,19 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aWB" = ( -/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "aWC" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aWD" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aWE" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aWF" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engine/atmos) "aWG" = ( @@ -26026,49 +25668,13 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"aWM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aWN" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "aWO" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, /turf/open/floor/plasteel, /area/engine/atmos) "aWP" = ( @@ -26076,7 +25682,6 @@ dir = 4 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, @@ -26086,6 +25691,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel/white/corner, /area/engine/atmos) "aWR" = ( @@ -26853,7 +26459,6 @@ /turf/open/floor/engine/co2, /area/engine/atmos) "aXY" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -26865,6 +26470,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aXZ" = ( @@ -26874,7 +26480,6 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -26885,81 +26490,23 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aYa" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aYb" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aYc" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aYd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aYe" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Port to Turbine" }, /turf/open/floor/plasteel, /area/engine/atmos) "aYf" = ( -/obj/structure/table/reinforced, -/obj/item/folder/yellow, -/obj/item/lightreplacer, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engine/atmos) "aYg" = ( @@ -26997,27 +26544,23 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aYj" = ( -/obj/structure/table/reinforced, -/obj/item/wrench, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/tank/internals/emergency_oxygen/engi, /obj/machinery/newscaster{ pixel_x = 32 }, /obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/machinery/suit_storage_unit/atmos, /turf/open/floor/plasteel, /area/engine/atmos) "aYk" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/mask/gas, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/mask/gas, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "aYl" = ( @@ -27035,13 +26578,15 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, /turf/open/floor/plasteel, /area/engine/atmos) "aYm" = ( /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, @@ -27057,35 +26602,14 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"aYn" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "aYo" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 8 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmos) "aYp" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "O2 to Pure" - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -27096,12 +26620,12 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aYq" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 10 - }, /obj/effect/decal/cleanable/dirt, /obj/structure/sign/warning/securearea{ pixel_x = 32 @@ -27124,6 +26648,11 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "O2 to Pure" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aYr" = ( @@ -27488,7 +27017,7 @@ /turf/open/floor/plasteel, /area/quartermaster/office) "aYR" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 4; pixel_x = -24; @@ -27535,7 +27064,7 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "aYU" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/tile/brown, /obj/effect/turf_decal/tile/brown{ @@ -27640,7 +27169,7 @@ /turf/open/floor/plasteel, /area/quartermaster/qm) "aZd" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light, /obj/machinery/newscaster{ pixel_y = -32 @@ -27723,7 +27252,7 @@ /turf/open/floor/plating, /area/quartermaster/qm) "aZk" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable/white{ icon_state = "2-8" }, @@ -28136,10 +27665,6 @@ /turf/open/floor/plating, /area/engine/atmos) "aZT" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -28150,6 +27675,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/co2, /turf/open/floor/plasteel/dark, /area/engine/atmos) "aZU" = ( @@ -28157,7 +27683,6 @@ dir = 8 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter/atmos/co2, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -28168,33 +27693,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/reagent_dispensers/watertank/high, /turf/open/floor/plasteel/dark, /area/engine/atmos) -"aZV" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aZW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "aZX" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral{ @@ -28209,34 +27711,6 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"aZY" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/machinery/meter, -/obj/item/wrench, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"aZZ" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "baa" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -28270,8 +27744,8 @@ "bac" = ( /obj/structure/closet/secure_closet/atmospherics, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/end{ - dir = 1 +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -28300,23 +27774,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bag" = ( -/obj/machinery/atmospherics/components/trinary/mixer/airmix{ - dir = 1 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -28337,11 +27794,6 @@ dir = 1; pixel_y = 1 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "O2 to Airmix" - }, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -28349,10 +27801,13 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bai" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -28363,6 +27818,11 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "O2 to Airmix" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "baj" = ( @@ -28508,7 +27968,7 @@ /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -28613,7 +28073,7 @@ /turf/open/floor/plasteel, /area/quartermaster/office) "baK" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/brown, /obj/effect/turf_decal/tile/brown{ dir = 8 @@ -28905,7 +28365,7 @@ /turf/open/floor/plasteel, /area/security/prison) "bbn" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/sign/warning/pods{ dir = 8; pixel_y = -32 @@ -29016,7 +28476,6 @@ /turf/open/space, /area/space/nearstation) "bbA" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/structure/sign/warning/securearea{ pixel_x = -32 }, @@ -29038,10 +28497,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bbB" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -29052,58 +28511,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) -"bbC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bbD" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/start/atmospheric_technician, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bbE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bbF" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -29157,7 +28567,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/landmark/start/atmospheric_technician, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -29171,13 +28580,6 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"bbK" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bbL" = ( /obj/machinery/computer/atmos_control/tank/oxygen_tank{ dir = 8 @@ -29185,11 +28587,11 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bbM" = ( @@ -29205,6 +28607,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bbN" = ( @@ -29870,10 +29273,6 @@ /turf/open/floor/engine/plasma, /area/engine/atmos) "bda" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -29884,6 +29283,11 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Plasma to Pure" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bdb" = ( @@ -29894,11 +29298,6 @@ dir = 1; pixel_y = 1 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Plasma to Pure" - }, /obj/effect/turf_decal/tile/purple{ dir = 1 }, @@ -29908,25 +29307,17 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bdc" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 4 - }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bdd" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bde" = ( @@ -29942,23 +29333,6 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"bdf" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/machinery/meter, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bdg" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/tile/yellow{ @@ -30000,9 +29374,6 @@ dir = 4 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ - dir = 1 - }, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -30010,12 +29381,10 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bdl" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -30026,6 +29395,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 1 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bdm" = ( @@ -30395,7 +29767,7 @@ "bdP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/brown{ @@ -30522,7 +29894,7 @@ /turf/open/floor/plasteel, /area/quartermaster/miningoffice) "beb" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/brown{ dir = 1 }, @@ -30711,7 +30083,6 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/purple{ dir = 1 @@ -30719,6 +30090,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bey" = ( @@ -30735,42 +30107,25 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"bez" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "beA" = ( -/obj/structure/table/reinforced, -/obj/item/analyzer{ - pixel_x = 7; - pixel_y = 3 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) "beB" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 4; pixel_x = -24 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -30795,44 +30150,15 @@ /turf/closed/wall, /area/engine/atmos) "beF" = ( -/obj/structure/table/reinforced, -/obj/item/stack/packageWrap, -/obj/item/hand_labeler, /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"beG" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"beH" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) "beI" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "N2 to Pure" - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -30843,6 +30169,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "beJ" = ( @@ -30852,12 +30181,6 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 10 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -30865,6 +30188,14 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "N2 to Pure" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "beK" = ( @@ -30992,7 +30323,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/service) "beX" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -31526,10 +30857,6 @@ /turf/open/floor/engine/plasma, /area/engine/atmos) "bfU" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -31541,6 +30868,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bfV" = ( @@ -31548,7 +30876,6 @@ dir = 8 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma, /obj/effect/turf_decal/tile/purple{ dir = 1 }, @@ -31556,23 +30883,8 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bfW" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Port Mix to Port Ports" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/closet/crate, /turf/open/floor/plasteel, /area/engine/atmos) "bfX" = ( @@ -31590,26 +30902,6 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"bfY" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Port Mix to Starboard Ports" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bfZ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -31630,29 +30922,13 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"bgb" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 5 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bgc" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bgd" = ( @@ -31663,11 +30939,6 @@ dir = 1; pixel_y = 1 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "N2 to Airmix" - }, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -31675,11 +30946,13 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bge" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/yellow/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -31690,6 +30963,11 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "N2 to Airmix" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bgf" = ( @@ -31964,7 +31242,7 @@ /turf/open/floor/plating, /area/quartermaster/miningoffice) "bgH" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -32018,7 +31296,7 @@ /area/quartermaster/miningoffice) "bgL" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -32184,7 +31462,6 @@ /turf/open/floor/plating, /area/security/main) "bhf" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/decal/cleanable/dirt, /obj/structure/sign/warning/securearea{ pixel_x = -32 @@ -32202,50 +31479,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) -"bhg" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/obj/machinery/meter, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bhh" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general/visible, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bhi" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) "bhj" = ( /obj/machinery/power/apc/highcap/five_k{ areastring = "/area/engine/atmos"; @@ -32347,7 +31583,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -32395,27 +31630,12 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) -"bhu" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) "bhv" = ( /obj/machinery/air_sensor/atmos/nitrogen_tank, /turf/open/floor/engine/n2, @@ -33116,7 +32336,7 @@ /turf/open/floor/plasteel, /area/security/brig) "biE" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable/white{ icon_state = "1-2" }, @@ -33145,7 +32365,7 @@ /turf/open/floor/plasteel, /area/security/brig) "biG" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -33215,7 +32435,7 @@ /obj/machinery/newscaster/security_unit{ pixel_y = 32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -33356,34 +32576,29 @@ dir = 1; pixel_y = 1 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "N2O to Pure" - }, /obj/effect/turf_decal/tile/red{ dir = 4 }, /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, /turf/open/floor/plasteel/white/corner{ dir = 1 }, /area/engine/atmos) "biX" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, /turf/open/floor/plasteel, /area/engine/atmos) "biY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -33394,75 +32609,12 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, /turf/open/floor/plasteel, /area/engine/atmos) "biZ" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Pure to Ports" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bja" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix to Ports" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bjb" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Air to Ports" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bjc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Port Mix to Engine" - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -33473,15 +32625,14 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister, /turf/open/floor/plasteel, /area/engine/atmos) "bjd" = ( /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -33498,7 +32649,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -33509,6 +32659,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bjf" = ( @@ -33596,8 +32749,6 @@ /obj/structure/cable/white{ icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/meter, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -33636,9 +32787,6 @@ dir = 4 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ - dir = 1 - }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 4 @@ -34031,7 +33179,7 @@ /area/hallway/primary/fore) "bjR" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/brown, @@ -34097,7 +33245,7 @@ /area/quartermaster/miningoffice) "bjW" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/brown{ dir = 1 }, @@ -34546,42 +33694,49 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, /turf/open/floor/plasteel/white/corner{ dir = 1 }, /area/engine/atmos) "bkK" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Pure to Port" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bkL" = ( /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bkM" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/meter, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/atmos) "bkN" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/meter, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bkO" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -34592,13 +33747,6 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"bkQ" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bkR" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/corner{ @@ -34639,14 +33787,6 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"bkU" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "bkV" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -34667,11 +33807,6 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bkX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4; - name = "SM Coolant Loop" - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -34682,6 +33817,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bkY" = ( @@ -34691,9 +33829,6 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -34704,10 +33839,17 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bkZ" = ( /obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 10 + }, /turf/open/space, /area/engine/atmos) "bla" = ( @@ -35092,7 +34234,7 @@ /area/hallway/primary/fore) "blJ" = ( /obj/machinery/light, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/brown, @@ -35466,7 +34608,7 @@ /turf/open/floor/plasteel, /area/security/main) "bmr" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -35615,7 +34757,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -35653,7 +34795,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -35683,43 +34825,41 @@ dir = 8 }, /obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/machinery/portable_atmospherics/canister/nitrogen, /turf/open/floor/plasteel/cafeteria, /area/engine/atmos) -"bmK" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 5 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/atmos) "bmL" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 1 - }, /obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Port to Mix" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bmM" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 9 - }, /obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bmN" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix to Port" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bmO" = ( /obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bmP" = ( @@ -35727,47 +34867,53 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bmQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, /area/engine/atmos) "bmR" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Air to Ports" + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, /area/engine/atmos) "bmS" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 1 - }, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, /area/engine/atmos) "bmT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 1 - }, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/plasteel/checker, /area/engine/atmos) "bmU" = ( @@ -35814,7 +34960,9 @@ /obj/item/stack/sheet/glass/fifty, /obj/item/stack/rods/fifty, /obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bmY" = ( @@ -35849,10 +34997,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants/random, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 9 - }, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -35863,12 +35008,12 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bnb" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -35879,14 +35024,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/engine/atmos) -"bnc" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel/dark, /area/engine/atmos) "bnd" = ( /obj/structure/lattice/catwalk, @@ -36579,28 +35720,10 @@ /area/space/nearstation) "bok" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 }, -/obj/machinery/status_display/evac{ - pixel_x = -32 - }, -/turf/open/floor/plating, -/area/engine/atmos) -"bol" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/atmos) -"bom" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, /turf/open/floor/plating, /area/engine/atmos) "bon" = ( @@ -36619,11 +35742,6 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"boo" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible, -/turf/open/floor/plating, -/area/engine/atmos) "bop" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical, @@ -36636,9 +35754,6 @@ /turf/open/floor/plasteel, /area/engine/atmos) "boq" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -36649,6 +35764,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bor" = ( @@ -36670,7 +35788,6 @@ /obj/item/clipboard, /obj/effect/decal/cleanable/dirt, /obj/item/toy/figure/atmos, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) @@ -36769,7 +35886,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -37060,7 +36177,7 @@ /turf/open/floor/plating, /area/security/execution/transfer) "bpd" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -37595,7 +36712,6 @@ /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/turf_decal/tile/green{ dir = 1 }, @@ -37605,10 +36721,10 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bpR" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, /obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; name = "Unfiltered & Air to Mix" @@ -37633,13 +36749,11 @@ }, /area/engine/atmos) "bpT" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Pure to Mix" - }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -37662,6 +36776,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/meter, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -37734,7 +36849,6 @@ /obj/item/clothing/head/welding, /obj/structure/table/reinforced, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 @@ -37844,7 +36958,7 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bqm" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/yellow{ @@ -38947,22 +38061,27 @@ /obj/machinery/computer/atmos_control/tank/mix_tank{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/turf_decal/tile/green{ dir = 1 }, /obj/effect/turf_decal/tile/green{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 5 + }, /turf/open/floor/plasteel, /area/engine/atmos) "brW" = ( -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 8 - }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "brX" = ( @@ -39017,17 +38136,11 @@ /obj/item/wrench, /obj/item/clothing/mask/gas, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) "bsd" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -39038,13 +38151,13 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bse" = ( /obj/structure/table/reinforced, /obj/item/storage/belt/utility, /obj/item/t_scanner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engine/atmos) @@ -40226,13 +39339,14 @@ dir = 4; pixel_x = -22 }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, /turf/open/floor/plasteel, /area/engine/atmos) "btU" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -40243,11 +39357,16 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, /turf/open/floor/plasteel, /area/engine/atmos) "btV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, /turf/open/floor/plasteel, /area/engine/atmos) "btW" = ( @@ -40326,47 +39445,53 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bub" = ( /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "buc" = ( /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/machinery/portable_atmospherics/canister/nitrogen, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bud" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, -/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bue" = ( -/obj/machinery/portable_atmospherics/canister/air, /obj/machinery/camera{ c_tag = "Atmospherics - Desk"; dir = 8; name = "atmospherics camera" }, -/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "buf" = ( @@ -40745,7 +39870,7 @@ /turf/open/floor/plasteel/dark, /area/security/main) "buT" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/power/apc{ areastring = "/area/crew_quarters/heads/hos"; name = "Head of Security's Office APC"; @@ -40990,7 +40115,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bvk" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light/small, /obj/machinery/light_switch{ pixel_x = 26; @@ -41024,9 +40149,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/engine/atmos) "bvn" = ( @@ -41036,9 +40158,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/engine/atmos) "bvo" = ( @@ -41049,9 +40168,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/engine/atmos) "bvp" = ( @@ -41059,9 +40175,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/engine/atmos) "bvq" = ( @@ -41434,7 +40547,7 @@ /turf/open/floor/plasteel, /area/security/execution/transfer) "bwc" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 1; pixel_y = -24 @@ -41469,7 +40582,7 @@ /turf/open/floor/plasteel, /area/security/brig) "bwe" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -41513,6 +40626,17 @@ }, /turf/open/floor/plasteel, /area/security/main) +"bwj" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/sign/poster/official/nt_storm_officer{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/security/main) "bwk" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -41564,7 +40688,7 @@ /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) @@ -41593,7 +40717,7 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/sign/warning/nosmoking{ pixel_y = 32 }, @@ -42175,7 +41299,7 @@ /turf/open/floor/plating, /area/security/execution/transfer) "bxo" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -42579,7 +41703,7 @@ /area/engine/atmos) "bxT" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/yellow{ dir = 4 }, @@ -43011,7 +42135,7 @@ /obj/machinery/gulag_item_reclaimer{ pixel_y = 28 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable/white{ icon_state = "4-8" }, @@ -43082,7 +42206,7 @@ /turf/open/floor/plasteel, /area/security/execution/transfer) "byI" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 8; pixel_x = 24 @@ -43155,7 +42279,9 @@ /obj/structure/cable/white{ icon_state = "0-2" }, -/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/effect/spawner/structure/window/reinforced/tinted/electrochromatic{ + electrochromatic_id = "!interrogation_room" + }, /turf/open/floor/plating, /area/security/main) "byP" = ( @@ -43325,7 +42451,7 @@ /turf/open/floor/circuit/green, /area/ai_monitored/turret_protected/ai) "bzb" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -44229,7 +43355,9 @@ /obj/structure/cable/white{ icon_state = "0-4" }, -/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/effect/spawner/structure/window/reinforced/tinted/electrochromatic{ + electrochromatic_id = "!interrogation_room" + }, /turf/open/floor/plating, /area/security/main) "bAt" = ( @@ -44337,7 +43465,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "bAz" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, @@ -44866,7 +43994,7 @@ /turf/open/floor/plasteel, /area/storage/tech) "bBl" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/storage/tech) @@ -44998,7 +44126,7 @@ name = "WARNING: BLAST DOORS"; pixel_y = 32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/blue{ @@ -45027,7 +44155,7 @@ /turf/open/floor/plasteel/dark, /area/bridge) "bBz" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -45536,10 +44664,12 @@ /area/security/main) "bCm" = ( /obj/structure/cable/white, -/obj/effect/spawner/structure/window/reinforced/tinted, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/effect/spawner/structure/window/reinforced/tinted/electrochromatic{ + electrochromatic_id = "!interrogation_room" + }, /turf/open/floor/plating, /area/security/main) "bCn" = ( @@ -45559,6 +44689,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/button/electrochromatic{ + id = "!interrogation_room"; + pixel_y = -26 + }, /turf/open/floor/plasteel/dark, /area/security/main) "bCo" = ( @@ -45936,7 +45070,7 @@ /turf/open/floor/plasteel, /area/engine/break_room) "bCU" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light{ dir = 1 }, @@ -46556,7 +45690,7 @@ /turf/open/floor/plasteel/dark, /area/bridge) "bDD" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable/white{ icon_state = "4-8" }, @@ -46998,7 +46132,7 @@ /turf/open/floor/plasteel, /area/security/execution/transfer) "bEb" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, @@ -47642,7 +46776,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "bES" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/status_display/evac{ pixel_x = -32 }, @@ -47671,7 +46805,7 @@ /turf/open/floor/plasteel, /area/storage/tech) "bEV" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/status_display/ai{ pixel_x = 32 }, @@ -48029,7 +47163,7 @@ /turf/open/floor/plasteel/dark, /area/bridge) "bFr" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -48088,7 +47222,7 @@ /turf/open/floor/plasteel/grimy, /area/bridge) "bFx" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -48582,7 +47716,7 @@ dir = 4; pixel_x = -24 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/break_room) @@ -48625,7 +47759,7 @@ dir = 1; pixel_y = -22 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/break_room) @@ -48757,7 +47891,7 @@ /turf/open/floor/plasteel, /area/engine/break_room) "bGt" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 8; pixel_x = 24 @@ -48984,7 +48118,7 @@ /turf/open/floor/plasteel, /area/storage/primary) "bGM" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/storage/primary) @@ -49034,7 +48168,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/blue, @@ -49312,7 +48446,7 @@ pixel_y = -32 }, /obj/machinery/light/small, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/blue, @@ -49340,7 +48474,7 @@ /area/security/detectives_office) "bHt" = ( /obj/structure/disposalpipe/segment, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/red{ @@ -49363,7 +48497,7 @@ /area/hallway/primary/starboard) "bHv" = ( /obj/structure/disposalpipe/segment, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/red{ @@ -49769,7 +48903,7 @@ /turf/closed/wall, /area/engine/break_room) "bHY" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light{ dir = 8 }, @@ -51058,7 +50192,7 @@ /turf/closed/wall/r_wall, /area/engine/transit_tube) "bJQ" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -51101,7 +50235,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -51164,7 +50298,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/chief) "bJV" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ pixel_y = 24 }, @@ -51527,7 +50661,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/bridge/meeting_room/council) "bKB" = ( @@ -51694,7 +50828,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/captain) "bKT" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "bKU" = ( @@ -52266,7 +51400,7 @@ /turf/open/floor/plasteel/dark, /area/engine/transit_tube) "bLK" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 8; pixel_x = 24 @@ -52291,7 +51425,7 @@ /turf/open/floor/plasteel/dark, /area/engine/transit_tube) "bLL" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light{ dir = 8 }, @@ -52624,7 +51758,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "bMg" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/status_display/ai{ pixel_x = -32 }, @@ -52658,7 +51792,7 @@ /turf/open/floor/plasteel, /area/storage/tech) "bMj" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/status_display/evac{ pixel_x = 32 }, @@ -52842,7 +51976,7 @@ name = "Telecomms Monitoring APC"; pixel_y = 28 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable/white{ icon_state = "0-2" }, @@ -52882,7 +52016,7 @@ /obj/machinery/airalarm{ pixel_y = 22 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, @@ -53238,7 +52372,7 @@ /turf/closed/wall, /area/security/brig) "bNk" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/door_timer{ id = "brig1"; name = "Cell 1"; @@ -53948,7 +53082,7 @@ /turf/open/floor/plasteel, /area/engine/break_room) "bOe" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -54940,7 +54074,7 @@ /turf/closed/wall, /area/engine/transit_tube) "bPN" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/airalarm{ dir = 4; pixel_x = -23 @@ -54976,7 +54110,7 @@ /turf/open/floor/plasteel/dark, /area/engine/transit_tube) "bPP" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light_switch{ pixel_x = 22; @@ -55146,7 +54280,7 @@ /turf/closed/wall, /area/engine/break_room) "bQb" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engine/break_room) @@ -55257,7 +54391,7 @@ /turf/open/floor/plasteel, /area/storage/tech) "bQm" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 1; pixel_y = -24 @@ -55267,7 +54401,7 @@ /turf/open/floor/plasteel, /area/storage/tech) "bQn" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light_switch{ pixel_y = -26 }, @@ -55432,7 +54566,7 @@ /turf/open/floor/wood, /area/bridge/meeting_room/council) "bQG" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -55682,7 +54816,7 @@ dir = 1; pixel_y = -26 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -55793,7 +54927,7 @@ /turf/open/floor/plasteel/dark, /area/security/detectives_office) "bRn" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, @@ -56066,7 +55200,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "bRF" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -56316,7 +55450,7 @@ /turf/open/floor/plating, /area/crew_quarters/heads/chief) "bSd" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/newscaster{ pixel_y = 32 }, @@ -56560,7 +55694,7 @@ /area/bridge/meeting_room/council) "bSz" = ( /obj/machinery/light, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/bridge/meeting_room/council) "bSA" = ( @@ -56619,12 +55753,12 @@ /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) "bSG" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) "bSH" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) "bSI" = ( @@ -57227,7 +56361,7 @@ /turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/aisat_interior) "bTB" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/turretid{ control_area = "/area/ai_monitored/turret_protected/aisat_interior"; name = "Antechamber Turret Control"; @@ -57459,7 +56593,7 @@ /turf/open/floor/plasteel/dark, /area/engine/transit_tube) "bTO" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -57723,7 +56857,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -58461,7 +57595,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bVk" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/door_timer{ id = "brig2"; name = "Cell 2"; @@ -59194,7 +58328,7 @@ /turf/open/floor/plasteel/dark, /area/engine/transit_tube) "bWe" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light/small{ dir = 4 }, @@ -59295,7 +58429,7 @@ /turf/open/floor/plating, /area/crew_quarters/heads/chief) "bWm" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 1; pixel_x = -24; @@ -59750,7 +58884,7 @@ /turf/open/floor/wood, /area/crew_quarters/heads/hop) "bWS" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/disposalpipe/segment{ dir = 6 }, @@ -59766,7 +58900,7 @@ /turf/open/floor/wood, /area/crew_quarters/heads/hop) "bWU" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, /area/crew_quarters/heads/hop) @@ -60502,6 +59636,26 @@ }, /turf/open/floor/plasteel, /area/ai_monitored/security/armory) +"bXR" = ( +/obj/structure/rack, +/obj/item/gun/energy/ionrifle, +/obj/item/clothing/suit/armor/laserproof, +/obj/item/gun/energy/temperature/security, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/poster/official/ion_rifle{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "bXS" = ( /obj/structure/window/reinforced{ dir = 8 @@ -60604,7 +59758,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "bXY" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 8; pixel_x = 24 @@ -60706,7 +59860,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "bYh" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 4; pixel_x = -24 @@ -60975,7 +60129,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/chief) "bYw" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light_switch{ pixel_x = 26; pixel_y = -26 @@ -61243,10 +60397,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -61261,10 +60411,6 @@ dir = 4 }, /obj/machinery/light, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -26 - }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -62000,7 +61146,7 @@ /area/ai_monitored/turret_protected/aisat_interior) "cae" = ( /obj/structure/cable/white, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -62065,7 +61211,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "cai" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light, /obj/machinery/airalarm{ dir = 1; @@ -62102,7 +61248,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "cak" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light_switch{ pixel_x = -26 }, @@ -62185,7 +61331,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "cao" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, @@ -62295,7 +61441,7 @@ /turf/open/floor/plating, /area/security/checkpoint/engineering) "caB" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/yellow{ @@ -62697,7 +61843,7 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/red{ @@ -63052,7 +62198,7 @@ /turf/closed/wall, /area/engine/engineering) "cbW" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -63093,7 +62239,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cca" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/machinery/light_switch{ pixel_y = 26 @@ -63314,43 +62460,36 @@ /turf/open/floor/plasteel/dark, /area/library) "cct" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = -32 +/obj/structure/table/wood/fancy, +/obj/machinery/door/window{ + name = "Secure Art Exhibition" }, -/obj/item/radio/intercom{ - name = "Station Intercom"; - pixel_y = 26 - }, -/turf/open/floor/plasteel/dark, -/area/library) -"ccu" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/table/wood, -/obj/item/folder, -/obj/item/pen, -/obj/machinery/newscaster{ +/obj/structure/sign/painting/library_secure{ pixel_y = 32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/carpet, +/area/library) +"ccu" = ( +/obj/structure/table/wood/fancy, +/obj/structure/window/reinforced{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/structure/window/reinforced, +/obj/structure/sign/painting/library_secure{ + pixel_y = 32 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/carpet, /area/library) "ccv" = ( -/obj/machinery/computer/libraryconsole, -/obj/structure/table/wood, -/turf/open/floor/plasteel/dark, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Library - Aft"; + dir = 2; + name = "library camera" + }, +/turf/open/floor/wood, /area/library) "ccw" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -63599,7 +62738,7 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/captain/private) "ccS" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, @@ -63665,7 +62804,7 @@ /turf/open/floor/plasteel/dark, /area/security/courtroom) "ccX" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -63705,7 +62844,7 @@ /turf/open/floor/plating, /area/security/courtroom) "cda" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -63986,7 +63125,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) "cdw" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light{ dir = 1 }, @@ -64492,7 +63631,7 @@ /obj/structure/chair/office/dark{ dir = 8 }, -/obj/effect/landmark/start/librarian, +/obj/effect/landmark/start/assistant, /turf/open/floor/plasteel/dark, /area/library) "ceg" = ( @@ -64505,71 +63644,21 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/library) -"cei" = ( -/obj/structure/chair/comfy/black{ - dir = 8 - }, -/obj/machinery/newscaster{ - pixel_x = 32 - }, -/obj/machinery/camera{ - c_tag = "Library - Fore"; - dir = 8; - name = "library camera" - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/grimy, /area/library) "cej" = ( -/obj/machinery/photocopier, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/library) -"cek" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/dark, +/obj/effect/landmark/start/librarian, +/turf/open/floor/plasteel/grimy, /area/library) "cel" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/pen, -/obj/machinery/status_display/evac{ - pixel_x = 32 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/structure/chair/sofa/right{ + icon_state = "sofaend_right"; dir = 8 }, -/turf/open/floor/plasteel/dark, +/obj/structure/sign/painting/library{ + pixel_x = 32 + }, +/turf/open/floor/wood, /area/library) "cem" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -64596,7 +63685,7 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -65728,7 +64817,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/sign/plaques/kiddie/library{ pixel_x = -32 }, @@ -65746,34 +64835,17 @@ }, /turf/open/floor/plasteel/grimy, /area/library) -"cfY" = ( -/obj/item/twohanded/required/kirbyplants/random, -/obj/machinery/light/small{ - dir = 4 +"cfZ" = ( +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26 + }, +/obj/structure/sign/painting/library{ + pixel_x = 0; + pixel_y = -32 }, /turf/open/floor/wood, /area/library) -"cfZ" = ( -/obj/structure/sign/warning/nosmoking, -/turf/closed/wall, -/area/library) -"cga" = ( -/obj/machinery/door/morgue{ - name = "Private Study" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/library) "cgb" = ( /obj/structure/sign/plaques/kiddie/library{ pixel_x = -32 @@ -65918,7 +64990,7 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/heads/captain/private) "cgt" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/airalarm{ dir = 1; pixel_y = -22 @@ -65938,7 +65010,7 @@ /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "cgv" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 1; pixel_y = -26 @@ -66711,6 +65783,16 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/engine/engineering) +"chv" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engpa"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plating, +/area/engine/engineering) "chw" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -66918,64 +66000,31 @@ /turf/open/floor/plasteel/grimy, /area/library) "chP" = ( -/obj/item/twohanded/required/kirbyplants/random, -/turf/open/floor/wood, -/area/library) -"chQ" = ( -/obj/machinery/bookbinder, -/turf/open/floor/wood, -/area/library) -"chR" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/structure/bookcase/random, -/turf/open/floor/wood, -/area/library) -"chS" = ( -/obj/structure/chair/comfy/brown, -/obj/effect/landmark/start/assistant, -/turf/open/floor/wood, -/area/library) -"chT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/library) -"chU" = ( -/obj/machinery/photocopier, -/obj/structure/extinguisher_cabinet{ - pixel_y = 32 - }, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/library) "chV" = ( -/obj/machinery/light{ - dir = 1 - }, /obj/machinery/newscaster{ - pixel_y = 32 + pixel_x = -32 }, -/obj/structure/bookcase/manuals/research_and_development, -/obj/machinery/camera{ - c_tag = "Library"; - name = "library camera" - }, -/turf/open/floor/wood, +/turf/open/floor/plasteel/dark, /area/library) "chW" = ( -/obj/structure/chair/comfy/brown, -/obj/item/radio/intercom{ - name = "Station Intercom"; - pixel_y = 26 - }, -/turf/open/floor/wood, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/grimy, /area/library) "chX" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/wood, +/obj/structure/table/wood, +/obj/item/newspaper{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = -4; + pixel_y = 2 + }, +/turf/open/floor/plasteel/dark, /area/library) "chY" = ( /obj/machinery/door/poddoor/shutters/preopen{ @@ -67732,6 +66781,19 @@ }, /turf/open/floor/plating, /area/engine/engineering) +"cjf" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engpa"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plating, +/area/engine/engineering) "cjg" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -67864,10 +66926,6 @@ }, /turf/open/floor/plasteel/grimy, /area/library) -"cju" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/grimy, -/area/library) "cjv" = ( /obj/machinery/door/airlock/public/glass{ name = "Library Access" @@ -68275,7 +67333,7 @@ /turf/open/floor/wood, /area/lawoffice) "ckg" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/sign/poster/official/report_crimes{ pixel_y = -32 @@ -68502,6 +67560,26 @@ }, /turf/open/floor/plating/airless, /area/space/nearstation) +"ckA" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engpa"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plating, +/area/engine/engineering) "ckB" = ( /obj/structure/cable{ icon_state = "4-8" @@ -69270,6 +68348,19 @@ }, /turf/open/floor/plating/airless, /area/space/nearstation) +"clV" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engpa"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plating, +/area/engine/engineering) "clW" = ( /obj/structure/rack, /obj/item/crowbar, @@ -69490,10 +68581,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/wood, /area/library) -"cmv" = ( -/obj/machinery/holopad, -/turf/open/floor/wood, -/area/library) "cmw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/extinguisher_cabinet{ @@ -69543,7 +68630,7 @@ /obj/machinery/status_display/ai{ pixel_x = 32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/wood, /area/crew_quarters/heads/hop) @@ -70141,7 +69228,7 @@ /area/aisat) "cnu" = ( /obj/structure/cable/white, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/power/apc{ @@ -70183,7 +69270,7 @@ icon_state = "1-2" }, /obj/structure/table/reinforced, -/obj/item/twohanded/required/kirbyplants/photosynthetic{ +/obj/item/kirbyplants/photosynthetic{ pixel_y = 10 }, /obj/effect/turf_decal/tile/neutral{ @@ -70216,7 +69303,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai_upload) "cny" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light, /obj/machinery/airalarm{ dir = 1; @@ -70288,6 +69375,20 @@ /obj/machinery/status_display/evac, /turf/closed/wall/r_wall, /area/engine/engineering) +"cnE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engpa"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "cnF" = ( /obj/machinery/requests_console{ department = "Chapel Office"; @@ -70370,7 +69471,7 @@ /turf/open/floor/wood, /area/library) "cnP" = ( -/obj/structure/bookcase/manuals/medical, +/obj/structure/bookcase/random, /turf/open/floor/wood, /area/library) "cnQ" = ( @@ -70689,7 +69790,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "cot" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = -26 @@ -71305,7 +70406,7 @@ /turf/closed/wall, /area/crew_quarters/heads/hop) "cpD" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/hop) "cpE" = ( @@ -71323,7 +70424,7 @@ dir = 1; pixel_y = -26 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/hop) "cpG" = ( @@ -71338,7 +70439,7 @@ /turf/open/floor/wood, /area/crew_quarters/heads/hop) "cpH" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/wood, /area/crew_quarters/heads/hop) @@ -71501,7 +70602,7 @@ /turf/open/floor/plasteel/dark, /area/security/courtroom) "cpW" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -71516,7 +70617,7 @@ /turf/open/floor/plasteel/dark, /area/security/courtroom) "cpX" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -71721,6 +70822,22 @@ }, /turf/open/floor/plating, /area/engine/engineering) +"cqw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engpa"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) "cqx" = ( /obj/structure/cable{ icon_state = "4-8" @@ -72439,7 +71556,7 @@ /turf/open/floor/plating, /area/engine/engineering) "crQ" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/camera{ c_tag = "Engineering - Central"; dir = 4; @@ -73521,7 +72638,7 @@ /turf/open/floor/plasteel, /area/maintenance/port) "ctH" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -73545,7 +72662,7 @@ /area/library) "ctK" = ( /obj/machinery/light, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/camera{ c_tag = "Library - Aft"; dir = 1; @@ -73566,7 +72683,7 @@ /area/library) "ctM" = ( /obj/machinery/light, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light_switch{ pixel_y = -26 }, @@ -73574,7 +72691,7 @@ /turf/open/floor/plasteel/grimy, /area/library) "ctN" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/grimy, /area/library) "ctO" = ( @@ -73821,7 +72938,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/blue{ @@ -74234,7 +73351,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -74252,7 +73369,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -75133,13 +74250,11 @@ /turf/open/floor/plating, /area/maintenance/port) "cwq" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/dark, /area/library) "cwr" = ( /obj/structure/easel, -/obj/item/canvas/twentythreeXnineteen, -/obj/item/canvas/twentythreeXtwentythree, /obj/item/canvas/twentythreeXtwentythree, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -75214,7 +74329,7 @@ /turf/open/floor/plasteel/dark, /area/library) "cwy" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -75267,7 +74382,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -75284,7 +74399,7 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "cwE" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -75316,7 +74431,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ dir = 5 }, @@ -75413,7 +74528,7 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/blue, @@ -75471,7 +74586,7 @@ /turf/open/floor/plasteel, /area/gateway) "cwV" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -75614,7 +74729,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "cxh" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -75964,7 +75079,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cxI" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/structure/sign/warning/electricshock{ pixel_y = 32 @@ -76837,7 +75952,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -76972,6 +76087,25 @@ /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plating/airless, /area/space/nearstation) +"czs" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engpa"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plating, +/area/engine/engineering) "czt" = ( /obj/structure/cable{ icon_state = "1-8" @@ -77042,8 +76176,8 @@ pixel_x = 26 }, /obj/effect/turf_decal/bot, -/obj/item/twohanded/rcl/pre_loaded, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /turf/open/floor/plasteel, /area/engine/storage) "czz" = ( @@ -77653,7 +76787,6 @@ name = "Maintenance Hatch"; req_access_txt = "12" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -77992,13 +77125,13 @@ /area/maintenance/port) "cAZ" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/maintenance/port) "cBa" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/extinguisher_cabinet{ pixel_x = -26 }, @@ -78045,7 +77178,7 @@ /turf/open/floor/plasteel/dark, /area/library) "cBh" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/newscaster{ pixel_x = 32 }, @@ -78227,8 +77360,8 @@ "cBx" = ( /obj/structure/rack, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /obj/item/reagent_containers/syringe/epinephrine{ pixel_x = -3; pixel_y = 3 @@ -78422,7 +77555,7 @@ dir = 4; pixel_x = -24 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -78499,7 +77632,7 @@ /turf/open/floor/plating, /area/crew_quarters/toilet/restrooms) "cBR" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -79071,7 +78204,10 @@ pixel_x = 3; pixel_y = 3 }, -/obj/item/newspaper, +/obj/item/newspaper{ + pixel_x = 3; + pixel_y = 3 + }, /obj/machinery/status_display/evac{ pixel_x = -32 }, @@ -80109,7 +79245,7 @@ /turf/open/floor/plasteel/dark, /area/library) "cEr" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 @@ -80784,7 +79920,10 @@ pixel_x = 7; pixel_y = 11 }, -/obj/item/newspaper, +/obj/item/newspaper{ + pixel_x = 3; + pixel_y = 3 + }, /obj/item/pen/red, /turf/open/floor/wood{ icon_state = "wood-broken2" @@ -80800,7 +79939,7 @@ /turf/open/floor/wood, /area/crew_quarters/dorms) "cFy" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/dorms) "cFz" = ( @@ -81044,7 +80183,7 @@ /area/engine/engineering) "cFT" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable/white{ icon_state = "1-8" }, @@ -81200,7 +80339,7 @@ name = "Station Intercom"; pixel_y = -26 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -81221,7 +80360,7 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "cGl" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) @@ -81281,7 +80420,7 @@ dir = 1; pixel_y = -26 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light, /turf/open/floor/plasteel/grimy, /area/bridge/showroom/corporate) @@ -81321,7 +80460,7 @@ pixel_x = 7; pixel_y = -26 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light, /turf/open/floor/plasteel/grimy, /area/bridge/showroom/corporate) @@ -81384,7 +80523,7 @@ dir = 1; pixel_y = -22 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -81638,7 +80777,7 @@ /turf/open/floor/carpet, /area/crew_quarters/dorms) "cGY" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/carpet, /area/crew_quarters/dorms) @@ -81724,7 +80863,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cHi" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ dir = 10 }, @@ -81788,7 +80927,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cHp" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -81799,7 +80938,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cHq" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/structure/sign/warning/electricshock{ pixel_y = -32 @@ -81878,7 +81017,7 @@ /area/maintenance/port) "cHy" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plating, /area/maintenance/port) "cHz" = ( @@ -82773,19 +81912,6 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) -"cJl" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) "cJm" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -84072,7 +83198,7 @@ /turf/open/floor/plating, /area/crew_quarters/dorms) "cKY" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -84099,9 +83225,6 @@ /turf/open/floor/plasteel, /area/crew_quarters/dorms) "cLa" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -84112,6 +83235,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) "cLb" = ( @@ -84205,7 +83331,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/dorms) "cLi" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -84846,7 +83972,7 @@ }, /area/crew_quarters/dorms) "cMs" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -85596,6 +84722,17 @@ }, /turf/open/floor/plasteel, /area/medical/storage) +"cNO" = ( +/obj/machinery/vending/wardrobe/medi_wardrobe, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/sign/poster/official/medical_green_cross{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/medical/storage) "cNP" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, @@ -85925,7 +85062,7 @@ /turf/open/floor/plasteel, /area/maintenance/department/electrical) "cOw" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/maintenance/department/electrical) @@ -85942,7 +85079,7 @@ /obj/machinery/light_switch{ pixel_y = 26 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/bot, @@ -86204,7 +85341,7 @@ /turf/open/floor/plasteel/white, /area/science/research) "cPb" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light{ dir = 1 }, @@ -86343,7 +85480,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cPr" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light{ dir = 1 }, @@ -86358,8 +85495,8 @@ "cPs" = ( /obj/structure/table, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /obj/effect/turf_decal/tile/blue{ dir = 4 }, @@ -86458,7 +85595,7 @@ name = "medbay camera"; network = list("ss13","medbay") }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -86690,7 +85827,7 @@ /turf/open/floor/carpet, /area/crew_quarters/dorms) "cPT" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 26; @@ -86828,7 +85965,7 @@ /turf/open/floor/plasteel/dark/corner, /area/maintenance/department/electrical) "cQi" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/maintenance/department/electrical) @@ -87052,7 +86189,7 @@ /turf/open/floor/plasteel/white, /area/science/research) "cQC" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/purple{ dir = 4 @@ -87268,7 +86405,7 @@ /turf/open/floor/plasteel, /area/science/research) "cQR" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/purple{ @@ -87277,7 +86414,7 @@ /turf/open/floor/plasteel/white, /area/science/research) "cQS" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/blue{ @@ -87354,7 +86491,7 @@ /turf/open/floor/plasteel, /area/medical/medbay/central) "cQY" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/blue{ @@ -87363,7 +86500,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cQZ" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/button/door{ desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; @@ -87377,6 +86514,20 @@ }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) +"cRa" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/sign/poster/official/medical_green_cross{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "cRb" = ( /obj/structure/bed/roller, /obj/machinery/iv_drip, @@ -87557,7 +86708,7 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/dorms) "cRv" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/sign/nanotrasen{ pixel_x = 32; pixel_y = -32 @@ -88101,7 +87252,7 @@ /turf/open/floor/plasteel, /area/security/checkpoint/science/research) "cSp" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/purple{ @@ -88467,7 +87618,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cSR" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/item/storage/pod{ pixel_x = 32; pixel_y = 32 @@ -88728,7 +87879,7 @@ /obj/machinery/status_display/evac{ pixel_x = -32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/maintenance/department/electrical) @@ -88900,7 +88051,7 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "cTF" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, @@ -90241,7 +89392,7 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "cVM" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light{ dir = 1 }, @@ -90432,7 +89583,7 @@ /turf/open/floor/plating, /area/security/checkpoint/science/research) "cWb" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/purple{ @@ -90485,7 +89636,7 @@ /turf/open/floor/plasteel, /area/science/research) "cWf" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/purple, @@ -90510,7 +89661,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/blue{ @@ -90551,7 +89702,7 @@ /turf/open/floor/plasteel, /area/medical/medbay/central) "cWl" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/blue, @@ -90872,7 +90023,7 @@ /turf/open/floor/plasteel, /area/maintenance/department/electrical) "cWK" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -91274,7 +90425,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/camera{ c_tag = "Security Post - Science"; dir = 8; @@ -91321,7 +90472,7 @@ /turf/open/floor/plasteel/white, /area/science/research) "cXu" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/purple{ @@ -91367,7 +90518,7 @@ /turf/open/floor/plasteel/white, /area/science/research) "cXy" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/purple, @@ -91440,7 +90591,7 @@ /area/medical/medbay/central) "cXJ" = ( /obj/structure/disposalpipe/segment, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/blue{ @@ -91483,7 +90634,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "cXN" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/blue, @@ -91981,7 +91132,7 @@ /obj/machinery/light_switch{ pixel_y = -26 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/maintenance/department/electrical) @@ -92110,7 +91261,7 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "cYT" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -92530,7 +91681,7 @@ /turf/open/floor/plasteel, /area/security/checkpoint/medical) "cZE" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/airalarm{ dir = 8; pixel_x = 24 @@ -92576,8 +91727,8 @@ "cZH" = ( /obj/structure/table/glass, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /obj/machinery/camera{ c_tag = "Medbay - Sleepers"; name = "medbay camera"; @@ -93078,7 +92229,7 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "dau" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, @@ -93346,7 +92497,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/status_display/evac{ pixel_y = 32 }, @@ -94875,8 +94026,8 @@ "ddp" = ( /obj/structure/table/glass, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /obj/structure/sign/warning/nosmoking{ pixel_y = 32 }, @@ -94956,7 +94107,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "ddy" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) @@ -95174,7 +94325,7 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "ddT" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/science/xenobiology) @@ -95463,7 +94614,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "dev" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light/small, /obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, @@ -95641,7 +94792,7 @@ /obj/structure/sign/departments/examroom{ pixel_x = -32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -95703,7 +94854,7 @@ /turf/open/floor/plasteel, /area/medical/abandoned) "deS" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/medical/abandoned) @@ -95903,7 +95054,7 @@ /turf/open/floor/plasteel, /area/science/research) "dfl" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/item/storage/pod{ pixel_x = 32 }, @@ -96364,7 +95515,7 @@ /turf/closed/wall, /area/crew_quarters/abandoned_gambling_den) "dfZ" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/cobweb, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -96376,7 +95527,7 @@ /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) "dgb" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, /area/crew_quarters/abandoned_gambling_den) @@ -96419,7 +95570,7 @@ /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) "dgf" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) "dgg" = ( @@ -96595,7 +95746,7 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "dgu" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/purple{ dir = 1 }, @@ -96858,7 +96009,7 @@ /turf/open/floor/plasteel, /area/science/lab) "dgP" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white, /area/science/lab) @@ -97466,7 +96617,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/abandoned_gambling_den) "dhP" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/structure/sign/poster/contraband/random{ pixel_x = 32 @@ -98419,7 +97570,7 @@ /turf/open/floor/plasteel/white/corner, /area/science/circuit) "djo" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/science/research/abandoned) @@ -98439,7 +97590,7 @@ /turf/open/floor/plasteel/white/side, /area/science/circuit) "djs" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -98542,17 +97693,17 @@ /obj/structure/sign/poster/official/science{ pixel_x = -32 }, +/obj/item/clothing/mask/gas, /turf/open/floor/plasteel, /area/science/explab) "djC" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/machinery/rnd/bepis, /turf/open/floor/plasteel, /area/science/explab) "djD" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/machinery/light{ dir = 1 }, @@ -98563,7 +97714,6 @@ /turf/open/floor/plasteel, /area/science/explab) "djE" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -98745,7 +97895,7 @@ /turf/open/floor/plasteel/white, /area/science/research) "djW" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -98864,7 +98014,7 @@ /turf/open/floor/plasteel, /area/science/lab) "dke" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/purple{ @@ -98880,7 +98030,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "dkf" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/yellow{ @@ -99227,7 +98377,7 @@ /area/medical/abandoned) "dkJ" = ( /obj/machinery/light/small, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/medical/abandoned) @@ -99547,34 +98697,20 @@ /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/item/crowbar, -/obj/item/wrench, -/obj/item/clothing/mask/gas, /obj/effect/turf_decal/bot, +/obj/item/storage/bag/money, /turf/open/floor/plasteel, /area/science/explab) "dlp" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, /obj/effect/turf_decal/tile/purple{ dir = 1 }, +/obj/structure/chair/office/light{ + dir = 8 + }, /turf/open/floor/plasteel/white, /area/science/explab) "dlq" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 8 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/explab) -"dlr" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, /obj/effect/turf_decal/tile/purple{ dir = 1 }, @@ -99890,7 +99026,7 @@ /turf/closed/wall, /area/hallway/secondary/construction) "dmi" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) @@ -100035,7 +99171,7 @@ /turf/open/floor/plasteel, /area/science/misc_lab) "dmB" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/bot, /obj/machinery/light_switch{ pixel_x = -26 @@ -100423,7 +99559,7 @@ /turf/open/floor/plasteel/white, /area/medical/genetics/cloning) "dno" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/purple{ dir = 1 }, @@ -100502,7 +99638,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "dnv" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -100579,7 +99715,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "dnC" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -102008,8 +101144,8 @@ "dqj" = ( /obj/structure/table, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, @@ -102096,7 +101232,7 @@ /turf/open/floor/plasteel, /area/science/explab) "dqr" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -102745,7 +101881,7 @@ pixel_x = 1; pixel_y = -24 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/white/side{ dir = 1 }, @@ -102897,7 +102033,7 @@ /obj/structure/cable/white, /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/bot, -/obj/item/twohanded/required/kirbyplants/dead, +/obj/item/kirbyplants/dead, /turf/open/floor/plasteel, /area/crew_quarters/heads/hor) "drY" = ( @@ -103158,7 +102294,7 @@ /turf/open/floor/plasteel/white, /area/medical/genetics/cloning) "dsy" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/blue, /turf/open/floor/plasteel/white, @@ -104085,6 +103221,26 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/wood, /area/crew_quarters/abandoned_gambling_den) +"duk" = ( +/obj/structure/table/wood, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/timer{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/scum{ + pixel_x = 32 + }, +/obj/structure/sign/poster/contraband/scum{ + pixel_x = 32 + }, +/obj/structure/sign/poster/contraband/scum{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den) "dul" = ( /obj/structure/table, /obj/item/stack/packageWrap, @@ -104100,7 +103256,7 @@ /turf/open/floor/plating, /area/science/research/abandoned) "dun" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/science/research/abandoned) @@ -104506,7 +103662,7 @@ /turf/closed/wall, /area/medical/genetics) "dvd" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ dir = 4; pixel_x = -24 @@ -104599,7 +103755,7 @@ /turf/open/floor/plasteel, /area/medical/genetics) "dvm" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/firealarm{ pixel_x = -26; pixel_y = 26 @@ -105105,7 +104261,7 @@ /turf/open/floor/wood, /area/crew_quarters/abandoned_gambling_den) "dvY" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/dark, /area/crew_quarters/abandoned_gambling_den) "dvZ" = ( @@ -106590,7 +105746,7 @@ /turf/open/floor/plating, /area/crew_quarters/heads/cmo) "dyy" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -106636,7 +105792,7 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/heads/cmo) "dyC" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -107382,7 +106538,7 @@ /turf/open/floor/plasteel, /area/medical/genetics) "dzR" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white, /area/medical/genetics) @@ -107544,7 +106700,7 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/heads/cmo) "dAf" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable/white{ icon_state = "0-8" }, @@ -108037,7 +107193,7 @@ /turf/open/floor/plasteel, /area/medical/genetics) "dAZ" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/airalarm{ dir = 1; pixel_y = -22 @@ -108099,7 +107255,7 @@ /obj/structure/sign/poster/official/do_not_question{ pixel_y = -32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/purple{ dir = 8 }, @@ -109962,7 +109118,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "dEe" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = -26 @@ -110353,7 +109509,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/science/robotics/lab) "dEO" = ( @@ -110640,7 +109796,7 @@ /turf/open/floor/wood, /area/crew_quarters/theatre/abandoned) "dFq" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood{ icon_state = "wood-broken5" }, @@ -110687,7 +109843,10 @@ pixel_x = 3; pixel_y = 3 }, -/obj/item/newspaper, +/obj/item/newspaper{ + pixel_x = 3; + pixel_y = 3 + }, /turf/open/floor/plating, /area/security/detectives_office/private_investigators_office) "dFu" = ( @@ -111550,7 +110709,10 @@ /area/crew_quarters/theatre/abandoned) "dGH" = ( /obj/structure/table/wood, -/obj/item/newspaper, +/obj/item/newspaper{ + pixel_x = 3; + pixel_y = 3 + }, /obj/item/clothing/head/bowler, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -111600,7 +110762,7 @@ /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plating, /area/security/detectives_office/private_investigators_office) "dGM" = ( @@ -112704,18 +111866,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/storage) -"dIC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /turf/open/floor/plasteel, /area/science/storage) "dID" = ( @@ -112724,6 +111874,7 @@ icon_state = "4-8" }, /obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/scrubber/huge, /turf/open/floor/plasteel, /area/science/storage) "dIE" = ( @@ -112731,6 +111882,7 @@ icon_state = "2-8" }, /obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/scrubber/huge, /turf/open/floor/plasteel, /area/science/storage) "dIF" = ( @@ -113139,7 +112291,7 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/heads/cmo) "dJm" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/green{ dir = 8 @@ -113318,7 +112470,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/sign/poster/official/do_not_question{ pixel_x = 32 }, @@ -113473,18 +112625,17 @@ /turf/open/floor/plasteel, /area/science/mixing) "dJT" = ( -/obj/structure/tank_dispenser, /obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/clothing/mask/gas, +/obj/item/clothing/head/hardhat/red, +/obj/item/clothing/suit/fire/firefighter, /turf/open/floor/plasteel, /area/science/mixing) "dJU" = ( -/obj/structure/rack, /obj/structure/extinguisher_cabinet{ pixel_y = -32 }, -/obj/item/clothing/suit/fire/firefighter, -/obj/item/clothing/head/hardhat/red, -/obj/item/clothing/mask/gas, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, @@ -113543,9 +112694,6 @@ /turf/closed/wall/r_wall, /area/science/mixing) "dJZ" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -113555,30 +112703,29 @@ name = "science camera"; network = list("ss13","rd") }, -/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/storage) "dKa" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, -/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/storage) "dKb" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/effect/turf_decal/stripes/corner{ + dir = 1 }, +/obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, /area/science/storage) "dKc" = ( -/obj/machinery/portable_atmospherics/scrubber/huge, -/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/storage) "dKd" = ( -/obj/machinery/portable_atmospherics/scrubber/huge, /obj/effect/decal/cleanable/dirt, /obj/machinery/power/apc{ areastring = "/area/science/storage"; @@ -113587,7 +112734,7 @@ pixel_x = 26 }, /obj/structure/cable/white, -/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/storage) "dKe" = ( @@ -113619,7 +112766,7 @@ /turf/open/floor/circuit/green/telecomms/mainframe, /area/science/server) "dKh" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/purple{ dir = 8 @@ -113893,8 +113040,8 @@ /turf/open/floor/plasteel, /area/science/mixing) "dKF" = ( -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, /obj/effect/turf_decal/bot, +/obj/structure/tank_dispenser, /turf/open/floor/plasteel, /area/science/storage) "dKG" = ( @@ -114023,7 +113170,7 @@ dir = 4 }, /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -114271,7 +113418,7 @@ /turf/open/floor/plasteel, /area/maintenance/aft) "dLj" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -114297,7 +113444,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "dLl" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /obj/effect/turf_decal/tile/green{ dir = 4 @@ -114409,7 +113556,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/grimy, /area/crew_quarters/theatre/abandoned) "dLv" = ( @@ -114732,7 +113879,7 @@ /turf/open/floor/plasteel, /area/science/research) "dMg" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -115313,7 +114460,7 @@ /area/crew_quarters/theatre/abandoned) "dNb" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/theatre/abandoned) "dNc" = ( @@ -115321,7 +114468,7 @@ dir = 1; pixel_y = -22 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood{ icon_state = "wood-broken3" }, @@ -115550,6 +114697,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/storage) "dNC" = ( @@ -115959,6 +115109,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plasteel, /area/science/storage) "dOq" = ( @@ -116097,7 +115250,7 @@ /turf/open/floor/plasteel, /area/maintenance/port/aft) "dOz" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/airalarm{ dir = 4; pixel_x = -23 @@ -116177,7 +115330,7 @@ name = "hallway camera" }, /obj/effect/turf_decal/bot, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -116228,7 +115381,7 @@ /area/hallway/primary/aft) "dOI" = ( /obj/machinery/light/small, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/green{ dir = 8 @@ -116625,7 +115778,7 @@ /area/library/abandoned) "dPw" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -116651,7 +115804,7 @@ /area/library/abandoned) "dPz" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/dark, /area/library/abandoned) "dPA" = ( @@ -116686,7 +115839,7 @@ /area/library/abandoned) "dPE" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/grimy, /area/library/abandoned) "dPF" = ( @@ -117065,7 +116218,7 @@ /turf/open/floor/plating, /area/medical/virology) "dQi" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/green{ dir = 1 }, @@ -117075,7 +116228,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/green{ dir = 1 }, @@ -117085,7 +116238,7 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "dQk" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/green{ dir = 4 }, @@ -117142,7 +116295,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/green{ dir = 4 }, @@ -118835,14 +117988,14 @@ /turf/open/floor/plasteel/grimy, /area/library/abandoned) "dTq" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood{ icon_state = "wood-broken7" }, /area/library/abandoned) "dTr" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood{ icon_state = "wood-broken" }, @@ -118909,7 +118062,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "dTz" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -118933,7 +118086,7 @@ "dTC" = ( /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -118997,7 +118150,7 @@ /area/hallway/secondary/exit/departure_lounge) "dTJ" = ( /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -119249,7 +118402,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "dUk" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light{ dir = 4 }, @@ -119316,7 +118469,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main) "dUo" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -119337,7 +118490,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main) "dUq" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 26 @@ -119403,7 +118556,7 @@ "dUv" = ( /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel, @@ -119469,7 +118622,7 @@ /area/hallway/secondary/exit/departure_lounge) "dUB" = ( /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel, @@ -119796,7 +118949,7 @@ /obj/machinery/status_display/evac{ pixel_y = 32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/medical/virology) @@ -120376,11 +119529,11 @@ /area/library/abandoned) "dWE" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plating, /area/library/abandoned) "dWF" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plating, /area/library/abandoned) "dWG" = ( @@ -120451,7 +119604,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/office) "dWM" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/camera{ c_tag = "Chapel - Port"; dir = 4; @@ -120490,7 +119643,7 @@ }, /area/chapel/main) "dWR" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel{ dir = 4; icon_state = "chapel" @@ -121030,7 +120183,7 @@ icon_state = "1-2" }, /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel, @@ -121246,7 +120399,7 @@ }, /area/library/abandoned) "dYl" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light/small, /turf/open/floor/wood{ icon_state = "wood-broken3" @@ -121270,7 +120423,7 @@ /area/library/abandoned) "dYo" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/library/abandoned) "dYp" = ( @@ -121408,7 +120561,7 @@ icon_state = "1-2" }, /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -121507,7 +120660,7 @@ /turf/open/floor/plasteel, /area/medical/virology) "dYS" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/medical/virology) @@ -121516,7 +120669,7 @@ /obj/machinery/status_display/evac{ pixel_y = -32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/medical/virology) @@ -121790,7 +120943,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel, @@ -122222,7 +121375,7 @@ /obj/structure/sign/nanotrasen{ pixel_y = -32 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, @@ -123016,7 +122169,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plating, /area/maintenance/port/aft) "ebP" = ( @@ -123122,7 +122275,7 @@ }, /area/chapel/main) "ebZ" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light{ dir = 4 }, @@ -123410,7 +122563,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main) "ecE" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light_switch{ pixel_x = 24; pixel_y = -24 @@ -123435,7 +122588,7 @@ name = "departures camera" }, /obj/effect/turf_decal/delivery, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -124232,7 +123385,7 @@ /turf/open/floor/plasteel/grimy, /area/chapel/office) "edW" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/sign/warning/nosmoking{ pixel_x = 32 }, @@ -124388,7 +123541,7 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ dir = 10 }, @@ -124434,7 +123587,7 @@ icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -124500,7 +123653,7 @@ /turf/open/floor/plasteel/grimy, /area/chapel/office) "eey" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/camera{ c_tag = "Chapel Quarters"; name = "chapel camera" @@ -125403,7 +124556,7 @@ /turf/open/floor/plasteel, /area/security/checkpoint/escape) "egi" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 @@ -125576,10 +124729,6 @@ }, /turf/open/floor/plasteel/airless/solarpanel, /area/solar/port/aft) -"egC" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/chapel/office) "egD" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 @@ -125764,22 +124913,24 @@ }, /turf/open/floor/plasteel/dark, /area/library) +"eoB" = ( +/obj/machinery/seed_extractor, +/obj/item/reagent_containers/glass/bucket, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hydroponics/garden/abandoned{ + name = "Maintenance Garden" + }) +"etO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/atmos) "exE" = ( /obj/machinery/air_sensor/atmos/toxins_mixing_tank, /turf/open/floor/engine/vacuum, /area/science/mixing) -"eCJ" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/fore) "eCM" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -125790,6 +124941,16 @@ }, /turf/open/floor/plasteel/white, /area/science/misc_lab) +"eGi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/storage) "eJc" = ( /obj/machinery/atmospherics/pipe/simple/general/visible, /turf/closed/wall/r_wall, @@ -125805,7 +124966,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/machinery/chem_dispenser, +/obj/machinery/chem_dispenser/apothecary, /turf/open/floor/plasteel/dark, /area/medical/medbay/central) "eMD" = ( @@ -125831,13 +124992,6 @@ }, /turf/open/floor/plasteel/dark, /area/science/mixing) -"ePi" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/maintenance/port/fore) "eTv" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -125854,11 +125008,19 @@ }, /turf/open/floor/plasteel/dark, /area/science/mixing) +"eWr" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/hydroponics/soil, +/obj/item/seeds/grape, +/turf/open/floor/plasteel, +/area/hydroponics/garden/abandoned{ + name = "Maintenance Garden" + }) "faI" = ( /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/camera{ c_tag = "MiniSat Service Bay"; dir = 8; @@ -125890,27 +125052,12 @@ }, /turf/open/floor/plasteel, /area/medical/medbay/central) -"fiK" = ( -/obj/structure/cable/white{ - icon_state = "1-2" +"fmW" = ( +/obj/structure/sign/painting/library_secure{ + pixel_y = 32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/disposalpipe/sorting/mail{ - dir = 8; - name = "Mining Junction"; - sortType = 22 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) +/turf/open/floor/wood, +/area/library) "fno" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -125936,16 +125083,6 @@ /obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior, /turf/open/floor/engine, /area/science/mixing) -"fCs" = ( -/obj/machinery/door/window/northright{ - name = "Coffin Storage" - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/closet/crate/coffin, -/turf/open/floor/plating, -/area/chapel/office) "fFK" = ( /obj/machinery/ore_silo, /obj/effect/turf_decal/tile/neutral{ @@ -125964,44 +125101,13 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, /area/science/circuit) -"fLh" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) "fLR" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) -"fRT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"fXF" = ( -/obj/machinery/button/crematorium{ - id = "cremawheat"; - pixel_x = -26; - req_access_txt = "27" - }, +"fRK" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -126012,15 +125118,21 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/structure/table, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 1 + }, /turf/open/floor/plasteel/dark, -/area/chapel/office) +/area/engine/atmos) +"fRT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port) "gbV" = ( /obj/machinery/atmospherics/components/binary/pump/on{ dir = 1 @@ -126033,56 +125145,31 @@ }, /turf/open/floor/engine, /area/science/mixing) -"giN" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/closet/crate/coffin, -/turf/open/floor/plating, -/area/chapel/office) "gmj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, /area/science/circuit) -"gut" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +"gqA" = ( +/obj/structure/table, +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/structure/cable/white{ + icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/structure/cable/white{ + icon_state = "2-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"gBd" = ( -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/security/prison) -"gKo" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/fore) +"gKn" = ( +/obj/structure/grille, +/turf/open/space, +/area/space/nearstation) "gKr" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, /turf/open/floor/circuit/green, /area/science/research/abandoned) -"gLe" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/hydroponics/soil, -/obj/item/seeds/grape, -/turf/open/floor/plasteel, -/area/hydroponics/garden/abandoned{ - name = "Maintenance Garden" - }) "gNw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/table/glass, @@ -126134,19 +125221,23 @@ dir = 1 }, /area/science/circuit) +"gVM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Library - Aft"; + dir = 2; + name = "library camera" + }, +/turf/open/floor/plasteel/grimy, +/area/library) "gVS" = ( /obj/item/clothing/head/kitty, /obj/item/clothing/under/costume/maid, /obj/item/clothing/mask/muzzle, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) -"gVZ" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/fore) "gXn" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -126174,10 +125265,12 @@ dir = 10 }, /area/science/circuit) -"hix" = ( -/obj/structure/sign/warning/vacuum, +"hnq" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /turf/closed/wall/r_wall, -/area/chapel/office) +/area/engine/atmos) "hrP" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -126197,13 +125290,37 @@ }, /turf/open/floor/plasteel, /area/maintenance/port/aft) -"hsy" = ( -/obj/machinery/vr_sleeper, +"hrQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/landmark/start/cyborg, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) +"hAf" = ( /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /turf/open/floor/plasteel, -/area/security/prison) +/area/maintenance/port/aft) +"hCj" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/maintenance/starboard/fore) "hFo" = ( /obj/structure/lattice, /obj/structure/disposalpipe/segment{ @@ -126254,34 +125371,38 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/medical/medbay/central) -"hTX" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) +"hZh" = ( +/turf/open/space/basic, +/area/space/station_ruins) "iaF" = ( /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/science/research) -"iho" = ( -/obj/structure/sign/warning/nosmoking, -/turf/closed/wall, -/area/medical/surgery) +"iem" = ( +/obj/machinery/door/poddoor{ + id = "chapelgun"; + name = "Chapel Launcher Door" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/chapel/office) "ijB" = ( /obj/structure/reagent_dispensers/keg/aphro/strong, /obj/item/reagent_containers/glass/beaker, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) -"ioW" = ( -/obj/effect/decal/cleanable/dirt, +"imI" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"irh" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -126292,11 +125413,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/machinery/computer/arcade{ - dir = 1 - }, +/obj/structure/closet/crate/coffin, /turf/open/floor/plasteel/dark, -/area/maintenance/starboard/fore) +/area/chapel/office) "iwL" = ( /obj/machinery/status_display/evac{ pixel_x = 32 @@ -126315,6 +125434,33 @@ }, /turf/open/floor/engine/vacuum, /area/science/mixing) +"iBf" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"iIl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"iNK" = ( +/obj/structure/sign/painting/library{ + pixel_x = 0; + pixel_y = -32 + }, +/turf/open/floor/wood, +/area/library) "iQh" = ( /obj/structure/bodycontainer/morgue{ dir = 1 @@ -126335,6 +125481,24 @@ /obj/machinery/status_display/evac, /turf/closed/wall, /area/medical/medbay/central) +"iRs" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/security/prison) +"iRY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) "iTj" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 6 @@ -126355,6 +125519,11 @@ }, /turf/open/floor/plasteel/dark, /area/science/mixing) +"jdx" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) "jdO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -126379,6 +125548,16 @@ }, /turf/open/floor/plasteel, /area/science/research/abandoned) +"jiQ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/sign/plaques/kiddie/library{ + pixel_x = 32; + pixel_y = 32 + }, +/turf/open/floor/plasteel/grimy, +/area/library) "jjN" = ( /obj/structure/table/reinforced, /obj/machinery/camera{ @@ -126444,7 +125623,8 @@ }, /turf/open/floor/plasteel/dark, /area/science/mixing) -"jwo" = ( +"jvU" = ( +/obj/machinery/flasher/portable, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -126455,9 +125635,27 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/mob/living/simple_animal/pet/bumbles, -/turf/open/floor/plasteel, -/area/hydroponics) +/obj/structure/sign/poster/official/nt_storm{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"jyT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/computer/arcade{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) "jBE" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral{ @@ -126472,10 +125670,19 @@ }, /turf/open/floor/plasteel, /area/medical/morgue) -"jOB" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/maintenance/starboard/fore) +"jGT" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"jNQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating, +/area/engine/atmos) "jOE" = ( /obj/machinery/newscaster{ pixel_x = 32 @@ -126513,6 +125720,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/science/mixing) +"jYx" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/plasteel, +/area/science/storage) "kam" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/conveyor{ @@ -126521,7 +125733,7 @@ }, /turf/open/floor/plating, /area/quartermaster/storage) -"kiJ" = ( +"kbU" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -126532,35 +125744,34 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/machinery/computer/arcade{ - dir = 4 - }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o, /turf/open/floor/plasteel/dark, -/area/maintenance/starboard/fore) -"kqa" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/cobweb, -/obj/item/storage/crayons, -/obj/item/storage/crayons, -/obj/structure/cable/white{ - icon_state = "4-8" +/area/engine/atmos) +"klP" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/security/prison) -"krb" = ( +/turf/closed/wall/r_wall, +/area/engine/atmos) +"kmj" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 10 + }, +/turf/open/space, +/area/engine/atmos) +"ktK" = ( /obj/effect/turf_decal/tile/neutral{ - dir = 8 + dir = 4 }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, /obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/light{ dir = 8 }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/bodycontainer/morgue, /turf/open/floor/plasteel/dark, /area/chapel/office) "kvf" = ( @@ -126588,19 +125799,19 @@ }, /turf/open/floor/plasteel, /area/maintenance/port) -"kKn" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ +"kBV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/machinery/door/window{ - req_one_access_txt = "48,50" +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) "kLu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -126616,11 +125827,85 @@ }, /turf/open/floor/plasteel/white, /area/science/mixing) +"kND" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"kPJ" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) "lak" = ( /turf/open/floor/plasteel/white/side{ dir = 10 }, /area/science/circuit) +"lbN" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"lge" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"lkk" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/hydroponics/soil, +/obj/item/seeds/lime{ + pixel_x = 6 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden/abandoned{ + name = "Maintenance Garden" + }) +"loH" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) "loI" = ( /obj/machinery/autolathe, /obj/machinery/door/window/southleft{ @@ -126638,6 +125923,27 @@ }, /turf/open/floor/plasteel/white, /area/science/lab) +"lpu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/mob/living/simple_animal/pet/bumbles, +/turf/open/floor/plasteel, +/area/hydroponics) +"lsa" = ( +/obj/machinery/vr_sleeper, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/prison) "lti" = ( /obj/machinery/atmospherics/components/trinary/mixer/flipped, /obj/effect/turf_decal/tile/neutral{ @@ -126674,17 +125980,6 @@ }, /turf/open/floor/plasteel/dark, /area/medical/medbay/central) -"lDl" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/starboard/fore) "lEl" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -126718,20 +126013,22 @@ }, /turf/open/floor/plasteel, /area/science/circuit) -"lLY" = ( -/obj/effect/turf_decal/tile/neutral{ +"lKF" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/tile/brown{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/brown{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/brown{ dir = 8 }, -/obj/structure/closet/crate/coffin, -/turf/open/floor/plasteel/dark, -/area/chapel/office) +/obj/machinery/keycard_auth{ + pixel_x = -25 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) "lOY" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -126790,16 +126087,6 @@ dir = 1 }, /area/science/circuit) -"mbd" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) "mkm" = ( /obj/machinery/atmospherics/components/binary/valve, /obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{ @@ -126818,21 +126105,6 @@ }, /turf/open/floor/plasteel/dark, /area/science/mixing) -"mpP" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/fore) "mvm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ @@ -126854,26 +126126,25 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/circuit/green, /area/science/research/abandoned) +"mAL" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/cobweb, +/obj/item/storage/crayons, +/obj/item/storage/crayons, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"mEP" = ( +/obj/effect/landmark/barthpot, +/turf/open/floor/wood, +/area/library) "mIi" = ( /obj/item/electropack/shockcollar, /obj/item/assembly/signaler, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) -"mPj" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/chapel/office) -"mPH" = ( -/obj/structure/table, -/obj/machinery/computer/libraryconsole/bookmanagement, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/security/prison) "mQE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -126886,6 +126157,14 @@ }, /turf/open/floor/plasteel/white, /area/science/research) +"mUH" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Ports to Engine" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "mWZ" = ( /obj/machinery/atmospherics/components/binary/pump, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -126897,35 +126176,50 @@ }, /turf/open/floor/engine, /area/science/mixing) -"nbW" = ( -/obj/structure/grille, +"nbi" = ( +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall/r_wall, +/area/chapel/office) +"nph" = ( /turf/open/space, -/area/space/nearstation) +/area/space) +"nuw" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/port/aft) "nyN" = ( /obj/machinery/vending/kink, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) -"nFW" = ( -/obj/machinery/door/poddoor{ - id = "chapelgun"; - name = "Chapel Launcher Door" - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/chapel/office) -"nNX" = ( -/obj/structure/reagent_dispensers/watertank, +"nOz" = ( /obj/effect/turf_decal/tile/neutral{ - dir = 8 + dir = 1 }, /obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, /turf/open/floor/plasteel, -/area/maintenance/port/fore) -"nSh" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"oHk" = ( +/area/maintenance/port/aft) +"nQB" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -126936,11 +126230,56 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/machinery/computer/arcade{ +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"nSh" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"nSA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/maintenance/starboard/fore) +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"odz" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain/private) +"ohn" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/turf/open/space, +/area/engine/atmos) +"omN" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/trinary/mixer/airmix{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"osD" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/turf/open/space, +/area/engine/atmos) +"oDY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) "oIl" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 @@ -126990,6 +126329,10 @@ }, /turf/open/floor/plasteel/dark, /area/science/mixing) +"oNF" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/plasteel, +/area/security/prison) "oSD" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/manifold/general/visible{ @@ -127027,9 +126370,6 @@ /obj/machinery/igniter/incinerator_toxmix, /turf/open/floor/engine/vacuum, /area/science/mixing) -"oZp" = ( -/turf/open/space/basic, -/area/space/station_ruins) "oZC" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command{ @@ -127042,39 +126382,32 @@ }, /turf/open/floor/wood, /area/bridge/showroom/corporate) -"oZY" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +"pcK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/effect/turf_decal/tile/neutral{ - dir = 8 + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 }, -/turf/open/floor/plasteel, /area/maintenance/port/aft) -"pfC" = ( -/obj/machinery/seed_extractor, -/obj/item/reagent_containers/glass/bucket, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/hydroponics/garden/abandoned{ - name = "Maintenance Garden" - }) -"pgU" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/hydroponics/soil, -/obj/item/seeds/lime{ - pixel_x = 6 +"pmK" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 }, -/turf/open/floor/plasteel, -/area/hydroponics/garden/abandoned{ - name = "Maintenance Garden" - }) +/obj/machinery/vr_sleeper, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/security/prison) "pmQ" = ( /obj/structure/table/reinforced, /obj/machinery/newscaster{ @@ -127085,22 +126418,6 @@ dir = 1 }, /area/science/circuit) -"pnK" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/keycard_auth{ - pixel_x = -25 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) "poI" = ( /obj/structure/bed, /obj/item/tank/internals/anesthetic, @@ -127125,6 +126442,10 @@ }, /turf/open/floor/plasteel/dark, /area/medical/morgue) +"ptB" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/chapel/office) "ptI" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -127132,6 +126453,22 @@ }, /turf/open/floor/plating, /area/science/research/abandoned) +"pxR" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/landmark/start/paramedic, +/turf/open/floor/plasteel/white, +/area/medical/storage) "pQm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/white{ @@ -127149,21 +126486,28 @@ }, /turf/open/floor/plasteel, /area/science/research/abandoned) -"qeN" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +"pWb" = ( +/obj/structure/table/wood/fancy, +/obj/structure/window/reinforced{ + dir = 8 }, +/obj/structure/window/reinforced, +/obj/structure/sign/painting/library_secure{ + pixel_y = 32 + }, +/turf/open/floor/carpet, +/area/library) +"pZB" = ( /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/landmark/start/cyborg, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"qgU" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "qhc" = ( /obj/structure/table/reinforced, /obj/item/integrated_electronics/analyzer, @@ -127177,83 +126521,16 @@ /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input, /turf/open/floor/engine/vacuum, /area/science/mixing) -"qoc" = ( -/obj/machinery/door/window/northleft{ - name = "Mass Driver" - }, -/obj/machinery/mass_driver{ - id = "chapelgun"; - name = "Holy Driver" - }, -/turf/open/floor/plating, -/area/chapel/office) "qpq" = ( /turf/open/floor/plasteel/white/side{ dir = 5 }, /area/science/circuit) -"qAV" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel, -/area/maintenance/port/fore) "qBG" = ( /obj/effect/spawner/lootdrop/keg, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) -"qYM" = ( -/obj/effect/landmark/carpspawn, -/turf/open/space, -/area/space/station_ruins) -"ray" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/computer/pod/old{ - density = 0; - icon = 'icons/obj/airlock_machines.dmi'; - icon_state = "airlock_control_standby"; - id = "chapelgun"; - name = "Mass Driver Controller"; - pixel_x = -24 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"rhO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/science/circuit) -"rjr" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain/private) -"rqh" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) -"rCv" = ( -/turf/open/floor/plasteel/white/side{ - dir = 6 - }, -/area/science/circuit) -"rIi" = ( +"qUn" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -127267,19 +126544,57 @@ }, /turf/open/floor/plasteel/dark, /area/chapel/office) -"rKU" = ( -/obj/structure/cable/white{ - icon_state = "4-8" +"rhO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, -/obj/structure/cable/white{ - icon_state = "2-4" +/turf/open/floor/plasteel/white/side{ + dir = 9 }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/area/science/circuit) +"rCv" = ( +/turf/open/floor/plasteel/white/side{ + dir = 6 + }, +/area/science/circuit) +"rEo" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, +/turf/open/space, +/area/engine/atmos) +"rGq" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, /turf/open/floor/plasteel, -/area/maintenance/port/aft) +/area/engine/atmos) +"rPK" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"rSz" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/closet/crate/coffin, +/turf/open/floor/plating, +/area/chapel/office) "rUD" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/manifold/general/visible{ @@ -127321,50 +126636,76 @@ /obj/effect/decal/remains/xeno, /turf/open/floor/engine/vacuum, /area/science/mixing) -"sfL" = ( -/turf/open/space, -/area/space) "svv" = ( /obj/machinery/door/poddoor/incinerator_toxmix, /turf/open/floor/engine/vacuum, /area/science/mixing) -"sww" = ( +"sAr" = ( /obj/effect/decal/cleanable/dirt, -/turf/closed/wall/r_wall, -/area/chapel/office) -"sCQ" = ( -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/brown{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/effect/turf_decal/tile/brown, +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/turf/open/floor/plasteel, +/area/maintenance/starboard/fore) +"sFU" = ( +/obj/structure/sign/warning/nosmoking, +/turf/closed/wall, +/area/medical/surgery) +"sPd" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 }, /obj/effect/turf_decal/tile/neutral, -/obj/structure/bodycontainer/morgue, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"sVX" = ( +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"sPy" = ( +/obj/machinery/light, +/turf/open/floor/wood, +/area/library) +"sRE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"sSh" = ( +/obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/machinery/airalarm{ - pixel_y = 22 +/obj/machinery/computer/arcade{ + dir = 1 }, /turf/open/floor/plasteel/dark, -/area/chapel/office) +/area/maintenance/starboard/fore) +"tgB" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) "tmi" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -127378,21 +126719,6 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) -"tBE" = ( -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/maintenance/port/fore) "tCh" = ( /turf/closed/wall, /area/science/misc_lab) @@ -127401,6 +126727,29 @@ dir = 10 }, /area/science/misc_lab) +"tMy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/library) +"tNT" = ( +/obj/effect/landmark/carpspawn, +/turf/open/space, +/area/space/station_ruins) +"tOY" = ( +/obj/machinery/door/window/northright{ + name = "Coffin Storage" + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/closet/crate/coffin, +/turf/open/floor/plating, +/area/chapel/office) "tRT" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -127411,21 +126760,24 @@ /obj/machinery/chem_heater, /turf/open/floor/plasteel/white, /area/medical/medbay/central) -"tVN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +"tYG" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"ucF" = ( +/obj/structure/sign/warning/vacuum, +/turf/closed/wall/r_wall, /area/chapel/office) "upk" = ( /obj/machinery/door/airlock/public/glass{ @@ -127459,31 +126811,49 @@ }, /turf/open/floor/plasteel/white, /area/science/misc_lab) -"usi" = ( -/obj/structure/sign/warning/electricshock{ - pixel_y = 32 +"uqp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/obj/machinery/vr_sleeper, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/security/prison) -"uuP" = ( +/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ - dir = 8 + dir = 4 }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, /obj/effect/turf_decal/tile/neutral{ - dir = 4 + dir = 8 }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, /area/chapel/office) +"uqW" = ( +/obj/item/paper_bin, +/obj/item/pen, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/science/storage) +"uDs" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + name = "Mining Junction"; + sortType = 22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) "uNP" = ( /obj/machinery/atmospherics/pipe/simple/general/visible, /obj/effect/turf_decal/stripes/line{ @@ -127501,6 +126871,10 @@ }, /turf/open/floor/plasteel/dark, /area/science/mixing) +"uXf" = ( +/obj/structure/sign/poster/official/medical_green_cross, +/turf/closed/wall, +/area/medical/medbay/central) "uYS" = ( /obj/machinery/door/airlock/atmos/glass/critical{ heat_proof = 1; @@ -127512,10 +126886,74 @@ }, /turf/open/floor/engine, /area/engine/supermatter) +"vcs" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"vcP" = ( +/obj/machinery/door/window/northleft{ + name = "Mass Driver" + }, +/obj/machinery/mass_driver{ + id = "chapelgun"; + name = "Holy Driver" + }, +/turf/open/floor/plating, +/area/chapel/office) "vhA" = ( /obj/item/clothing/under/color/grey, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) +"voA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"vrD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"vwo" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/landmark/start/cyborg, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat_interior) "vAb" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -127525,30 +126963,106 @@ }, /turf/open/floor/plasteel/white, /area/science/mixing) -"vAW" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel, -/area/security/prison) -"vEq" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ +"vFi" = ( +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/tile/blue{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/landmark/start/paramedic, -/turf/open/floor/plasteel/white, -/area/medical/storage) +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "N2O to Pure" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"vHN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vRf" = ( +/turf/open/floor/plasteel, +/area/security/prison) +"vRV" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/port/aft) "wei" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/circuit) +"wmL" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/computer/pod/old{ + density = 0; + icon = 'icons/obj/airlock_machines.dmi'; + icon_state = "airlock_control_standby"; + id = "chapelgun"; + name = "Mass Driver Controller"; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"wum" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"wzu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/computer/arcade{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/fore) "wAA" = ( /obj/structure/sign/nanotrasen, /turf/closed/wall/r_wall, @@ -127564,10 +127078,25 @@ /obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel/white, /area/science/misc_lab) -"wIf" = ( -/obj/item/twohanded/required/kirbyplants/random, -/turf/open/floor/plasteel, -/area/security/prison) +"wZT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) "xaf" = ( /obj/machinery/door/airlock/public/glass{ name = "Holodeck Access" @@ -127586,20 +127115,13 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) -"xdZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +"xcU" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel{ - heat_capacity = 1e+006 - }, -/area/maintenance/port/aft) +/turf/open/floor/plating, +/area/engine/atmos) "xmt" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -127609,8 +127131,10 @@ }, /turf/open/floor/plasteel/white, /area/science/mixing) -"xuu" = ( -/obj/effect/landmark/barthpot, +"xok" = ( +/obj/machinery/light{ + dir = 1 + }, /turf/open/floor/wood, /area/library) "xwK" = ( @@ -127638,23 +127162,6 @@ }, /turf/open/floor/plasteel, /area/science/research/abandoned) -"xCB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/landmark/start/cyborg, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) "xDZ" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 @@ -127673,6 +127180,46 @@ }, /turf/open/floor/plasteel/dark, /area/science/mixing) +"xER" = ( +/obj/structure/chair/sofa/left{ + icon_state = "sofaend_left"; + dir = 8 + }, +/turf/open/floor/wood, +/area/library) +"xFI" = ( +/obj/machinery/button/crematorium{ + id = "cremawheat"; + pixel_x = -26; + req_access_txt = "27" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"xGC" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Port to Waste" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "xJl" = ( /obj/structure/table, /obj/item/folder/white, @@ -127730,6 +127277,13 @@ }, /turf/open/floor/plasteel/dark, /area/science/mixing) +"yiP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/layer_manifold{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) "yjc" = ( /obj/machinery/power/apc{ areastring = "/area/science/research/abandoned"; @@ -127744,3717 +127298,3717 @@ /area/science/research/abandoned) (1,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (2,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (3,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (4,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (5,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (6,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (7,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (8,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (9,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (10,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (11,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (12,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -qYM -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +tNT +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (13,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (14,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (15,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -131478,240 +131032,240 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (16,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -131735,240 +131289,240 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (17,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -131992,240 +131546,240 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (18,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -132249,227 +131803,227 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (19,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -132506,227 +132060,227 @@ ajr aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (20,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -132763,227 +132317,227 @@ ajr aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (21,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -133029,218 +132583,218 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (22,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -133286,218 +132840,218 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (23,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -133543,218 +133097,218 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (24,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -133800,218 +133354,218 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (25,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -134057,218 +133611,218 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (26,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -134314,218 +133868,218 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (27,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -134571,218 +134125,218 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (28,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -134828,218 +134382,218 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (29,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -135085,218 +134639,218 @@ ajr ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (30,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -135342,218 +134896,218 @@ aaa ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (31,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -135599,218 +135153,218 @@ brM ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (32,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -135856,218 +135410,218 @@ brN ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (33,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -136113,218 +135667,218 @@ brM aad aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -qYM -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +tNT +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (34,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -136370,218 +135924,218 @@ brN ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (35,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -136627,218 +136181,218 @@ brM ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (36,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -136884,218 +136438,218 @@ aaa ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (37,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -137141,218 +136695,218 @@ ajr ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (38,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -137398,218 +136952,218 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (39,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -137636,7 +137190,7 @@ bPC bRK bTC bVK -qeN +vwo cal bPC aaa @@ -137655,218 +137209,218 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (40,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -137893,7 +137447,7 @@ bPC bRL bTC bVx -xCB +hrQ cam bPC bRO @@ -137912,218 +137466,218 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (41,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -138150,7 +137704,7 @@ bPC bRM bTD bVL -xCB +hrQ can bPC bkE @@ -138169,218 +137723,218 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (42,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -138426,218 +137980,218 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (43,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -138683,218 +138237,218 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (44,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -138940,38 +138494,38 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -138993,165 +138547,165 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (45,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -139197,38 +138751,38 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -139250,165 +138804,165 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (46,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -139447,45 +139001,45 @@ aaa aad aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -139507,170 +139061,170 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (47,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -139704,45 +139258,45 @@ aad ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -139764,176 +139318,176 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (48,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -139961,45 +139515,45 @@ aaa ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -140021,176 +139575,176 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (49,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -140218,45 +139772,45 @@ aad ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -140278,176 +139832,176 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (50,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -140475,41 +140029,41 @@ aaa ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -140535,176 +140089,176 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (51,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -140732,41 +140286,41 @@ aad ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -140792,176 +140346,176 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (52,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -140989,41 +140543,41 @@ aaa ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -141049,176 +140603,176 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (53,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -141246,41 +140800,41 @@ aaa aad aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -141306,176 +140860,176 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (54,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -141503,41 +141057,41 @@ aad ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -141563,176 +141117,176 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (55,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -141760,41 +141314,41 @@ aaa ajr aaa aaa -oZp -oZp -qYM -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +tNT +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -141820,176 +141374,176 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (56,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -142017,41 +141571,41 @@ aad ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -142077,176 +141631,176 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (57,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -142274,41 +141828,41 @@ aaa ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -142334,140 +141888,140 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (58,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -142476,34 +142030,34 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -142531,41 +142085,41 @@ aad ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -142591,140 +142145,140 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (59,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -142733,34 +142287,34 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -142788,41 +142342,41 @@ aaa aad aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -142848,126 +142402,126 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (60,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -142990,34 +142544,34 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -143045,41 +142599,41 @@ aaa ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -143105,126 +142659,126 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (61,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -143247,34 +142801,34 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -143302,41 +142856,41 @@ aad ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -qYM -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +tNT +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -143362,126 +142916,126 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (62,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -143504,34 +143058,34 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -143559,41 +143113,41 @@ aaa ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -143619,126 +143173,126 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (63,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -143761,34 +143315,34 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -143816,41 +143370,41 @@ aad ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -143876,126 +143430,126 @@ aaa aab aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (64,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -144018,34 +143572,34 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -144073,41 +143627,41 @@ aaa aad aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -144133,126 +143687,126 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (65,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -144275,28 +143829,28 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -144330,41 +143884,41 @@ aaa ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -144390,126 +143944,126 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (66,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -144532,28 +144086,28 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -144587,41 +144141,41 @@ aad ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -144647,126 +144201,126 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (67,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -144789,28 +144343,28 @@ aad aac aac aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -144904,126 +144458,126 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (68,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -145047,27 +144601,27 @@ aaa aac aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -145161,126 +144715,126 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (69,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -145304,27 +144858,27 @@ aaa aad aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -145418,126 +144972,126 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (70,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -145561,27 +145115,27 @@ aaa aac aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -145675,126 +145229,126 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (71,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -145830,15 +145384,15 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -145932,126 +145486,126 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (72,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -146087,15 +145641,15 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -146189,124 +145743,124 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (73,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -146446,124 +146000,124 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (74,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -146703,124 +146257,124 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (75,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -146960,124 +146514,124 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (76,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -147217,124 +146771,124 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (77,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -147474,124 +147028,124 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (78,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -147731,124 +147285,124 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (79,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -147988,124 +147542,124 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (80,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -148245,124 +147799,124 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (81,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -148502,124 +148056,124 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (82,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -148759,124 +148313,124 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (83,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -149016,124 +148570,124 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (84,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -149273,124 +148827,124 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (85,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -149530,124 +149084,124 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (86,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -149787,124 +149341,124 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (87,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -149940,22 +149494,22 @@ aNY aMB aMG aMG -aMG +iBf aWy -aMB -aZS -aMG +jNQ +jGT +jNQ aWy -aMB -aZS -aMG -aWy -aMB -aZS -aMG -aZS -aMB +jNQ +jGT +jNQ aWy +jNQ +jGT +tgB +jGT +xcU +yiP aMG aMG bxE @@ -150079,89 +149633,89 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (88,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -150203,12 +149757,12 @@ aXY aZT bbA bda -aST +iRY bfU bhf -bda -aST -aZT +vFi +iRY +kbU bok bpQ brV @@ -150336,89 +149890,89 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (89,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -150466,7 +150020,7 @@ bbB biW bkJ bmJ -bol +aTg bpR brW btN @@ -150593,89 +150147,89 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (90,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -150706,23 +150260,23 @@ aGV aIv aJO aLj -aMB -aOa +aME +vrD aPF aRs aSV aUN aWB -aYa -aYa -aYa +aWB +aWB +aWB bdc -aYa -aYa +aWB +aWB aYa biX bkK -bmK +bmP aTg bpS brX @@ -150850,89 +150404,89 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (91,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -150970,17 +150524,17 @@ aRt aSW aUO aWC -aYb -aZV -aZV -bdd -bey -bae -bae +aWC +aWC +aWC +aWC +aWC +aWC +bde biY bkL bmL -bom +bok bpT brY btP @@ -151107,89 +150661,89 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (92,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -151219,21 +150773,21 @@ alT aFr aIx aJQ -aLl -aME +aLk +aMB aOb aPH -aRu +aRy aSX -aUP -aWD -aYc -aZW -bbC -aYc -bez -bfW -aWD +aUO +aWC +aWC +aWC +aWC +aWC +aWC +aWC +aWC biZ bkM bmM @@ -151364,89 +150918,89 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (93,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -151483,16 +151037,16 @@ aPI aRv aSW aUO -aWE -aYd -aZX -bbD -bde -bde +aWC +aWC +aWC +aWC +aWC +aWC bfX -bhg -bja -bkM +aWC +biZ +bkL bmN bon bpV @@ -151519,10 +151073,10 @@ car cbV cdJ car -aax -aay -aaz -aaA +chv +cjf +ckA +clV cnC cpa cqs @@ -151530,10 +151084,10 @@ cqr ctq cuR cnC -aay -aaD -aaA -aax +cjf +czs +clV +chv car cFO cbV @@ -151621,89 +151175,89 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (94,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -151737,21 +151291,21 @@ aFr aMG aOd aPJ -aRw -aSY -aUP -aWF -aYe -aZY -bbE -bdf -bez -bfY -bhh -bjb +aRv +aSW +aUO +aWC +aWC +aWC +aWC +aWC +aWC +aWC +aWC +bde bkN bmO -boo +aTg bpW bsb btS @@ -151878,89 +151432,89 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (95,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -151992,22 +151546,22 @@ ayR aJT aLn aMG -aOe -aOo +aOn +rPK aRv aSW aUQ -aWG +aWC aYf -aZZ -aZZ -aZZ +aWC +aWC +aWC beA -aWK -bhi -bjc +aWC +aWC +aWC bkO -bmP +xGC aTg bpX aMB @@ -152037,13 +151591,13 @@ chx cjh ckC clX -aaB +cnE cpc cqu cqr cts cuT -aaB +cnE clX czt cAL @@ -152075,7 +151629,7 @@ dof dmi dry dta -aaR +duk dvY dod dmi @@ -152135,89 +151689,89 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (96,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -152249,8 +151803,8 @@ aIz aJU aLo aMH -aOf aPL +rGq aRv aSW aUR @@ -152259,11 +151813,11 @@ aYg aMB aWH aMB -aWH +etO aWH bhj bjd -bkP +bkO bmQ bop bpY @@ -152392,89 +151946,89 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (97,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -qYM -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +tNT +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -152493,9 +152047,9 @@ asq atO auX awf -aaq -aaq -aaw +axv +axv +azS awi aCk aDn @@ -152506,8 +152060,8 @@ aBf aJV aLp aMG -aOe -aOo +aOn +rPK aRv aSW aUS @@ -152520,12 +152074,12 @@ beB bfZ bhk bje -bkQ +bkN bmR boq bpZ bsd -aYn +boq bvf aMG bxL @@ -152553,9 +152107,9 @@ cjn clZ cnF car -aaC +cqw car -aaC +cqw car car cxF @@ -152649,89 +152203,89 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (98,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -152777,7 +152331,7 @@ beC bga bhl bjf -bkP +mUH bmS bor bqa @@ -152906,89 +152460,89 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (99,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -153020,7 +152574,7 @@ alT aJW aLq aMG -aOe +aOn aPN aRv aSW @@ -153163,89 +152717,89 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (100,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -153420,60 +152974,60 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (101,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -153677,60 +153231,60 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (102,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -153801,7 +153355,7 @@ aYl bae bae bae -bae +vHN aWL bhp bji @@ -153934,60 +153488,60 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (103,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -154053,7 +153607,7 @@ aPR aRB aTc aUV -aWM +bxS aYm baf bbJ @@ -154062,7 +153616,7 @@ baf baf bhq bjj -bkU +bkP bmX bow bqf @@ -154191,60 +153745,60 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (104,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -154310,13 +153864,13 @@ aPS aRv aSW aUO -aWN -aYn -bag -aYn -aYn -beG -bgb +bxR +bde +bde +bde +bde +aZX +bde bhr bjk bkV @@ -154448,60 +154002,60 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (105,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -154549,16 +154103,16 @@ asy atW avf awi -aar -aav -aar +axD +ayM +axD awf aCp aDs aEv aFE aHh -aaG +aID aKb aLv aMG @@ -154569,10 +154123,10 @@ aTd aUW aWO aYo -aWO -bbK -bbK -beH +omN +aYo +aYo +aYo bgc bhs bjl @@ -154705,60 +154259,60 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (106,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -154962,60 +154516,60 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (107,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -155072,7 +154626,7 @@ aDt aEx aFG aHj -aaH +aIF aKd aLx aMG @@ -155080,16 +154634,16 @@ aOo aOn aRD aTf -aOn -aRC +loH +nQB aYq bai bbM bdl beJ bge -bhu -bdl +aXY +fRK bkY bnb aMG @@ -155219,60 +154773,60 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (108,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -155335,20 +154889,20 @@ alT aML aMG aMG -aMG -aTg +hnq +yiP aMB aTg -aMG -aWy +wum +yiP aMB aZS -aMG -aWy +wum +yiP aMB aZS -aMG -bnc +klP +aMB aMG bqk bsn @@ -155476,60 +155030,60 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (109,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -155592,20 +155146,20 @@ aLy alT aad aad +rEo +ohn aRE aTh -aRE -aTh -aRE -aWx +kmj +osD aRE aZR -aRE -aWx +kmj +osD aRE aZR bkZ -aMN +aMM aMG bql bso @@ -155733,60 +155287,60 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (110,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -155832,8 +155386,8 @@ aad alT alT alT -aaF -aaF +avk +avk alT alT azZ @@ -155990,60 +155544,60 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (111,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -156247,60 +155801,60 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (112,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aab aaa @@ -156504,60 +156058,60 @@ aab aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (113,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -156614,7 +156168,7 @@ arB aug alg alg -eCJ +kND aKg alf aMO @@ -156761,60 +156315,60 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (114,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -156871,7 +156425,7 @@ aAb aAb aAb aAb -gKo +nSA aKh alf aMN @@ -157018,60 +156572,60 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (115,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -157129,7 +156683,7 @@ aCv aFJ aAb aIH -nNX +kPJ alf aMP aDw @@ -157209,7 +156763,7 @@ cOM dgs cMY djE -dlr +dlq dmE dow dqm @@ -157275,60 +156829,60 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (116,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -157532,60 +157086,60 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (117,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -157643,7 +157197,7 @@ aEB aFL aAb aIH -ePi +sPd avm arB arB @@ -157789,60 +157343,60 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (118,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -157895,7 +157449,7 @@ alf aAb aBj aCv -pfC +eoB aEC aFM aAb @@ -158026,7 +157580,7 @@ edL eep eff aad -rqh +qgU aaa ajr aaa @@ -158038,68 +157592,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (119,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -158152,7 +157706,7 @@ alg aAb aBk aCv -gLe +eWr aEC aFN aAb @@ -158283,7 +157837,7 @@ edM eeq dLY aad -nbW +gKn aaa aad aaa @@ -158295,68 +157849,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (120,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -158414,7 +157968,7 @@ aED aFO aHm aII -qAV +oDY aLz aMR aOq @@ -158552,68 +158106,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (121,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -158671,7 +158225,7 @@ aEE aFP aHn aIJ -gVZ +pZB aLz aMS aOr @@ -158716,7 +158270,7 @@ ccq ceg ccq chO -ceg +jiQ ckQ cmr ccq @@ -158809,68 +158363,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (122,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -158923,12 +158477,12 @@ ayX aAb aBn aCx -pgU +lkk aCv aFQ aAb -mpP -gVZ +tYG +pZB aLz aMT aOs @@ -158969,11 +158523,11 @@ bUt bWD bYM caH -ccr +cwq ceh -cfY -chP -cjt +caG +caG +gVM ckR cms cnO @@ -159066,68 +158620,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (123,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -159175,7 +158729,7 @@ asL aue avt aws -aaI +axN ayY aAc aBo @@ -159224,12 +158778,12 @@ bDl bDl bUu bWE -bYO +imI caG -ccs -cei +xok +cxV cfZ -chQ +caG cjt ckR cms @@ -159301,7 +158855,7 @@ dXz dYt dON dOl -rKU +nuw eaX dYu ect @@ -159323,68 +158877,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (124,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -159483,11 +159037,11 @@ bUv bWC bYR caG +fmW +cxV +iNK caG -caG -caG -chR -cjt +tMy ckR cmt cmt @@ -159557,8 +159111,8 @@ dON dON dON dON -xdZ -mbd +pcK +hAf ebc ebQ ecu @@ -159580,75 +159134,75 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (125,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa aaa aaa aaa -rqh +qgU aad aad aaa @@ -159699,7 +159253,7 @@ aAb aAb aAb aIL -ePi +sPd aLz aLz aLz @@ -159740,10 +159294,10 @@ bUq bWI bYM caG -cct -cej +fmW +cxV +iNK caG -chS cjt ckR cms @@ -159820,12 +159374,12 @@ dZN dZN dZN dZN -hix +ucF dZN dZN dLY aad -rqh +qgU aad aad aaa @@ -159837,68 +159391,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (126,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -159956,7 +159510,7 @@ aEG aFS aHp aIM -tBE +lge aLB aFS aEG @@ -159997,11 +159551,11 @@ bUq bWD bYM caG -ccu -cek -cga -chT -cju +fmW +cxV +iNK +caG +cjt ckR cms cnQ @@ -160071,20 +159625,20 @@ dWJ dLW dYu dZg -fLh -oZY +nOz +vRV dZN -gut -krb -ray -qoc -mPj -nFW +lbN +voA +wmL +vcP +ptB +iem aaa -sfL +nph aaa aaa -sfL +nph aaa aaa aaa @@ -160094,68 +159648,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (127,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -160163,7 +159717,7 @@ aaa aaa aaa aaO -aaT +abe abp abC abC @@ -160255,12 +159809,12 @@ bWD bYM caG ccv -cel +cxV +sPy caG -chU cjt ckR -xuu +mEP cnR cpv cqQ @@ -160330,12 +159884,12 @@ dTw dTw dZN dZN -sww -sVX -hTX -hTX -fCs -giN +nbi +wZT +kBV +kBV +tOY +rSz dTw aad aad @@ -160351,68 +159905,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (128,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -160420,8 +159974,8 @@ aaa aaa aaa aaO -aaU -aaV +vcs +abq abD abD abZ @@ -160511,9 +160065,9 @@ bUq bWD bYS caG -caG -caG -caG +pWb +cxV +cmt chV cjt ckT @@ -160569,7 +160123,7 @@ dHl dIA dJZ dKF -dLZ +jYx dLZ dOo dOT @@ -160579,17 +160133,17 @@ dRB dSz dTx dUi -lLY +irh dVN -lLY +irh dXB dYv dTw dZO -fXF -sCQ -tVN -uuP +xFI +ktK +uqp +iIl dTw dTw dTw @@ -160608,68 +160162,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (129,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -160747,7 +160301,7 @@ bjt bli bnk boB -jwo +lpu bnj bnh bvB @@ -160770,7 +160324,7 @@ bYM caG cct cej -caG +cxV chW cjt ckR @@ -160825,8 +160379,8 @@ dFN dHm dIB dKa -dKF -dLZ +uqW +jYx dLZ dOo dOT @@ -160842,7 +160396,7 @@ dUj dXC dYw dZh -rIi +qUn eau edr ebS @@ -160865,75 +160419,75 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (130,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa aaa aaa aaa -rqh +qgU aad aad aaa @@ -161026,12 +160580,12 @@ bWD bYM caG ccu -cek -cga -chT -cju +cmt +cmt +ccr +cjt ckR -cmv +cmt cnU cpy cqT @@ -161080,10 +160634,10 @@ drP dEx dFO dHn -dIC -dKb -dKb +dIB dKb +eGi +eGi dNB dOp dOT @@ -161122,68 +160676,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (131,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -161280,11 +160834,11 @@ bQu bQv bUr bWD -bYM +sRE caG -ccv +chP cel -caG +xER chX cjt ckR @@ -161379,68 +160933,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (132,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -161636,68 +161190,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (133,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -161893,68 +161447,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (134,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -162150,68 +161704,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (135,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -162407,68 +161961,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (136,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -162664,68 +162218,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (137,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -162909,7 +162463,7 @@ edT eeC efp egd -egC +efg aaa aad aaa @@ -162921,68 +162475,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (138,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -163166,7 +162720,7 @@ edU eeD efq ege -egC +efg aaa aad aaa @@ -163178,68 +162732,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (139,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -163423,7 +162977,7 @@ edV eeE efr ege -egC +efg aad ajr aaa @@ -163435,68 +162989,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (140,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -163692,68 +163246,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (141,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -163949,68 +163503,68 @@ aaa aaa aaa aaa -qYM -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +tNT +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (142,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -qYM -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +tNT +hZh +hZh +hZh +hZh aaa aaa aaa @@ -164206,68 +163760,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (143,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -164463,68 +164017,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (144,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -164720,68 +164274,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (145,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -164977,68 +164531,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (146,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -165234,68 +164788,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (147,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -165491,68 +165045,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (148,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -165748,68 +165302,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (149,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -166005,68 +165559,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (150,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -166262,68 +165816,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (151,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -166519,68 +166073,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (152,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -166776,68 +166330,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (153,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -167033,68 +166587,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (154,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -167290,68 +166844,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (155,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -167547,68 +167101,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (156,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -167664,7 +167218,7 @@ aCP avQ aFe aGp -kKn +adY aJg aKF aLP @@ -167804,68 +167358,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (157,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -168061,68 +167615,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (158,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -168318,68 +167872,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (159,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -168575,68 +168129,68 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (160,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -168832,59 +168386,59 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (161,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -169089,59 +168643,59 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (162,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -169346,59 +168900,59 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (163,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -169506,7 +169060,7 @@ bUO bXf bUQ cbe -rjr +odz ceH cgu cij @@ -169603,59 +169157,59 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (164,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -169860,59 +169414,59 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (165,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -170117,59 +169671,59 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (166,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -170221,7 +169775,7 @@ aox apu aqy arb -ioW +sSh aig auA avU @@ -170374,59 +169928,59 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (167,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -170569,7 +170123,7 @@ cNz dbm dcX dev -aaQ +uXf dhe diz dkp @@ -170631,59 +170185,59 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (168,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -170888,59 +170442,59 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (169,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -170988,7 +170542,7 @@ akU alI amE anz -kiJ +jyT apw aqA apy @@ -171145,59 +170699,59 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (170,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -171285,7 +170839,7 @@ blS baQ boV bra -fiK +uDs bus bvM bwZ @@ -171331,7 +170885,7 @@ cKE bsE cNE cPy -aaN +cRa cSK cUE cQX @@ -171402,59 +170956,59 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (171,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -171506,7 +171060,7 @@ aiC apy apy apu -oHk +wzu atw auD avW @@ -171659,59 +171213,59 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (172,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -171916,59 +171470,59 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (173,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -172173,59 +171727,59 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (174,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -172430,59 +171984,59 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (175,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -172568,7 +172122,7 @@ bio bjZ blW aig -lDl +sAr aig aad but @@ -172687,59 +172241,59 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (176,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -172944,59 +172498,59 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (177,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -173081,7 +172635,7 @@ bgP biq bjZ blX -jOB +hCj bpa aig aaa @@ -173201,59 +172755,59 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (178,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -173458,59 +173012,59 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (179,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -173572,7 +173126,7 @@ azG aAI aCb aDf -aEh +avW aFk aGD aHW @@ -173704,70 +173258,70 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (180,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -173961,70 +173515,70 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (181,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -174218,70 +173772,70 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (182,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -174431,7 +173985,7 @@ dkv dma dma dma -iho +sFU dsI dro dvz @@ -174475,70 +174029,70 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (183,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -174732,70 +174286,70 @@ aaa aaa aaa aaa -oZp -oZp -oZp -qYM -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +tNT +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (184,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -174867,7 +174421,7 @@ aaa aaa aad aQR -pnK +lKF aUq aVR aXF @@ -174927,8 +174481,8 @@ cIc cAm cKO cMm -aaM -vEq +cNO +pxR cRi cSV cUN @@ -174989,70 +174543,70 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (185,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -175246,70 +174800,70 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (186,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -175503,70 +175057,70 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (187,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -175760,70 +175314,70 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (188,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -176017,70 +175571,70 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (189,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -176274,70 +175828,70 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (190,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -176367,19 +175921,19 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -176531,70 +176085,70 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (191,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -176624,19 +176178,19 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -176788,70 +176342,70 @@ ajr aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (192,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -176881,19 +176435,19 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -177045,70 +176599,70 @@ ajr aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (193,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -177135,22 +176689,22 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -177302,70 +176856,70 @@ ajr aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (194,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -177392,22 +176946,22 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -177559,70 +177113,70 @@ ajr aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (195,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -177649,29 +177203,29 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -177816,84 +177370,84 @@ ajr aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (196,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -177906,29 +177460,29 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -178073,84 +177627,84 @@ ajr aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (197,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -178163,29 +177717,29 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -178330,119 +177884,119 @@ ajr aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (198,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -178522,7 +178076,7 @@ cDD cFx cGU cAw -cJl +cJk cLa cMx cIi @@ -178587,125 +178141,125 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (199,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -178844,125 +178398,125 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (200,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -178970,7 +178524,7 @@ aaa aaa aaa aaa -rqh +qgU aFm aIc aFm @@ -179101,125 +178655,125 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (201,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -179227,9 +178781,9 @@ aaa aaa aaa aaa -rqh +qgU aFm -kqa +mAL bbt aFm aMc @@ -179358,125 +178912,125 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (202,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -179484,10 +179038,10 @@ aaa aaa aaa aaa -rqh +qgU aFm -hsy -vAW +lsa +iRs aFm aKV aNy @@ -179615,125 +179169,125 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (203,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -179743,10 +179297,10 @@ ajr ajr aad aFm -usi -gBd -wIf -gBd +pmK +vRf +oNF +vRf aNz aPh aQZ @@ -179872,125 +179426,125 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (204,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -180000,7 +179554,7 @@ ajr aad aad aFn -mPH +gqA aJA aJA aMe @@ -180114,140 +179668,140 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -qYM -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +tNT +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (205,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -180371,140 +179925,140 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (206,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -180628,140 +180182,140 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (207,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -180806,7 +180360,7 @@ bFP bHI bJC bLs -aaK +jvU bNp bNp bTi @@ -180885,140 +180439,140 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (208,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -181053,7 +180607,7 @@ bpp bru btt buQ -aaJ +bwj bhd byO bAs @@ -181142,140 +180696,140 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (209,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -181399,140 +180953,140 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (210,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -181656,140 +181210,140 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (211,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -181839,7 +181393,7 @@ bPA bRw bTk bVr -aaL +bXR bZY cbL bLs @@ -181913,140 +181467,140 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (212,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -182170,140 +181724,140 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (213,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -182427,140 +181981,140 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (214,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -182598,7 +182152,7 @@ buU biQ aad ajr -ajr +jdx aad ajr ajr @@ -182684,140 +182238,140 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (215,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -qYM -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +tNT +hZh aaa aaa aaa @@ -182941,140 +182495,140 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (216,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -183166,12 +182720,12 @@ aad aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa ajr @@ -183198,140 +182752,140 @@ aaa aaa aaa aaa -oZp -qYM -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +tNT +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (217,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh agO -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -183423,12 +182977,12 @@ aad ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa ajr @@ -183455,140 +183009,140 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (218,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -183680,12 +183234,12 @@ aad ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa ajr @@ -183712,140 +183266,140 @@ ajr aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (219,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -183937,12 +183491,12 @@ aad aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aad @@ -183969,140 +183523,140 @@ ajr aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (220,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -184194,12 +183748,12 @@ aad ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa ajr @@ -184226,144 +183780,144 @@ ajr aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (221,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -184451,12 +184005,12 @@ ajr ajr aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa ajr @@ -184483,144 +184037,144 @@ aad aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (222,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -184659,23 +184213,23 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -184708,12 +184262,12 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa ajr @@ -184740,144 +184294,144 @@ ajr aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (223,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -184916,23 +184470,23 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -184965,12 +184519,12 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -184997,144 +184551,144 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (224,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -185173,23 +184727,23 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -185222,12 +184776,12 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -185254,144 +184808,144 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (225,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -185430,23 +184984,23 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -185479,12 +185033,12 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -185511,144 +185065,144 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (226,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -185687,23 +185241,23 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -185736,12 +185290,12 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -185768,144 +185322,144 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (227,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -185944,23 +185498,23 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -185993,12 +185547,12 @@ aaa aaa aab aaa -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -186025,144 +185579,144 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (228,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -186201,23 +185755,23 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -186248,15 +185802,15 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -186282,144 +185836,144 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (229,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -186458,23 +186012,23 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aab aaa aaa @@ -186505,15 +186059,15 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -186539,144 +186093,144 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (230,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -186715,23 +186269,23 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -186762,15 +186316,15 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -186796,144 +186350,144 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (231,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -186970,28 +186524,28 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -187019,15 +186573,15 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -187053,152 +186607,152 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (232,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -qYM +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +tNT aaa aaa aaa @@ -187227,28 +186781,28 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -187273,21 +186827,21 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -187310,152 +186864,152 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (233,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -187484,28 +187038,28 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -187530,21 +187084,21 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -187567,152 +187121,152 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (234,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -187741,28 +187295,28 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -187787,21 +187341,21 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -187824,152 +187378,152 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (235,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -187998,28 +187552,28 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -188044,21 +187598,21 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -188081,152 +187635,152 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (236,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -188255,28 +187809,28 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -188301,21 +187855,21 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -188338,152 +187892,152 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (237,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -188512,28 +188066,28 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -188558,21 +188112,21 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh aaa aaa aaa @@ -188595,4686 +188149,4686 @@ aaa aaa aaa aaa -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (238,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (239,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -qYM -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -qYM -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +tNT +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +tNT +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (240,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (241,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (242,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (243,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (244,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (245,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (246,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (247,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (248,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (249,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (250,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (251,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (252,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (253,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (254,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} (255,1,1) = {" -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp -oZp +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh +hZh "} diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm deleted file mode 100644 index 5455070754..0000000000 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ /dev/null @@ -1,127551 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aab" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks/beer{ - dir = 8 - }, -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aac" = ( -/obj/machinery/camera{ - c_tag = "Bar"; - dir = 8 - }, -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks{ - dir = 8 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aad" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/engine, -/area/science/xenobiology) -"aaf" = ( -/obj/docking_port/stationary{ - dheight = 1; - dir = 8; - dwidth = 12; - height = 17; - id = "syndicate_ne"; - name = "northeast of station"; - width = 23 - }, -/turf/closed/mineral/random/snow/more_caves, -/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) -"aah" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/security/main) -"aai" = ( -/turf/closed/wall/r_wall, -/area/security/prison) -"aaj" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/closed/wall/r_wall, -/area/security/prison) -"aak" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/prison) -"aal" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/prison) -"aam" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/prison) -"aan" = ( -/obj/machinery/hydroponics/soil, -/obj/item/seeds/ambrosia, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/grass, -/area/security/prison) -"aao" = ( -/obj/machinery/hydroponics/soil, -/obj/item/plant_analyzer, -/obj/structure/sign/warning/electricshock{ - pixel_y = 32 - }, -/turf/open/floor/grass, -/area/security/prison) -"aap" = ( -/obj/machinery/hydroponics/soil, -/obj/item/seeds/carrot, -/turf/open/floor/grass, -/area/security/prison) -"aaq" = ( -/obj/machinery/camera{ - c_tag = "Prison Common Room"; - network = list("ss13","prison") - }, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/structure/sink{ - pixel_y = 20 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aar" = ( -/obj/machinery/hydroponics/soil, -/obj/item/seeds/glowshroom, -/turf/open/floor/grass, -/area/security/prison) -"aas" = ( -/obj/structure/sign/warning/electricshock{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aat" = ( -/turf/open/floor/plasteel, -/area/security/prison) -"aau" = ( -/obj/machinery/biogenerator, -/turf/open/floor/plasteel, -/area/security/prison) -"aav" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aaw" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/grass, -/area/security/prison) -"aax" = ( -/mob/living/simple_animal/mouse/brown/Tom, -/turf/open/floor/grass, -/area/security/prison) -"aay" = ( -/turf/open/floor/plating, -/area/security/prison) -"aaz" = ( -/obj/machinery/disposal/bin, -/obj/structure/sign/plaques/deempisi{ - pixel_x = -28; - pixel_y = -4 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "barShutters"; - name = "bar shutters"; - pixel_x = 4; - pixel_y = 28 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/light_switch{ - name = "Bar Lights"; - pixel_x = -6; - pixel_y = 28 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aaA" = ( -/obj/machinery/seed_extractor, -/turf/open/floor/plasteel, -/area/security/prison) -"aaB" = ( -/obj/structure/window/reinforced, -/obj/machinery/hydroponics/soil, -/obj/item/seeds/potato, -/turf/open/floor/grass, -/area/security/prison) -"aaC" = ( -/obj/machinery/hydroponics/soil, -/obj/structure/window/reinforced, -/obj/item/seeds/tower, -/turf/open/floor/grass, -/area/security/prison) -"aaD" = ( -/obj/structure/window/reinforced, -/obj/machinery/hydroponics/soil, -/obj/item/seeds/grass, -/turf/open/floor/grass, -/area/security/prison) -"aaE" = ( -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aaF" = ( -/obj/structure/window/reinforced, -/obj/machinery/hydroponics/soil, -/obj/item/cultivator, -/turf/open/floor/grass, -/area/security/prison) -"aaG" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/vr_sleeper{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aaI" = ( -/obj/structure/bookcase, -/turf/open/floor/plasteel, -/area/security/prison) -"aaJ" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/security/prison) -"aaK" = ( -/obj/machinery/computer/arcade/battle{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aaL" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "hos" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/hos) -"aaM" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "hos" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/hos) -"aaN" = ( -/obj/structure/chair/sofa/right, -/turf/open/floor/plasteel, -/area/security/prison) -"aaO" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "hos" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/hos) -"aaP" = ( -/obj/machinery/computer/cryopod{ - dir = 8; - pixel_x = 26 - }, -/obj/machinery/cryopod{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aaQ" = ( -/turf/closed/wall, -/area/security/warden) -"aaU" = ( -/obj/machinery/computer/arcade/orion_trail{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aaV" = ( -/obj/structure/table/wood, -/obj/item/storage/pill_bottle/dice, -/turf/open/floor/plasteel, -/area/security/prison) -"aaW" = ( -/obj/effect/landmark/event_spawn, -/obj/structure/chair/comfy/brown{ - color = "#596479"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aaX" = ( -/obj/structure/window/reinforced, -/obj/machinery/cryopod{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aaY" = ( -/obj/effect/turf_decal/bot, -/obj/structure/closet/crate/secure/weapon{ - desc = "A secure clothing crate."; - name = "formal uniform crate"; - req_access = "3" - }, -/obj/item/clothing/under/rank/security/officer/formal, -/obj/item/clothing/under/rank/security/officer/formal, -/obj/item/clothing/under/rank/security/officer/formal, -/obj/item/clothing/under/rank/security/officer/formal, -/obj/item/clothing/under/rank/security/officer/formal, -/obj/item/clothing/under/rank/security/warden/formal, -/obj/item/clothing/under/rank/security/head_of_security/formal, -/obj/item/clothing/suit/armor/navyblue, -/obj/item/clothing/suit/armor/navyblue, -/obj/item/clothing/suit/armor/navyblue, -/obj/item/clothing/suit/armor/navyblue, -/obj/item/clothing/suit/armor/navyblue, -/obj/item/clothing/suit/armor/vest/warden/navyblue, -/obj/item/clothing/suit/armor/hos/navyblue, -/obj/item/clothing/head/beret/sec/navyofficer, -/obj/item/clothing/head/beret/sec/navyofficer, -/obj/item/clothing/head/beret/sec/navyofficer, -/obj/item/clothing/head/beret/sec/navyofficer, -/obj/item/clothing/head/beret/sec/navyofficer, -/obj/item/clothing/head/beret/sec/navywarden, -/obj/item/clothing/head/beret/sec/navyhos, -/turf/open/floor/plasteel/dark, -/area/security/main) -"aaZ" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/security/armory) -"abb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/security/execution/transfer) -"abc" = ( -/turf/closed/wall, -/area/security/execution/transfer) -"abd" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/closed/wall, -/area/security/execution/transfer) -"abe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/security/execution/transfer) -"abf" = ( -/obj/machinery/vending/sustenance, -/turf/open/floor/plasteel, -/area/security/prison) -"abg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall, -/area/security/execution/transfer) -"abh" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/security/prison) -"abi" = ( -/obj/machinery/shower{ - dir = 8 - }, -/obj/item/soap/nanotrasen, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"abj" = ( -/obj/structure/bedsheetbin/color, -/obj/structure/table, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"abk" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/main) -"abl" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/main) -"abm" = ( -/turf/open/floor/plasteel/dark, -/area/security/main) -"abn" = ( -/obj/structure/closet/secure_closet/security/sec, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/security/main) -"abo" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/main) -"abp" = ( -/turf/closed/wall, -/area/security/main) -"abq" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/hos) -"abr" = ( -/obj/machinery/computer/security/hos, -/obj/effect/turf_decal/bot, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hos) -"abt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"abu" = ( -/obj/machinery/door/poddoor{ - id = "executionspaceblast" - }, -/turf/open/floor/plating, -/area/security/execution/transfer) -"abv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"abw" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/flasher{ - id = "executionflash"; - pixel_y = 25 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"abx" = ( -/obj/machinery/camera/motion{ - c_tag = "Armory External Motion Sensor"; - dir = 4 - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/ai_monitored/security/armory) -"aby" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/security/execution/transfer) -"abz" = ( -/obj/machinery/light/small{ - dir = 4; - light_color = "#d8b1b1" - }, -/turf/open/floor/engine, -/area/science/xenobiology) -"abA" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"abB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"abC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"abD" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"abE" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"abF" = ( -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"abG" = ( -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/ai_monitored/security/armory) -"abH" = ( -/obj/structure/closet/secure_closet/security/sec, -/obj/effect/turf_decal/bot, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/main) -"abI" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"abJ" = ( -/obj/machinery/vending/wardrobe/sec_wardrobe, -/obj/effect/turf_decal/bot, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/main) -"abK" = ( -/obj/structure/chair/stool, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "permabolt3"; - name = "Cell Bolt Control"; - normaldoorcontrol = 1; - pixel_y = 25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/security/prison) -"abL" = ( -/obj/structure/chair/stool, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "permabolt2"; - name = "Cell Bolt Control"; - normaldoorcontrol = 1; - pixel_y = 25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"abM" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"abN" = ( -/obj/effect/landmark/secequipment, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/security/main) -"abO" = ( -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"abP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/dark, -/area/security/main) -"abQ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) -"abR" = ( -/obj/machinery/vending/security, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/security/main) -"abS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/security/main) -"abT" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "hos" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/hos) -"abU" = ( -/obj/item/book/manual/wiki/security_space_law, -/obj/structure/table/wood, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) -"abV" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Brig Equipment Room"; - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -26 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"abW" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "hos" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/crew_quarters/heads/hos) -"abX" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/tracker, -/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, -/area/icemoon/surface/outdoors) -"abY" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"aca" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"acb" = ( -/obj/machinery/sparker{ - id = "executionburn"; - pixel_x = 25 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"acc" = ( -/obj/structure/bed, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"acd" = ( -/turf/closed/wall, -/area/security/prison) -"ace" = ( -/obj/machinery/door/poddoor/preopen{ - id = "permacell3"; - name = "cell blast door" - }, -/obj/machinery/door/airlock/public/glass{ - id_tag = "permabolt3"; - name = "Cell 3" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plasteel, -/area/security/prison) -"acf" = ( -/obj/machinery/door/poddoor/preopen{ - id = "permacell2"; - name = "cell blast door" - }, -/obj/machinery/door/airlock/public/glass{ - id_tag = "permabolt2"; - name = "Cell 2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plasteel, -/area/security/prison) -"acg" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "permacell1"; - name = "cell blast door" - }, -/obj/machinery/door/airlock/public/glass{ - id_tag = "permabolt1"; - name = "Cell 1" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plasteel, -/area/security/prison) -"ach" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restroom" - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"aci" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hos) -"acj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) -"ack" = ( -/obj/structure/table/reinforced, -/obj/item/grenade/barrier{ - pixel_x = 4 - }, -/obj/item/grenade/barrier, -/obj/item/grenade/barrier{ - pixel_x = -4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/ai_monitored/security/armory"; - dir = 8; - name = "Armory APC"; - pixel_x = -24 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"acl" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"acm" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"acn" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"aco" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"acp" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acq" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"acr" = ( -/obj/structure/chair/comfy/black, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) -"acs" = ( -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/heads/hos"; - dir = 8; - name = "Head of Security's Office APC"; - pixel_x = -24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/bed/dogbed{ - desc = "A comfy-looking pet bed. You can even strap your pet in, in case the gravity turns off."; - name = "pet bed" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/mob/living/simple_animal/hostile/retaliate/bat/secbat{ - desc = "An adorable fruit bat with a cute little hat, may or may not have a reputation for biting out eyeballs, or at least that's what the HoS'd tell you."; - name = "Colonel Chomps" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hos) -"act" = ( -/obj/machinery/holopad, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) -"acu" = ( -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) -"acv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hos) -"acz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"acA" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"acB" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"acC" = ( -/obj/structure/bed, -/obj/machinery/camera{ - c_tag = "Prison Cell 3"; - network = list("ss13","prison") - }, -/obj/item/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - name = "Prison Intercom (General)"; - pixel_y = 24; - prison_radio = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acD" = ( -/obj/structure/chair/stool, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "permabolt1"; - name = "Cell Bolt Control"; - normaldoorcontrol = 1; - pixel_y = 25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/security/prison) -"acE" = ( -/obj/structure/bed, -/obj/machinery/camera{ - c_tag = "Prison Cell 2"; - network = list("ss13","prison") - }, -/obj/item/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - name = "Prison Intercom (General)"; - pixel_y = 24; - prison_radio = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acF" = ( -/obj/machinery/light_switch{ - pixel_y = -23 - }, -/obj/effect/landmark/event_spawn, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hos) -"acG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"acH" = ( -/obj/structure/bed, -/obj/machinery/camera{ - c_tag = "Prison Cell 1"; - network = list("ss13","prison") - }, -/obj/item/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - name = "Prison Intercom (General)"; - pixel_y = 24; - prison_radio = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acI" = ( -/obj/machinery/door/poddoor/preopen{ - id = "executionfireblast"; - name = "blast door" - }, -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/westright{ - dir = 1; - name = "Transfer Room"; - req_access_txt = "2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"acJ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"acK" = ( -/obj/structure/mirror{ - pixel_x = 25 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"acL" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 28 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hos) -"acM" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"acN" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"acO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/main) -"acP" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/security/main) -"acQ" = ( -/obj/structure/table/wood, -/obj/item/folder/red, -/obj/item/stamp/hos, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) -"acR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "hos" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/crew_quarters/heads/hos) -"acS" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "hos" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/crew_quarters/heads/hos) -"acT" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/ai_monitored/security/armory) -"acU" = ( -/obj/machinery/door/airlock/external{ - name = "Security External Airlock"; - req_access_txt = "63" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"acX" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/poddoor/preopen{ - id = "executionfireblast"; - name = "blast door" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/execution/transfer) -"acY" = ( -/obj/structure/table, -/obj/item/paper, -/obj/item/pen, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"acZ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "executionfireblast"; - name = "blast door" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/security/execution/transfer) -"ada" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/machinery/flasher{ - id = "PCell 3"; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adb" = ( -/obj/structure/table, -/obj/item/paper, -/obj/item/pen, -/turf/open/floor/plasteel, -/area/security/prison) -"adc" = ( -/obj/machinery/flasher{ - id = "PCell 1"; - pixel_x = -28 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"add" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/machinery/flasher{ - id = "PCell 2"; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"ade" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adf" = ( -/obj/structure/toilet/secret/prison{ - dir = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"adg" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/ai_monitored/security/armory) -"adh" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"adi" = ( -/obj/structure/rack, -/obj/item/gun/ballistic/shotgun/riot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/gun/ballistic/shotgun/riot, -/obj/item/gun/ballistic/shotgun/riot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/bot, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"adj" = ( -/obj/machinery/recharger, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"adk" = ( -/obj/machinery/recharger, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"adl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel/dark, -/area/security/main) -"adm" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = 29 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/secequipment, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/security/main) -"adn" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) -"ado" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adp" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/red, -/obj/item/radio/headset{ - desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; - name = "prisoner headset"; - prison_radio = 1 - }, -/obj/item/radio/headset{ - desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; - name = "prisoner headset"; - prison_radio = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adq" = ( -/obj/machinery/computer/slot_machine{ - balance = 15; - money = 500; - pixel_x = -5 - }, -/obj/structure/sign/poster/contraband/robust_softdrinks{ - pixel_x = -32 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"adr" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_x = -32 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"ads" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/solar{ - id = "auxsolareast"; - name = "Port Auxiliary Solar Array" - }, -/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, -/area/icemoon/surface/outdoors) -"adu" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"adB" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/main) -"adC" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/razor, -/obj/item/toy/plush/borgplushie{ - desc = "A horrible abomination to God in plushie form. Legends say this is used to torture prisoners by repeatedly beating them in the head with it.. ..It feels sorta heavy."; - force = 1; - name = "dogborg plushie"; - throwforce = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"adD" = ( -/obj/machinery/button/flasher{ - id = "executionflash"; - pixel_x = 24; - pixel_y = 5 - }, -/obj/machinery/button/door{ - id = "executionspaceblast"; - name = "Vent to Space"; - pixel_x = 25; - pixel_y = -5; - req_access_txt = "7" - }, -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"adE" = ( -/obj/structure/table, -/obj/item/folder/red{ - pixel_x = 3 - }, -/obj/item/taperecorder{ - pixel_x = -3 - }, -/obj/item/assembly/flash/handheld, -/obj/item/reagent_containers/spray/pepper, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"adF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/security/prison) -"adG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/security/prison) -"adH" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Long-Term Cell 3"; - req_access_txt = "2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adI" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Long-Term Cell 2"; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adJ" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Long-Term Cell 1"; - req_access_txt = "2" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adK" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -26 - }, -/obj/machinery/camera{ - c_tag = "Brig EVA Storage"; - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"adL" = ( -/obj/machinery/suit_storage_unit/security, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"adM" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"adN" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Head of Security's Desk"; - departmentType = 5; - name = "Head of Security RC"; - pixel_y = 30 - }, -/obj/item/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_x = -31 - }, -/obj/structure/table/wood, -/obj/item/storage/box/seccarts{ - pixel_x = 3; - pixel_y = 2 - }, -/obj/item/storage/box/deputy, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hos) -"adO" = ( -/obj/machinery/computer/secure_data, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hos) -"adP" = ( -/obj/structure/rack, -/obj/item/gun/energy/e_gun{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/gun/energy/e_gun, -/obj/item/gun/energy/e_gun{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/structure/window/reinforced, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"adQ" = ( -/obj/machinery/computer/card/minor/hos, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hos) -"adR" = ( -/turf/closed/wall/r_wall, -/area/security/main) -"adS" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"adT" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"adW" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"aea" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating, -/area/security/execution/transfer) -"aeb" = ( -/obj/structure/table, -/obj/item/flashlight/lamp, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"aec" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/security/execution/transfer) -"aed" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/machinery/button/ignition{ - id = "executionburn"; - pixel_x = 24; - pixel_y = 5 - }, -/obj/machinery/button/door{ - id = "executionfireblast"; - name = "Transfer Area Lockdown"; - pixel_x = 25; - pixel_y = -5; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"aee" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"aef" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/table, -/obj/item/restraints/handcuffs, -/turf/open/floor/plasteel, -/area/security/prison) -"aeg" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/security/execution/transfer) -"aeh" = ( -/obj/machinery/button/door{ - id = "permacell3"; - name = "Cell 3 Lockdown"; - pixel_x = -4; - pixel_y = 25; - req_access_txt = "2" - }, -/obj/machinery/button/flasher{ - id = "PCell 3"; - pixel_x = 6; - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aei" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aej" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aek" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/computer/security/telescreen/prison{ - pixel_y = 30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"ael" = ( -/obj/machinery/button/door{ - id = "permacell2"; - name = "Cell 2 Lockdown"; - pixel_x = -4; - pixel_y = 25; - req_access_txt = "2" - }, -/obj/machinery/button/flasher{ - id = "PCell 2"; - pixel_x = 6; - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aem" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"aen" = ( -/obj/machinery/computer/security/telescreen/prison{ - pixel_y = 30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Prison Hallway"; - network = list("ss13","prison") - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aeo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aep" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"aeq" = ( -/obj/machinery/button/door{ - id = "permacell1"; - name = "Cell 1 Lockdown"; - pixel_x = -4; - pixel_y = 25; - req_access_txt = "2" - }, -/obj/machinery/button/flasher{ - id = "PCell 1"; - pixel_x = 6; - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aer" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/machinery/power/apc{ - areastring = "/area/security/prison"; - dir = 4; - name = "Prison Wing APC"; - pixel_x = 24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aes" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30 - }, -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka, -/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ - pixel_x = -5 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hos) -"aet" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Equipment Room"; - req_access_txt = "1" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/main) -"aeu" = ( -/obj/machinery/newscaster/security_unit{ - pixel_x = -30 - }, -/obj/machinery/camera{ - c_tag = "Head of Security's Office"; - dir = 4 - }, -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/structure/table/wood, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hos) -"aev" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aew" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"aex" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/ai_monitored/security/armory) -"aey" = ( -/obj/machinery/keycard_auth{ - pixel_x = 24; - pixel_y = 10 - }, -/obj/structure/table/wood, -/obj/item/radio/off, -/obj/item/taperecorder, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hos) -"aez" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/flashlight/lamp/green{ - on = 0; - pixel_x = -3; - pixel_y = 8 - }, -/obj/item/pen/fountain, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hos) -"aeA" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/security/main) -"aeB" = ( -/obj/structure/table, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/obj/item/hand_labeler, -/turf/open/floor/plasteel, -/area/security/main) -"aeC" = ( -/obj/machinery/camera{ - c_tag = "Security Escape Pod"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aeD" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/suit_storage_unit/hos, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hos) -"aeE" = ( -/obj/structure/closet/secure_closet/lethalshots, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"aeF" = ( -/obj/structure/table/reinforced, -/obj/item/storage/box/firingpins{ - pixel_x = 6 - }, -/obj/item/storage/box/firingpins{ - pixel_x = -3 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"aeG" = ( -/obj/structure/cable, -/obj/machinery/power/solar{ - id = "auxsolareast"; - name = "Port Auxiliary Solar Array" - }, -/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, -/area/icemoon/surface/outdoors) -"aeH" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/security/execution/transfer) -"aeI" = ( -/obj/structure/rack, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/tank/internals/anesthetic{ - pixel_x = -3; - pixel_y = 1 - }, -/obj/item/tank/internals/oxygen/red{ - pixel_x = 3 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"aeJ" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/open/floor/plating, -/area/security/execution/transfer) -"aeK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"aeL" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"aeM" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aeN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - aiControlDisabled = 1; - name = "Prisoner Transfer Centre"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"aeO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aeP" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aeQ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aeR" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"aeS" = ( -/obj/structure/closet/secure_closet/brig, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/item/radio/headset{ - desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; - name = "prisoner headset"; - prison_radio = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aeT" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aeU" = ( -/obj/effect/landmark/start/security_officer, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/main) -"aeV" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aeW" = ( -/obj/structure/table/reinforced, -/obj/item/storage/box/chemimp{ - pixel_x = 6 - }, -/obj/item/storage/box/trackimp{ - pixel_x = -3 - }, -/obj/item/storage/lockbox/loyalty, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"aeX" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"aeY" = ( -/obj/vehicle/ridden/secway, -/obj/item/key/security, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"aeZ" = ( -/obj/structure/rack, -/obj/item/gun/energy/ionrifle, -/obj/item/gun/energy/temperature/security, -/obj/item/clothing/suit/armor/laserproof, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"afb" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"afc" = ( -/obj/structure/closet/secure_closet/contraband/armory, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 8; - name = "8maintenance loot spawner" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"afd" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"afe" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"aff" = ( -/obj/effect/landmark/start/security_officer, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/main) -"afg" = ( -/obj/effect/landmark/start/security_officer, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"afh" = ( -/obj/effect/landmark/start/security_officer, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"afi" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/landmark/start/security_officer, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"afj" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"afk" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/landmark/start/security_officer, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"afl" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"afm" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"afn" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/brig) -"afo" = ( -/obj/structure/noticeboard{ - dir = 1; - pixel_y = -27 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"afq" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/brig) -"afr" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel, -/area/security/main) -"afs" = ( -/obj/item/storage/secure/safe/HoS{ - pixel_x = 35 - }, -/obj/structure/closet/secure_closet/hos, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hos) -"aft" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/security/execution/transfer) -"afu" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/execution/transfer) -"afv" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"afw" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - layer = 2.4 - }, -/obj/machinery/door/window/southleft{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Armory"; - req_access_txt = "2" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/security/execution/transfer) -"afx" = ( -/obj/machinery/light_switch{ - pixel_x = 25 - }, -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"afy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"afz" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"afA" = ( -/turf/closed/wall/r_wall, -/area/security/execution/transfer) -"afB" = ( -/obj/item/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_x = 27 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"afC" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"afD" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel, -/area/security/main) -"afE" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"afF" = ( -/obj/structure/table, -/obj/item/assembly/signaler, -/obj/item/clothing/suit/straight_jacket, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"afG" = ( -/obj/structure/table, -/obj/item/storage/box/hug, -/obj/item/razor{ - pixel_x = -6 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"afH" = ( -/obj/structure/table/glass, -/obj/item/storage/firstaid/regular{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/regular, -/obj/item/reagent_containers/glass/bottle/charcoal{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/reagent_containers/glass/bottle/epinephrine{ - pixel_x = -2; - pixel_y = -2 - }, -/obj/item/reagent_containers/syringe{ - name = "steel point" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"afI" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel/showroomfloor, -/area/security/brig) -"afJ" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 1; - pixel_y = -27 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"afK" = ( -/obj/structure/table/glass, -/obj/machinery/computer/med_data/laptop, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"afL" = ( -/obj/machinery/computer/operating, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"afM" = ( -/turf/open/floor/plasteel, -/area/security/brig) -"afN" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"afO" = ( -/obj/machinery/door/airlock/command{ - name = "Command Tool Storage"; - req_access_txt = "19" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"afP" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/command{ - name = "Command Tool Storage"; - req_access_txt = "19" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/eva) -"afQ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/securearea{ - pixel_x = -32 - }, -/turf/open/floor/plating, -/area/security/main) -"afR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/main) -"afS" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Brig EVA Storage"; - req_access_txt = "3" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"afT" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"afU" = ( -/turf/open/floor/plasteel, -/area/security/main) -"afV" = ( -/obj/structure/table, -/obj/item/restraints/handcuffs, -/obj/item/assembly/timer, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"afW" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/security/main) -"afX" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/landmark/start/head_of_security, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"afY" = ( -/obj/effect/landmark/start/security_officer, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/main) -"afZ" = ( -/obj/structure/table, -/obj/item/radio/off, -/obj/item/screwdriver{ - pixel_y = 10 - }, -/turf/open/floor/plasteel, -/area/security/main) -"aga" = ( -/obj/structure/sign/warning/pods{ - pixel_x = 32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/security/main) -"agb" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"agc" = ( -/obj/structure/closet/emcloset, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"agd" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = -30 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"age" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/range) -"agf" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal, -/obj/item/storage/box/bodybags, -/obj/item/pen, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"agg" = ( -/obj/structure/closet/secure_closet/injection, -/obj/structure/cable, -/obj/machinery/power/apc{ - areastring = "/area/security/execution/transfer"; - name = "Prisoner Transfer Centre"; - pixel_y = -27 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"agh" = ( -/obj/structure/table, -/obj/item/electropack, -/obj/item/screwdriver, -/obj/item/wrench, -/obj/item/clothing/head/helmet, -/obj/item/assembly/signaler, -/obj/machinery/light/small, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"agi" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Prison Wing"; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"agj" = ( -/turf/closed/wall, -/area/security/brig) -"agk" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Prison Wing"; - req_access_txt = "2" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"agl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/chair/sofa/right{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"agm" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/table, -/obj/item/stack/sheet/plasteel{ - amount = 10 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"agn" = ( -/turf/closed/wall/r_wall, -/area/security/warden) -"ago" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/bot, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"agp" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/security_space_law, -/obj/item/book/manual/wiki/security_space_law, -/turf/open/floor/plasteel, -/area/security/brig) -"agq" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/shutters/window{ - id = "armory1" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"agr" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/processing) -"ags" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"agt" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/ai_monitored/security/armory) -"agu" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"agv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/security/processing) -"agw" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/button/door{ - id = "hos"; - name = "HoS Office Shutters"; - pixel_y = -25 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hos) -"agx" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"agy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"agz" = ( -/obj/structure/closet/secure_closet{ - name = "nonlethal ammunition"; - req_access = "list(3)" - }, -/obj/item/storage/box/rubbershot, -/obj/item/storage/box/rubbershot, -/obj/item/storage/box/rubbershot, -/obj/item/storage/box/rubbershot, -/obj/item/storage/box/rubbershot, -/obj/item/storage/box/rubbershot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"agA" = ( -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; - pixel_y = 30 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"agB" = ( -/obj/structure/table, -/obj/item/assembly/flash/handheld, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"agC" = ( -/obj/machinery/holopad, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"agD" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"agE" = ( -/obj/structure/table, -/obj/item/storage/fancy/donut_box{ - pixel_y = 10 - }, -/obj/item/storage/fancy/donut_box, -/obj/item/storage/fancy/donut_box{ - pixel_y = -10 - }, -/turf/open/floor/plasteel, -/area/security/main) -"agF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"agG" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"agH" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"agI" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"agJ" = ( -/obj/machinery/flasher/portable, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"agK" = ( -/obj/machinery/flasher/portable, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"agL" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"agM" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/power/apc{ - areastring = "/area/security/brig"; - dir = 1; - name = "Brig APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"agN" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/courtroom) -"agO" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Brig Infirmary"; - req_access_txt = "2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"agP" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"agQ" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/structure/closet/secure_closet/courtroom, -/obj/effect/decal/cleanable/cobweb, -/obj/structure/sign/warning/securearea{ - pixel_x = -32 - }, -/obj/item/gavelhammer, -/obj/machinery/atmospherics/pipe/simple/scrubbers, -/turf/open/floor/plasteel, -/area/security/courtroom) -"agR" = ( -/obj/effect/turf_decal/loading_area{ - dir = 4; - pixel_x = -3 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"agS" = ( -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"agT" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"agU" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"agV" = ( -/obj/machinery/button/door{ - id = "armory1"; - name = "Armory Shutters"; - pixel_y = -26; - req_access_txt = "3" - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/shutters/window{ - id = "armory1" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"agW" = ( -/obj/structure/rack, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/item/storage/box/handcuffs{ - pixel_x = -1; - pixel_y = 1 - }, -/obj/item/storage/box/handcuffs{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/camera/motion{ - c_tag = "Armory Motion Sensor"; - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"agX" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/shutters/window{ - id = "armory2" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"agY" = ( -/obj/structure/table/glass, -/obj/item/storage/box/bodybags, -/obj/item/reagent_containers/blood, -/obj/item/reagent_containers/spray/cleaner, -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"agZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"aha" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"ahb" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/brig) -"ahc" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahd" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/security_space_law, -/obj/item/book/manual/wiki/security_space_law, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"ahe" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 4; - sortType = 8 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahf" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"ahg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/start/security_officer, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahh" = ( -/obj/item/paper_bin/bundlenatural{ - pixel_x = 6; - pixel_y = 4 - }, -/obj/item/paper_bin{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/pen/fountain, -/obj/item/folder/red, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/pen, -/obj/structure/table, -/turf/open/floor/plasteel, -/area/security/main) -"ahi" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 4; - sortType = 7 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahj" = ( -/obj/machinery/door/window/eastright{ - base_state = "left"; - dir = 8; - icon_state = "left"; - name = "Security Delivery"; - req_access_txt = "1" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/security/main) -"ahk" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"ahl" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "Security" - }, -/obj/structure/plasticflaps/opaque, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/security/main) -"ahm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"ahn" = ( -/turf/closed/wall, -/area/maintenance/fore/secondary) -"aho" = ( -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"ahp" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"ahq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/rack, -/obj/item/storage/box/prisoner, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"ahr" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"ahs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/obj/effect/landmark/start/assistant, -/obj/structure/chair/sofa/right, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aht" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/brig) -"ahu" = ( -/obj/structure/table/optable, -/obj/item/storage/backpack/duffelbag/sec/surgery, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"ahv" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/brig) -"ahw" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/security/brig) -"ahx" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/brig) -"ahy" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"ahz" = ( -/obj/structure/tank_dispenser/oxygen, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"ahA" = ( -/obj/structure/rack, -/obj/structure/window/reinforced, -/obj/item/storage/box/teargas{ - pixel_x = -1; - pixel_y = 1 - }, -/obj/item/storage/box/flashbangs{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/obj/item/radio/intercom{ - pixel_x = -30 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"ahB" = ( -/obj/structure/rack, -/obj/item/gun/energy/e_gun/dragnet{ - pixel_x = 2; - pixel_y = -2 - }, -/obj/item/gun/energy/e_gun/dragnet{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"ahC" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/closet/wardrobe/white, -/obj/item/clothing/under/suit/waiter, -/obj/item/clothing/under/suit/waiter, -/obj/item/clothing/under/suit/waiter, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"ahD" = ( -/obj/structure/chair, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/processing) -"ahE" = ( -/obj/structure/closet/secure_closet/brig, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/item/radio/headset{ - desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; - name = "prisoner headset"; - prison_radio = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"ahF" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahG" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/window/westright{ - name = "Brig Operations"; - req_one_access_txt = "4; 1" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ahH" = ( -/obj/structure/disposalpipe/junction/yjunction{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahI" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahK" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"ahL" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahM" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahN" = ( -/obj/machinery/power/apc{ - areastring = "/area/security/main"; - dir = 4; - name = "Security Office APC"; - pixel_x = 24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ahO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4; - pixel_y = 5 - }, -/obj/structure/chair/sofa/left{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"ahP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/closet/wardrobe/mixed, -/obj/item/clothing/under/costume/kilt, -/obj/item/clothing/under/costume/kilt, -/obj/item/clothing/under/dress/skirt/purple, -/obj/item/clothing/head/beret, -/obj/item/clothing/head/beret, -/obj/item/clothing/head/beret, -/obj/structure/sign/poster/official/fashion{ - pixel_x = -32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"ahQ" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"ahR" = ( -/obj/structure/rack, -/obj/item/gun/energy/laser{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/gun/energy/laser, -/obj/item/gun/energy/laser{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"ahS" = ( -/obj/structure/bodycontainer/morgue, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/bot, -/obj/machinery/camera{ - c_tag = "Brig Infirmary"; - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"ahT" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"ahU" = ( -/obj/machinery/computer/shuttle/labor{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"ahV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/machinery/computer/security/labor{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/processing) -"ahW" = ( -/obj/structure/rack, -/obj/item/clothing/suit/armor/riot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/suit/armor/riot, -/obj/item/clothing/suit/armor/riot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/clothing/head/helmet/riot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/head/helmet/riot, -/obj/item/clothing/head/helmet/riot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/shield/riot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/shield/riot, -/obj/item/shield/riot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -26 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"ahX" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"ahY" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/bot, -/mob/living/simple_animal/bot/secbot{ - arrest_type = 1; - health = 45; - icon_state = "secbot1"; - idcheck = 1; - name = "Sergeant-at-Armsky"; - weaponscheck = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"ahZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/showroomfloor, -/area/security/brig) -"aia" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/closet/secure_closet/hydroponics, -/obj/structure/sign/poster/official/hydro_ad{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aib" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aic" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aid" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/showroomfloor, -/area/security/brig) -"aie" = ( -/obj/structure/bed, -/obj/machinery/iv_drip, -/obj/item/bedsheet/medical, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"aif" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aig" = ( -/obj/structure/table, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/mask/gas/sechailer, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/storage/toolbox/electrical{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/storage/toolbox/drone{ - pixel_x = 2; - pixel_y = -2 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aih" = ( -/obj/machinery/button/door{ - id = "armory2"; - name = "Armory Shutters"; - pixel_y = -26; - req_access_txt = "3" - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/shutters/window{ - id = "armory2" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"aii" = ( -/obj/machinery/rnd/production/techfab/department/security, -/obj/effect/turf_decal/delivery, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"aij" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/brig) -"aik" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/table, -/obj/item/gun/energy/laser/practice, -/obj/machinery/syndicatebomb/training, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ail" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/range) -"aim" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/security/brig) -"ain" = ( -/obj/structure/rack, -/obj/item/clothing/suit/armor/bulletproof{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/suit/armor/bulletproof, -/obj/item/clothing/suit/armor/bulletproof{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/clothing/head/helmet/alt{ - layer = 3.00001; - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/head/helmet/alt{ - layer = 3.00001 - }, -/obj/item/clothing/head/helmet/alt{ - layer = 3.00001; - pixel_x = 3; - pixel_y = -3 - }, -/obj/structure/window/reinforced, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"aio" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/rglass{ - amount = 50 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aip" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"aiq" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"air" = ( -/obj/structure/chair, -/turf/open/floor/plating, -/area/security/vacantoffice/b) -"ais" = ( -/obj/structure/filingcabinet, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ait" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"aiu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/main) -"aiv" = ( -/obj/structure/rack, -/obj/item/gun/energy/e_gun/advtaser{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/gun/energy/e_gun/advtaser, -/obj/item/gun/energy/e_gun/advtaser{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/structure/window/reinforced, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"aiw" = ( -/obj/machinery/light_switch{ - pixel_y = -23 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/chair/sofa/left{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/main) -"aix" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/main) -"aiy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aiz" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/chair/sofa{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/main) -"aiA" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aiB" = ( -/obj/machinery/vending/kink, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/poster/official/fashion{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aiC" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel, -/area/security/main) -"aiD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"aiE" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/item/radio/intercom{ - pixel_y = 20 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"aiF" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/gulag_item_reclaimer{ - pixel_x = 32 - }, -/obj/machinery/light{ - dir = 1; - light_color = "#d1dfff" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/camera{ - c_tag = "Security Docking"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"aiG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aiH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Brig Central"; - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aiI" = ( -/obj/structure/bodycontainer/morgue, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"aiJ" = ( -/obj/structure/reagent_dispensers/watertank/high, -/obj/structure/sign/poster/official/hydro_ad{ - pixel_x = -32 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aiK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"aiL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/security/brig) -"aiM" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/security/brig) -"aiN" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"aiO" = ( -/obj/machinery/shower{ - dir = 1 - }, -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/mirror{ - pixel_x = 28 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"aiP" = ( -/obj/structure/table, -/obj/item/storage/firstaid/regular, -/obj/structure/sign/poster/official/medical_green_cross{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"aiQ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/security/brig) -"aiR" = ( -/obj/structure/closet/l3closet/security, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"aiS" = ( -/obj/structure/sign/warning/securearea{ - pixel_y = -32 - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"aiT" = ( -/turf/closed/wall, -/area/security/processing) -"aiU" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/processing) -"aiV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aiW" = ( -/obj/structure/closet/bombcloset/security, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"aiX" = ( -/turf/closed/wall/r_wall, -/area/security/brig) -"aiY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/security/courtroom) -"aiZ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/ai_monitored/security/armory) -"aja" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/poddoor/shutters/window{ - id = "armory3" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"ajb" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/poddoor/shutters/window{ - id = "armory3" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"ajc" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajd" = ( -/obj/structure/table/wood, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plasteel, -/area/security/vacantoffice/b) -"aje" = ( -/obj/machinery/door/airlock/security{ - name = "Armory"; - req_access_txt = "3" - }, -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"ajf" = ( -/obj/structure/table/wood, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/security/vacantoffice/b) -"ajg" = ( -/obj/machinery/computer/secure_data, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"ajh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/obj/structure/sign/poster/official/pda_ad800{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aji" = ( -/obj/structure/chair{ - name = "Judge" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"ajj" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/machinery/camera{ - c_tag = "Courtroom North" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/security/courtroom) -"ajk" = ( -/obj/structure/chair{ - name = "Judge" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"ajl" = ( -/obj/structure/chair{ - name = "Judge" - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"ajm" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"ajn" = ( -/turf/open/floor/plasteel, -/area/security/courtroom) -"ajo" = ( -/turf/closed/wall, -/area/security/courtroom) -"ajp" = ( -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"ajr" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/security/vacantoffice/b) -"ajs" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/sign/poster/official/pda_ad600{ - pixel_x = 32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"ajt" = ( -/obj/machinery/camera{ - c_tag = "Vacant Office B"; - dir = 1 - }, -/obj/structure/table/wood, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plasteel, -/area/security/vacantoffice/b) -"aju" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ajv" = ( -/obj/machinery/computer/med_data{ - dir = 3 - }, -/obj/structure/sign/poster/official/medical_green_cross{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"ajw" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"ajx" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"ajy" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"ajz" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/brig) -"ajA" = ( -/obj/effect/landmark/start/security_officer, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ajB" = ( -/obj/structure/sign/poster/official/medical_green_cross{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"ajC" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajD" = ( -/obj/effect/spawner/lootdrop/keg, -/obj/structure/sign/poster/contraband/scum{ - pixel_x = -32 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"ajE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"ajF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajG" = ( -/obj/structure/table, -/obj/item/kitchen/rollingpin, -/obj/item/reagent_containers/food/condiment/enzyme, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/structure/sign/poster/contraband/scum{ - pixel_x = -32 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"ajH" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"ajI" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajJ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajL" = ( -/obj/machinery/computer/security, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"ajM" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/structure/sign/poster/contraband/scum{ - pixel_y = 32 - }, -/obj/structure/sign/poster/contraband/scum{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ajN" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajO" = ( -/obj/structure/table/wood, -/obj/item/radio/intercom{ - dir = 8; - name = "Station Intercom (Court)" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"ajP" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"ajQ" = ( -/obj/structure/table/wood, -/obj/item/book/manual/wiki/security_space_law, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"ajR" = ( -/obj/structure/table/wood, -/obj/item/gavelblock, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"ajS" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"ajT" = ( -/obj/structure/chair{ - dir = 8; - name = "Defense" - }, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"ajU" = ( -/obj/machinery/door/window/southleft{ - name = "Court Cell"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"ajV" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/solars/port/fore) -"ajW" = ( -/obj/machinery/door/airlock/external{ - name = "Solar Maintenance"; - req_access_txt = "10; 13" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/maintenance/solars/port/fore) -"ajX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = -30 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajY" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/window/westleft{ - name = "Brig Operations"; - req_one_access_txt = "4; 1" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajZ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/construction/mining/aux_base) -"aka" = ( -/obj/structure/closet/secure_closet/bar{ - req_access_txt = "25" - }, -/obj/item/clothing/under/suit/waiter, -/obj/item/clothing/under/suit/waiter, -/obj/item/clothing/under/suit/waiter, -/obj/item/gun/ballistic/revolver/doublebarrel, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass/fifty, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"akb" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"akc" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/main) -"akd" = ( -/obj/effect/landmark/start/security_officer, -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/main) -"ake" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"akf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/security/brig) -"akg" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/security/brig) -"akh" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/table, -/obj/item/storage/fancy/donut_box, -/turf/open/floor/plasteel, -/area/security/main) -"aki" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/security/main) -"akj" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"akk" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - name = "Security Office"; - req_access_txt = "1" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/security/main) -"akl" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"akm" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"akn" = ( -/obj/structure/table/wood, -/obj/item/folder/blue, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"ako" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"akp" = ( -/obj/machinery/door_timer{ - id = "Cell 1"; - name = "Cell 1"; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Brig West"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"akq" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/security/brig) -"akr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/computer/security/telescreen/interrogation{ - dir = 1; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aks" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/main) -"akt" = ( -/obj/machinery/chem_master/condimaster{ - name = "HoochMaster 2000" - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aku" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"akv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"akw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"akx" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aky" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"akz" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"akA" = ( -/obj/structure/chair{ - dir = 8; - name = "Defense" - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"akB" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/fore) -"akC" = ( -/obj/effect/turf_decal/tile/red, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"akD" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/brig) -"akE" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/yellowsiding{ - dir = 1 - }, -/area/crew_quarters/fitness/pool) -"akF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"akG" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/processing) -"akH" = ( -/obj/machinery/holopad, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"akI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"akJ" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - name = "Brig"; - req_access_txt = "63; 42" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"akK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/engine, -/area/science/xenobiology) -"akL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/maintenance/fore) -"akM" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"akN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"akO" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 6 - }, -/turf/open/floor/plasteel, -/area/security/main) -"akP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/engine, -/area/science/xenobiology) -"akQ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/closed/wall, -/area/security/brig) -"akR" = ( -/obj/machinery/camera{ - c_tag = "Security Office"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/table, -/obj/item/storage/box/donkpockets, -/turf/open/floor/plasteel, -/area/security/main) -"akS" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/table, -/turf/open/floor/plasteel, -/area/security/main) -"akT" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"akU" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/security/brig) -"akV" = ( -/obj/machinery/door/window/southleft{ - dir = 1; - name = "Test Chamber"; - req_access_txt = "55" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "misclab"; - name = "test chamber blast door" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/engine, -/area/science/xenobiology) -"akW" = ( -/obj/machinery/door/window/southleft{ - name = "Test Chamber"; - req_access_txt = "55" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"akX" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"akY" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/warden) -"akZ" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Brig Control"; - req_access_txt = "3" - }, -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ala" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/security/warden) -"alb" = ( -/obj/structure/chair{ - dir = 4; - name = "Prosecution" - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"alc" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"ald" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/security/courtroom) -"ale" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"alf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"alg" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"alh" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/external{ - name = "Solar Maintenance"; - req_access_txt = "10; 13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/fore) -"ali" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"alj" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"alk" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"all" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"alm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"aln" = ( -/obj/effect/landmark/start/scientist, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/chair/comfy/black, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"alo" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/security/warden) -"alp" = ( -/turf/open/floor/plating, -/area/security/processing) -"alq" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Evidence Storage"; - req_access_txt = "4" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/security/warden) -"alr" = ( -/obj/machinery/computer/camera_advanced/xenobio{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"als" = ( -/obj/machinery/door_timer{ - id = "Cell 3"; - name = "Cell 3"; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"alt" = ( -/obj/machinery/door/airlock/security/glass{ - id_tag = "innerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"alu" = ( -/obj/machinery/nuclearbomb/selfdestruct, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"alv" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Gate"; - name = "brig shutters" - }, -/turf/open/floor/plating, -/area/security/brig) -"alw" = ( -/obj/machinery/door/airlock/security/glass{ - id_tag = "innerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"alx" = ( -/obj/structure/table/glass, -/obj/item/paper_bin{ - pixel_y = 4 - }, -/obj/item/folder/white{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/pen{ - pixel_x = -4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"aly" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"alz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"alA" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"alB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"alC" = ( -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/brig) -"alD" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/courtroom) -"alE" = ( -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; - pixel_x = -30 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/computer/security{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24; - pixel_y = 28 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"alF" = ( -/obj/machinery/atmospherics/components/unary/tank/air, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"alG" = ( -/obj/structure/chair{ - dir = 4; - name = "Prosecution" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"alH" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"alI" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"alJ" = ( -/obj/item/beacon, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"alK" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"alL" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/power/apc{ - areastring = "/area/security/courtroom"; - dir = 8; - name = "Courtroom APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"alM" = ( -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"alN" = ( -/obj/machinery/computer/prisoner/management, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"alO" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"alP" = ( -/turf/closed/wall, -/area/maintenance/starboard/fore) -"alQ" = ( -/obj/machinery/power/solar_control{ - id = "auxsolareast"; - name = "Port Bow Solar Control" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/fore) -"alR" = ( -/turf/closed/wall/r_wall, -/area/maintenance/solars/port/fore) -"alS" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/fore) -"alT" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/fore) -"alU" = ( -/turf/closed/wall, -/area/maintenance/port/fore) -"alV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"alW" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"alX" = ( -/obj/machinery/button/door{ - id = "atmos"; - name = "Atmospherics Lockdown"; - pixel_x = 24; - pixel_y = 4; - req_access_txt = "24" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"alY" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/machinery/computer/secure_data, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"alZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/security/brig) -"ama" = ( -/mob/living/simple_animal/sloth/paperwork, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"amb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/security/warden) -"amc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"amd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/warden) -"ame" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = -30 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"amf" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/security/brig) -"amg" = ( -/obj/structure/closet{ - name = "Evidence Closet" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/warden) -"amh" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"ami" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"amj" = ( -/obj/machinery/door_timer{ - id = "Cell 2"; - name = "Cell 2"; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"amk" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"aml" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/engine, -/area/science/xenobiology) -"amm" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/brig) -"amn" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "Cell Interior Shutters"; - name = "brig shutters" - }, -/turf/open/floor/plating, -/area/security/brig) -"amo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/science/xenobiology) -"amp" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"amq" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"amr" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/courtroom) -"ams" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/courtroom) -"amt" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Courtroom"; - req_access_txt = "42" - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"amu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"amv" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - name = "Solar Maintenance"; - req_access_txt = "10; 13" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/fore) -"amw" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/fore) -"amx" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/security/brig) -"amy" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/fore) -"amz" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/terminal, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/fore) -"amA" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/fore) -"amB" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Cell Interior Shutters"; - name = "brig shutters" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/security/brig) -"amC" = ( -/turf/open/floor/plating, -/area/maintenance/port/fore) -"amD" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"amE" = ( -/obj/structure/bed, -/obj/effect/landmark/xeno_spawn, -/obj/item/bedsheet, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"amF" = ( -/obj/machinery/computer/slot_machine{ - balance = 15; - money = 500 - }, -/obj/item/coin/iron, -/obj/item/coin/diamond, -/obj/item/coin/diamond, -/obj/item/coin/diamond, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"amG" = ( -/obj/machinery/door/window/northleft{ - base_state = "right"; - dir = 8; - icon_state = "right"; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio3"; - name = "containment blast door" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/science/xenobiology) -"amH" = ( -/obj/machinery/door/window/northleft{ - dir = 4; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"amI" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"amJ" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"amK" = ( -/obj/structure/sign/warning/docking, -/turf/closed/wall, -/area/security/processing) -"amL" = ( -/turf/open/floor/plasteel/dark, -/area/security/brig) -"amM" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/security{ - name = "Labor Shuttle"; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/security/processing) -"amN" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/machinery/door/window/brigdoor{ - dir = 4; - name = "Reception Desk"; - req_access_txt = "3" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Brig Control"; - name = "brig shutters" - }, -/obj/machinery/door/window/southright{ - dir = 8; - name = "Reception Desk"; - req_access_txt = "63" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"amO" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"amP" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"amQ" = ( -/obj/machinery/door/window/northleft{ - base_state = "right"; - dir = 8; - icon_state = "right"; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"amR" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Gate"; - name = "brig shutters" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/brig) -"amS" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/closed/wall/r_wall, -/area/security/brig) -"amT" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/window/northleft{ - dir = 4; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio8"; - name = "containment blast door" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/science/xenobiology) -"amU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/structure/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"amV" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"amW" = ( -/obj/effect/landmark/start/warden, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"amX" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"amY" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"amZ" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"ana" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"anb" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"anc" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"and" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"ane" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/fore) -"anf" = ( -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"ang" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/apc{ - areastring = "/area/maintenance/solars/port/fore"; - dir = 8; - name = "Port Bow Solar APC"; - pixel_x = -25; - pixel_y = 3 - }, -/obj/machinery/camera{ - c_tag = "Fore Port Solar Control"; - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/fore) -"anh" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/smes, -/turf/open/floor/plating, -/area/maintenance/solars/port/fore) -"ani" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/fore) -"anj" = ( -/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"ank" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"anl" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"anm" = ( -/obj/item/trash/sosjerky, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"ann" = ( -/obj/item/electronics/airalarm, -/obj/item/circuitboard/machine/seed_extractor, -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"ano" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/engine, -/area/science/xenobiology) -"anp" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"anq" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"anr" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall/r_wall, -/area/security/warden) -"ans" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ant" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - name = "Evidence Storage"; - req_access_txt = "3" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"anu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/security/warden) -"anv" = ( -/obj/structure/closet{ - name = "Evidence Closet" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel/dark, -/area/security/warden) -"anw" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"anx" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"any" = ( -/obj/effect/landmark/event_spawn, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"anz" = ( -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"anA" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"anB" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/closet/secure_closet/brig{ - id = "Cell 2"; - name = "Cell 2 Locker" - }, -/obj/item/radio/headset{ - desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; - name = "prisoner headset"; - prison_radio = 1 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"anC" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/security/courtroom) -"anD" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"anE" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"anF" = ( -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"anG" = ( -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/fitness/pool"; - name = "Pool APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"anH" = ( -/obj/structure/sign/warning/electricshock, -/turf/closed/wall/r_wall, -/area/maintenance/solars/port/fore) -"anI" = ( -/obj/machinery/door/airlock/engineering{ - name = "Port Bow Solar Access"; - req_access_txt = "10" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/fore) -"anJ" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"anK" = ( -/obj/effect/decal/cleanable/egg_smudge, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"anL" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"anM" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/obj/item/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - name = "Prison Intercom (General)"; - pixel_x = -27; - pixel_y = -27; - prison_radio = 1 - }, -/obj/machinery/flasher{ - id = "Cell 2"; - pixel_x = -24; - pixel_y = -36 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/structure/bed, -/obj/item/bedsheet/blue, -/turf/open/floor/plasteel, -/area/security/brig) -"anN" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"anO" = ( -/obj/item/stack/cable_coil/random, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"anP" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/brig) -"anQ" = ( -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"anR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"anS" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"anT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"anU" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Courtroom" - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"anV" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"anW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"anX" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/obj/machinery/camera{ - c_tag = "Courtroom South"; - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"anY" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"anZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aoa" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aob" = ( -/obj/machinery/light_switch{ - pixel_x = -20 - }, -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/turf/open/floor/wood, -/area/lawoffice) -"aoc" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/wood, -/area/lawoffice) -"aod" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/fore/secondary) -"aoe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/closed/wall, -/area/maintenance/fore/secondary) -"aof" = ( -/turf/closed/wall/r_wall, -/area/maintenance/solars/starboard/fore) -"aog" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/fore) -"aoh" = ( -/obj/machinery/power/solar_control{ - id = "auxsolareast"; - name = "Starboard Bow Solar Control" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/fore) -"aoi" = ( -/obj/structure/rack, -/obj/item/clothing/mask/gas, -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 - }, -/obj/item/multitool, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/fore) -"aoj" = ( -/obj/machinery/camera{ - c_tag = "Fore Port Solar Access" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aok" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aol" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aom" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aon" = ( -/obj/structure/chair, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aoo" = ( -/obj/structure/rack, -/obj/item/circuitboard/machine/monkey_recycler, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aop" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/mob/living/simple_animal/slime, -/turf/open/floor/engine, -/area/science/xenobiology) -"aoq" = ( -/obj/machinery/door/window/northleft{ - base_state = "right"; - dir = 8; - icon_state = "right"; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio2"; - name = "containment blast door" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/science/xenobiology) -"aor" = ( -/obj/structure/table, -/obj/item/restraints/handcuffs, -/obj/item/taperecorder, -/obj/item/folder/red, -/obj/machinery/light_switch{ - pixel_y = -24 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"aos" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/window/northleft{ - dir = 4; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio7"; - name = "containment blast door" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/science/xenobiology) -"aot" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aou" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Gate"; - name = "brig shutters" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/security/brig) -"aov" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aow" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aox" = ( -/obj/machinery/camera{ - c_tag = "Fore Primary Hallway West"; - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aoy" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=EVA"; - location = "Security" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aoz" = ( -/obj/effect/turf_decal/tile/red, -/obj/structure/sign/departments/security{ - pixel_x = 32; - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aoA" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aoB" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/effect/turf_decal/tile/red, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aoC" = ( -/obj/effect/turf_decal/tile/red, -/obj/item/storage/box/drinkingglasses, -/obj/structure/table, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aoD" = ( -/obj/machinery/camera{ - c_tag = "Fore Primary Hallway East"; - dir = 1 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/red, -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aoE" = ( -/obj/effect/turf_decal/tile/red, -/obj/item/storage/box/cups, -/obj/structure/table, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aoF" = ( -/obj/effect/turf_decal/tile/red, -/obj/machinery/chem_dispenser/drinks, -/obj/structure/table, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aoG" = ( -/obj/structure/table, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"aoH" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/security_space_law{ - pixel_x = -3; - pixel_y = 5 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"aoI" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aoJ" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aoK" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aoL" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1; - name = "Air Out" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aoM" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/fore) -"aoN" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/fore) -"aoO" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/terminal, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/fore) -"aoP" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aoQ" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aoR" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aoS" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aoT" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aoU" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 9 - }, -/obj/structure/bed, -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aoV" = ( -/obj/structure/sign/warning/securearea{ - pixel_x = 32 - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"aoW" = ( -/obj/structure/table, -/obj/item/stamp, -/obj/item/poster/random_official, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aoX" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aoY" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24; - pixel_y = -28 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aoZ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Brig Control"; - name = "brig shutters" - }, -/turf/open/floor/plating, -/area/security/warden) -"apa" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"apb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/mob/living/simple_animal/slime, -/turf/open/floor/engine, -/area/science/xenobiology) -"apc" = ( -/obj/structure/chair/office/dark, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"apd" = ( -/turf/closed/wall, -/area/security/detectives_office) -"ape" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/abandoned{ - abandoned = 0; - name = "Vacant Office B"; - req_access_txt = "32" - }, -/turf/open/floor/plating, -/area/security/vacantoffice/b) -"apf" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/security/detectives_office) -"apg" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fore) -"aph" = ( -/turf/closed/wall, -/area/lawoffice) -"api" = ( -/obj/machinery/door/airlock{ - name = "Law Office"; - req_access_txt = "38" - }, -/turf/open/floor/plasteel, -/area/lawoffice) -"apj" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"apk" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"apl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/maintenance/fore/secondary) -"apm" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"apn" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/closed/wall, -/area/maintenance/fore/secondary) -"apo" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/closed/wall, -/area/maintenance/fore/secondary) -"app" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"apq" = ( -/obj/machinery/space_heater, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"apr" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/maintenance/fore/secondary"; - dir = 1; - name = "Fore Maintenance APC"; - pixel_y = 24 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aps" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/reagent_dispensers/watertank, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"apt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"apu" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/fitness"; - name = "Fitness Room APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"apv" = ( -/obj/structure/table/reinforced, -/obj/machinery/recharger{ - pixel_x = -6; - pixel_y = 3 - }, -/obj/machinery/recharger{ - pixel_x = 6; - pixel_y = 3 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"apw" = ( -/obj/machinery/door/window/northleft{ - base_state = "right"; - dir = 8; - icon_state = "right"; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio1"; - name = "containment blast door" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/science/xenobiology) -"apx" = ( -/obj/machinery/door/airlock/atmos/abandoned{ - name = "Atmospherics Maintenance"; - req_access_txt = "12;24" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"apy" = ( -/obj/item/wrench, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"apz" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/fore) -"apA" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/apc{ - areastring = "/area/maintenance/solars/starboard/fore"; - dir = 8; - name = "Starboard Bow Solar APC"; - pixel_x = -25; - pixel_y = 3 - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/fore) -"apB" = ( -/obj/machinery/camera{ - c_tag = "Fore Starboard Solars"; - dir = 1 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/smes, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/fore) -"apC" = ( -/turf/closed/wall/r_wall, -/area/maintenance/starboard/fore) -"apD" = ( -/obj/structure/closet/wardrobe/mixed, -/obj/item/clothing/shoes/jackboots, -/obj/item/coin/silver, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"apE" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"apF" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 5 - }, -/turf/open/floor/plating, -/area/engine/atmos) -"apG" = ( -/obj/machinery/portable_atmospherics/canister/water_vapor, -/turf/open/floor/plasteel, -/area/janitor) -"apH" = ( -/obj/machinery/computer/crew{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "outerbrig"; - name = "Brig Exterior Doors Control"; - normaldoorcontrol = 1; - pixel_x = -24; - pixel_y = -40; - req_access_txt = "2" - }, -/obj/machinery/button/door{ - id = "innerbrig"; - name = "Brig Interior Doors Control"; - normaldoorcontrol = 1; - pixel_x = -24; - pixel_y = -24; - req_access_txt = "2" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"apI" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"apJ" = ( -/turf/closed/wall, -/area/construction/mining/aux_base) -"apK" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"apL" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plasteel, -/area/maintenance/port/fore) -"apM" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/fore) -"apN" = ( -/turf/open/floor/plating, -/area/construction/mining/aux_base) -"apO" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"apP" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"apQ" = ( -/obj/structure/closet{ - name = "Evidence Closet" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/dark, -/area/security/warden) -"apR" = ( -/obj/machinery/door/airlock/security/glass{ - id_tag = "outerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"apS" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"apT" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/closed/wall/r_wall, -/area/security/warden) -"apU" = ( -/turf/open/floor/plating, -/area/security/vacantoffice/b) -"apV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/construction) -"apW" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"apX" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Brig Control"; - name = "brig shutters" - }, -/turf/open/floor/plating, -/area/security/warden) -"apY" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"apZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/wood, -/area/lawoffice) -"aqa" = ( -/obj/structure/closet/secure_closet/personal, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"aqb" = ( -/obj/structure/rack, -/obj/item/storage/briefcase, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/wood, -/area/lawoffice) -"aqc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/maintenance/fore/secondary) -"aqd" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aqe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aqf" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aqg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aqh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aqi" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aqj" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aqk" = ( -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/dorms"; - name = "Dormitory APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aql" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aqm" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aqn" = ( -/obj/structure/bed, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/button/door{ - id = "Dorm4"; - name = "Dorm Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"aqo" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"aqp" = ( -/obj/structure/rack, -/obj/item/clothing/suit/fire/firefighter, -/obj/item/tank/internals/oxygen, -/obj/item/clothing/mask/gas, -/obj/item/extinguisher, -/obj/item/clothing/head/hardhat/red, -/obj/item/clothing/glasses/meson, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aqq" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"aqr" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/brigdoor{ - dir = 1; - name = "Reception Desk"; - req_access_txt = "3" - }, -/obj/machinery/door/window/southleft{ - name = "Reception Desk"; - req_access_txt = "63" - }, -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Brig Control"; - name = "brig shutters" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aqs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Pool" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"aqt" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Brig Control"; - name = "brig shutters" - }, -/turf/open/floor/plating, -/area/security/warden) -"aqu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "holoprivacy"; - name = "Holodeck Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"aqv" = ( -/obj/machinery/door/airlock/external{ - name = "External Access"; - req_access_txt = "13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aqw" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/engineering{ - name = "Starboard Bow Solar Access"; - req_access_txt = "10" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/fore) -"aqx" = ( -/obj/structure/sign/warning/electricshock, -/turf/closed/wall/r_wall, -/area/maintenance/solars/starboard/fore) -"aqy" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aqz" = ( -/obj/structure/table, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aqA" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aqB" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/window/northleft{ - dir = 4; - name = "Containment Pen"; - req_access_txt = "55" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio6"; - name = "containment blast door" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/science/xenobiology) -"aqC" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aqD" = ( -/obj/structure/sign/warning/electricshock{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/light{ - dir = 1; - light_color = "#d1dfff" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aqE" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aqF" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aqG" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"aqH" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#d1dfff" - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aqI" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/processing) -"aqJ" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - name = "External Access"; - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aqK" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/maintenance/port/fore) -"aqL" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aqM" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 10 - }, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aqN" = ( -/obj/structure/closet/secure_closet/warden, -/obj/structure/sign/poster/official/ion_rifle{ - pixel_y = 32 - }, -/obj/structure/sign/poster/official/twelve_gauge{ - pixel_x = 32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/item/radio/intercom{ - pixel_x = 32; - pixel_y = 20 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aqO" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aqP" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/port/fore"; - dir = 1; - name = "Port Bow Maintenance APC"; - pixel_x = -1; - pixel_y = 26 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aqQ" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/fore) -"aqR" = ( -/turf/open/floor/plating, -/area/maintenance/fore) -"aqS" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"aqT" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance{ - name = "Security Maintenance"; - req_access_txt = "1" - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"aqU" = ( -/obj/item/paper/fluff/jobs/security/beepsky_mom, -/turf/open/floor/plating, -/area/maintenance/fore) -"aqV" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/turf/open/floor/plating, -/area/security/vacantoffice/b) -"aqW" = ( -/turf/open/floor/carpet, -/area/security/detectives_office) -"aqX" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/structure/chair, -/turf/open/floor/plating, -/area/security/vacantoffice/b) -"aqY" = ( -/obj/structure/table/wood, -/obj/item/pen, -/turf/open/floor/plating, -/area/security/vacantoffice/b) -"aqZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fore) -"ara" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/requests_console{ - department = "Law office"; - pixel_x = -32 - }, -/obj/machinery/vending/wardrobe/law_wardrobe, -/turf/open/floor/wood, -/area/lawoffice) -"arb" = ( -/obj/structure/table/wood, -/obj/item/book/manual/wiki/security_space_law, -/obj/item/book/manual/wiki/security_space_law, -/obj/item/pen/red, -/turf/open/floor/wood, -/area/lawoffice) -"arc" = ( -/obj/structure/plasticflaps, -/turf/open/floor/plating, -/area/maintenance/fore) -"ard" = ( -/obj/machinery/door/poddoor/preopen{ - id = "lawyer_blast"; - name = "privacy door" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/lawoffice) -"are" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green{ - pixel_x = 1; - pixel_y = 5 - }, -/turf/open/floor/wood, -/area/lawoffice) -"arf" = ( -/turf/closed/wall, -/area/crew_quarters/dorms) -"arg" = ( -/obj/item/bedsheet/red, -/mob/living/simple_animal/bot/secbot/beepsky{ - name = "Officer Beepsky" - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"arh" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Dormitories Maintenance"; - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"ari" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"arj" = ( -/turf/closed/wall, -/area/crew_quarters/fitness) -"ark" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"arl" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/potato{ - name = "\improper Beepsky's emergency battery" - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"arm" = ( -/obj/machinery/light/small{ - dir = 1; - light_color = "#ffc1c1" - }, -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"arn" = ( -/obj/machinery/power/apc{ - areastring = "/area/security/processing"; - dir = 8; - name = "Labor Shuttle Dock APC"; - pixel_x = -24 - }, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"aro" = ( -/turf/open/floor/engine{ - name = "Holodeck Projector Floor" - }, -/area/holodeck/rec_center) -"arp" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"arq" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 8; - name = "8maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"arr" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"ars" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"art" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Fore Starboard Solar Access" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aru" = ( -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"arv" = ( -/obj/structure/table, -/obj/item/pen, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"arw" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"arx" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"ary" = ( -/obj/machinery/power/apc{ - areastring = "/area/security/warden"; - name = "Brig Control APC"; - pixel_y = -24 - }, -/obj/machinery/button/door{ - id = "Secure Gate"; - name = "Cell Shutters"; - pixel_x = 6; - pixel_y = -40; - req_access_txt = "2" - }, -/obj/machinery/button/door{ - id = "Prison Gate"; - name = "Prison Wing Lockdown"; - pixel_x = -6; - pixel_y = -40; - req_access_txt = "2" - }, -/obj/structure/filingcabinet/chestdrawer, -/obj/machinery/light, -/obj/structure/cable, -/obj/machinery/camera{ - c_tag = "Brig Control"; - dir = 1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"arz" = ( -/obj/item/coin/gold, -/obj/item/coin/iron, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"arA" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/coin/plasma, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"arB" = ( -/turf/closed/wall/r_wall, -/area/hallway/secondary/entry) -"arC" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"arD" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/closet/secure_closet/brig{ - id = "Cell 3"; - name = "Cell 3 Locker" - }, -/obj/item/radio/headset{ - desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; - name = "prisoner headset"; - prison_radio = 1 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"arE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"arF" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 5 - }, -/turf/closed/wall, -/area/maintenance/port/fore) -"arG" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/port/fore) -"arH" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"arI" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"arJ" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"arK" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 9 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/port/fore) -"arL" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"arM" = ( -/obj/structure/closet/crate{ - icon_state = "crateopen" - }, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"arN" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"arO" = ( -/obj/item/clothing/gloves/color/rainbow, -/obj/item/clothing/head/soft/rainbow, -/obj/item/clothing/shoes/sneakers/rainbow, -/obj/item/clothing/under/color/rainbow, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"arP" = ( -/turf/closed/wall, -/area/maintenance/fore) -"arQ" = ( -/obj/structure/table, -/obj/item/flashlight/lamp, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"arR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/structure/table/wood, -/obj/item/flashlight/lamp, -/turf/open/floor/plating, -/area/security/vacantoffice/b) -"arS" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"arT" = ( -/turf/open/floor/plasteel, -/area/security/vacantoffice/b) -"arU" = ( -/obj/structure/rack, -/turf/open/floor/plasteel, -/area/security/vacantoffice/b) -"arV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/filingcabinet/employment, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/turf/open/floor/wood, -/area/lawoffice) -"arW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/lawoffice) -"arX" = ( -/obj/structure/table/wood, -/obj/item/folder/blue, -/obj/item/folder/blue, -/obj/item/folder/blue, -/obj/item/folder/blue, -/obj/item/stamp/law, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/lawoffice) -"arY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/lawoffice) -"arZ" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/effect/landmark/start/lawyer, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/wood, -/area/lawoffice) -"asa" = ( -/obj/machinery/status_display/evac{ - pixel_x = 32 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"asb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Brig Evidence Storage"; - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/warden) -"asc" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"asd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/dorms) -"ase" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"asf" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"asg" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/sign/warning/fire{ - desc = "A sign that states the labeled room's number."; - dir = 4; - icon_state = "roomnum"; - name = "Room Number 3"; - pixel_x = -30; - pixel_y = -7 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"ash" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"asi" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"asj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plating, -/area/security/vacantoffice/b) -"ask" = ( -/obj/item/flashlight/lamp/green{ - pixel_x = -2; - pixel_y = 15 - }, -/obj/structure/dresser, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"asl" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plating, -/area/security/vacantoffice/b) -"asm" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"asn" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plating, -/area/security/vacantoffice/b) -"aso" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Law Office Maintenance"; - req_access_txt = "38" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"asp" = ( -/obj/machinery/camera{ - c_tag = "Brig Interrogation"; - dir = 8; - network = list("interrogation") - }, -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 28 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"asq" = ( -/obj/machinery/disposal/bin, -/obj/machinery/light_switch{ - pixel_y = -23 - }, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 32; - pixel_y = -32 - }, -/obj/machinery/button/door{ - id = "Secure Brig Control"; - name = "Brig Control Shutters"; - pixel_x = 6; - pixel_y = -40; - req_access_txt = "2" - }, -/obj/machinery/button/door{ - id = "Cell Interior Shutters"; - name = "Cell Interior Shutters"; - pixel_x = -6; - pixel_y = -40; - req_access_txt = "2" - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"asr" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/science/xenobiology) -"ass" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Labor Camp Shuttle Airlock" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/security/processing) -"ast" = ( -/obj/structure/bed, -/obj/item/bedsheet/random, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"asu" = ( -/obj/machinery/light/small{ - dir = 4; - light_color = "#d8b1b1" - }, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"asv" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 28 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"asw" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"asx" = ( -/obj/structure/door_assembly/door_assembly_mai, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"asy" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Firefighting equipment"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"asz" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/snacks/donut, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"asA" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"asB" = ( -/turf/closed/wall, -/area/maintenance/department/electrical) -"asC" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/science/xenobiology) -"asD" = ( -/obj/structure/table/wood, -/mob/living/simple_animal/pet/fox/Renault, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"asE" = ( -/turf/closed/wall, -/area/hallway/secondary/entry) -"asF" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/construction/mining/aux_base) -"asH" = ( -/obj/structure/closet/toolcloset, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"asI" = ( -/obj/structure/closet/toolcloset, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"asJ" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"asK" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"asN" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"asO" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"asP" = ( -/obj/structure/chair/stool, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fore) -"asQ" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/maintenance/fore) -"asR" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/structure/closet/secure_closet/chemical, -/turf/open/floor/plating, -/area/maintenance/fore) -"asS" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/maintenance/fore) -"asW" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"asX" = ( -/obj/structure/sign/warning/securearea{ - pixel_y = -32 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"asY" = ( -/obj/docking_port/stationary/random{ - dir = 4; - id = "pod_lavaland3"; - name = "lavaland" - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"ata" = ( -/turf/open/floor/wood, -/area/lawoffice) -"atb" = ( -/obj/structure/table, -/obj/item/stack/sheet/plasteel{ - amount = 10 - }, -/obj/item/stack/rods/fifty, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"atc" = ( -/obj/structure/chair/office/dark, -/obj/effect/landmark/start/lawyer, -/turf/open/floor/wood, -/area/lawoffice) -"atd" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"ate" = ( -/obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"atf" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"atg" = ( -/obj/machinery/door/airlock{ - id_tag = "Dorm4"; - name = "Room Three" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) -"ath" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"ati" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"atj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"atl" = ( -/obj/item/stack/rods, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"atm" = ( -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"atn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/maintenance/port/fore) -"ato" = ( -/obj/docking_port/stationary{ - dir = 8; - dwidth = 2; - height = 5; - id = "laborcamp_home"; - name = "fore bay 1"; - roundstart_template = /datum/map_template/shuttle/labour/box; - width = 9 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"atp" = ( -/obj/machinery/door/airlock/external{ - name = "Construction Zone" - }, -/turf/open/floor/plating, -/area/construction/mining/aux_base) -"atq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/port/fore) -"atr" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"ats" = ( -/turf/open/floor/plating/airless, -/area/icemoon/surface/outdoors) -"att" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"atv" = ( -/obj/structure/table, -/obj/item/shard, -/obj/item/shard{ - icon_state = "medium" - }, -/obj/item/shard{ - icon_state = "small" - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"atw" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"atx" = ( -/obj/machinery/button/door{ - id = "maint3"; - name = "Blast Door Control C"; - pixel_y = 24 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aty" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/starboard/fore) -"atz" = ( -/turf/closed/wall, -/area/icemoon/surface/outdoors) -"atA" = ( -/obj/structure/table, -/obj/item/paicard, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"atB" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"atC" = ( -/obj/item/stack/rods/fifty, -/obj/structure/rack, -/obj/item/stack/cable_coil{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil{ - amount = 5 - }, -/obj/item/stack/sheet/mineral/plasma{ - amount = 10 - }, -/turf/open/floor/plasteel, -/area/maintenance/department/electrical) -"atD" = ( -/obj/machinery/recharge_station, -/turf/open/floor/plasteel, -/area/maintenance/department/electrical) -"atE" = ( -/obj/machinery/power/port_gen/pacman, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"atF" = ( -/turf/open/floor/mech_bay_recharge_floor, -/area/maintenance/department/electrical) -"atG" = ( -/obj/machinery/mech_bay_recharge_port, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"atH" = ( -/obj/machinery/computer/mech_bay_power_console, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/circuit, -/area/maintenance/department/electrical) -"atI" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"atJ" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"atK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/security/vacantoffice/b) -"atL" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"atM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/maintenance/port/fore) -"atN" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"atO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/port/fore) -"atP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/closed/wall, -/area/maintenance/port/fore) -"atQ" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged3" - }, -/area/icemoon/surface/outdoors) -"atR" = ( -/obj/item/paper/crumpled, -/turf/open/floor/plasteel/airless{ - icon_state = "damaged2" - }, -/area/icemoon/surface/outdoors) -"atS" = ( -/obj/item/airlock_painter, -/obj/structure/closet, -/turf/open/floor/plating/airless, -/area/icemoon/surface/outdoors) -"atU" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"atV" = ( -/turf/open/floor/plasteel/airless{ - icon_state = "damaged5" - }, -/area/icemoon/surface/outdoors) -"atW" = ( -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"atY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/security/vacantoffice/b) -"atZ" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"aub" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"auc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"aud" = ( -/obj/docking_port/stationary/random{ - dir = 8; - id = "pod_lavaland2"; - name = "lavaland" - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"aue" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/port/fore) -"auf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/lawoffice) -"aug" = ( -/obj/structure/table/wood, -/obj/machinery/camera{ - c_tag = "Law Office"; - dir = 1 - }, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/machinery/computer/security/telescreen/prison{ - dir = 1; - pixel_y = -27 - }, -/turf/open/floor/wood, -/area/lawoffice) -"auh" = ( -/obj/structure/table/wood, -/obj/item/taperecorder, -/obj/item/cartridge/lawyer, -/turf/open/floor/wood, -/area/lawoffice) -"aui" = ( -/obj/machinery/photocopier, -/obj/machinery/button/door{ - id = "lawyer_blast"; - name = "Privacy Shutters"; - pixel_x = 25; - pixel_y = 8 - }, -/turf/open/floor/wood, -/area/lawoffice) -"auj" = ( -/obj/docking_port/stationary{ - dir = 8; - dwidth = 1; - height = 4; - name = "escape pod loader"; - roundstart_template = /datum/map_template/shuttle/escape_pod/default; - width = 3 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"auk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"aul" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"aum" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aun" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/crew_quarters/dorms) -"auo" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fore) -"auq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/security/vacantoffice/b) -"aur" = ( -/obj/machinery/button/door{ - id = "Room One"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = -25; - specialfunctions = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"aus" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"aut" = ( -/obj/structure/chair/comfy/black{ - dir = 4 - }, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"auu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"auv" = ( -/obj/structure/chair/comfy/black{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"auw" = ( -/obj/structure/bed, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/button/door{ - id = "Dorm3"; - name = "Dorm Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"aux" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"auz" = ( -/obj/machinery/camera{ - c_tag = "Holodeck" - }, -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"auA" = ( -/obj/docking_port/stationary{ - dir = 8; - dwidth = 3; - height = 15; - id = "arrivals_stationary"; - name = "arrivals"; - roundstart_template = /datum/map_template/shuttle/arrival/box; - width = 7 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"auB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"auC" = ( -/obj/docking_port/stationary/random{ - dir = 8; - id = "pod_lavaland1"; - name = "lavaland" - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"auD" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"auE" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"auF" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"auG" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "12" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"auH" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"auI" = ( -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"auJ" = ( -/turf/open/floor/plasteel, -/area/maintenance/department/electrical) -"auK" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/maintenance/department/electrical) -"auL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/maintenance/department/electrical) -"auM" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/maintenance/department/electrical) -"auN" = ( -/obj/docking_port/stationary{ - dir = 4; - dwidth = 12; - height = 18; - id = "emergency_home"; - name = "BoxStation emergency evac bay"; - width = 32 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"auO" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"auP" = ( -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"auQ" = ( -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"auR" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/sign/warning/fire{ - desc = "A sign that states the labeled room's number."; - dir = 1; - icon_state = "roomnum"; - name = "Room Number 2"; - pixel_x = -30; - pixel_y = -7 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"auS" = ( -/obj/docking_port/stationary{ - dir = 8; - dwidth = 2; - height = 13; - id = "ferry_home"; - name = "port bay 2"; - width = 5 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"auT" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"auV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/maintenance/port/fore) -"auX" = ( -/obj/structure/mirror{ - icon_state = "mirror_broke"; - pixel_y = 28 - }, -/obj/machinery/iv_drip, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"auY" = ( -/obj/structure/mirror{ - icon_state = "mirror_broke"; - pixel_y = 28 - }, -/obj/item/shard{ - icon_state = "medium" - }, -/obj/item/circuitboard/computer/operating, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"auZ" = ( -/obj/structure/frame/computer, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"ava" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/chair, -/obj/item/reagent_containers/blood/random, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"avb" = ( -/obj/docking_port/stationary{ - dir = 2; - dwidth = 11; - height = 22; - id = "whiteship_home"; - name = "SS13: Auxiliary Dock, Station-Port"; - width = 35 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"avc" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"avd" = ( -/obj/docking_port/stationary{ - dir = 8; - dwidth = 5; - height = 7; - id = "supply_home"; - name = "Cargo Bay"; - width = 12 - }, -/turf/closed/mineral/random/snow/no_caves, -/area/icemoon/surface/outdoors) -"avf" = ( -/obj/structure/sign/warning/docking{ - pixel_y = 32 - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"avg" = ( -/obj/machinery/door/airlock{ - id_tag = "Dorm5"; - name = "Room Four" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) -"avh" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/power/apc{ - areastring = "/area/security/vacantoffice/b"; - dir = 8; - name = "Vacant Office B APC"; - pixel_x = -24 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"avi" = ( -/obj/machinery/power/apc{ - areastring = "/area/lawoffice"; - dir = 1; - name = "Law Office APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fore) -"avj" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"avk" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"avl" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"avm" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"avn" = ( -/obj/machinery/door/airlock{ - id_tag = "Dorm6"; - name = "Room Five" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) -"avo" = ( -/obj/structure/sign/warning/electricshock, -/turf/closed/wall, -/area/maintenance/department/electrical) -"avp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/poddoor/shutters{ - id = "aux_base_shutters"; - name = "Auxillary Base Shutters" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"avq" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"avr" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/machinery/camera{ - c_tag = "Detective's Office" - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"avs" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fore) -"avt" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"avu" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 10 - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"avv" = ( -/obj/machinery/camera{ - c_tag = "Dorms West" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"avw" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - name = "Dormitories Maintenance"; - req_access_txt = "12" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"avx" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"avy" = ( -/obj/machinery/door/airlock{ - id_tag = "Room One"; - name = "Room Six - Luxury Suite" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) -"avz" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/structure/table, -/obj/structure/bedsheetbin/color, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"avA" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/structure/table, -/obj/structure/bedsheetbin/towel, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"avB" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"avC" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"avD" = ( -/obj/machinery/computer/holodeck{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"avE" = ( -/obj/machinery/door/poddoor/preopen{ - id = "maint3" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"avF" = ( -/obj/machinery/door/poddoor/preopen{ - id = "maint3" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"avG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"avH" = ( -/obj/structure/sign/warning/electricshock, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/department/electrical) -"avI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"avJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"avK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/department/electrical) -"avL" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/department/electrical"; - dir = 1; - name = "Electrical Maintenance APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"avM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"avN" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"avO" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/fyellow, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/multitool, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = 29 - }, -/turf/open/floor/plasteel, -/area/maintenance/department/electrical) -"avP" = ( -/obj/structure/sign/warning/pods, -/turf/closed/wall, -/area/hallway/secondary/entry) -"avQ" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Auxillary Base Construction"; - dir = 8 - }, -/obj/machinery/computer/camera_advanced/base_construction{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"avR" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/sign/warning/fire{ - desc = "A sign that states the labeled room's number."; - dir = 8; - icon_state = "roomnum"; - name = "Room Number 4"; - pixel_y = 24 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"avS" = ( -/obj/item/wrench, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"avT" = ( -/obj/structure/disposaloutlet{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"avU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"avV" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"avW" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"avX" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"avY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/fore) -"avZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/fore) -"awa" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/closed/wall, -/area/maintenance/fore) -"awb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"awc" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"awd" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"awe" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"awg" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"awh" = ( -/obj/effect/landmark/blobstart, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fore) -"awi" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fore) -"awj" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"awk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"awl" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"awm" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"awn" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"awo" = ( -/obj/machinery/door/airlock{ - id_tag = "Dorm3"; - name = "Room Two" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) -"awp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"awq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"awr" = ( -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"aws" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"awt" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/sign/warning/fire{ - desc = "A sign that states the labeled room's number."; - dir = 6; - icon_state = "roomnum"; - name = "Room Number 5"; - pixel_y = 24 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"awu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"awv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"aww" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 5 - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"awx" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"awy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"awz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"awA" = ( -/obj/machinery/holopad, -/obj/machinery/camera{ - c_tag = "Dorms Central" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"awB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/closet{ - name = "Holodeck Outfits" - }, -/obj/item/clothing/under/trek/Q, -/obj/item/clothing/under/trek/command/next, -/obj/item/clothing/under/trek/command/next, -/obj/item/clothing/under/trek/command/next, -/obj/item/clothing/under/trek/engsec/next, -/obj/item/clothing/under/trek/engsec/next, -/obj/item/clothing/under/trek/engsec/next, -/obj/item/clothing/under/trek/engsec/next, -/obj/item/clothing/under/trek/medsci/next, -/obj/item/clothing/under/trek/medsci/next, -/obj/item/clothing/under/trek/medsci/next, -/obj/item/clothing/under/misc/blue_camo, -/obj/item/clothing/under/misc/blue_camo, -/obj/item/clothing/under/costume/gladiator, -/obj/item/clothing/under/costume/gladiator, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"awC" = ( -/obj/structure/table, -/obj/item/paper/fluff/holodeck/disclaimer, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"awD" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"awE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"awF" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"awG" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"awH" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"awI" = ( -/obj/machinery/button/door{ - id = "maint2"; - name = "Blast Door Control B"; - pixel_x = -28; - pixel_y = 4 - }, -/obj/machinery/button/door{ - id = "maint1"; - name = "Blast Door Control A"; - pixel_x = -28; - pixel_y = -6 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"awJ" = ( -/obj/structure/janitorialcart, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"awK" = ( -/obj/structure/table/glass, -/obj/item/coin/silver, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"awL" = ( -/obj/structure/table/glass, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"awM" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"awN" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"awO" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"awP" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"awQ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/engineering/abandoned{ - name = "Electrical Maintenance"; - req_access_txt = "11" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"awR" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"awS" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"awT" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"awU" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 4 - }, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/department/electrical) -"awV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"awW" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"awX" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"awY" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) -"awZ" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) -"axa" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"axb" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/hallway/secondary/entry) -"axc" = ( -/obj/structure/rack, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/wallframe/camera, -/obj/item/assault_pod/mining, -/obj/machinery/computer/security/telescreen/auxbase{ - dir = 8; - pixel_x = 30 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"axe" = ( -/obj/machinery/sleeper{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"axf" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"axg" = ( -/obj/structure/table/glass, -/obj/item/storage/bag/trash, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"axh" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) -"axi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"axj" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Firefighting equipment"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"axk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"axl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"axm" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 6 - }, -/turf/open/floor/plating, -/area/engine/atmos) -"axn" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"axo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"axp" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"axq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"axr" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"axs" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"axt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"axu" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fore) -"axv" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"axw" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"axy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/storage/eva) -"axz" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/storage/eva) -"axA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/ai_monitored/storage/eva) -"axB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"axC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/structure/sign/poster/contraband/pwr_game{ - pixel_x = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"axD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/fore/secondary) -"axE" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/structure/sign/poster/official/do_not_question{ - pixel_x = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"axF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"axG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) -"axH" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"axI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"axK" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/closed/wall, -/area/maintenance/port/fore) -"axL" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"axN" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"axO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/chair/comfy/black, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"axP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/chair/comfy/brown, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"axR" = ( -/obj/docking_port/stationary/random{ - dir = 4; - id = "pod_lavaland4"; - name = "lavaland" - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"axS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"axT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"axW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"axX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"axY" = ( -/obj/structure/disposaloutlet, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"aya" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"ayb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"ayc" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"ayd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aye" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"ayf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"ayg" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"ayh" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"ayi" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"ayj" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/plus, -/obj/item/stock_parts/cell/high/plus, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"ayk" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ayl" = ( -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aym" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ayn" = ( -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ayo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ayp" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"ayq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"ayr" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white/corner, -/area/hallway/secondary/entry) -"ays" = ( -/obj/structure/closet/wardrobe/white, -/obj/item/clothing/shoes/jackboots, -/obj/item/reagent_containers/blood/random, -/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"ayt" = ( -/obj/structure/table/glass, -/obj/item/hemostat, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"ayu" = ( -/obj/structure/table/glass, -/obj/item/restraints/handcuffs/cable/zipties, -/obj/item/reagent_containers/blood/random, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"ayv" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/item/radio/off, -/obj/item/assembly/timer, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"ayw" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"ayx" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"ayy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"ayz" = ( -/turf/closed/wall/r_wall, -/area/maintenance/port/fore) -"ayA" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"ayB" = ( -/obj/structure/grille, -/obj/structure/lattice, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"ayC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/fore) -"ayD" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plasteel/dark, -/area/maintenance/fore) -"ayE" = ( -/turf/closed/wall/r_wall, -/area/maintenance/fore) -"ayF" = ( -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"ayG" = ( -/turf/closed/wall/r_wall, -/area/gateway) -"ayH" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fore) -"ayI" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/sign/warning/securearea{ - pixel_x = 32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fore) -"ayJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fore) -"ayK" = ( -/obj/structure/closet/crate/rcd, -/obj/machinery/camera/motion{ - c_tag = "EVA Motion Sensor" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/eva) -"ayL" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/storage/eva) -"ayM" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"ayN" = ( -/obj/structure/rack, -/obj/machinery/light{ - dir = 1 - }, -/obj/item/hand_labeler, -/obj/item/flashlight, -/obj/item/flashlight, -/obj/item/flashlight, -/obj/item/flashlight, -/obj/item/clothing/glasses/welding, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/eva) -"ayO" = ( -/obj/structure/table, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/screwdriver{ - pixel_y = 16 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/eva) -"ayP" = ( -/obj/machinery/power/apc{ - areastring = "/area/ai_monitored/storage/eva"; - dir = 1; - name = "EVA Storage APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"ayQ" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = -7 - }, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/plus, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/eva) -"ayR" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/multitool, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"ayS" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/sign/warning/securearea{ - pixel_y = 32 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/ai_monitored/storage/eva) -"ayT" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/table, -/obj/item/assembly/signaler, -/obj/item/assembly/signaler, -/obj/item/stock_parts/cell/high/plus, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"ayU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"ayV" = ( -/obj/structure/bed, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/button/door{ - id = "Dorm2"; - name = "Dorm Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"ayW" = ( -/turf/closed/wall, -/area/ai_monitored/storage/eva) -"ayX" = ( -/obj/structure/table, -/obj/item/storage/belt/utility, -/obj/item/storage/belt/utility, -/obj/item/storage/belt/utility, -/obj/item/clothing/head/welding, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"ayY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/structure/sign/poster/official/obey{ - pixel_x = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"ayZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/structure/sign/poster/official/obey{ - pixel_x = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aza" = ( -/obj/structure/table/wood/poker, -/obj/item/toy/cards/deck, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"azb" = ( -/obj/structure/table/wood/poker, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"azc" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"aze" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"azf" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) -"azg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"azh" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"azi" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Garden Maintenance"; - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"azj" = ( -/obj/structure/transit_tube/curved/flipped{ - dir = 1 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"azk" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"azl" = ( -/turf/closed/wall/r_wall, -/area/icemoon/surface/outdoors) -"azm" = ( -/obj/structure/closet/secure_closet/personal, -/obj/item/toy/poolnoodle/blue, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"azn" = ( -/obj/structure/transit_tube/curved{ - dir = 4 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"azo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"azp" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"azq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/hydroponics/garden) -"azr" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"azs" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"azt" = ( -/obj/machinery/power/terminal, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"azu" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"azv" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"azw" = ( -/obj/machinery/light_switch{ - pixel_y = -25 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"azx" = ( -/obj/machinery/power/terminal, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"azy" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - name = "Port Docking Bay 1" - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"azz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"azA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"azB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"azC" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"azD" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white/corner, -/area/hallway/secondary/entry) -"azE" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"azF" = ( -/turf/closed/wall, -/area/hydroponics/garden) -"azG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall, -/area/maintenance/port/fore) -"azH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/crew_quarters/theatre) -"azI" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/instrument/eguitar, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"azJ" = ( -/obj/machinery/gateway{ - dir = 9 - }, -/obj/effect/turf_decal/bot_white/right, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"azK" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"azL" = ( -/obj/machinery/gateway{ - dir = 5 - }, -/obj/effect/turf_decal/bot_white/left, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"azM" = ( -/obj/machinery/gateway{ - dir = 1 - }, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"azN" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"azO" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"azP" = ( -/obj/structure/transit_tube/crossing/horizontal, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"azQ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/maintenance{ - name = "EVA Maintenance"; - req_access_txt = "18" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/fore) -"azR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"azS" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command/glass{ - name = "EVA Storage"; - req_access_txt = "18" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"azT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"azU" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"azV" = ( -/obj/structure/transit_tube/horizontal, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"azW" = ( -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"azX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"azY" = ( -/obj/structure/table, -/obj/item/radio/off, -/obj/item/radio/off, -/obj/item/assembly/prox_sensor, -/obj/item/assembly/prox_sensor, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"azZ" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aAa" = ( -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aAb" = ( -/obj/machinery/door/airlock{ - id_tag = "Dorm2"; - name = "Room One" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) -"aAc" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aAd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"aAe" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aAf" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/structure/transit_tube/crossing/horizontal, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"aAg" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"aAh" = ( -/turf/closed/wall, -/area/crew_quarters/toilet) -"aAi" = ( -/obj/structure/chair/comfy/brown{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"aAj" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/power/apc{ - areastring = "/area/security/checkpoint/auxiliary"; - name = "Security Checkpoint APC"; - pixel_x = 1; - pixel_y = -24 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aAk" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"aAl" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"aAm" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 10 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"aAn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"aAo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) -"aAp" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"aAr" = ( -/obj/structure/closet, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aAs" = ( -/obj/structure/musician/piano{ - icon_state = "piano" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aAt" = ( -/obj/machinery/door/poddoor/preopen{ - id = "maint2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aAu" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"aAv" = ( -/obj/structure/closet, -/obj/effect/landmark/blobstart, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aAw" = ( -/obj/machinery/power/apc{ - areastring = "/area/hydroponics/garden"; - dir = 4; - name = "Garden APC"; - pixel_x = 27; - pixel_y = 2 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aAx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aAy" = ( -/obj/machinery/power/smes, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"aAz" = ( -/obj/machinery/computer/monitor{ - dir = 1; - name = "backup power monitoring console" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"aAA" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/closed/wall, -/area/maintenance/department/electrical) -"aAB" = ( -/obj/machinery/power/smes, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"aAC" = ( -/obj/structure/sign/warning/docking, -/turf/closed/wall/r_wall, -/area/hallway/secondary/entry) -"aAD" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"aAE" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aAF" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aAG" = ( -/obj/machinery/vending/coffee, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aAH" = ( -/obj/machinery/camera{ - c_tag = "Arrivals Bay 1 North"; - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aAI" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aAJ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white/corner, -/area/hallway/secondary/entry) -"aAK" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/sink{ - pixel_y = 30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aAL" = ( -/obj/machinery/power/apc{ - areastring = "/area/storage/primary"; - name = "Primary Tool Storage APC"; - pixel_x = 1; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aAM" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"aAN" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aAO" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aAP" = ( -/obj/machinery/hydroponics/soil, -/turf/open/floor/grass, -/area/hydroponics/garden) -"aAQ" = ( -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aAR" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aAS" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aAT" = ( -/obj/machinery/seed_extractor, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aAU" = ( -/obj/structure/sink{ - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aAV" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aAW" = ( -/obj/structure/rack, -/obj/item/tank/jetpack/carbondioxide/eva, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aAX" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"aAY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aAZ" = ( -/obj/structure/table/wood, -/obj/item/paper_bin/bundlenatural{ - pixel_x = 6; - pixel_y = 4 - }, -/obj/item/paper_bin{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/pen/fountain, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/pen/fourcolor, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"aBa" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/nuke_storage) -"aBb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/nuke_storage) -"aBc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/nuke_storage) -"aBd" = ( -/obj/machinery/gateway{ - dir = 8 - }, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"aBe" = ( -/turf/open/floor/plasteel/dark, -/area/gateway) -"aBf" = ( -/obj/machinery/gateway{ - dir = 4 - }, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"aBg" = ( -/obj/machinery/gateway/centerstation, -/turf/open/floor/plasteel/dark, -/area/gateway) -"aBh" = ( -/obj/machinery/camera{ - c_tag = "EVA Maintenance"; - dir = 8 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fore) -"aBi" = ( -/obj/machinery/power/apc{ - areastring = "/area/gateway"; - dir = 8; - name = "Gateway APC"; - pixel_x = -24; - pixel_y = -1 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"aBj" = ( -/obj/structure/rack, -/obj/machinery/light{ - dir = 8 - }, -/obj/item/tank/jetpack/carbondioxide/eva, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aBk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/storage/eva) -"aBl" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Security Maintenance"; - req_access_txt = "1" - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aBm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aBn" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aBo" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aBp" = ( -/obj/structure/rack, -/obj/item/clothing/shoes/magboots, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aBq" = ( -/obj/structure/rack, -/obj/item/clothing/shoes/magboots, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aBr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aBs" = ( -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/ai_monitored/storage/eva) -"aBt" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/ai_monitored/storage/eva) -"aBu" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aBv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aBw" = ( -/obj/item/seeds/apple, -/obj/item/seeds/banana, -/obj/item/seeds/cocoapod, -/obj/item/seeds/grape, -/obj/item/seeds/orange, -/obj/item/seeds/sugarcane, -/obj/item/seeds/wheat, -/obj/item/seeds/watermelon, -/obj/structure/table/glass, -/obj/item/seeds/tower, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aBx" = ( -/obj/machinery/shower{ - dir = 8; - pixel_y = -4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aBy" = ( -/obj/machinery/door/airlock{ - desc = "A small bathroom with a sink, toilet and shower."; - id_tag = "Bath3"; - name = "Bathroom" - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet) -"aBz" = ( -/obj/machinery/shower{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aBA" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/table/wood, -/obj/item/paicard, -/obj/item/clothing/mask/balaclava{ - pixel_x = -8; - pixel_y = 8 - }, -/obj/item/toy/cards/deck{ - pixel_x = 2 - }, -/obj/item/storage/crayons, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"aBB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/maintenance/starboard/fore) -"aBC" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aBD" = ( -/obj/structure/grille, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"aBE" = ( -/obj/item/clothing/under/misc/mailman, -/obj/item/clothing/head/mailman, -/obj/structure/closet, -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aBF" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aBG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aBH" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aBI" = ( -/turf/closed/wall, -/area/security/checkpoint/auxiliary) -"aBJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/security/checkpoint/auxiliary) -"aBK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/security/checkpoint/auxiliary) -"aBL" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Tool Storage Maintenance"; - req_access_txt = "12" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aBM" = ( -/turf/closed/mineral/random/snow/no_caves, -/area/icemoon/surface/outdoors) -"aBN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/storage/primary) -"aBO" = ( -/obj/machinery/requests_console{ - department = "EVA"; - pixel_x = -32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aBP" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aBQ" = ( -/turf/closed/wall, -/area/storage/primary) -"aBR" = ( -/turf/closed/wall/r_wall, -/area/storage/primary) -"aBS" = ( -/obj/machinery/camera{ - c_tag = "MiniSat External NorthWest"; - dir = 8; - network = list("minisat"); - start_active = 1 - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"aBT" = ( -/obj/machinery/computer/bank_machine, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"aBU" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aBV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aBW" = ( -/obj/structure/filingcabinet, -/obj/item/folder/documents, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"aBX" = ( -/obj/machinery/gateway{ - dir = 10 - }, -/obj/effect/turf_decal/bot_white/left, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"aBY" = ( -/obj/machinery/gateway{ - dir = 6 - }, -/obj/effect/turf_decal/bot_white/right, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"aBZ" = ( -/obj/machinery/gateway, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"aCa" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aCb" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/item/pen{ - desc = "Writes upside down!"; - name = "astronaut pen" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aCc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aCd" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/cryopod, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/cryopod) -"aCe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/crew_quarters/toilet) -"aCf" = ( -/obj/machinery/camera{ - c_tag = "MiniSat External NorthEast"; - dir = 4; - network = list("minisat"); - start_active = 1 - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"aCg" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aCh" = ( -/obj/machinery/vending/autodrobe, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/crew_quarters/theatre) -"aCi" = ( -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/ai_monitored/storage/eva) -"aCj" = ( -/obj/machinery/camera{ - c_tag = "EVA East"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aCk" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aCl" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aCm" = ( -/obj/machinery/camera{ - c_tag = "MiniSat External SouthWest"; - dir = 8; - network = list("minisat"); - start_active = 1 - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"aCn" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restrooms" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) -"aCo" = ( -/obj/machinery/camera{ - c_tag = "MiniSat External SouthEast"; - dir = 4; - network = list("minisat"); - start_active = 1 - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"aCp" = ( -/obj/machinery/camera{ - c_tag = "Arrivals North"; - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white/corner, -/area/hallway/secondary/entry) -"aCq" = ( -/obj/machinery/camera{ - c_tag = "MiniSat External South"; - network = list("minisat"); - start_active = 1 - }, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"aCr" = ( -/turf/closed/wall, -/area/crew_quarters/theatre) -"aCs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/vending/wardrobe/sec_wardrobe, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/auxiliary) -"aCt" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aCu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/fitness) -"aCv" = ( -/obj/machinery/vr_sleeper{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white/side{ - dir = 8 - }, -/area/crew_quarters/fitness) -"aCw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "holoprivacy"; - name = "Holodeck Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"aCx" = ( -/turf/closed/mineral/random/snow/more_caves, -/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) -"aCy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "holoprivacy"; - name = "Holodeck Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"aCz" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aCA" = ( -/obj/structure/grille/broken, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/window{ - dir = 4 - }, -/obj/structure/window, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/starboard/fore) -"aCB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/maintenance/starboard/fore) -"aCC" = ( -/obj/machinery/door/poddoor/preopen{ - id = "maint1" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aCD" = ( -/obj/machinery/door/poddoor/preopen{ - id = "maint1" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aCE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/starboard/fore) -"aCF" = ( -/obj/structure/girder, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aCG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aCH" = ( -/obj/machinery/space_heater, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aCI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aCJ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aCK" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aCL" = ( -/obj/structure/closet/secure_closet/security, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/auxiliary) -"aCM" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aCN" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aCO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aCP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aCQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aCR" = ( -/turf/closed/wall, -/area/chapel/main) -"aCT" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"aCW" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aCX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"aCY" = ( -/obj/machinery/computer/security, -/obj/structure/reagent_dispensers/peppertank{ - pixel_y = 30 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/auxiliary) -"aCZ" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/auxiliary) -"aDa" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aDb" = ( -/obj/structure/table, -/obj/item/wirecutters, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aDc" = ( -/obj/machinery/computer/card, -/obj/machinery/light{ - dir = 1 - }, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/auxiliary) -"aDd" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/storage/primary) -"aDe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/storage/primary) -"aDf" = ( -/obj/machinery/computer/secure_data, -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; - pixel_y = 30 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/auxiliary) -"aDg" = ( -/obj/machinery/biogenerator, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aDh" = ( -/obj/machinery/vending/assist, -/obj/structure/sign/poster/contraband/grey_tide{ - desc = "A poster promoting a regression to ape-like intelligence for Assistants, suggesting they break, loot and murder enough to make even a caveman blush."; - pixel_x = -32; - poster_item_desc = "Nanotrasen does not condone such messages. Please don't regress to ape-level intelligence as this poster suggests." - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aDi" = ( -/obj/structure/window/reinforced, -/turf/open/floor/plasteel/dark, -/area/gateway) -"aDj" = ( -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/dark, -/area/gateway) -"aDk" = ( -/obj/structure/table, -/obj/item/assembly/igniter{ - pixel_x = -8; - pixel_y = -4 - }, -/obj/item/assembly/igniter, -/obj/item/screwdriver{ - pixel_y = 16 - }, -/obj/machinery/camera{ - c_tag = "Primary Tool Storage" - }, -/obj/machinery/requests_console{ - department = "Tool Storage"; - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aDl" = ( -/obj/structure/table, -/obj/item/t_scanner, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aDm" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/item/stock_parts/cell/high/plus, -/turf/open/floor/plasteel, -/area/storage/primary) -"aDn" = ( -/obj/structure/table, -/obj/item/assembly/signaler, -/obj/item/assembly/signaler, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/item/multitool, -/obj/item/multitool{ - pixel_x = 4 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aDo" = ( -/turf/open/floor/plasteel, -/area/storage/primary) -"aDp" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aDq" = ( -/obj/machinery/vending/tool, -/turf/open/floor/plasteel, -/area/storage/primary) -"aDr" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aDs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/effect/turf_decal/bot_white/right, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"aDt" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aDv" = ( -/obj/structure/window/reinforced, -/obj/structure/chair/stool, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aDw" = ( -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"aDx" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/window{ - name = "Gateway Chamber"; - req_access_txt = "62" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"aDy" = ( -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/gateway) -"aDz" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fore) -"aDA" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aDB" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aDC" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aDD" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aDE" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/machinery/light, -/obj/machinery/camera{ - c_tag = "EVA Storage"; - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aDF" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aDG" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Dorms South"; - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"aDH" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/pen, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/folder/white, -/obj/item/pen/fountain, -/obj/item/stamp/rd{ - pixel_x = 3; - pixel_y = -2 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"aDI" = ( -/obj/structure/sign/warning/electricshock, -/turf/closed/wall/r_wall, -/area/ai_monitored/storage/eva) -"aDK" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Cryogenics " - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/crew_quarters/cryopod) -"aDL" = ( -/obj/structure/toilet/secret/low_loot{ - dir = 4 - }, -/obj/structure/mirror{ - pixel_y = 32 - }, -/obj/structure/sink{ - dir = 1; - pixel_y = 25 - }, -/obj/machinery/button/door{ - id = "Bath1"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 14; - pixel_y = 38; - specialfunctions = 4 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet) -"aDM" = ( -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet) -"aDN" = ( -/obj/machinery/camera{ - c_tag = "Bathrooms"; - dir = 1 - }, -/obj/structure/urinal{ - pixel_y = 32 - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet) -"aDP" = ( -/obj/machinery/shower{ - dir = 8; - pixel_y = -4 - }, -/obj/effect/landmark/xeno_spawn, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aDQ" = ( -/obj/machinery/door/airlock{ - desc = "A small bathroom with a sink, toilet and shower."; - id_tag = "Bath1"; - name = "Bathroom" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet) -"aDR" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aDT" = ( -/obj/item/soap, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light/small{ - dir = 1; - light_color = "#ffc1c1" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aDU" = ( -/obj/machinery/shower{ - dir = 4 - }, -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"aDY" = ( -/obj/structure/window{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aDZ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aEa" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aEc" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aEd" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aEe" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aEf" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aEg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/power/apc{ - areastring = "/area/chapel/main"; - name = "Chapel APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aEh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aEi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance{ - name = "Chapel Maintenance"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aEj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aEk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aEl" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aEm" = ( -/obj/machinery/door/window{ - dir = 8; - name = "Mass Driver"; - req_access_txt = "22" - }, -/obj/machinery/mass_driver{ - dir = 4; - id = "chapelgun"; - name = "Holy Driver" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/chapel/main) -"aEn" = ( -/obj/machinery/door/poddoor{ - id = "chapelgun"; - name = "Chapel Launcher Door" - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/chapel/main) -"aEz" = ( -/obj/machinery/power/apc{ - areastring = "/area/hallway/secondary/entry"; - dir = 4; - name = "Entry Hall APC"; - pixel_x = 24 - }, -/obj/structure/cable, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white/corner, -/area/hallway/secondary/entry) -"aEA" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/sorting/mail{ - dir = 2; - sortType = 18 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aEB" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aEC" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aED" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aEE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/auxiliary) -"aEF" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/food/snacks/grown/wheat, -/obj/item/reagent_containers/food/snacks/grown/watermelon, -/obj/item/reagent_containers/food/snacks/grown/watermelon, -/obj/item/reagent_containers/food/snacks/grown/watermelon, -/obj/item/reagent_containers/food/snacks/grown/citrus/orange, -/obj/item/reagent_containers/food/snacks/grown/grapes, -/obj/item/reagent_containers/food/snacks/grown/cocoapod, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aEG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/auxiliary) -"aEH" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/auxiliary) -"aEI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/security/checkpoint/auxiliary) -"aEJ" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/auxiliary) -"aEK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/auxiliary) -"aEL" = ( -/obj/machinery/door/airlock{ - name = "Garden" - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aEM" = ( -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aEN" = ( -/obj/effect/turf_decal/bot_white/right, -/obj/structure/closet/crate/goldcrate, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"aEO" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"aEP" = ( -/obj/effect/turf_decal/bot_white/left, -/obj/structure/closet/crate/silvercrate, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"aEQ" = ( -/obj/structure/table, -/obj/item/paper/pamphlet/gateway, -/turf/open/floor/plasteel, -/area/gateway) -"aER" = ( -/obj/machinery/camera{ - c_tag = "Gateway"; - dir = 4 - }, -/obj/structure/table, -/obj/structure/sign/warning/biohazard{ - pixel_x = -32 - }, -/obj/item/storage/firstaid/regular, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/gateway) -"aES" = ( -/obj/structure/table, -/obj/item/radio/off{ - pixel_y = 6 - }, -/obj/item/radio/off{ - pixel_x = 6; - pixel_y = 4 - }, -/obj/item/radio/off{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/radio/off, -/turf/open/floor/plasteel, -/area/gateway) -"aET" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/gateway) -"aEU" = ( -/obj/structure/table, -/obj/machinery/recharger, -/obj/structure/sign/warning/biohazard{ - pixel_x = 32 - }, -/turf/open/floor/plasteel, -/area/gateway) -"aEV" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fore) -"aEW" = ( -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/ai_monitored/storage/eva) -"aEX" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command/glass{ - name = "EVA Storage"; - req_access_txt = "18" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aEY" = ( -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/ai_monitored/storage/eva) -"aEZ" = ( -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/eva) -"aFa" = ( -/obj/machinery/suit_storage_unit/cmo, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"aFb" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/eva) -"aFc" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/wall/r_wall, -/area/ai_monitored/storage/eva) -"aFd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"aFe" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"aFk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4; - pixel_y = 5 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aFl" = ( -/obj/structure/festivus{ - anchored = 1; - desc = "A pole for dancing."; - name = "pole" - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aFm" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aFn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aFo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aFp" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aFr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aFs" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aFu" = ( -/turf/closed/wall, -/area/library) -"aFv" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aFw" = ( -/turf/closed/wall, -/area/chapel/office) -"aFx" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aFy" = ( -/obj/machinery/power/apc{ - areastring = "/area/chapel/office"; - name = "Chapel Office APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aFz" = ( -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aFA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/computer/pod/old{ - density = 0; - icon = 'icons/obj/airlock_machines.dmi'; - icon_state = "airlock_control_standby"; - id = "chapelgun"; - name = "Mass Driver Controller"; - pixel_x = 24 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aFB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aFG" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white/corner, -/area/hallway/secondary/entry) -"aFH" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/auxiliary) -"aFI" = ( -/obj/machinery/camera{ - c_tag = "Security Checkpoint"; - dir = 1 - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/light_switch{ - pixel_x = 6; - pixel_y = -25 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/auxiliary) -"aFJ" = ( -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aFK" = ( -/obj/item/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/pen, -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/auxiliary) -"aFL" = ( -/obj/item/radio/off, -/obj/item/crowbar, -/obj/item/assembly/flash/handheld, -/obj/structure/table, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/auxiliary) -"aFM" = ( -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/structure/table, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/auxiliary) -"aFN" = ( -/obj/structure/table/glass, -/obj/item/cultivator, -/obj/item/hatchet, -/obj/item/crowbar, -/obj/item/plant_analyzer, -/obj/item/reagent_containers/glass/bucket, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aFO" = ( -/obj/machinery/camera{ - c_tag = "Garden"; - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aFP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aFQ" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = 2; - pixel_y = -2 - }, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = -7 - }, -/obj/item/screwdriver{ - pixel_y = 16 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aFR" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aFT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aFU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aFV" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fore) -"aFW" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/gateway) -"aFX" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = -30 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/gateway) -"aFY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aFZ" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aGa" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"aGb" = ( -/obj/effect/turf_decal/bot_white/right, -/obj/machinery/ore_silo, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"aGc" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/camera/motion{ - c_tag = "Vault"; - dir = 1; - network = list("vault") - }, -/obj/machinery/light, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"aGd" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"aGf" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/gateway) -"aGg" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fore) -"aGh" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/maintenance/fore) -"aGi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/eva) -"aGj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/eva) -"aGk" = ( -/obj/structure/toilet/secret/low_loot{ - dir = 4 - }, -/obj/structure/mirror{ - pixel_y = 32 - }, -/obj/structure/sink{ - dir = 1; - pixel_y = 25 - }, -/obj/machinery/button/door{ - id = "Bath2"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 14; - pixel_y = 38; - specialfunctions = 4 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet) -"aGl" = ( -/obj/machinery/door/airlock{ - desc = "A small bathroom with a sink, toilet and shower."; - id_tag = "Bath2"; - name = "Bathroom" - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet) -"aGm" = ( -/obj/structure/cable, -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/toilet"; - dir = 4; - name = "Dormitory Bathrooms APC"; - pixel_x = 26 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/table/glass, -/obj/structure/bedsheetbin/towel, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet) -"aGo" = ( -/obj/structure/table, -/obj/item/stack/sheet/rglass{ - amount = 50 - }, -/obj/item/stack/sheet/rglass{ - amount = 50 - }, -/obj/item/stack/rods/fifty, -/obj/item/stack/rods/fifty, -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aGq" = ( -/obj/item/stack/sheet/plasteel{ - amount = 10 - }, -/obj/structure/table, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aGr" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/start/clown, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/theatre) -"aGs" = ( -/obj/machinery/suit_storage_unit/rd, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"aGt" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aGu" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aGv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/theatre) -"aGw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4; - pixel_y = 5 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aGx" = ( -/obj/item/radio/intercom{ - pixel_x = -25 - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet) -"aGy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aGz" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aGA" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/sorting/mail{ - dir = 4; - sortType = 19 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aGB" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/sorting/mail{ - dir = 4; - sortType = 20 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aGC" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aGD" = ( -/obj/structure/table/wood, -/obj/structure/mirror{ - pixel_x = -28 - }, -/obj/item/flashlight/lamp/bananalamp{ - pixel_y = 3 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/theatre) -"aGE" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aGF" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 4; - sortType = 17 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aGG" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Library Maintenance"; - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aGH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aGI" = ( -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aGJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aGL" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aGM" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Crematorium Maintenance"; - req_access_txt = "27" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aGN" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aGO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/chapel/office) -"aGQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aGS" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aGT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aGU" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/requests_console{ - department = "Chapel"; - departmentType = 2; - pixel_y = 30 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aGV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aGW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aGY" = ( -/obj/machinery/airalarm{ - pixel_y = 25 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aGZ" = ( -/obj/machinery/door/airlock/security{ - name = "Security Checkpoint"; - req_access_txt = "1" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/checkpoint/auxiliary) -"aHa" = ( -/obj/machinery/door/firedoor, -/obj/structure/table/reinforced, -/obj/item/paper, -/obj/machinery/door/window/westright{ - dir = 1; - name = "Security Checkpoint"; - req_access_txt = "1" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aHb" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/stack/packageWrap, -/obj/item/pen/fourcolor, -/turf/open/floor/wood, -/area/library) -"aHd" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/wood, -/area/library) -"aHe" = ( -/obj/structure/table, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aHf" = ( -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/obj/machinery/vending/wardrobe/chap_wardrobe, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aHg" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/camera{ - c_tag = "Chapel Office" - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aHh" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/gateway) -"aHi" = ( -/obj/structure/closet/crate/coffin, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"aHj" = ( -/obj/machinery/light_switch{ - pixel_x = -20 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/gateway) -"aHk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aHl" = ( -/obj/structure/closet/crate/coffin, -/obj/machinery/door/window/eastleft{ - name = "Coffin Storage"; - req_access_txt = "22" - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"aHm" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aHn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aHo" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/food/snacks/grown/poppy, -/obj/item/reagent_containers/food/snacks/grown/harebell, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"aHq" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/chapel/main) -"aHu" = ( -/obj/machinery/status_display/evac{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 4 - }, -/area/hallway/secondary/entry) -"aHv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/gateway) -"aHw" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"aHx" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/fore) -"aHy" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/checkpoint/auxiliary) -"aHz" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aHA" = ( -/obj/item/reagent_containers/spray/plantbgone, -/obj/item/reagent_containers/spray/pestspray{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/item/reagent_containers/glass/bottle/nutrient/ez, -/obj/item/reagent_containers/glass/bottle/nutrient/rh{ - pixel_x = 2; - pixel_y = 1 - }, -/obj/structure/table/glass, -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aHB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/eva) -"aHC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/eva) -"aHD" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/plasteel, -/area/storage/primary) -"aHE" = ( -/obj/structure/table, -/obj/item/weldingtool, -/obj/item/crowbar, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/turf/open/floor/plasteel, -/area/storage/primary) -"aHF" = ( -/obj/structure/sign/warning/securearea, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/nuke_storage) -"aHG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aHH" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Dormitory" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"aHI" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/theatre) -"aHJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/gateway) -"aHK" = ( -/obj/structure/closet/secure_closet/freezer/cream_pie, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/theatre) -"aHL" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/structure/closet/l3closet/scientist, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/gateway) -"aHM" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/closed/wall, -/area/crew_quarters/bar) -"aHN" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/crowbar, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aHO" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aHP" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aHQ" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aHR" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aHS" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - name = "Bar Storage Maintenance"; - req_access_txt = "25" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aHT" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Dormitory" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"aHV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1; - pixel_x = 5 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/table/glass, -/obj/item/razor{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/reagent_containers/rag/towel/random, -/obj/item/reagent_containers/rag/towel/random, -/obj/item/reagent_containers/rag/towel/random, -/obj/item/reagent_containers/rag/towel/random, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet) -"aHY" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aHZ" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aIa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aIb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aIc" = ( -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/bar"; - name = "Bar APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aId" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aIe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/bar) -"aIf" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aIg" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=2"; - freq = 1400; - location = "Bar" - }, -/obj/structure/plasticflaps/opaque, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aIh" = ( -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/kitchen"; - name = "Kitchen APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aIj" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/sorting/mail{ - dir = 4; - sortType = 21 - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aIk" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aIl" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aIm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aIn" = ( -/obj/machinery/power/apc{ - areastring = "/area/hydroponics"; - name = "Hydroponics APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aIo" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aIp" = ( -/turf/closed/wall, -/area/hydroponics) -"aIq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/hydroponics) -"aIr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/button/door{ - desc = "Bolts the doors to the Private Study."; - id = "PrivateStudy"; - name = "Private Study Lock"; - pixel_x = -5; - pixel_y = 24; - req_access_txt = "28" - }, -/obj/machinery/button/door{ - id = "PrivateStudy1"; - name = "Privacy Shutters"; - pixel_x = 5; - pixel_y = 24 - }, -/turf/open/floor/wood, -/area/library) -"aIs" = ( -/obj/machinery/camera{ - c_tag = "Library North" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/chair/sofa/right, -/obj/machinery/light{ - dir = 1; - light_color = "#c1caff" - }, -/turf/open/floor/wood, -/area/library) -"aIt" = ( -/turf/open/floor/wood, -/area/library) -"aIu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/wood, -/area/library) -"aIv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/library) -"aIw" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/landmark/start/assistant, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/chair/sofa/left, -/turf/open/floor/wood, -/area/library) -"aIx" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/wood, -/area/library) -"aIy" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"aIz" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aIB" = ( -/obj/structure/bodycontainer/crematorium{ - id = "crematoriumChapel" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"aIC" = ( -/obj/effect/landmark/start/chaplain, -/obj/structure/chair, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aID" = ( -/obj/structure/closet/crate/coffin, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"aIE" = ( -/obj/structure/table/glass, -/turf/open/floor/plasteel/chapel, -/area/chapel/main) -"aIH" = ( -/obj/structure/table, -/obj/item/storage/box/lights/mixed, -/obj/item/pipe_dispenser, -/obj/machinery/button/door{ - id = "aux_base_shutters"; - name = "Public Shutters Control"; - pixel_x = 24; - req_one_access_txt = "32;47;48" - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"aII" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aIJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aIK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aIL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aIM" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aIN" = ( -/obj/structure/table, -/obj/item/wrench, -/obj/item/analyzer, -/turf/open/floor/plasteel, -/area/storage/primary) -"aIO" = ( -/obj/machinery/camera{ - c_tag = "Arrivals Lounge" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aIP" = ( -/obj/structure/sign/map/left{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aIQ" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aIR" = ( -/obj/structure/sign/map/right{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aIS" = ( -/obj/structure/table/glass, -/obj/item/hatchet, -/obj/item/cultivator, -/obj/item/crowbar, -/obj/item/reagent_containers/glass/bucket, -/obj/item/plant_analyzer, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aIT" = ( -/obj/item/storage/bag/plants/portaseeder, -/obj/structure/table/glass, -/obj/item/plant_analyzer, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = 29 - }, -/obj/machinery/light_switch{ - pixel_x = -6; - pixel_y = -25 - }, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aIU" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - freq = 1400; - location = "Tool Storage" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/storage/primary) -"aIV" = ( -/obj/machinery/button/door{ - id = "stationawaygate"; - name = "Gateway Access Shutter Control"; - pixel_x = -1; - pixel_y = -24; - req_access_txt = "31" - }, -/turf/open/floor/plasteel, -/area/gateway) -"aIW" = ( -/obj/structure/table, -/obj/item/crowbar, -/obj/item/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/clothing/gloves/color/fyellow, -/turf/open/floor/plasteel, -/area/storage/primary) -"aIX" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel, -/area/storage/primary) -"aIY" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel, -/area/storage/primary) -"aIZ" = ( -/obj/structure/table, -/obj/item/storage/belt/utility, -/obj/item/storage/firstaid/regular, -/turf/open/floor/plasteel, -/area/storage/primary) -"aJa" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/gateway) -"aJb" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/storage/primary) -"aJc" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/bin, -/turf/open/floor/plasteel, -/area/storage/primary) -"aJe" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aJf" = ( -/obj/machinery/camera{ - c_tag = "EVA South"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aJg" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aJh" = ( -/turf/open/floor/plasteel, -/area/gateway) -"aJi" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/closet/secure_closet/exile, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/gateway) -"aJj" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/extinguisher, -/obj/item/extinguisher, -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aJk" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock{ - name = "Bar Back Room" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/bar) -"aJl" = ( -/obj/structure/tank_dispenser/oxygen, -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"aJm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/vending/wardrobe/bar_wardrobe, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aJn" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hallway/primary/central) -"aJo" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Central Hallway North" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aJp" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aJq" = ( -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aJr" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aJs" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aJt" = ( -/obj/structure/sign/directions/security{ - dir = 1; - pixel_x = 32; - pixel_y = 40 - }, -/obj/structure/sign/directions/medical{ - dir = 4; - pixel_x = 32; - pixel_y = 32 - }, -/obj/structure/sign/directions/evac{ - dir = 4; - pixel_x = 32; - pixel_y = 24 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aJu" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aJv" = ( -/obj/structure/sign/poster/official/nanomichi_ad{ - pixel_y = 32 - }, -/obj/machinery/vending/snack/random, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"aJw" = ( -/turf/closed/wall, -/area/hallway/primary/central) -"aJx" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aJy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aJz" = ( -/obj/machinery/button/door{ - id = "Bath3"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 14; - pixel_y = 38; - specialfunctions = 4 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/recharge_station, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet) -"aJA" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Kitchen Maintenance"; - req_access_txt = "28" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aJB" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - name = "Hydroponics Maintenance"; - req_access_txt = "35" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aJC" = ( -/turf/closed/wall, -/area/crew_quarters/bar) -"aJD" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Bar Maintenance"; - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aJF" = ( -/obj/machinery/newscaster{ - pixel_x = 30 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/wood, -/area/library) -"aJG" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/button/crematorium{ - id = "crematoriumChapel"; - pixel_x = 25 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"aJH" = ( -/obj/machinery/door/window/southleft{ - name = "Bar Delivery"; - req_access_txt = "25" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aJI" = ( -/turf/closed/wall, -/area/crew_quarters/kitchen) -"aJJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"aJK" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=2"; - freq = 1400; - location = "Kitchen" - }, -/obj/structure/plasticflaps/opaque, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/crew_quarters/kitchen) -"aJL" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=2"; - freq = 1400; - location = "Hydroponics" - }, -/obj/structure/plasticflaps/opaque, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/hydroponics) -"aJM" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp{ - pixel_y = 10 - }, -/obj/structure/disposalpipe/segment, -/obj/item/nullrod, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aJO" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder, -/turf/open/floor/plasteel, -/area/hydroponics) -"aJP" = ( -/obj/structure/table/wood, -/obj/item/folder/yellow, -/obj/item/pen/blue, -/turf/open/floor/wood, -/area/library) -"aJQ" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/wood, -/area/library) -"aJR" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/turf/open/floor/wood, -/area/library) -"aJS" = ( -/obj/structure/table/wood, -/obj/structure/disposalpipe/segment, -/obj/item/paicard, -/turf/open/floor/wood, -/area/library) -"aJT" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = -2; - pixel_y = 5 - }, -/obj/item/storage/crayons, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aJU" = ( -/obj/structure/table/wood, -/obj/item/pen, -/obj/item/reagent_containers/food/drinks/bottle/holywater, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aJV" = ( -/obj/structure/closet/crate/coffin, -/obj/machinery/door/window/eastleft{ - dir = 8; - name = "Coffin Storage"; - req_access_txt = "22" - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"aJW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aJX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aJY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aJZ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Primary Tool Storage" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/storage/primary) -"aKa" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Primary Tool Storage" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/storage/primary) -"aKc" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Gateway Access"; - req_access_txt = "62" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/gateway) -"aKd" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters{ - id = "stationawaygate"; - name = "Gateway Access Shutters" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/gateway) -"aKe" = ( -/obj/structure/table/glass, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"aKf" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/apc{ - areastring = "/area/construction/mining/aux_base"; - dir = 8; - name = "Auxillary Base Construction APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aKj" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aKk" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aKl" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aKm" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Garden" - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden) -"aKn" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/hydroponics/garden) -"aKo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aKp" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/storage/primary) -"aKq" = ( -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/obj/machinery/camera, -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aKr" = ( -/obj/machinery/vending/snack/orange, -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/sign/poster/contraband/donut_corp{ - pixel_y = 32 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aKs" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/storage/primary) -"aKu" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/theatre) -"aKw" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/theatre) -"aKy" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fore) -"aKz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aKA" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters{ - id = "stationawaygate"; - name = "Gateway Access Shutters" - }, -/turf/open/floor/plasteel, -/area/gateway) -"aKB" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/wall/r_wall, -/area/gateway) -"aKC" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aKD" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aKE" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aKF" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aKG" = ( -/obj/machinery/vending/snack/random, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"aKH" = ( -/obj/structure/sink{ - pixel_y = 30 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aKI" = ( -/obj/structure/closet/secure_closet/hydroponics, -/turf/open/floor/plasteel, -/area/hydroponics) -"aKJ" = ( -/obj/machinery/vending/cola/black, -/obj/structure/sign/poster/contraband/starkist{ - pixel_y = 32 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aKL" = ( -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/obj/machinery/camera{ - c_tag = "Hydroponics Storage" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/plantgenes{ - pixel_y = 6 - }, -/obj/structure/table, -/turf/open/floor/plasteel, -/area/hydroponics) -"aKM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aKN" = ( -/obj/structure/table/wood/fancy, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3; - pixel_y = 20 - }, -/obj/item/reagent_containers/food/condiment/peppermill{ - dir = 1; - pixel_x = 3; - pixel_y = 20 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aKO" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aKP" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aKQ" = ( -/obj/machinery/reagentgrinder, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aKR" = ( -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aKS" = ( -/obj/machinery/camera{ - c_tag = "Bar Storage" - }, -/obj/structure/sink/kitchen{ - pixel_y = 28 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aKT" = ( -/obj/structure/closet/secure_closet/freezer/meat, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aKU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/hydroponics) -"aKV" = ( -/obj/machinery/door/window/southleft{ - name = "Kitchen Delivery"; - req_access_txt = "28" - }, -/obj/effect/turf_decal/delivery, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/kitchen) -"aKW" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/effect/turf_decal/loading_area{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aKX" = ( -/obj/machinery/door/window/eastright{ - name = "Hydroponics Delivery"; - req_access_txt = "35" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/hydroponics) -"aKY" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"aKZ" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/camera{ - c_tag = "Chapel Crematorium"; - dir = 4 - }, -/obj/structure/bodycontainer/morgue, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"aLa" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aLb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock{ - name = "Crematorium"; - req_access_txt = "27" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"aLc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aLd" = ( -/obj/structure/table, -/obj/item/reagent_containers/spray/plantbgone{ - pixel_y = 3 - }, -/obj/item/reagent_containers/spray/plantbgone{ - pixel_x = 8; - pixel_y = 8 - }, -/obj/item/reagent_containers/spray/plantbgone{ - pixel_x = 13; - pixel_y = 5 - }, -/obj/item/watertank, -/turf/open/floor/plasteel, -/area/hydroponics) -"aLe" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aLf" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/wood, -/area/library) -"aLg" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/library) -"aLi" = ( -/obj/structure/chair/comfy/beige, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aLj" = ( -/obj/structure/chair/comfy/beige, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aLk" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLm" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLn" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/chapel/office) -"aLp" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLr" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aLt" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/port/fore) -"aLu" = ( -/obj/machinery/door/airlock/engineering{ - name = "Auxillary Base Construction"; - req_one_access_txt = "32;47;48" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"aLv" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aLw" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"aLx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aLy" = ( -/obj/structure/chair/comfy/beige, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aLz" = ( -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aLA" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green{ - pixel_x = 1; - pixel_y = 5 - }, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aLB" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aLC" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/dark, -/area/hallway/secondary/entry) -"aLD" = ( -/obj/machinery/door/firedoor, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aLE" = ( -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLF" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLG" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/hallway/primary/port"; - dir = 1; - name = "Port Hall APC"; - pixel_y = 26 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLI" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aLK" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLL" = ( -/obj/machinery/camera{ - c_tag = "Port Hallway 2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLM" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aLP" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLQ" = ( -/obj/machinery/camera{ - c_tag = "Central Hallway North-East" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aLR" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aLT" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aLU" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/reagent_dispensers/beerkeg, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aLV" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aLW" = ( -/obj/machinery/camera{ - c_tag = "Central Hallway North-West" - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aLX" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aLY" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aLZ" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L3" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aMa" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L1" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aMb" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L7" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aMc" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L5" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aMd" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L11" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aMe" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L9" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aMf" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L13" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aMg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/structure/sign/poster/contraband/robust_softdrinks{ - pixel_x = -32; - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aMh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aMi" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aMj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aMk" = ( -/obj/machinery/chem_master/condimaster{ - name = "CondiMaster Neo" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aMl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aMm" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aMn" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aMo" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aMq" = ( -/obj/structure/sign/poster/contraband/space_cola{ - pixel_x = -32 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aMr" = ( -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aMs" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hydroponics) -"aMt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = -31 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aMu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aMw" = ( -/obj/machinery/vending/dinnerware{ - contraband = list(/obj/item/reagent_containers/food/condiment/flour = 4); - desc = "This vendor is full of condiments to put on food."; - name = "\improper Condiments Vendor"; - product_ads = "Get your sauces here!;No slave labour was used to make these products!;Nanotrasen Approved?!"; - products = list(/obj/item/storage/bag/tray = 8, /obj/item/reagent_containers/food/drinks/drinkingglass = 10, /obj/item/storage/box/cups = 5, /obj/item/reagent_containers/food/condiment/pack/ketchup = 20, /obj/item/reagent_containers/food/condiment/pack/mustard = 20, /obj/item/reagent_containers/food/condiment/pack/hotsauce = 20, /obj/item/reagent_containers/food/condiment/pack/astrotame = 20, /obj/item/reagent_containers/food/condiment/saltshaker = 20, /obj/item/reagent_containers/food/condiment/peppermill = 20) - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aMx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aMy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aMz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aMA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aMB" = ( -/obj/structure/reagent_dispensers/keg/mead, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aMC" = ( -/obj/structure/reagent_dispensers/keg/gargle, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aMD" = ( -/obj/machinery/icecream_vat, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aME" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aMF" = ( -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aMG" = ( -/obj/structure/closet/crate/hydroponics, -/obj/item/shovel/spade, -/obj/item/wrench, -/obj/item/reagent_containers/glass/bucket, -/obj/item/wirecutters, -/turf/open/floor/plasteel, -/area/hydroponics) -"aMI" = ( -/obj/machinery/light/small, -/obj/machinery/vending/wardrobe/hydro_wardrobe, -/turf/open/floor/plasteel, -/area/hydroponics) -"aML" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aMM" = ( -/obj/machinery/camera{ - c_tag = "Chapel North" - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aMN" = ( -/obj/machinery/chem_master/condimaster, -/turf/open/floor/plasteel, -/area/hydroponics) -"aMO" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/snacks/chips, -/obj/item/reagent_containers/food/drinks/soda_cans/cola, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/carpet, -/area/hallway/secondary/entry) -"aMP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/hallway/secondary/entry) -"aMQ" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aMR" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aMS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aMT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aMU" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aMV" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aMX" = ( -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"aMY" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aMZ" = ( -/turf/closed/wall, -/area/hallway/secondary/exit) -"aNa" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"aNb" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aNc" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aNd" = ( -/obj/structure/table/wood, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aNe" = ( -/turf/open/floor/carpet, -/area/hallway/secondary/entry) -"aNf" = ( -/obj/structure/chair/comfy/beige{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aNg" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel/dark, -/area/hallway/secondary/entry) -"aNh" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aNi" = ( -/turf/open/floor/goonplaque, -/area/hallway/secondary/entry) -"aNj" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=CHW"; - location = "Lockers" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aNk" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aNl" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aNm" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aNo" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aNp" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aNq" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aNr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aNs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aNu" = ( -/obj/structure/table/wood, -/obj/item/paper/fluff{ - info = "Renovation Notice

The bar layout for the station is very old. We've decided to give it a facelift after our partnership with IKEA Intergalactic?.
  • We added some sweet retro arcade machines and much more seating area. We removed the stage since it hasn't ever been used.
  • You can run this place like a restaurant now that you have tables. Go whip up a menu with the Chef. You have a condiments table and your Requests Console has been moved so a noticeboard can be placed there. Take tickets from customers and pin them on the noticeboard for the Chef.
  • We hope you like the new bar!"; - name = "Renovation Notice - Bar"; - pixel_x = -5; - pixel_y = 3 - }, -/obj/item/reagent_containers/food/drinks/shaker, -/obj/item/stack/spacecash/c100, -/obj/item/stack/spacecash/c100, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aNv" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L4" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aNw" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aNx" = ( -/obj/effect/landmark/observer_start, -/obj/effect/turf_decal/plaque{ - icon_state = "L8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aNy" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Lockers"; - location = "EVA" - }, -/obj/effect/turf_decal/plaque{ - icon_state = "L6" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aNz" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L12" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aNA" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Security"; - location = "EVA2" - }, -/obj/effect/turf_decal/plaque{ - icon_state = "L10" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aNB" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L14" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aNC" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=EVA2"; - location = "Dorm" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aNE" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aNF" = ( -/obj/structure/chair/comfy/brown, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aNI" = ( -/obj/machinery/light/small{ - dir = 4; - light_color = "#d8b1b1" - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aNK" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/mob/living/simple_animal/hostile/retaliate/goat{ - name = "Pete" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aNL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/hydroponics) -"aNM" = ( -/obj/structure/kitchenspike, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aNN" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Hydroponics"; - req_access_txt = "35" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hydroponics) -"aNO" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/vending/wardrobe/chef_wardrobe, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aNP" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood, -/area/library) -"aNQ" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/hydroponics) -"aNR" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/paicard, -/turf/open/floor/carpet, -/area/hallway/secondary/entry) -"aNS" = ( -/obj/machinery/bookbinder, -/turf/open/floor/wood, -/area/library) -"aNT" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aNU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Port Hallway"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aNV" = ( -/obj/machinery/photocopier, -/turf/open/floor/wood, -/area/library) -"aNW" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Chapel Office"; - req_access_txt = "22" - }, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"aNX" = ( -/obj/item/radio/intercom{ - broadcasting = 1; - frequency = 1480; - name = "Confessional Intercom"; - pixel_x = 25 - }, -/obj/structure/chair, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aNY" = ( -/obj/machinery/door/morgue{ - name = "Confession Booth (Chaplain)"; - req_access_txt = "22" - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aNZ" = ( -/obj/structure/chair, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aOa" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/chair, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aOb" = ( -/obj/structure/chair, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aOc" = ( -/obj/structure/chair, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aOd" = ( -/obj/structure/chair, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aOe" = ( -/obj/item/beacon, -/obj/machinery/camera{ - c_tag = "Arrivals Bay 1 South" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aOf" = ( -/obj/machinery/vending/snack/random, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aOg" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aOh" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aOi" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOj" = ( -/obj/structure/table/wood, -/obj/item/storage/fancy/cigarettes{ - pixel_y = 2 - }, -/obj/item/lighter/greyscale{ - pixel_x = 4; - pixel_y = 2 - }, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aOk" = ( -/obj/machinery/vending/cola/random, -/turf/open/floor/plasteel/dark, -/area/hallway/secondary/entry) -"aOl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOm" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOn" = ( -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOo" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOp" = ( -/obj/machinery/camera{ - c_tag = "Port Hallway 3"; - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOq" = ( -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOr" = ( -/obj/structure/disposalpipe/junction/flip{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOt" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOv" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOw" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOx" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOy" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOz" = ( -/obj/structure/sign/directions/security{ - dir = 4; - pixel_x = 32; - pixel_y = -24 - }, -/obj/structure/sign/directions/evac{ - dir = 4; - pixel_x = 32; - pixel_y = -32 - }, -/obj/structure/sign/directions/engineering{ - pixel_x = 32; - pixel_y = -40 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOB" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aOC" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aOD" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=QM"; - location = "CHW" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aOE" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aOF" = ( -/obj/machinery/light, -/obj/structure/sign/warning/electricshock{ - pixel_y = -32 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aOG" = ( -/obj/structure/sign/warning/electricshock{ - pixel_y = -32 - }, -/obj/machinery/door/firedoor, -/obj/machinery/light, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aOH" = ( -/obj/structure/window/reinforced, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"aOI" = ( -/obj/structure/kitchenspike, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aOJ" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aOL" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aOM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aON" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aOO" = ( -/obj/machinery/door/airlock{ - name = "Bar Storage"; - req_access_txt = "25" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aOP" = ( -/obj/effect/landmark/blobstart, -/obj/item/toy/beach_ball/holoball, -/turf/open/floor/plating, -/area/crew_quarters/bar) -"aOQ" = ( -/obj/machinery/requests_console{ - department = "Hydroponics"; - departmentType = 2; - pixel_y = 30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/hydroponics) -"aOR" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/hydroponics) -"aOS" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/carpet, -/area/library) -"aOT" = ( -/obj/machinery/gibber, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aOU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aOV" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/turf/open/floor/plasteel/dark, -/area/hydroponics) -"aOW" = ( -/obj/machinery/hydroponics/constructable, -/obj/machinery/camera{ - c_tag = "Hydroponics North" - }, -/turf/open/floor/plasteel/dark, -/area/hydroponics) -"aOX" = ( -/obj/machinery/hydroponics/constructable, -/turf/open/floor/plasteel/dark, -/area/hydroponics) -"aOY" = ( -/obj/structure/chair/comfy/beige{ - dir = 1 - }, -/obj/effect/landmark/start/assistant, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aOZ" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/hydroponics) -"aPa" = ( -/obj/structure/chair/comfy/beige{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aPb" = ( -/obj/structure/bookcase/random/religion, -/turf/open/floor/wood, -/area/library) -"aPc" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aPd" = ( -/obj/structure/bookcase/random/reference, -/turf/open/floor/wood, -/area/library) -"aPe" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aPf" = ( -/obj/machinery/computer/libraryconsole, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/library) -"aPg" = ( -/obj/structure/chair/comfy/brown, -/turf/open/floor/carpet, -/area/library) -"aPk" = ( -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"aPl" = ( -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/chapel/main) -"aPm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"aPn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/chapel/main) -"aPo" = ( -/obj/effect/spawner/structure/window/reinforced/tinted, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aPp" = ( -/obj/machinery/camera{ - c_tag = "Escape Arm Holding Area"; - dir = 4 - }, -/obj/item/radio/intercom{ - dir = 8; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aPq" = ( -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aPr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aPs" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aPt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-20" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aPu" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aPv" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aPx" = ( -/obj/structure/chair/comfy/beige{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"aPy" = ( -/obj/machinery/vending/snack/random, -/turf/open/floor/plasteel/dark, -/area/hallway/secondary/entry) -"aPz" = ( -/turf/closed/wall, -/area/maintenance/port) -"aPA" = ( -/turf/closed/wall, -/area/crew_quarters/locker) -"aPB" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aPC" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aPD" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aPE" = ( -/obj/machinery/status_display/evac, -/turf/closed/wall, -/area/crew_quarters/locker) -"aPF" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/storage/art) -"aPG" = ( -/turf/closed/wall, -/area/storage/art) -"aPH" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Art Storage" - }, -/turf/open/floor/plasteel, -/area/storage/art) -"aPI" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"aPJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/storage/art) -"aPK" = ( -/turf/closed/wall, -/area/storage/emergency/port) -"aPL" = ( -/obj/structure/table, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aPM" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aPN" = ( -/obj/structure/table, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aPO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"aPQ" = ( -/turf/closed/wall, -/area/storage/tools) -"aPR" = ( -/turf/closed/wall/r_wall, -/area/bridge) -"aPS" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/turf/open/floor/plating, -/area/bridge) -"aPT" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/bridge) -"aPU" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/status_display/evac, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/turf/open/floor/plating, -/area/bridge) -"aPV" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/turf/open/floor/plating, -/area/bridge) -"aPW" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/status_display/evac, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/turf/open/floor/plating, -/area/bridge) -"aPX" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/turf/open/floor/plating, -/area/bridge) -"aPY" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3; - pixel_y = 9 - }, -/obj/item/reagent_containers/food/condiment/peppermill{ - dir = 1; - pixel_x = 3; - pixel_y = 9 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aPZ" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/britcup, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aQa" = ( -/obj/machinery/computer/arcade/battle, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aQb" = ( -/obj/structure/chair/sofa/right, -/obj/structure/window{ - dir = 1 - }, -/obj/structure/sign/poster/contraband/pwr_game{ - pixel_x = -32 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aQc" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aQd" = ( -/obj/structure/window, -/obj/structure/chair/sofa/right{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aQe" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/landmark/xmastree, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aQf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aQg" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/poddoor/preopen{ - id = "barShutters"; - name = "privacy shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/bar) -"aQh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aQi" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aQj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/crew_quarters/kitchen) -"aQk" = ( -/obj/machinery/door/airlock{ - name = "Kitchen cold room"; - req_access_txt = "28" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"aQl" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aQm" = ( -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aQn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aQo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aQp" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/wood, -/area/library) -"aQq" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/wood, -/area/library) -"aQr" = ( -/obj/machinery/light/small, -/obj/structure/table/wood/fancy, -/turf/open/floor/carpet, -/area/library) -"aQs" = ( -/obj/structure/bed, -/obj/item/bedsheet/black, -/turf/open/floor/carpet, -/area/library) -"aQu" = ( -/turf/open/floor/plasteel/chapel, -/area/chapel/main) -"aQv" = ( -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/chapel/main) -"aQw" = ( -/obj/structure/table/wood, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aQx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/chapel, -/area/chapel/main) -"aQy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/chapel/main) -"aQz" = ( -/obj/item/radio/intercom{ - broadcasting = 1; - frequency = 1480; - name = "Confessional Intercom"; - pixel_x = 25 - }, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aQA" = ( -/obj/machinery/door/morgue{ - name = "Confession Booth" - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aQB" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aQC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aQD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aQE" = ( -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"aQF" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "Security Escape Airlock"; - req_access_txt = "2" - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"aQG" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aQH" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aQI" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aQJ" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aQK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aQL" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port) -"aQM" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/port) -"aQN" = ( -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aQO" = ( -/obj/structure/closet/wardrobe/white, -/obj/item/clothing/suit/ghost_sheet, -/obj/item/clothing/suit/ghost_sheet, -/obj/item/clothing/suit/ghost_sheet, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aQP" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aQR" = ( -/obj/machinery/vending/cola/pwr_game, -/obj/structure/sign/poster/contraband/pwr_game{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aQS" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aQT" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aQV" = ( -/obj/machinery/vending/autodrobe, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aQW" = ( -/obj/structure/closet/secure_closet/personal, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aQX" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/vending/games, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aQY" = ( -/obj/structure/table, -/obj/item/storage/toolbox/artistic{ - pixel_y = 10 - }, -/obj/item/storage/toolbox/artistic, -/obj/item/storage/toolbox/electrical{ - pixel_y = -10 - }, -/turf/open/floor/plasteel, -/area/storage/art) -"aQZ" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/turf/open/floor/plasteel, -/area/storage/art) -"aRa" = ( -/turf/open/floor/plasteel, -/area/storage/art) -"aRb" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"aRc" = ( -/obj/machinery/door/airlock{ - name = "Port Emergency Storage" - }, -/turf/open/floor/plating, -/area/storage/emergency/port) -"aRd" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aRe" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/storage/tools) -"aRf" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Auxiliary Tool Storage"; - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/storage/tools) -"aRg" = ( -/obj/machinery/vending/boozeomat, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aRh" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aRi" = ( -/obj/machinery/computer/atmos_alert, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aRj" = ( -/obj/structure/table/reinforced, -/obj/item/storage/secure/briefcase, -/obj/item/storage/box/PDAs{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/storage/box/ids, -/turf/open/floor/plasteel, -/area/bridge) -"aRk" = ( -/obj/machinery/computer/monitor{ - name = "bridge power monitoring console" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aRl" = ( -/obj/machinery/computer/station_alert, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aRm" = ( -/obj/machinery/computer/communications, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aRn" = ( -/obj/machinery/computer/shuttle/labor, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aRo" = ( -/obj/machinery/modular_computer/console/preset/command, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aRp" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/computer/shuttle/mining, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aRq" = ( -/obj/machinery/computer/med_data, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aRr" = ( -/obj/machinery/computer/crew, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aRs" = ( -/obj/structure/table/reinforced, -/obj/item/storage/toolbox/emergency, -/obj/item/wrench, -/obj/item/assembly/timer, -/obj/item/assembly/signaler, -/obj/item/assembly/signaler, -/turf/open/floor/plasteel, -/area/bridge) -"aRt" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aRu" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/window, -/obj/structure/sign/poster/official/high_class_martini{ - pixel_x = -32 - }, -/obj/effect/landmark/start/assistant, -/obj/structure/chair/sofa/left{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aRx" = ( -/obj/machinery/computer/arcade/minesweeper, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aRy" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aRz" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aRA" = ( -/obj/machinery/vending/dinnerware{ - contraband = list(/obj/item/kitchen/rollingpin = 2, /obj/item/kitchen/knife/butcher = 2, /obj/item/reagent_containers/food/condiment/flour = 4) - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aRB" = ( -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/obj/machinery/camera{ - c_tag = "Kitchen" - }, -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aRC" = ( -/obj/structure/sink/kitchen{ - pixel_y = 28 - }, -/obj/machinery/food_cart, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aRD" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aRE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aRF" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_x = -3; - pixel_y = 6 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aRG" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_x = -3; - pixel_y = 6 - }, -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aRH" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aRI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aRJ" = ( -/turf/open/floor/plasteel, -/area/hydroponics) -"aRK" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/library"; - dir = 4; - name = "Library APC"; - pixel_x = 24 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aRL" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Holding Area"; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aRM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aRN" = ( -/obj/structure/bookcase/random/fiction, -/turf/open/floor/wood, -/area/library) -"aRO" = ( -/obj/structure/displaycase/trophy, -/turf/open/floor/wood, -/area/library) -"aRP" = ( -/obj/machinery/camera{ - c_tag = "Library South"; - dir = 8 - }, -/turf/open/floor/wood, -/area/library) -"aRQ" = ( -/obj/machinery/door/morgue{ - name = "Private Study"; - req_access_txt = "37" - }, -/turf/open/floor/engine/cult, -/area/library) -"aRR" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aRS" = ( -/turf/open/floor/carpet, -/area/chapel/main) -"aRT" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/rack, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/electronics/apc, -/obj/item/electronics/airlock, -/turf/open/floor/plasteel, -/area/storage/tools) -"aRU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"aRV" = ( -/obj/machinery/power/apc{ - areastring = "/area/storage/tools"; - dir = 1; - name = "Auxiliary Tool Storage APC"; - pixel_y = 24 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/table, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/rods/fifty, -/turf/open/floor/plasteel, -/area/storage/tools) -"aRW" = ( -/obj/structure/sign/warning/docking, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"aRX" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner, -/area/hallway/secondary/entry) -"aRY" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner, -/area/hallway/secondary/entry) -"aRZ" = ( -/turf/open/floor/plasteel/white/corner{ - dir = 8 - }, -/area/hallway/secondary/entry) -"aSa" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/camera{ - c_tag = "Auxiliary Tool Storage" - }, -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/storage/box/lights/mixed, -/turf/open/floor/plasteel, -/area/storage/tools) -"aSb" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aSc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/storage/tools) -"aSd" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aSe" = ( -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aSf" = ( -/obj/machinery/camera{ - c_tag = "Arrivals Hallway"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aSg" = ( -/turf/open/floor/plating, -/area/maintenance/port) -"aSh" = ( -/obj/structure/closet/wardrobe/mixed, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = -27 - }, -/obj/item/clothing/head/beret, -/obj/item/clothing/head/beret, -/obj/item/clothing/head/russobluecamohat, -/obj/item/clothing/head/russobluecamohat, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aSi" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aSk" = ( -/obj/structure/table, -/obj/item/stack/cable_coil/random, -/obj/item/stack/cable_coil/random, -/obj/item/stack/cable_coil, -/obj/item/paper_bin/construction, -/obj/item/stack/cable_coil, -/obj/item/pen/fourcolor, -/turf/open/floor/plasteel, -/area/storage/art) -"aSl" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/item/storage/box/lights/mixed, -/turf/open/floor/plating, -/area/storage/emergency/port) -"aSm" = ( -/turf/open/floor/plating, -/area/storage/emergency/port) -"aSn" = ( -/obj/item/extinguisher, -/turf/open/floor/plating, -/area/storage/emergency/port) -"aSq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aSr" = ( -/turf/open/floor/plasteel, -/area/storage/tools) -"aSs" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/storage/tools) -"aSt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/storage/tools) -"aSu" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aSv" = ( -/obj/structure/table/reinforced, -/obj/item/assembly/flash/handheld, -/obj/item/assembly/flash/handheld, -/turf/open/floor/plasteel, -/area/bridge) -"aSw" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aSx" = ( -/obj/structure/chair{ - dir = 1; - name = "Engineering Station" - }, -/turf/open/floor/plasteel, -/area/bridge) -"aSy" = ( -/obj/structure/chair{ - dir = 1; - name = "Command Station" - }, -/obj/machinery/button/door{ - id = "bridge blast"; - name = "Bridge Blast Door Control"; - pixel_x = 28; - pixel_y = -2; - req_access_txt = "19" - }, -/obj/machinery/keycard_auth{ - pixel_x = 29; - pixel_y = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aSz" = ( -/obj/structure/table/reinforced, -/obj/item/aicard, -/obj/item/multitool, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aSA" = ( -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aSB" = ( -/obj/structure/table/reinforced, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aSC" = ( -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aSD" = ( -/obj/structure/chair{ - dir = 1; - name = "Crew Station" - }, -/turf/open/floor/plasteel, -/area/bridge) -"aSE" = ( -/obj/structure/table/reinforced, -/obj/item/storage/fancy/donut_box, -/turf/open/floor/plasteel, -/area/bridge) -"aSF" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/mob/living/carbon/monkey/punpun, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aSH" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/table/wood/fancy, -/obj/item/reagent_containers/food/condiment/peppermill{ - pixel_x = -9 - }, -/obj/item/reagent_containers/food/condiment/peppermill{ - dir = 1; - pixel_x = -3 - }, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = -9; - pixel_y = 9 - }, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3; - pixel_y = 9 - }, -/obj/item/reagent_containers/food/condiment/pack/ketchup{ - pixel_x = 5 - }, -/obj/item/reagent_containers/food/condiment/pack/ketchup{ - pixel_x = 5 - }, -/obj/item/reagent_containers/food/condiment/pack/ketchup{ - pixel_x = 5 - }, -/obj/item/reagent_containers/food/condiment/pack/hotsauce{ - pixel_x = 10 - }, -/obj/item/reagent_containers/food/condiment/pack/hotsauce{ - pixel_x = 10 - }, -/obj/item/reagent_containers/food/condiment/pack/mustard{ - pixel_x = 10 - }, -/obj/item/reagent_containers/food/condiment/pack/mustard{ - pixel_x = 10 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aSI" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Kitchen"; - req_access_txt = "28" - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/kitchen) -"aSJ" = ( -/obj/effect/landmark/start/cook, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aSK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aSL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aSM" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aSN" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aSO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aSP" = ( -/obj/machinery/smartfridge, -/turf/closed/wall, -/area/crew_quarters/kitchen) -"aSQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aSR" = ( -/turf/open/floor/plasteel/dark, -/area/hydroponics) -"aSS" = ( -/obj/machinery/seed_extractor, -/turf/open/floor/plasteel/dark, -/area/hydroponics) -"aST" = ( -/obj/machinery/biogenerator, -/turf/open/floor/plasteel/dark, -/area/hydroponics) -"aSU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aSV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aSW" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/turf/open/floor/plasteel, -/area/storage/tools) -"aSX" = ( -/obj/machinery/power/apc{ - areastring = "/area/storage/art"; - dir = 1; - name = "Art Storage"; - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aSY" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/head/that, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aSZ" = ( -/obj/effect/landmark/start/bartender, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aTb" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/wood, -/area/library) -"aTc" = ( -/obj/machinery/door/window/northright{ - dir = 8; - name = "Library Desk Door"; - req_access_txt = "37" - }, -/turf/open/floor/wood, -/area/library) -"aTd" = ( -/obj/structure/table/wood, -/obj/machinery/computer/libraryconsole/bookmanagement, -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/turf/open/floor/wood, -/area/library) -"aTe" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aTf" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/chapel, -/area/chapel/main) -"aTg" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/chapel/main) -"aTh" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/chapel, -/area/chapel/main) -"aTi" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/chapel/main) -"aTj" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aTk" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aTl" = ( -/obj/machinery/vending/cola/random, -/obj/machinery/status_display/evac{ - layer = 4; - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/hallway/secondary/exit) -"aTm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aTn" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "Escape Airlock" - }, -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"aTo" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "Escape Airlock" - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"aTr" = ( -/obj/machinery/door/firedoor, -/obj/machinery/status_display/evac{ - pixel_x = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aTs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/security/vacantoffice) -"aTt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/security/vacantoffice) -"aTu" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aTv" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aTw" = ( -/obj/structure/closet/wardrobe/green, -/obj/machinery/light{ - dir = 8 - }, -/obj/item/clothing/under/costume/kilt, -/obj/item/clothing/under/costume/kilt, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aTy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aTz" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/structure/window{ - dir = 1 - }, -/obj/structure/window{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aTB" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aTC" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/structure/window{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aTD" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/camera{ - c_tag = "Locker Room East"; - dir = 8 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/table, -/obj/item/reagent_containers/rag/towel/random, -/obj/item/razor, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aTE" = ( -/obj/structure/table, -/obj/item/hand_labeler, -/turf/open/floor/plasteel, -/area/storage/art) -"aTF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/structure/table, -/obj/item/camera_film, -/obj/item/camera, -/turf/open/floor/plasteel, -/area/storage/art) -"aTG" = ( -/obj/structure/table, -/obj/item/storage/crayons, -/obj/item/storage/crayons, -/turf/open/floor/plasteel, -/area/storage/art) -"aTH" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/storage/emergency/port) -"aTI" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/storage/emergency/port) -"aTJ" = ( -/obj/machinery/light/small, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/storage/emergency/port) -"aTK" = ( -/obj/structure/rack, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/turf/open/floor/plating, -/area/storage/emergency/port) -"aTL" = ( -/obj/structure/table, -/obj/item/storage/toolbox/artistic{ - icon_state = "yellow"; - item_state = "toolbox_yellow"; - name = "Cable Toolbox"; - pixel_y = 6 - }, -/obj/item/storage/toolbox/emergency, -/turf/open/floor/plasteel, -/area/storage/tools) -"aTM" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/snacks/mint, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aTN" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/kitchen/rollingpin, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aTO" = ( -/obj/structure/table, -/obj/item/book/manual/chef_recipes, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aTP" = ( -/obj/structure/rack, -/obj/item/clothing/gloves/color/fyellow, -/obj/item/clothing/suit/hazardvest, -/obj/item/multitool, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plasteel, -/area/storage/tools) -"aTQ" = ( -/turf/closed/wall, -/area/bridge) -"aTR" = ( -/obj/machinery/computer/prisoner/management, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aTS" = ( -/obj/machinery/computer/secure_data, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aTT" = ( -/obj/machinery/computer/security, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aTU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/bridge) -"aTV" = ( -/obj/structure/table/reinforced, -/obj/machinery/recharger, -/turf/open/floor/plasteel, -/area/bridge) -"aTW" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/bridge) -"aTX" = ( -/turf/open/floor/plasteel, -/area/bridge) -"aTY" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aTZ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aUa" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/bridge) -"aUb" = ( -/obj/machinery/modular_computer/console/preset/engineering, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aUc" = ( -/obj/structure/table/reinforced, -/obj/item/storage/firstaid/regular, -/turf/open/floor/plasteel, -/area/bridge) -"aUd" = ( -/obj/machinery/computer/security/mining, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aUe" = ( -/obj/machinery/computer/cargo/request, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aUg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/chair/comfy/brown, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aUh" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/eastleft{ - name = "Hydroponics Desk"; - req_access_txt = "35" - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/crew_quarters/kitchen) -"aUi" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/hydroponics) -"aUj" = ( -/obj/machinery/vending/hydronutrients, -/turf/open/floor/plasteel/dark, -/area/hydroponics) -"aUk" = ( -/obj/machinery/vending/hydroseeds{ - slogan_delay = 700 - }, -/turf/open/floor/plasteel/dark, -/area/hydroponics) -"aUl" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aUm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aUn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUp" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/window{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUv" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel, -/area/storage/tools) -"aUx" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"aUy" = ( -/obj/machinery/camera{ - c_tag = "Vacant Office"; - dir = 4 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aUz" = ( -/obj/machinery/hydroponics/constructable, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/dark, -/area/hydroponics) -"aUA" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aUB" = ( -/obj/structure/bookcase/random/adult, -/turf/open/floor/wood, -/area/library) -"aUD" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green{ - pixel_x = 1; - pixel_y = 5 - }, -/turf/open/floor/wood, -/area/library) -"aUE" = ( -/obj/machinery/libraryscanner, -/turf/open/floor/wood, -/area/library) -"aUF" = ( -/obj/effect/landmark/start/librarian, -/obj/structure/chair/office/dark, -/turf/open/floor/wood, -/area/library) -"aUG" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aUH" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"aUI" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/chapel/main) -"aUJ" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, -/area/chapel/main) -"aUK" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, -/area/chapel/main) -"aUL" = ( -/obj/machinery/computer/arcade, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/hallway/secondary/exit) -"aUM" = ( -/obj/machinery/camera{ - c_tag = "Arrivals Bay 2"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aUN" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aUO" = ( -/turf/open/floor/wood, -/area/security/vacantoffice) -"aUQ" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aUR" = ( -/obj/structure/table/wood, -/obj/item/pen/red, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aUS" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aUT" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aUU" = ( -/obj/structure/closet/wardrobe/grey, -/obj/machinery/requests_console{ - department = "Locker Room"; - pixel_x = -32 - }, -/obj/item/clothing/under/misc/assistantformal, -/obj/item/clothing/under/misc/assistantformal, -/obj/item/clothing/under/misc/assistantformal, -/obj/item/clothing/under/color/grey, -/obj/item/clothing/under/color/grey, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUW" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aUX" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aUZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aVa" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/structure/closet/toolcloset, -/turf/open/floor/plasteel, -/area/storage/tools) -"aVb" = ( -/obj/structure/sign/warning/electricshock{ - pixel_y = 32 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aVc" = ( -/obj/structure/sign/warning/securearea{ - pixel_x = 32 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/bridge) -"aVd" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/bridge) -"aVe" = ( -/obj/machinery/camera{ - c_tag = "Bridge West"; - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVg" = ( -/obj/structure/chair{ - dir = 1; - name = "Security Station" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVh" = ( -/obj/machinery/power/apc{ - areastring = "/area/hallway/primary/fore"; - dir = 8; - name = "Fore Primary Hallway APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/camera{ - c_tag = "Fore Primary Hallway"; - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aVi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVj" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVk" = ( -/obj/machinery/holopad, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVl" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVm" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVn" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVo" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVp" = ( -/obj/item/beacon, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVq" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVr" = ( -/obj/machinery/camera{ - c_tag = "Bridge East"; - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVs" = ( -/obj/structure/chair{ - dir = 1; - name = "Logistics Station" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aVt" = ( -/obj/structure/sign/warning/securearea{ - pixel_x = -32 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/bridge) -"aVu" = ( -/obj/structure/sign/warning/electricshock{ - pixel_y = 32 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aVv" = ( -/obj/machinery/camera{ - c_tag = "Bridge East Entrance" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aVy" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aVz" = ( -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aVA" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/reagent_containers/food/snacks/pie/cream, -/obj/structure/noticeboard{ - desc = "Tickets for food orders will be placed here. The Chef should make the order and hand it to a waiter, waitress or just let the barkeep serve it."; - name = "Food Orders"; - pixel_y = 26 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aVB" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/condiment/enzyme{ - layer = 5 - }, -/obj/item/stack/packageWrap, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aVC" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aVD" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = -9; - pixel_y = 9 - }, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3; - pixel_y = 9 - }, -/obj/item/reagent_containers/food/condiment/peppermill{ - dir = 1; - pixel_x = -3 - }, -/obj/item/reagent_containers/food/condiment/peppermill{ - pixel_x = -9 - }, -/obj/item/sharpener{ - pixel_x = 10 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aVE" = ( -/obj/structure/table, -/obj/item/storage/box/donkpockets{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = 5 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aVF" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aVH" = ( -/obj/machinery/processor, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aVI" = ( -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aVJ" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/hydroponics/constructable, -/turf/open/floor/plasteel/dark, -/area/hydroponics) -"aVK" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/landmark/start/botanist, -/turf/open/floor/plasteel, -/area/hydroponics) -"aVL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 2; - sortType = 16 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"aVM" = ( -/obj/machinery/hydroponics/constructable, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/hydroponics) -"aVN" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"aVO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/airalarm{ - pixel_y = 25 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"aVQ" = ( -/obj/structure/chair/comfy/black{ - dir = 8 - }, -/turf/open/floor/wood, -/area/library) -"aVS" = ( -/obj/structure/table/wood, -/obj/item/camera_film, -/obj/item/camera_film, -/obj/item/taperecorder, -/obj/item/camera, -/turf/open/floor/wood, -/area/library) -"aVT" = ( -/obj/structure/table/wood, -/obj/item/paper_bin/bundlenatural{ - pixel_x = 6; - pixel_y = 4 - }, -/obj/item/paper_bin{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/pen/fountain, -/obj/item/pen/fourcolor, -/turf/open/floor/wood, -/area/library) -"aVU" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, -/area/chapel/main) -"aVV" = ( -/obj/machinery/camera{ - c_tag = "Chapel South"; - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"aVW" = ( -/obj/item/radio/intercom{ - pixel_x = -25 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/hallway/secondary/exit) -"aVX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aVY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/library) -"aVZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Library" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/library) -"aWa" = ( -/obj/structure/sign/warning/vacuum/external, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"aWb" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/library) -"aWc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"aWd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/library) -"aWe" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Chapel" - }, -/turf/open/floor/carpet, -/area/chapel/main) -"aWf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aWg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/carpet, -/area/chapel/main) -"aWh" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/obj/item/beacon, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aWi" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aWj" = ( -/obj/structure/grille, -/obj/structure/window{ - dir = 8 - }, -/obj/structure/window, -/turf/open/floor/plating, -/area/maintenance/port) -"aWk" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aWl" = ( -/obj/structure/grille, -/obj/structure/window{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aWm" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/light_switch{ - pixel_x = -28 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aWn" = ( -/obj/structure/closet/wardrobe/black, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/under/rank/civilian/janitor/maid, -/obj/item/clothing/under/rank/civilian/janitor/maid, -/obj/item/clothing/under/costume/maid, -/obj/item/clothing/under/costume/maid, -/obj/item/clothing/accessory/maidapron, -/obj/item/clothing/accessory/maidapron, -/obj/item/clothing/head/beret/black, -/obj/item/clothing/head/beret/black, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aWo" = ( -/obj/machinery/camera{ - c_tag = "Locker Room West"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aWp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aWq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aWr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/security/vacantoffice) -"aWs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/security/vacantoffice) -"aWt" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aWu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aWv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aWx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aWy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/crew_quarters/toilet/locker) -"aWz" = ( -/obj/machinery/power/apc{ - areastring = "/area/storage/emergency/port"; - dir = 1; - name = "Port Emergency Storage APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aWA" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aWB" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Detective Maintenance"; - req_access_txt = "4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aWC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/quartermaster/warehouse) -"aWD" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel, -/area/storage/tools) -"aWE" = ( -/obj/machinery/computer/med_data, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aWF" = ( -/obj/structure/closet/toolcloset, -/turf/open/floor/plasteel, -/area/storage/tools) -"aWG" = ( -/obj/machinery/computer/secure_data, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aWH" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aWI" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/bridge) -"aWJ" = ( -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/command/glass{ - name = "Bridge"; - req_access_txt = "19" - }, -/turf/open/floor/plasteel, -/area/bridge) -"aWK" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/bridge) -"aWL" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/command/glass{ - name = "Bridge"; - req_access_txt = "19" - }, -/turf/open/floor/plasteel, -/area/bridge) -"aWM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aWN" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aWO" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/obj/machinery/light, -/obj/machinery/light_switch{ - pixel_x = -6; - pixel_y = -22 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aWP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/bridge) -"aWQ" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aWR" = ( -/obj/structure/fireaxecabinet{ - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aWS" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aWT" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Bridge"; - departmentType = 5; - name = "Bridge RC"; - pixel_y = -30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aWU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aWV" = ( -/obj/machinery/turretid{ - control_area = "/area/ai_monitored/turret_protected/ai_upload"; - name = "AI Upload turret control"; - pixel_y = -25 - }, -/obj/machinery/camera{ - c_tag = "Bridge Center"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aWW" = ( -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/bridge"; - name = "Bridge APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aWX" = ( -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aWY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aWZ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/bridge) -"aXa" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aXb" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/bridge) -"aXc" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/command/glass{ - name = "Bridge"; - req_access_txt = "19" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aXd" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aXe" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/command/glass{ - name = "Bridge"; - req_access_txt = "19" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aXf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aXg" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aXh" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aXi" = ( -/obj/structure/chair/sofa/right, -/obj/structure/window{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aXj" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/item/paper_bin/bundlenatural{ - pixel_x = 6; - pixel_y = 4 - }, -/obj/item/pen/fountain{ - pixel_x = 6 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/item/pen/fourcolor, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aXk" = ( -/obj/structure/table/reinforced, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = 32 - }, -/obj/item/book/manual/wiki/barman_recipes, -/obj/item/reagent_containers/rag, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aXl" = ( -/obj/machinery/door/window/southright{ - name = "Bar Door"; - req_one_access_txt = "25;28" - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"aXm" = ( -/obj/effect/landmark/start/cook, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aXn" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder, -/obj/machinery/requests_console{ - department = "Kitchen"; - departmentType = 2; - pixel_x = 30 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aXo" = ( -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aXp" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restrooms" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/locker) -"aXq" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"aXr" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/window{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aXt" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aXu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/library) -"aXv" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aXw" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/structure/window{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aXy" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Chapel" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/chapel/main) -"aXz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/carpet, -/area/chapel/main) -"aXB" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/chapel/main) -"aXC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aXD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/hallway/secondary/exit) -"aXE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/closed/wall, -/area/quartermaster/warehouse) -"aXF" = ( -/obj/structure/sign/warning/fire{ - desc = "A sign that states the labeled room's number."; - dir = 10; - icon_state = "roomnum"; - name = "Room Number 6"; - pixel_y = 24 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/washing_machine{ - pixel_x = 7; - pixel_y = 7 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"aXG" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-05" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aXI" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "Port Docking Bay 2" - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"aXJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/quartermaster/warehouse) -"aXK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/security/detectives_office) -"aXL" = ( -/turf/open/floor/carpet, -/area/security/vacantoffice) -"aXM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/machinery/door/airlock/maintenance{ - name = "Cargo Bay Warehouse Maintenance"; - req_access_txt = "31" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aXN" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aXP" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/maintenance/port) -"aXQ" = ( -/turf/closed/wall, -/area/crew_quarters/toilet/locker) -"aXR" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"aXS" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/closed/wall, -/area/hydroponics) -"aXT" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Library" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/library) -"aXU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/library) -"aXV" = ( -/obj/machinery/holopad, -/turf/open/floor/carpet, -/area/library) -"aXW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/carpet, -/area/chapel/main) -"aXX" = ( -/obj/machinery/door/airlock/engineering/abandoned{ - abandoned = 0; - name = "Vacant Office A"; - req_access_txt = "32" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aXY" = ( -/obj/structure/chair/office/dark, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aXZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/security/vacantoffice) -"aYb" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aYc" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/port"; - dir = 8; - name = "Port Maintenance APC"; - pixel_x = -27; - pixel_y = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aYd" = ( -/obj/structure/chair/office/dark, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aYe" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/locker) -"aYf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aYg" = ( -/obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/construction) -"aYi" = ( -/obj/structure/closet/secure_closet/detective, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aYj" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/button/door{ - id = "kanyewest"; - name = "Privacy Shutters"; - pixel_y = 24 - }, -/obj/structure/rack, -/obj/item/storage/briefcase, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aYk" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aYl" = ( -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aYm" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aYn" = ( -/obj/machinery/camera{ - c_tag = "Bridge West Entrance"; - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aYo" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/bridge) -"aYp" = ( -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/bridge) -"aYq" = ( -/obj/structure/closet/emcloset, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aYr" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aYs" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aYt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"aYu" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aYv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"aYw" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/highsecurity{ - name = "AI Upload Access"; - req_access_txt = "16" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"aYx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"aYy" = ( -/obj/machinery/status_display/ai, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"aYz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"aYA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"aYB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"aYC" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/structure/filingcabinet/filingcabinet, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aYD" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/bridge) -"aYE" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aYF" = ( -/obj/machinery/power/apc{ - areastring = "/area/hallway/primary/central"; - name = "Central Hall APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aYG" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aYJ" = ( -/obj/machinery/light_switch{ - pixel_y = -25 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aYK" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock{ - name = "Kitchen"; - req_access_txt = "28" - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/kitchen) -"aYL" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aYM" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/button/door{ - id = "kitchen"; - name = "Kitchen Shutters Control"; - pixel_x = -1; - pixel_y = -24; - req_access_txt = "28" - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aYN" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"aYO" = ( -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/plasteel, -/area/hydroponics) -"aYQ" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"aYR" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/start/botanist, -/turf/open/floor/plasteel, -/area/hydroponics) -"aYS" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/obj/structure/window, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aYT" = ( -/obj/machinery/camera{ - c_tag = "Hydroponics South"; - dir = 8 - }, -/obj/structure/reagent_dispensers/watertank/high, -/turf/open/floor/plasteel, -/area/hydroponics) -"aYU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aYV" = ( -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"aYW" = ( -/turf/open/floor/carpet, -/area/library) -"aYY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/library) -"aYZ" = ( -/obj/structure/table/wood, -/obj/item/storage/box/evidence, -/obj/item/hand_labeler{ - pixel_x = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/taperecorder, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aZa" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aZb" = ( -/obj/machinery/camera{ - c_tag = "Bar South"; - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"aZc" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"aZd" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-08" - }, -/turf/open/floor/wood, -/area/library) -"aZe" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Chapel" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/chapel/main) -"aZf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/chapel/main) -"aZg" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/carpet, -/area/chapel/main) -"aZh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/chapel/main) -"aZi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aZj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/hallway/secondary/exit) -"aZk" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aZl" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aZm" = ( -/obj/machinery/camera{ - c_tag = "Escape Arm Airlocks"; - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"aZn" = ( -/obj/structure/table/wood, -/obj/item/folder/blue, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/security/vacantoffice) -"aZo" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/structure/mirror{ - pixel_x = 28 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/locker) -"aZp" = ( -/obj/structure/rack, -/obj/item/electronics/apc, -/obj/item/stock_parts/cell{ - maxcharge = 2000 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"aZq" = ( -/obj/machinery/button/door{ - id = "heads_meeting"; - name = "Security Shutters"; - pixel_y = 24 - }, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"aZr" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aZs" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aZt" = ( -/obj/structure/toilet/secret/low_loot{ - dir = 4 - }, -/obj/structure/mirror{ - pixel_y = 32 - }, -/obj/structure/sink{ - dir = 1; - pixel_y = 25 - }, -/obj/machinery/button/door{ - id = "LockerShitter1"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 14; - pixel_y = 38; - specialfunctions = 4 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet/locker) -"aZu" = ( -/obj/machinery/photocopier, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"aZv" = ( -/obj/machinery/door/airlock{ - id_tag = "LockerShitter1"; - name = "Unit 1" - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet/locker) -"aZw" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/locker) -"aZx" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/structure/window, -/obj/structure/window{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aZy" = ( -/obj/machinery/camera{ - c_tag = "Conference Room" - }, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"aZz" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"aZA" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aZB" = ( -/obj/machinery/portable_atmospherics/pump, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"aZC" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"aZD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"aZE" = ( -/turf/closed/wall, -/area/quartermaster/storage) -"aZF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/quartermaster/warehouse) -"aZG" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"aZH" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "packageSort2" - }, -/turf/open/floor/plating, -/area/quartermaster/sorting) -"aZI" = ( -/obj/structure/rack, -/obj/item/stack/sheet/cardboard, -/obj/item/stack/rods/fifty, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"aZJ" = ( -/obj/structure/table/wood, -/obj/item/camera/detective, -/turf/open/floor/carpet, -/area/security/detectives_office) -"aZK" = ( -/turf/closed/wall, -/area/quartermaster/sorting) -"aZL" = ( -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"aZM" = ( -/turf/closed/wall/r_wall, -/area/bridge/meeting_room) -"aZN" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aZO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/bridge/meeting_room) -"aZP" = ( -/turf/closed/wall, -/area/bridge/meeting_room) -"aZQ" = ( -/obj/machinery/door/airlock/command{ - name = "Conference Room"; - req_access_txt = "19" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"aZR" = ( -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"aZS" = ( -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"aZT" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"aZU" = ( -/obj/machinery/porta_turret/ai{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"aZV" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/captain) -"aZW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/captain) -"aZX" = ( -/obj/machinery/door/airlock/command{ - name = "Captain's Office"; - req_access_txt = "20" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"aZY" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"aZZ" = ( -/obj/structure/chair/sofa{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"baa" = ( -/obj/structure/chair/sofa/left{ - dir = 1 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bab" = ( -/obj/machinery/light, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bac" = ( -/obj/structure/noticeboard{ - pixel_y = -27 - }, -/obj/structure/chair/sofa/right{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bad" = ( -/obj/machinery/light, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"baf" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bag" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bah" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = -30 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bai" = ( -/obj/machinery/light/small, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"baj" = ( -/obj/structure/table/reinforced, -/obj/item/storage/fancy/donut_box, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchen"; - name = "kitchen shutters" - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bak" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchen"; - name = "kitchen shutters" - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"bal" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"bam" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hydroponics) -"ban" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/northleft{ - name = "Hydroponics Desk"; - req_access_txt = "35" - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"bao" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"bap" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/westright{ - dir = 1; - name = "Hydroponics Desk"; - req_access_txt = "35" - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"baq" = ( -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"bar" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bas" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/wood, -/area/library) -"bat" = ( -/obj/structure/table/wood, -/obj/item/pen/red, -/turf/open/floor/wood, -/area/library) -"bau" = ( -/obj/structure/chair/comfy/black{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/wood, -/area/library) -"bav" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/wood, -/area/library) -"baw" = ( -/obj/machinery/camera{ - c_tag = "Locker Room Toilets"; - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/locker) -"bax" = ( -/obj/structure/chair/comfy/black{ - dir = 4 - }, -/turf/open/floor/wood, -/area/library) -"bay" = ( -/obj/structure/chair/comfy/black, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"baz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"baA" = ( -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, -/area/chapel/main) -"baB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"baC" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"baD" = ( -/obj/machinery/power/apc{ - areastring = "/area/hallway/secondary/exit"; - dir = 8; - name = "Escape Hallway APC"; - pixel_x = -25 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/hallway/secondary/exit) -"baE" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"baF" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"baG" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"baH" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/security/vacantoffice) -"baI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"baJ" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"baK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"baL" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"baM" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/toilet/locker"; - dir = 4; - name = "Locker Restrooms APC"; - pixel_x = 27; - pixel_y = 2 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"baN" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"baO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/mirror{ - pixel_x = 28 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/locker) -"baP" = ( -/obj/structure/table/wood, -/obj/item/storage/fancy/donut_box, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"baQ" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"baR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"baS" = ( -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"baT" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"baU" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"baV" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - name = "Detective's Office"; - req_access_txt = "4" - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"baW" = ( -/obj/item/storage/secure/safe{ - pixel_x = -23 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"baX" = ( -/obj/structure/chair/comfy/brown, -/obj/effect/landmark/start/detective, -/turf/open/floor/carpet, -/area/security/detectives_office) -"baY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/closet/crate, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"baZ" = ( -/obj/machinery/status_display/evac{ - layer = 4; - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bba" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bbb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"bbc" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bbd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bbe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bbf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bbg" = ( -/obj/effect/landmark/blobstart, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bbh" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bbi" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bbj" = ( -/obj/structure/table, -/obj/item/aiModule/reset, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"bbk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"bbl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"bbm" = ( -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"bbn" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"bbo" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bbp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"bbq" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet/locker) -"bbs" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"bbt" = ( -/obj/structure/closet/crate, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"bbu" = ( -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/heads/captain"; - dir = 1; - name = "Captain's Office APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bbv" = ( -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"bbw" = ( -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bbx" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Diner" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/bar) -"bby" = ( -/obj/structure/sign/barsign, -/turf/closed/wall, -/area/crew_quarters/bar) -"bbz" = ( -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"bbA" = ( -/obj/machinery/camera{ - c_tag = "Starboard Primary Hallway 2" - }, -/obj/structure/sign/poster/contraband/eat{ - pixel_y = 32; - poster_item_desc = "This poster promotes obesity, it also promotes giving the Chef a reason to keep their job." - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"bbB" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Hydroponics"; - req_access_txt = "35" - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"bbC" = ( -/obj/structure/chair/comfy/black{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bbD" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/library) -"bbE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/library) -"bbF" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/chapel/main) -"bbG" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/hallway/secondary/exit) -"bbH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bbI" = ( -/obj/machinery/power/apc{ - areastring = "/area/security/vacantoffice"; - dir = 8; - name = "Vacant Office APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bbJ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bbK" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bbL" = ( -/obj/machinery/door/airlock{ - id_tag = "LockerShitter2"; - name = "Unit 2" - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet/locker) -"bbM" = ( -/obj/item/book/manual/wiki/security_space_law, -/obj/structure/table/wood, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bbO" = ( -/obj/machinery/washing_machine, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/locker) -"bbP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"bbQ" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/bottle/whiskey{ - pixel_x = 3 - }, -/obj/item/lighter, -/obj/item/restraints/handcuffs, -/turf/open/floor/carpet, -/area/security/detectives_office) -"bbR" = ( -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bbS" = ( -/obj/structure/closet/crate, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"bbT" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green, -/turf/open/floor/carpet, -/area/security/detectives_office) -"bbV" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bbW" = ( -/obj/machinery/door/poddoor/preopen{ - id = "heads_meeting"; - name = "privacy shutters" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/bridge/meeting_room) -"bbX" = ( -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bbY" = ( -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/structure/table, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bca" = ( -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bcb" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bcc" = ( -/obj/machinery/vending/snack/random, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bcd" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bce" = ( -/obj/structure/table, -/obj/item/aiModule/supplied/quarantine, -/obj/machinery/camera/motion{ - dir = 4; - network = list("aiupload") - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"bcf" = ( -/obj/machinery/holopad, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"bcg" = ( -/obj/structure/table, -/obj/item/aiModule/supplied/freeform, -/obj/structure/sign/plaques/kiddie{ - pixel_x = 32 - }, -/obj/machinery/camera/motion{ - dir = 8; - network = list("aiupload") - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"bch" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bci" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bcj" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/junction{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bck" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bcl" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/maintenance/disposal) -"bcm" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"bcn" = ( -/obj/structure/displaycase/captain, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bco" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Dorm"; - location = "HOP2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bcp" = ( -/obj/structure/sign/directions/evac{ - dir = 4; - pixel_x = 32; - pixel_y = 28 - }, -/obj/structure/sign/directions/security{ - dir = 1; - pixel_x = 32; - pixel_y = 36 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bcq" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bcr" = ( -/obj/machinery/camera{ - c_tag = "Starboard Primary Hallway" - }, -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bcs" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bct" = ( -/obj/structure/chair/wood/wings, -/turf/open/floor/plating, -/area/maintenance/port) -"bcu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/maintenance{ - name = "Locker Room Maintenance"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bcv" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bcw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/crew_quarters/locker) -"bcx" = ( -/obj/machinery/camera{ - c_tag = "Starboard Primary Hallway 5" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bcy" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/white/corner{ - dir = 4 - }, -/area/hallway/secondary/exit) -"bcz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bcA" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bcB" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_x = 32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bcC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bcD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"bcE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"bcF" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"bcG" = ( -/obj/structure/table/wood, -/obj/machinery/computer/security/wooden_tv, -/turf/open/floor/carpet, -/area/security/detectives_office) -"bcH" = ( -/obj/structure/table/wood, -/obj/item/storage/fancy/cigarettes, -/obj/item/clothing/glasses/sunglasses, -/turf/open/floor/carpet, -/area/security/detectives_office) -"bcI" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/maintenance/port) -"bcJ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/closet/crate/freezer, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"bcK" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port) -"bcL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/junction/flip{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bcM" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bcN" = ( -/obj/item/folder/blue, -/obj/structure/table/wood, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bcP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"bcQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"bcR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"bcS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"bcU" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/bar) -"bcV" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/structure/filingcabinet, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"bcX" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "heads_meeting"; - name = "privacy shutters" - }, -/turf/open/floor/plating, -/area/bridge/meeting_room) -"bcY" = ( -/obj/item/hand_labeler, -/obj/item/assembly/timer, -/obj/structure/table, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bcZ" = ( -/obj/structure/table/wood, -/obj/item/radio/intercom{ - dir = 8; - freerange = 1; - name = "Station Intercom (Command)" - }, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bda" = ( -/obj/structure/chair/comfy/black{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bdb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white/side, -/area/hallway/primary/starboard) -"bdc" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = -30 - }, -/obj/machinery/light, -/turf/open/floor/plasteel/white/corner, -/area/hallway/primary/starboard) -"bdd" = ( -/obj/machinery/vending/cola/random, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bde" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bdf" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"bdg" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"bdh" = ( -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"bdi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/vending/wardrobe/cap_wardrobe, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bdj" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bdk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bdl" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bdm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bdn" = ( -/obj/machinery/camera{ - c_tag = "Central Hallway East"; - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/status_display/evac{ - pixel_x = -32 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bdo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bdp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bdq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bdr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bds" = ( -/obj/machinery/camera{ - c_tag = "Starboard Primary Hallway 4"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bdt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bdu" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bdv" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=HOP2"; - location = "Stbd" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bdw" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bdx" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bdy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bdz" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bdA" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "Cargo Escape Airlock" - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"bdB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bdC" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 1; - sortType = 1 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bdD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bdE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/structure/sign/poster/contraband/have_a_puff{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"bdF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bdG" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bdH" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bdI" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bdJ" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/turf/open/floor/plating, -/area/maintenance/port) -"bdK" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bdL" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/structure/bedsheetbin/color, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/locker) -"bdN" = ( -/obj/machinery/door/airlock/medical{ - name = "Morgue"; - req_access_txt = "6" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"bdO" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bdP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/science/robotics/mechbay) -"bdQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/closed/wall, -/area/maintenance/disposal) -"bdR" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bdS" = ( -/obj/structure/closet/crate/internals, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"bdT" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/disposal"; - dir = 8; - name = "Disposal APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bdU" = ( -/obj/structure/closet/crate/medical, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"bdX" = ( -/obj/item/storage/fancy/donut_box, -/obj/structure/table, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bdY" = ( -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/structure/table/wood, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"bdZ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bea" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"beb" = ( -/obj/structure/table, -/obj/item/aiModule/core/full/asimov, -/obj/item/aiModule/core/freeformcore, -/obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Core Modules"; - req_access_txt = "20" - }, -/obj/structure/window/reinforced, -/obj/effect/spawner/lootdrop/aimodule_harmless, -/obj/effect/spawner/lootdrop/aimodule_neutral, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/aiModule/core/full/custom, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"bec" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"bed" = ( -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/ai_monitored/turret_protected/ai_upload"; - name = "Upload APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"bee" = ( -/obj/machinery/computer/upload/ai{ - dir = 1 - }, -/obj/machinery/flasher{ - id = "AI"; - pixel_y = -21 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"bef" = ( -/obj/machinery/computer/upload/borg{ - dir = 1 - }, -/obj/item/radio/intercom{ - broadcasting = 1; - frequency = 1447; - listening = 0; - name = "Station Intercom (AI Private)"; - pixel_y = -29 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai_upload) -"beg" = ( -/obj/structure/table, -/obj/item/aiModule/supplied/oxygen, -/obj/item/aiModule/zeroth/oneHuman, -/obj/machinery/door/window{ - dir = 8; - name = "High-Risk Modules"; - req_access_txt = "20" - }, -/obj/item/aiModule/reset/purge, -/obj/structure/window/reinforced, -/obj/effect/spawner/lootdrop/aimodule_harmful, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/aiModule/supplied/protectStation, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"beh" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"bej" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bek" = ( -/obj/structure/chair, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bel" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bem" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"ben" = ( -/obj/structure/table/wood, -/obj/machinery/camera{ - c_tag = "Captain's Office"; - dir = 8 - }, -/obj/item/storage/lockbox/medal, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"beo" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Stbd"; - location = "HOP" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bep" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"beq" = ( -/obj/structure/sign/directions/medical{ - dir = 4; - pixel_x = 32; - pixel_y = -24 - }, -/obj/structure/sign/directions/science{ - dir = 4; - pixel_x = 32; - pixel_y = -32 - }, -/obj/structure/sign/directions/engineering{ - pixel_x = 32; - pixel_y = -40 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"ber" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = -30 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bes" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bet" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"beu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bev" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/structure/sign/directions/evac{ - dir = 4; - pixel_y = -25 - }, -/obj/structure/sign/directions/science{ - dir = 4; - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bew" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bex" = ( -/obj/machinery/button/door{ - id = "qm_warehouse"; - name = "Warehouse Door Control"; - pixel_x = -1; - pixel_y = -24; - req_access_txt = "31" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/structure/closet/crate, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"bey" = ( -/turf/open/floor/plasteel/white/corner{ - dir = 8 - }, -/area/hallway/primary/starboard) -"bez" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"beA" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "packageSort2" - }, -/obj/structure/plasticflaps, -/turf/open/floor/plating, -/area/quartermaster/sorting) -"beB" = ( -/obj/machinery/camera{ - c_tag = "Starboard Primary Hallway 3"; - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"beC" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"beD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/closet/crate, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"beE" = ( -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"beF" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"beG" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"beH" = ( -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/obj/machinery/light, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner, -/area/hallway/secondary/exit) -"beI" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner, -/area/hallway/secondary/exit) -"beJ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white/corner{ - dir = 8 - }, -/area/hallway/secondary/exit) -"beK" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - name = "Port Docking Bay 4" - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"beL" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - name = "Port Docking Bay 3" - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"beM" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"beN" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"beO" = ( -/turf/closed/wall, -/area/maintenance/disposal) -"beP" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "garbage" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"beQ" = ( -/obj/structure/disposaloutlet{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"beR" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "garbage" - }, -/obj/machinery/recycler, -/obj/structure/sign/warning/securearea{ - name = "\improper STAY CLEAR HEAVY MACHINERY"; - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"beS" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "garbage" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"beT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/maintenance/disposal) -"beU" = ( -/obj/machinery/conveyor{ - dir = 6; - id = "garbage" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"beV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/quartermaster/sorting) -"beW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/obj/structure/table/reinforced, -/obj/item/stack/wrapping_paper{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/item/stack/packageWrap{ - pixel_x = -1; - pixel_y = -1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"beX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"beY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"beZ" = ( -/obj/machinery/mineral/stacking_unit_console{ - machinedir = 8 - }, -/turf/closed/wall, -/area/maintenance/disposal) -"bfa" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/mineral/wood/fifty{ - amount = 20 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bfb" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 - }, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/chapel/main) -"bfc" = ( -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/locker"; - dir = 1; - name = "Locker Room APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bfd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bfe" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/port) -"bff" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bfg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/stack/sheet/cardboard, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"bfh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/port) -"bfi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"bfj" = ( -/obj/structure/disposalpipe/trunk, -/obj/structure/disposaloutlet{ - dir = 4 - }, -/turf/open/floor/plating, -/area/quartermaster/sorting) -"bfl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"bfm" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/quartermaster/office) -"bfn" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plating, -/area/quartermaster/sorting) -"bfo" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bfp" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Bridge"; - departmentType = 5; - name = "Bridge RC"; - pixel_y = -30 - }, -/obj/machinery/light, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bfq" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bfr" = ( -/obj/structure/noticeboard{ - dir = 8; - pixel_x = 27 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bfs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"bft" = ( -/obj/machinery/status_display/ai, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"bfu" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"bfv" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"bfw" = ( -/obj/machinery/status_display/evac, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"bfx" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"bfy" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Captain's Desk"; - departmentType = 5; - name = "Captain RC"; - pixel_x = -30 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bfz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai_upload) -"bfA" = ( -/obj/structure/table/wood, -/obj/item/hand_tele, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bfB" = ( -/obj/structure/table/wood, -/obj/item/folder/blue, -/obj/item/stamp/captain, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bfC" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bfD" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bfE" = ( -/obj/structure/table/wood, -/obj/item/pinpointer/nuke, -/obj/item/disk/nuclear, -/obj/item/storage/secure/safe{ - pixel_x = 35; - pixel_y = 5 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bfF" = ( -/turf/closed/wall, -/area/medical/chemistry) -"bfG" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/medical/medbay/central) -"bfH" = ( -/obj/structure/sign/departments/medbay/alt, -/turf/closed/wall, -/area/medical/medbay/central) -"bfI" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bfJ" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bfK" = ( -/turf/closed/wall, -/area/security/checkpoint/medical) -"bfL" = ( -/turf/closed/wall, -/area/medical/morgue) -"bfM" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bfN" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"bfO" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bfP" = ( -/obj/machinery/power/apc{ - areastring = "/area/hallway/primary/starboard"; - name = "Starboard Primary Hallway APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bfQ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/quartermaster/sorting) -"bfR" = ( -/obj/structure/table/reinforced, -/obj/item/hand_labeler{ - pixel_y = 8 - }, -/obj/item/hand_labeler{ - pixel_y = 8 - }, -/obj/item/storage/box, -/obj/item/storage/box, -/obj/item/storage/box, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"bfS" = ( -/turf/closed/wall, -/area/storage/emergency/starboard) -"bfT" = ( -/turf/closed/wall, -/area/science/robotics/mechbay) -"bfU" = ( -/obj/effect/turf_decal/loading_area{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bfV" = ( -/turf/closed/wall/r_wall, -/area/science/robotics/lab) -"bfW" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-13" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bfX" = ( -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bfY" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bfZ" = ( -/obj/structure/sign/warning/securearea{ - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bga" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bgb" = ( -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-10" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"bgc" = ( -/turf/closed/wall/r_wall, -/area/science/lab) -"bgd" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner, -/area/hallway/secondary/exit) -"bge" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/hallway/secondary/exit) -"bgf" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bgg" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"bgh" = ( -/obj/machinery/vending/cigarette, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"bgi" = ( -/obj/machinery/camera{ - c_tag = "Arrivals Bay 3 & 4"; - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"bgj" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "garbage" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bgk" = ( -/obj/machinery/conveyor{ - dir = 10; - id = "garbage" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bgm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bgn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bgo" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/science/robotics/mechbay"; - dir = 4; - name = "Mech Bay APC"; - pixel_x = 26 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"bgp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/white, -/area/science/research) -"bgq" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bgr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plating, -/area/maintenance/port) -"bgs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/structure/table/wood/fancy/purple, -/turf/open/floor/plating, -/area/maintenance/port) -"bgt" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port) -"bgu" = ( -/obj/machinery/button/door{ - id = "qm_warehouse"; - name = "Warehouse Door Control"; - pixel_x = -1; - pixel_y = 24; - req_access_txt = "31" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bgv" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/quartermaster/office) -"bgw" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bgy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/closed/wall, -/area/quartermaster/warehouse) -"bgz" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bgA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"bgB" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/closed/wall, -/area/quartermaster/sorting) -"bgC" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/closed/wall, -/area/quartermaster/sorting) -"bgD" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "packageSort2" - }, -/obj/machinery/camera{ - c_tag = "Cargo Delivery Office"; - dir = 4 - }, -/obj/machinery/requests_console{ - department = "Cargo Bay"; - departmentType = 2; - pixel_x = -30 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"bgE" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"bgF" = ( -/obj/structure/table/glass, -/obj/machinery/reagentgrinder, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bgG" = ( -/obj/machinery/camera{ - c_tag = "Central Hallway West"; - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bgH" = ( -/obj/machinery/door/window/eastright{ - dir = 1; - name = "Bridge Delivery"; - req_access_txt = "19" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/bridge/meeting_room) -"bgI" = ( -/obj/machinery/computer/slot_machine, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bgJ" = ( -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bgK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bgL" = ( -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_y = -32 - }, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bgM" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bgN" = ( -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"bgO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"bgP" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bgQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bgS" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bgT" = ( -/obj/machinery/computer/communications{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bgU" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/obj/effect/landmark/start/captain, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bgV" = ( -/obj/structure/table/wood, -/obj/item/book/manual/wiki/security_space_law, -/obj/item/coin/plasma, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bgW" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/holopad, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bgX" = ( -/obj/structure/table/wood, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/item/camera, -/obj/item/storage/photo_album{ - pixel_y = -10 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bgY" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bgZ" = ( -/obj/machinery/power/apc{ - areastring = "/area/medical/chemistry"; - dir = 1; - name = "Chemistry APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bha" = ( -/obj/machinery/vending/wardrobe/chem_wardrobe, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bhb" = ( -/obj/machinery/chem_dispenser, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bhc" = ( -/obj/machinery/camera{ - c_tag = "Chemistry" - }, -/obj/machinery/chem_heater, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bhd" = ( -/obj/machinery/chem_master, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bhe" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bhg" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bhh" = ( -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bhi" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/checkpoint/medical) -"bhj" = ( -/obj/machinery/camera{ - c_tag = "Security Post - Medbay" - }, -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; - pixel_y = 30 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bhk" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/pen, -/obj/machinery/button/door{ - desc = "A remote control switch for the medbay foyer."; - id = "MedbayFoyer"; - name = "Medbay Doors Control"; - normaldoorcontrol = 1; - pixel_y = 26; - req_access_txt = "5" - }, -/obj/item/book/manual/wiki/security_space_law, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bhl" = ( -/obj/structure/filingcabinet, -/obj/machinery/newscaster{ - pixel_x = 32 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bhm" = ( -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"bhn" = ( -/obj/structure/table, -/obj/item/storage/box/bodybags, -/obj/item/pen, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"bho" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/bodycontainer/morgue{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"bhp" = ( -/obj/machinery/power/apc{ - areastring = "/area/medical/morgue"; - dir = 1; - name = "Morgue APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"bhq" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"bhr" = ( -/obj/machinery/door/airlock{ - name = "Starboard Emergency Storage" - }, -/turf/open/floor/plating, -/area/storage/emergency/starboard) -"bhs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bht" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - name = "Mech Bay"; - req_access_txt = "29" - }, -/turf/open/floor/plasteel, -/area/science/robotics/mechbay) -"bhu" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters{ - id = "Skynet_launch"; - name = "mech bay" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/science/robotics/mechbay) -"bhv" = ( -/obj/machinery/airalarm{ - pixel_y = 25 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"bhw" = ( -/obj/machinery/computer/rdconsole/robotics, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"bhx" = ( -/obj/machinery/requests_console{ - department = "Robotics"; - departmentType = 2; - name = "Robotics RC"; - pixel_y = 30; - receive_ore_updates = 1 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/rnd/production/circuit_imprinter, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"bhy" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "robotics"; - name = "robotics lab shutters" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/science/robotics/lab) -"bhz" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/eastright{ - base_state = "left"; - dir = 2; - icon_state = "left"; - name = "Robotics Desk"; - req_access_txt = "29" - }, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "robotics"; - name = "robotics lab shutters" - }, -/turf/open/floor/plating, -/area/science/robotics/lab) -"bhA" = ( -/turf/closed/wall, -/area/science/research) -"bhB" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/research{ - name = "Research Division Access"; - req_access_txt = "47" - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"bhC" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "rnd"; - name = "research lab shutters" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/science/lab) -"bhD" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/southright{ - name = "Research and Development Desk"; - req_one_access_txt = "7;29" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "rnd"; - name = "research lab shutters" - }, -/turf/open/floor/plating, -/area/science/lab) -"bhE" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass/fifty{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/sheet/metal/fifty, -/obj/item/clothing/glasses/welding, -/turf/open/floor/plasteel/white, -/area/science/lab) -"bhF" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"bhG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/starboard) -"bhH" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bhI" = ( -/obj/machinery/conveyor{ - id = "garbage" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bhJ" = ( -/obj/structure/disposalpipe/trunk{ - dir = 2 - }, -/obj/machinery/disposal/deliveryChute{ - dir = 4 - }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right"; - layer = 3 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bhL" = ( -/obj/machinery/mineral/stacking_machine{ - input_dir = 1; - stack_amt = 10 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bhM" = ( -/turf/open/floor/circuit, -/area/science/robotics/mechbay) -"bhN" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bhO" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bhQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/port) -"bhR" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/window{ - dir = 1 - }, -/obj/structure/window, -/turf/open/floor/plating, -/area/maintenance/port) -"bhS" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/window{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bhT" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/window, -/turf/open/floor/plating, -/area/maintenance/port) -"bhU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/science/research) -"bhV" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"bhW" = ( -/obj/machinery/door/poddoor/shutters{ - id = "qm_warehouse"; - name = "warehouse shutters" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"bhX" = ( -/obj/structure/disposalpipe/sorting/wrap{ - dir = 1 - }, -/turf/closed/wall, -/area/quartermaster/sorting) -"bhY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/quartermaster/storage) -"bhZ" = ( -/obj/machinery/door/window/eastleft{ - icon_state = "right"; - name = "Incoming Mail"; - req_access_txt = "50" - }, -/turf/open/floor/plating, -/area/quartermaster/sorting) -"bia" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/disposaloutlet{ - dir = 4 - }, -/turf/open/floor/plating, -/area/quartermaster/sorting) -"bib" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = 29 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"bic" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bid" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bie" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=1"; - dir = 1; - freq = 1400; - location = "Bridge" - }, -/obj/structure/plasticflaps/opaque, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/bridge/meeting_room) -"bif" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"big" = ( -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"bih" = ( -/obj/effect/turf_decal/bot_white/right, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"bii" = ( -/obj/effect/turf_decal/bot_white/left, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"bij" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"bik" = ( -/obj/item/radio/intercom{ - dir = 8; - freerange = 1; - name = "Station Intercom (Command)"; - pixel_x = -28 - }, -/obj/machinery/suit_storage_unit/captain, -/obj/machinery/light{ - light_color = "#c9d3e8" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bil" = ( -/obj/machinery/computer/card{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bim" = ( -/obj/structure/table/wood, -/obj/machinery/recharger, -/obj/item/melee/chainofcommand, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bin" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bio" = ( -/obj/machinery/requests_console{ - department = "Chemistry"; - departmentType = 2; - pixel_x = -30; - receive_ore_updates = 1 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/closet/secure_closet/chemical, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bip" = ( -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"biq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bir" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/eastright{ - dir = 8; - name = "Chemistry Desk"; - req_access_txt = "33" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/chemistry) -"bis" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/effect/landmark/start/chemist, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bit" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - alpha = 255; - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"biu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"biv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"biw" = ( -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bix" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/effect/landmark/start/depsec/medical, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"biy" = ( -/obj/machinery/computer/secure_data{ - dir = 8 - }, -/obj/item/radio/intercom{ - pixel_x = 25 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"biz" = ( -/obj/structure/bodycontainer/morgue, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"biA" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"biB" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"biC" = ( -/turf/open/floor/plating, -/area/storage/emergency/starboard) -"biD" = ( -/obj/item/storage/box/lights/mixed, -/turf/open/floor/plating, -/area/storage/emergency/starboard) -"biE" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/item/extinguisher, -/turf/open/floor/plating, -/area/storage/emergency/starboard) -"biF" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 1; - sortType = 2 - }, -/obj/structure/noticeboard{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"biG" = ( -/obj/machinery/mech_bay_recharge_port{ - dir = 2 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/science/robotics/mechbay) -"biH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/science/robotics/mechbay) -"biI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/circuit, -/area/science/robotics/mechbay) -"biJ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/circuit, -/area/science/robotics/mechbay) -"biK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"biL" = ( -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"biN" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"biO" = ( -/obj/machinery/camera{ - c_tag = "Robotics Lab"; - network = list("ss13","rd") - }, -/obj/machinery/button/door{ - id = "robotics"; - name = "Shutters Control Button"; - pixel_x = 6; - pixel_y = 24; - req_access_txt = "29" - }, -/obj/structure/table, -/obj/item/book/manual/wiki/robotics_cyborgs{ - pixel_x = 2; - pixel_y = 5 - }, -/obj/item/reagent_containers/glass/beaker/large, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"biP" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"biQ" = ( -/obj/structure/chair/stool, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"biR" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"biS" = ( -/obj/machinery/camera{ - c_tag = "Research Division Access" - }, -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"biT" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"biU" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"biV" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/start/scientist, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"biW" = ( -/turf/open/floor/plasteel/white, -/area/science/lab) -"biX" = ( -/obj/machinery/camera{ - c_tag = "Research and Development"; - network = list("ss13","rd"); - pixel_x = 22 - }, -/obj/machinery/button/door{ - id = "rnd"; - name = "Shutters Control Button"; - pixel_x = -6; - pixel_y = 24; - req_access_txt = "47" - }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"biY" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bja" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bjb" = ( -/obj/machinery/conveyor{ - id = "garbage" - }, -/obj/structure/sign/warning/vacuum{ - pixel_x = -32 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bjc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bjd" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bje" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bjf" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Disposal Access"; - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bjg" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bjh" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bji" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bjj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bjk" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bjl" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"bjm" = ( -/obj/structure/table, -/obj/item/hand_labeler, -/obj/item/hand_labeler, -/obj/machinery/requests_console{ - department = "Cargo Bay"; - departmentType = 2; - pixel_y = 30 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bjn" = ( -/obj/structure/table, -/obj/item/clothing/head/soft, -/obj/item/clothing/head/soft, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bjo" = ( -/obj/machinery/camera{ - c_tag = "Cargo Bay North" - }, -/obj/machinery/vending/wardrobe/cargo_wardrobe, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bjp" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/radio/intercom{ - pixel_y = 20 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bjq" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = 30 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bjr" = ( -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bjs" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/mining/glass{ - name = "Cargo Office"; - req_access_txt = "50" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"bjt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bju" = ( -/obj/machinery/photocopier, -/obj/item/radio/intercom{ - pixel_y = 20 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bjv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bjw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"bjx" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bjy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/effect/turf_decal/bot_white/left, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"bjz" = ( -/turf/closed/wall/r_wall, -/area/maintenance/central) -"bjA" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/central) -"bjB" = ( -/turf/open/floor/plating, -/area/maintenance/central) -"bjC" = ( -/obj/structure/closet/wardrobe/black, -/turf/open/floor/plating, -/area/maintenance/central) -"bjE" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"bjF" = ( -/obj/machinery/newscaster/security_unit{ - pixel_x = -32 - }, -/obj/machinery/keycard_auth{ - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bjG" = ( -/obj/machinery/door/window{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Captain's Desk Door"; - req_access_txt = "20" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bjH" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bjI" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bjJ" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"bjK" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bjL" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bjM" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bjN" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bjO" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bjP" = ( -/obj/machinery/computer/mech_bay_power_console{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel, -/area/science/robotics/mechbay) -"bjQ" = ( -/obj/machinery/smartfridge/chemistry/preloaded, -/turf/closed/wall, -/area/medical/chemistry) -"bjR" = ( -/obj/structure/table/glass, -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/reagent_containers/glass/beaker/large, -/obj/item/reagent_containers/glass/beaker/large, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/dropper, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bjS" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bjT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bjU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bjV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bjX" = ( -/obj/structure/table, -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bjY" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bjZ" = ( -/obj/structure/closet/firecloset, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"bka" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"bkb" = ( -/obj/machinery/camera{ - c_tag = "Medbay Morgue"; - dir = 8; - network = list("ss13","medbay") - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"bkc" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/storage/emergency/starboard) -"bkd" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/storage/emergency/starboard) -"bkf" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/storage/emergency/starboard) -"bkh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/circuit, -/area/science/robotics/mechbay) -"bki" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/glass/beaker/large{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = 8; - pixel_y = 2 - }, -/obj/item/reagent_containers/dropper, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"bkj" = ( -/obj/structure/closet/emcloset, -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bkk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"bkm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"bkn" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/firealarm{ - pixel_y = 27 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bko" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/status_display/evac{ - pixel_x = 32 - }, -/obj/machinery/aug_manipulator, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"bkp" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bkq" = ( -/obj/structure/closet/firecloset, -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"bkr" = ( -/obj/machinery/shower{ - dir = 8 - }, -/obj/structure/sign/warning/securearea{ - pixel_x = 32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"bks" = ( -/obj/machinery/requests_console{ - department = "Science"; - departmentType = 2; - name = "Science Requests Console"; - pixel_x = -30; - receive_ore_updates = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"bkt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bku" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bkv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"bkw" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bkx" = ( -/obj/machinery/status_display/supply, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/quartermaster/sorting) -"bky" = ( -/turf/closed/wall, -/area/maintenance/starboard) -"bkz" = ( -/obj/machinery/conveyor{ - id = "garbage" - }, -/obj/machinery/door/poddoor/preopen{ - id = "Disposal Exit"; - name = "disposal exit vent" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bkB" = ( -/obj/machinery/button/door{ - id = "Disposal Exit"; - name = "Disposal Vent Control"; - pixel_x = -25; - pixel_y = 4; - req_access_txt = "12" - }, -/obj/machinery/button/massdriver{ - id = "trash"; - pixel_x = -26; - pixel_y = -6 - }, -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bkC" = ( -/obj/effect/decal/cleanable/oil, -/obj/machinery/light_switch{ - pixel_x = 25 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bkD" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/port) -"bkE" = ( -/obj/structure/sign/warning/docking, -/turf/closed/wall/r_wall, -/area/maintenance/port) -"bkF" = ( -/turf/closed/wall/r_wall, -/area/maintenance/port) -"bkG" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Cargo Bay Maintenance"; - req_access_txt = "31" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"bkH" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/quartermaster/sorting) -"bkJ" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/quartermaster/storage) -"bkK" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bkL" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/chem_heater, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bkM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bkN" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/quartermaster/office) -"bkO" = ( -/obj/machinery/light_switch{ - pixel_x = 28 - }, -/obj/item/screwdriver{ - pixel_y = 10 - }, -/obj/item/radio/off, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bkP" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"bkQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"bkR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light_switch{ - pixel_y = -25 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"bkS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bkT" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/central) -"bkU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"bkV" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"bkW" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/central) -"bkX" = ( -/obj/machinery/power/apc{ - areastring = "/area/bridge/meeting_room"; - dir = 4; - name = "Conference Room APC"; - pixel_x = 24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/central) -"bkY" = ( -/obj/effect/landmark/blobstart, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/central) -"bkZ" = ( -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"bla" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"blb" = ( -/obj/machinery/door/airlock/command{ - name = "Captain's Quarters"; - req_access_txt = "20" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"blc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/captain) -"bld" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Captain's Office Maintenance"; - req_access_txt = "20" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/maintenance/central/secondary) -"ble" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"blf" = ( -/obj/structure/table/glass, -/obj/item/storage/box/syringes, -/obj/item/clothing/glasses/science{ - pixel_x = 2; - pixel_y = 4 - }, -/obj/item/clothing/glasses/science, -/obj/item/radio/intercom{ - dir = 8; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"blg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance{ - name = "Morgue Maintenance"; - req_access_txt = "6" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"blh" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/eastright{ - base_state = "left"; - dir = 8; - icon_state = "left"; - name = "Chemistry Desk"; - req_access_txt = "33" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/chemistry) -"bli" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"blj" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"blk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bll" = ( -/obj/structure/table/reinforced, -/obj/item/folder/white, -/obj/item/pen, -/obj/item/reagent_containers/glass/bottle/epinephrine, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"blm" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/drinks/britcup{ - desc = "Kingston's personal cup." - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bln" = ( -/obj/structure/table/reinforced, -/obj/machinery/camera{ - c_tag = "Medbay Foyer"; - dir = 8; - network = list("ss13","medbay") - }, -/obj/machinery/cell_charger, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"blo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/power/apc{ - areastring = "/area/storage/emergency/starboard"; - dir = 1; - name = "Starboard Emergency Storage APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"blp" = ( -/obj/machinery/power/apc{ - areastring = "/area/security/checkpoint/medical"; - dir = 8; - name = "Medbay Security APC"; - pixel_x = -25 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"blq" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/sorting/mail{ - sortType = 9 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"blr" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"bls" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical, -/obj/item/crowbar/large, -/obj/machinery/camera{ - c_tag = "Mech Bay"; - dir = 1 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/science/robotics/mechbay) -"blt" = ( -/obj/machinery/recharge_station, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/sign/poster/official/state_laws{ - pixel_y = -32 - }, -/obj/effect/landmark/start/cyborg, -/turf/open/floor/plasteel, -/area/science/robotics/mechbay) -"blu" = ( -/obj/machinery/computer/mech_bay_power_console{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel, -/area/science/robotics/mechbay) -"blv" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/science/robotics/mechbay) -"blw" = ( -/turf/open/floor/mech_bay_recharge_floor, -/area/science/robotics/mechbay) -"blx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel, -/area/science/robotics/mechbay) -"bly" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/light_switch{ - pixel_x = -23 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"blz" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"blA" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/science/robotics/lab) -"blB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/mecha_part_fabricator, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"blC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"blD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/science/robotics/lab) -"blE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/table, -/obj/item/storage/firstaid/regular{ - empty = 1; - name = "First-Aid (empty)" - }, -/obj/item/storage/firstaid/regular{ - empty = 1; - name = "First-Aid (empty)" - }, -/obj/item/storage/firstaid/regular{ - empty = 1; - name = "First-Aid (empty)" - }, -/obj/item/healthanalyzer, -/obj/item/healthanalyzer, -/obj/item/healthanalyzer, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = 29 - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"blF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/conveyor{ - dir = 4; - id = "robo1" - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"blG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"blH" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"blI" = ( -/obj/machinery/rnd/destructive_analyzer, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/lab) -"blJ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/rnd/production/protolathe/department/science, -/turf/open/floor/plasteel, -/area/science/lab) -"blK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/lab) -"blL" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/white, -/area/science/lab) -"blM" = ( -/obj/effect/turf_decal/bot, -/obj/effect/landmark/start/cyborg, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"blO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard) -"blP" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"blQ" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"blR" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 - }, -/obj/item/cigbutt, -/turf/open/floor/plating, -/area/maintenance/starboard) -"blS" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/mass_driver{ - id = "trash" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"blU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"blV" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/disposal) -"blW" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/quartermaster/storage) -"blX" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/research{ - name = "Research Division Access"; - req_access_txt = "47" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/science/research) -"blY" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"blZ" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"bma" = ( -/obj/structure/table/glass, -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/capacitor, -/obj/item/stock_parts/capacitor, -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/micro_laser, -/obj/item/stock_parts/micro_laser, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"bmb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bmc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bmd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bme" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bmf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bmg" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Cargo Bay"; - req_access_txt = "31" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bmh" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bmi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"bmj" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bmk" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/mining/glass{ - name = "Delivery Office"; - req_access_txt = "50" - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"bmm" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bmn" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/status_display/supply{ - pixel_x = -28; - pixel_y = 2 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bmo" = ( -/turf/closed/wall, -/area/crew_quarters/heads/hop) -"bmp" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/central) -"bmq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/crew_quarters/heads/hop) -"bmr" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/hop) -"bms" = ( -/obj/machinery/door/airlock/command{ - name = "Head of Personnel"; - req_access_txt = "57" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/heads/hop) -"bmt" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bmx" = ( -/turf/closed/wall, -/area/crew_quarters/heads/captain) -"bmy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"bmz" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/dresser, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/item/card/id/captains_spare, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"bmA" = ( -/obj/machinery/door/airlock{ - name = "Private Restroom" - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/heads/captain) -"bmB" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"bmC" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/mirror{ - pixel_x = 28 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/heads/captain) -"bmD" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/central/secondary) -"bmE" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bmF" = ( -/obj/structure/table/glass, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/item/stack/cable_coil/random, -/obj/item/stack/cable_coil/random, -/obj/item/stack/sheet/mineral/plasma, -/obj/item/stack/sheet/mineral/plasma, -/obj/item/reagent_containers/glass/bottle/epinephrine, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bmG" = ( -/obj/machinery/chem_dispenser, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bmH" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Cargo Bay"; - req_access_txt = "31" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bmI" = ( -/obj/machinery/chem_master, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bmJ" = ( -/obj/item/radio/intercom{ - broadcasting = 1; - frequency = 1485; - listening = 0; - name = "Station Intercom (Medbay)"; - pixel_y = -30 - }, -/obj/machinery/light, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bmK" = ( -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bmL" = ( -/obj/structure/chair/office/light{ - dir = 8 - }, -/obj/machinery/button/door{ - desc = "A remote control switch for the medbay foyer."; - id = "MedbayFoyer"; - name = "Medbay Doors Control"; - normaldoorcontrol = 1; - pixel_x = -26; - req_access_txt = "5" - }, -/obj/effect/landmark/start/medical_doctor, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bmM" = ( -/obj/structure/chair/office/light{ - dir = 1 - }, -/obj/structure/sign/warning/nosmoking{ - pixel_x = 28 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bmN" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bmO" = ( -/obj/structure/closet/secure_closet/security/med, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/medical) -"bmP" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bmQ" = ( -/obj/item/stamp{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/stamp/denied{ - pixel_x = 4; - pixel_y = -2 - }, -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bmR" = ( -/obj/structure/table, -/obj/item/paper/guides/jobs/medical/morgue{ - pixel_x = 5; - pixel_y = 4 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"bmS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bmT" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bmU" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/checkpoint/medical) -"bmV" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/medical{ - name = "Morgue"; - req_access_txt = "6;5" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"bmW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/medical/morgue) -"bmX" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/medical/genetics) -"bmY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/medical/morgue) -"bmZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/medical/genetics) -"bna" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bnb" = ( -/obj/machinery/recharge_station, -/obj/effect/landmark/start/cyborg, -/turf/open/floor/plasteel, -/area/science/robotics/mechbay) -"bnc" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/science/robotics/mechbay) -"bnf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"bng" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"bnh" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"bni" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/table, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = 6 - }, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/clothing/glasses/welding, -/obj/item/multitool{ - pixel_x = 3 - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"bnj" = ( -/obj/structure/table, -/obj/item/stack/sheet/plasteel{ - amount = 10 - }, -/obj/item/stack/cable_coil, -/obj/item/assembly/flash/handheld, -/obj/item/assembly/flash/handheld, -/obj/item/assembly/flash/handheld, -/obj/item/assembly/flash/handheld, -/obj/item/assembly/flash/handheld, -/obj/item/assembly/flash/handheld, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"bnk" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"bnl" = ( -/obj/item/stack/sheet/glass, -/obj/structure/table/glass, -/obj/item/stack/sheet/glass, -/obj/item/stack/sheet/glass, -/obj/item/stock_parts/matter_bin, -/obj/item/stock_parts/matter_bin, -/obj/machinery/light{ - dir = 4 - }, -/obj/item/stock_parts/scanning_module{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/stock_parts/scanning_module, -/obj/machinery/power/apc{ - areastring = "/area/science/lab"; - dir = 4; - name = "Research Lab APC"; - pixel_x = 26 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"bnm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/science/research) -"bnn" = ( -/obj/machinery/computer/rdconsole/core{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/lab) -"bno" = ( -/obj/item/reagent_containers/glass/beaker/sulphuric, -/obj/machinery/rnd/production/circuit_imprinter/department/science, -/turf/open/floor/plasteel, -/area/science/lab) -"bnp" = ( -/turf/open/floor/plasteel, -/area/science/lab) -"bnq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/science/lab) -"bnr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/plasticflaps/opaque, -/turf/open/floor/plating, -/area/science/lab) -"bns" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/starboard) -"bnt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"bnu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall, -/area/maintenance/starboard) -"bnv" = ( -/obj/machinery/door/poddoor{ - id = "trash"; - name = "disposal bay door" - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/maintenance/disposal) -"bnw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bnx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bny" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bnz" = ( -/obj/effect/landmark/start/cargo_technician, -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bnA" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bnB" = ( -/obj/structure/closet/wardrobe/chemistry_white, -/obj/machinery/light_switch{ - pixel_x = -23 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bnC" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bnD" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/table, -/obj/item/book/manual/wiki/chemistry, -/obj/item/book/manual/wiki/chemistry{ - pixel_x = 3; - pixel_y = 3 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bnE" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bnF" = ( -/obj/structure/sign/warning/nosmoking{ - pixel_y = 30 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bnG" = ( -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/clipboard, -/obj/item/pen/red, -/obj/structure/table, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bnH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bnI" = ( -/obj/machinery/computer/cargo/request, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bnJ" = ( -/obj/machinery/firealarm{ - pixel_y = 27 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bnK" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/quartermaster/office) -"bnL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"bnM" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bnN" = ( -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bnO" = ( -/obj/machinery/newscaster/security_unit{ - pixel_y = 32 - }, -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"bnP" = ( -/obj/machinery/button/flasher{ - id = "hopflash"; - pixel_x = 6; - pixel_y = 36 - }, -/obj/machinery/button/door{ - id = "hop"; - name = "Privacy Shutters Control"; - pixel_x = 6; - pixel_y = 25; - req_access_txt = "57" - }, -/obj/machinery/button/door{ - id = "hopqueue"; - name = "Queue Shutters Control"; - pixel_x = -4; - pixel_y = 25; - req_access_txt = "57" - }, -/obj/machinery/light_switch{ - pixel_x = -4; - pixel_y = 36 - }, -/obj/machinery/pdapainter, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"bnQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/bed/dogbed/ian, -/mob/living/simple_animal/pet/dog/corgi/Ian{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"bnR" = ( -/obj/machinery/computer/security/telescreen/vault{ - pixel_y = 30 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"bnS" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"bnT" = ( -/obj/structure/sign/warning/electricshock{ - pixel_x = -32 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/gravity_generator) -"bnV" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/gravity_generator) -"bnW" = ( -/obj/structure/sign/warning/radiation/rad_area{ - pixel_x = 32 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/gravity_generator) -"bnX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"bnY" = ( -/obj/structure/bed, -/obj/item/bedsheet/captain, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"bnZ" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green, -/obj/item/pen/fountain/captain, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"boa" = ( -/obj/structure/toilet{ - contents = newlist(/obj/item/toy/snappop/phoenix); - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/heads/captain) -"bob" = ( -/obj/structure/table/glass, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/obj/item/screwdriver{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"boc" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bod" = ( -/obj/structure/table, -/obj/item/folder/white, -/obj/item/radio/headset/headset_med, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"boe" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical/glass{ - id_tag = "MedbayFoyer"; - name = "Medbay"; - req_access_txt = "5" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/unres, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bof" = ( -/turf/closed/wall, -/area/medical/medbay/central) -"bog" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/medical/medbay/central) -"boh" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical/glass{ - id_tag = "MedbayFoyer"; - name = "Medbay"; - req_access_txt = "5" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/unres, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"boi" = ( -/obj/machinery/computer/med_data{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"boj" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/machinery/requests_console{ - department = "Medbay"; - departmentType = 1; - name = "Medbay RC"; - pixel_x = 30 - }, -/obj/machinery/light, -/obj/machinery/computer/crew{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bok" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Security Office"; - req_access_txt = "63" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/security/checkpoint/medical) -"bol" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bom" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bon" = ( -/turf/closed/wall/r_wall, -/area/medical/genetics) -"boo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"boq" = ( -/obj/structure/bed/roller, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bor" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/latex, -/obj/item/surgical_drapes, -/obj/item/razor, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"bos" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/power/apc{ - areastring = "/area/science/robotics/lab"; - dir = 8; - name = "Robotics Lab APC"; - pixel_x = -25 - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"bou" = ( -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"bov" = ( -/obj/structure/table, -/obj/item/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/stock_parts/cell/high/plus, -/obj/item/stock_parts/cell/high/plus, -/obj/item/crowbar, -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/obj/item/radio/headset/headset_sci{ - pixel_x = -3 - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"bow" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor/preopen{ - id = "Biohazard"; - name = "biohazard containment door" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/research) -"box" = ( -/turf/closed/wall, -/area/science/robotics/lab) -"boy" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor/preopen{ - id = "Biohazard"; - name = "biohazard containment door" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/research) -"boz" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor/preopen{ - id = "Biohazard"; - name = "biohazard containment door" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/research) -"boA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"boB" = ( -/turf/closed/wall, -/area/science/lab) -"boC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/science/robotics/lab) -"boD" = ( -/obj/structure/table, -/obj/item/circular_saw, -/obj/item/scalpel{ - pixel_y = 12 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"boE" = ( -/obj/structure/table, -/obj/item/hemostat, -/obj/item/cautery{ - pixel_x = 4 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"boF" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"boG" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/mmi, -/obj/item/mmi, -/obj/item/mmi, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"boH" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"boI" = ( -/obj/structure/sign/warning/vacuum/external, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/quartermaster/storage) -"boJ" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "QMLoad2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"boK" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"boL" = ( -/obj/structure/table, -/obj/item/retractor, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"boM" = ( -/turf/open/floor/plasteel/white/corner, -/area/science/research) -"boN" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"boO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white/side, -/area/science/research) -"boP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/lab) -"boQ" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/plus, -/obj/item/stock_parts/cell/high/plus, -/turf/open/floor/plasteel/white, -/area/science/lab) -"boR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"boS" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/window/westleft{ - name = "Cargo Desk"; - req_access_txt = "50" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"boT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"boU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"boV" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"boW" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"boY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/structure/sign/poster/official/ian{ - pixel_x = 32; - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"boZ" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/northleft{ - dir = 8; - name = "Reception Window" - }, -/obj/machinery/door/window/brigdoor{ - base_state = "rightsecure"; - dir = 4; - icon_state = "rightsecure"; - name = "Head of Personnel's Desk"; - req_access_txt = "57" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/flasher{ - id = "hopflash"; - pixel_y = 28 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hop"; - name = "Privacy Shutters" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"bpb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"bpc" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"bpd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"bpe" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"bph" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"bpj" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Captain's Quarters"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"bpk" = ( -/obj/structure/closet/secure_closet/captains, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/item/clothing/under/rank/captain/parade, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"bpl" = ( -/obj/structure/table/wood, -/obj/item/storage/box/matches, -/obj/item/razor{ - pixel_x = -4; - pixel_y = 2 - }, -/obj/item/clothing/mask/cigarette/cigar, -/obj/item/reagent_containers/food/drinks/flask/gold, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"bpm" = ( -/obj/machinery/shower{ - dir = 1 - }, -/obj/item/soap/deluxe, -/obj/item/bikehorn/rubberducky, -/obj/structure/curtain, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/heads/captain) -"bpn" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bpo" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"bpp" = ( -/obj/machinery/door/window/eastright{ - base_state = "left"; - dir = 8; - icon_state = "left"; - name = "Research Division Delivery"; - req_access_txt = "47" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/science/lab) -"bpq" = ( -/obj/machinery/light_switch{ - pixel_y = -23 - }, -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/lab) -"bpr" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "Research Division" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/lab) -"bps" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/effect/turf_decal/loading_area{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bpt" = ( -/obj/structure/table, -/obj/item/hand_labeler, -/obj/item/stack/packageWrap, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bpu" = ( -/obj/structure/bed/roller, -/obj/machinery/button/door{ - desc = "A remote control switch for the medbay foyer."; - id = "MedbayFoyer"; - name = "Medbay Exit Button"; - normaldoorcontrol = 1; - pixel_y = 26 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bpv" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical{ - name = "Medbay Reception"; - req_access_txt = "5" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bpw" = ( -/obj/machinery/status_display/evac, -/turf/closed/wall, -/area/medical/medbay/central) -"bpx" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bpy" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bpz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bpA" = ( -/obj/machinery/computer/cargo{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bpB" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bpC" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bpD" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical/glass{ - name = "Chemistry Lab"; - req_access_txt = "5; 33" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) -"bpE" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/medical/genetics) -"bpF" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/southleft{ - dir = 1; - name = "Chemistry Desk"; - req_access_txt = "33" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/chemistry) -"bpG" = ( -/obj/machinery/power/apc{ - areastring = "/area/medical/genetics"; - dir = 1; - name = "Genetics APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bpH" = ( -/obj/structure/table/glass, -/obj/item/folder/white, -/obj/item/radio/headset/headset_medsci, -/obj/machinery/requests_console{ - department = "Genetics"; - name = "Genetics Requests Console"; - pixel_y = 30 - }, -/obj/item/storage/pill_bottle/mutadone, -/obj/item/storage/pill_bottle/mannitol, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bpI" = ( -/obj/machinery/dna_scannernew, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bpJ" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bpK" = ( -/mob/living/carbon/monkey, -/turf/open/floor/plasteel, -/area/medical/genetics) -"bpL" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/medical/genetics) -"bpM" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/medical/chemistry) -"bpN" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bpO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bpP" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bpQ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"bpR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"bpS" = ( -/obj/structure/table, -/obj/item/storage/box/bodybags, -/obj/item/pen, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"bpT" = ( -/obj/structure/table, -/obj/item/storage/belt/utility, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass{ - amount = 20; - pixel_x = -3; - pixel_y = 6 - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"bpU" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/plus, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"bpV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/science/robotics/lab) -"bpW" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "robotics2"; - name = "robotics lab shutters" - }, -/obj/effect/spawner/structure/window, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "robotics2"; - name = "robotics lab shutters" - }, -/turf/open/floor/plating, -/area/science/robotics/lab) -"bpX" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white/corner{ - dir = 8 - }, -/area/science/research) -"bpY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"bpZ" = ( -/obj/item/folder/white, -/obj/structure/table, -/obj/item/disk/tech_disk, -/obj/item/disk/tech_disk, -/obj/item/disk/design_disk, -/obj/item/disk/design_disk, -/turf/open/floor/plasteel/white, -/area/science/lab) -"bqa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/window/eastright{ - name = "Robotics Surgery"; - req_access_txt = "29" - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"bqc" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"bqd" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/conveyor{ - dir = 4; - id = "robo2" - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"bqe" = ( -/turf/closed/wall/r_wall, -/area/science/explab) -"bqf" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "rnd2"; - name = "research lab shutters" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/lab) -"bqg" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bqh" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bqi" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad2" - }, -/obj/machinery/door/poddoor{ - id = "QMLoaddoor2"; - name = "supply dock loading door" - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"bqj" = ( -/obj/structure/plasticflaps, -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad2" - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"bqk" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "rnd2"; - name = "research lab shutters" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/science/lab) -"bql" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"bqm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bqn" = ( -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bqo" = ( -/obj/machinery/autolathe, -/obj/machinery/light_switch{ - pixel_x = -27 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bqp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/structure/table/reinforced, -/obj/item/destTagger, -/obj/item/destTagger, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"bqq" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"bqr" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"bqs" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bqt" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bqu" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bqv" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bqw" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bqx" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hop"; - name = "Privacy Shutters" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/crew_quarters/heads/hop) -"bqy" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bqz" = ( -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"bqA" = ( -/obj/machinery/computer/card{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"bqB" = ( -/obj/machinery/holopad, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hop) -"bqC" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"bqD" = ( -/obj/machinery/vending/coffee, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"bqE" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"bqF" = ( -/obj/machinery/vending/cigarette/beach, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"bqG" = ( -/obj/structure/reagent_dispensers/water_cooler, -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"bqH" = ( -/turf/closed/wall/r_wall, -/area/teleporter) -"bqI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/teleporter) -"bqJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/teleporter) -"bqK" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Teleporter Maintenance"; - req_access_txt = "17" - }, -/obj/structure/sign/warning/securearea{ - pixel_x = -32 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/central/secondary) -"bqL" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bqM" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/medbay/central) -"bqN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bqO" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bqP" = ( -/obj/structure/bed/roller, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bqQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bqR" = ( -/obj/structure/table, -/obj/item/crowbar, -/obj/item/clothing/neck/stethoscope, -/obj/item/reagent_containers/spray/cleaner, -/obj/structure/sign/warning/nosmoking{ - pixel_y = 30 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bqS" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bqT" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bqU" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/noticeboard{ - pixel_y = 32 - }, -/obj/machinery/camera{ - c_tag = "Medbay West"; - network = list("ss13","medbay") - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bqV" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bqW" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bqX" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bqY" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bqZ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bra" = ( -/obj/structure/table/glass, -/obj/item/storage/box/rxglasses, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"brb" = ( -/obj/machinery/computer/scan_consolenew{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"brc" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/effect/landmark/start/geneticist, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"brd" = ( -/turf/open/floor/plasteel, -/area/medical/genetics) -"bre" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/mob/living/carbon/monkey, -/turf/open/floor/plasteel, -/area/medical/genetics) -"brf" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"brg" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"brh" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bri" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"brj" = ( -/obj/structure/bed/roller, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"brk" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"brm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/science/research) -"brn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"bro" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 10 - }, -/area/science/research) -"brp" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/white, -/area/science/research) -"brq" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/button/door{ - id = "robotics2"; - name = "Shutters Control Button"; - pixel_x = 24; - pixel_y = -24; - req_access_txt = "29" - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"brr" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/science/explab) -"brs" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/eastright{ - base_state = "left"; - dir = 8; - icon_state = "left"; - name = "Robotics Desk"; - req_access_txt = "29" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "robotics2"; - name = "robotics lab shutters" - }, -/obj/item/folder/white, -/obj/item/pen, -/turf/open/floor/plating, -/area/science/robotics/lab) -"brt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/science/research) -"bru" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/explab) -"brv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/explab) -"brw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/explab) -"brx" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "rnd2"; - name = "research lab shutters" - }, -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/science/lab) -"bry" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Experimentation Lab Maintenance"; - req_access_txt = "47" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"brz" = ( -/obj/structure/table, -/obj/item/pen, -/obj/machinery/camera{ - c_tag = "Experimentor Lab"; - network = list("ss13","rd") - }, -/obj/item/hand_labeler, -/obj/item/stack/packageWrap, -/turf/open/floor/plasteel/white/side, -/area/science/explab) -"brA" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_y = 6 - }, -/turf/open/floor/plasteel/white/corner, -/area/science/explab) -"brB" = ( -/obj/structure/closet/l3closet/scientist, -/turf/open/floor/plasteel/white/side, -/area/science/explab) -"brC" = ( -/obj/structure/table, -/obj/item/folder/white, -/obj/item/folder/white, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/item/radio/off, -/turf/open/floor/plasteel/white/side, -/area/science/explab) -"brD" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel/white/corner{ - dir = 8 - }, -/area/science/explab) -"brE" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - req_one_access_txt = "8;12" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard) -"brF" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/sign/warning/securearea{ - pixel_x = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard) -"brG" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"brH" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"brI" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"brJ" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "Supply Dock Airlock"; - req_access_txt = "31" - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"brK" = ( -/turf/open/floor/plating, -/area/quartermaster/storage) -"brL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"brM" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "QM #1" - }, -/obj/effect/turf_decal/bot, -/mob/living/simple_animal/bot/mulebot{ - beacon_freq = 1400; - home_destination = "QM #1"; - suffix = "#1" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"brN" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"brO" = ( -/obj/structure/table, -/obj/machinery/requests_console{ - department = "Cargo Bay"; - departmentType = 2; - pixel_x = -30 - }, -/obj/item/multitool, -/obj/machinery/camera{ - c_tag = "Cargo Office"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"brP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/explab) -"brQ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/junction/flip{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"brR" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"brS" = ( -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"brU" = ( -/obj/structure/sign/warning/electricshock{ - pixel_y = -32 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hop"; - name = "Privacy Shutters" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/crew_quarters/heads/hop) -"brV" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/medbay/central) -"brW" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/vending/cart, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"brX" = ( -/obj/structure/table, -/obj/item/storage/box/masks, -/obj/item/storage/box/gloves{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"brY" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"brZ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"bsa" = ( -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"bsb" = ( -/obj/structure/table, -/obj/item/hand_labeler, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"bsc" = ( -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"bsg" = ( -/obj/structure/table, -/obj/item/hand_labeler, -/obj/machinery/camera{ - c_tag = "Medbay Morgue"; - dir = 8; - network = list("ss13","medbay") - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"bsh" = ( -/turf/closed/wall, -/area/teleporter) -"bsi" = ( -/obj/structure/table, -/obj/item/hand_tele, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/teleporter) -"bsj" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 1 - }, -/obj/structure/table, -/obj/item/beacon, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"bsk" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"bsl" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/structure/closet/crate, -/obj/item/crowbar, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"bsm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"bsn" = ( -/obj/machinery/camera{ - c_tag = "Teleporter" - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"bso" = ( -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/teleporter) -"bsp" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bsq" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/radio/intercom{ - frequency = 1485; - name = "Station Intercom (Medbay)"; - pixel_y = -30 - }, -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bsr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bss" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bst" = ( -/obj/item/radio/intercom{ - frequency = 1485; - name = "Station Intercom (Medbay)"; - pixel_x = 30 - }, -/obj/machinery/camera{ - c_tag = "Medbay East"; - dir = 8; - network = list("ss13","medbay"); - pixel_y = -22 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bsu" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical/glass{ - id_tag = "GeneticsDoor"; - name = "Genetics"; - req_access_txt = "5; 68" - }, -/obj/effect/mapping_helpers/airlock/unres, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bsv" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bsw" = ( -/obj/machinery/door/airlock/research{ - name = "Robotics Lab"; - req_access_txt = "29" - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"bsx" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bsy" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bsz" = ( -/obj/machinery/status_display/evac{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/science/research) -"bsA" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/science/research) -"bsC" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/research) -"bsD" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"bsE" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/research{ - name = "Experimentation Lab"; - req_access_txt = "47" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/explab) -"bsF" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/explab) -"bsG" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/explab) -"bsH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/science/explab) -"bsI" = ( -/obj/machinery/power/apc{ - areastring = "/area/science/explab"; - dir = 4; - name = "Experimentation Lab APC"; - pixel_x = 26 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/explab) -"bsJ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/starboard) -"bsK" = ( -/obj/structure/table/glass, -/obj/item/storage/box/disks{ - pixel_x = 2; - pixel_y = 2 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bsL" = ( -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bsM" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bsN" = ( -/obj/machinery/door/window/westleft{ - name = "Monkey Pen"; - req_access_txt = "9" - }, -/turf/open/floor/plasteel, -/area/medical/genetics) -"bsO" = ( -/obj/structure/bodycontainer/morgue, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"bsP" = ( -/obj/structure/table/optable{ - name = "Robotics Operating Table" - }, -/obj/effect/landmark/event_spawn, -/obj/item/tank/internals/anesthetic, -/obj/item/clothing/mask/breath, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"bsQ" = ( -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"bsR" = ( -/obj/machinery/computer/operating{ - dir = 1; - name = "Robotics Operating Computer" - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"bsS" = ( -/obj/machinery/camera{ - c_tag = "Robotics Lab - South"; - dir = 1; - network = list("ss13","rd") - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"bsT" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"bsU" = ( -/obj/structure/table/optable{ - name = "Robotics Operating Table" - }, -/obj/item/surgical_drapes, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"bsV" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bsW" = ( -/obj/machinery/vending/wardrobe/robo_wardrobe, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"bsX" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/science/research) -"bsY" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/effect/landmark/start/head_of_personnel, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"bsZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"bta" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Research Division North" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"btb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/noticeboard{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"btc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/teleporter) -"btd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"bte" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 6 - }, -/area/science/research) -"btf" = ( -/obj/machinery/requests_console{ - department = "Medbay"; - departmentType = 1; - name = "Medbay RC"; - pixel_x = -30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"btg" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bth" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-16" - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"bti" = ( -/obj/structure/closet/wardrobe/grey, -/obj/item/clothing/head/beret/black, -/obj/item/clothing/head/beret/black, -/obj/item/clothing/head/beret, -/obj/item/clothing/head/beret, -/obj/item/clothing/under/misc/assistantformal, -/obj/item/clothing/under/dress/skirt, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"btj" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/explab) -"btk" = ( -/obj/structure/closet/wardrobe/white, -/obj/item/clothing/under/costume/kilt, -/obj/item/clothing/under/rank/civilian/janitor/maid, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"btl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"btm" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 2; - sortType = 12 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"btn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/science/research) -"bto" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/sign/warning/securearea{ - pixel_x = 32 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"btp" = ( -/turf/open/floor/plating, -/area/maintenance/starboard) -"btq" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"btr" = ( -/obj/machinery/camera{ - c_tag = "Cargo Receiving Dock"; - dir = 4 - }, -/obj/machinery/button/door{ - id = "QMLoaddoor"; - layer = 4; - name = "Loading Doors"; - pixel_x = -24; - pixel_y = -8 - }, -/obj/machinery/button/door{ - id = "QMLoaddoor2"; - layer = 4; - name = "Loading Doors"; - pixel_x = -24; - pixel_y = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bts" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "QM #2" - }, -/obj/effect/turf_decal/bot, -/mob/living/simple_animal/bot/mulebot{ - home_destination = "QM #2"; - suffix = "#2" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"btt" = ( -/obj/structure/table, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/obj/item/folder/yellow, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"btu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"btv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"btw" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"btx" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor/preopen{ - id = "Biohazard"; - name = "biohazard containment door" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/research) -"bty" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"btz" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"btA" = ( -/obj/machinery/camera{ - c_tag = "Research Division West" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"btB" = ( -/obj/machinery/computer/bounty{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"btC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"btD" = ( -/obj/item/paper_bin/bundlenatural{ - pixel_x = 6; - pixel_y = 4 - }, -/obj/item/paper_bin{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/pen/fountain, -/obj/structure/table, -/obj/item/pen/fourcolor, -/obj/item/stamp/hop, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"btE" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"btG" = ( -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"btH" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/teleporter) -"btI" = ( -/obj/machinery/power/apc{ - areastring = "/area/teleporter"; - dir = 8; - name = "Teleporter APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel, -/area/teleporter) -"btJ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/bluespace_beacon, -/turf/open/floor/plasteel, -/area/teleporter) -"btK" = ( -/obj/machinery/holopad, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/teleporter) -"btL" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/teleporter) -"btM" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Teleport Access"; - req_access_txt = "17" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/teleporter) -"btN" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/teleporter) -"btO" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"btP" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"btQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 10 - }, -/area/science/research) -"btR" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"btS" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"btT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"btU" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"btV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"btW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/science/research) -"btX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"btY" = ( -/obj/machinery/requests_console{ - department = "Science"; - departmentType = 2; - name = "Science Requests Console"; - pixel_y = -30; - receive_ore_updates = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/explab) -"btZ" = ( -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bua" = ( -/turf/closed/wall, -/area/medical/genetics) -"bub" = ( -/obj/machinery/light, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -35 - }, -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"buc" = ( -/obj/machinery/light, -/obj/machinery/power/apc{ - areastring = "/area/quartermaster/office"; - name = "Cargo Office APC"; - pixel_x = 1; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/brown, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bud" = ( -/obj/effect/turf_decal/loading_area{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bue" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Head of Personnel's Desk"; - departmentType = 5; - name = "Head of Personnel RC"; - pixel_y = -30 - }, -/obj/machinery/camera{ - c_tag = "Head of Personnel's Office"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"buf" = ( -/obj/machinery/computer/scan_consolenew{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bug" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bui" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/loading_area{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"buj" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "robotics2"; - name = "robotics lab shutters" - }, -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/science/robotics/lab) -"buk" = ( -/turf/open/floor/plasteel/white/side{ - dir = 8 - }, -/area/medical/sleeper) -"bul" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bum" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bun" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"buo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"bup" = ( -/obj/machinery/light, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"buq" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/genetics) -"bur" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bus" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"but" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"buu" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/explab) -"buv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/explab) -"buw" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/explab) -"bux" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"buy" = ( -/obj/structure/disposalpipe/sorting/mail{ - sortType = 23 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"buz" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/starboard) -"buB" = ( -/obj/machinery/conveyor_switch/oneway{ - dir = 8; - id = "QMLoad" - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"buC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"buD" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "QM #3" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"buE" = ( -/obj/structure/table, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"buF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"buG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/research{ - name = "Genetics Research Access"; - req_access_txt = "9" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"buH" = ( -/obj/machinery/door/airlock/research{ - name = "Genetics Research Access"; - req_access_txt = "47" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"buI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"buJ" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/light, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"buK" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"buL" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"buM" = ( -/obj/machinery/keycard_auth{ - pixel_x = -24 - }, -/obj/machinery/computer/cargo{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"buN" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"buO" = ( -/obj/structure/table, -/obj/item/folder/blue, -/obj/item/stack/packageWrap{ - pixel_x = -1; - pixel_y = -1 - }, -/obj/item/hand_labeler, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"buQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"buT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"buU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor/preopen{ - id = "Biohazard"; - name = "biohazard containment door" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/research) -"buV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/teleporter) -"buW" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/teleporter) -"buX" = ( -/obj/machinery/shieldwallgen, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/teleporter) -"buY" = ( -/obj/machinery/shieldwallgen, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/teleporter) -"buZ" = ( -/obj/structure/closet/crate, -/turf/open/floor/plasteel, -/area/teleporter) -"bva" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/sign/warning/securearea{ - pixel_x = -32 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bvb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"bvc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"bvd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/medical/sleeper) -"bve" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"bvf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/science/research) -"bvg" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/white, -/area/science/research) -"bvh" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/medical/sleeper) -"bvi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/medical/sleeper) -"bvj" = ( -/turf/closed/wall, -/area/medical/sleeper) -"bvk" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bvl" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Surgery Observation" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/medical/sleeper) -"bvm" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bvn" = ( -/obj/machinery/button/door{ - desc = "A remote control switch for the genetics doors."; - id = "GeneticsDoor"; - name = "Genetics Exit Button"; - normaldoorcontrol = 1; - pixel_x = 8; - pixel_y = 24 - }, -/obj/structure/table, -/obj/item/book/manual/wiki/medical_cloning{ - pixel_y = 6 - }, -/obj/item/storage/box/rxglasses{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/box/bodybags, -/obj/item/pen, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bvo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bvp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bvq" = ( -/obj/structure/chair, -/obj/effect/landmark/start/geneticist, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bvr" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bvs" = ( -/obj/machinery/dna_scannernew, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bvt" = ( -/obj/machinery/door/airlock/research/glass{ - name = "Genetics Research"; - req_access_txt = "5; 9; 68" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bvu" = ( -/obj/structure/window/reinforced, -/mob/living/carbon/monkey, -/turf/open/floor/plasteel, -/area/medical/genetics) -"bvv" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/turf/open/floor/plasteel, -/area/medical/genetics) -"bvw" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bvx" = ( -/turf/closed/wall/r_wall, -/area/science/research) -"bvy" = ( -/obj/machinery/camera{ - c_tag = "Genetics Research"; - dir = 1; - network = list("ss13","medbay") - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bvz" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bvA" = ( -/obj/structure/sign/warning/securearea, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/medical/genetics) -"bvB" = ( -/obj/machinery/camera{ - c_tag = "Genetics Access"; - dir = 8; - network = list("ss13","medbay"); - pixel_y = -22 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bvC" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/security/checkpoint/science) -"bvD" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/science/research) -"bvE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 6 - }, -/area/science/research) -"bvF" = ( -/obj/machinery/requests_console{ - department = "Cargo Bay"; - departmentType = 2; - pixel_x = -30 - }, -/obj/machinery/computer/bounty{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/keycard_auth{ - pixel_y = 25 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"bvH" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/science/research) -"bvI" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bvJ" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/crew_quarters/heads/hor) -"bvK" = ( -/turf/closed/wall, -/area/crew_quarters/heads/hor) -"bvL" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"bvM" = ( -/obj/machinery/light_switch{ - pixel_x = -20 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/science/explab) -"bvN" = ( -/obj/structure/chair/office/light, -/obj/effect/landmark/start/scientist, -/turf/open/floor/plasteel/white, -/area/science/explab) -"bvO" = ( -/turf/open/floor/plasteel/white, -/area/science/explab) -"bvP" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/explab) -"bvQ" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bvR" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bvS" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "QMLoad" - }, -/obj/machinery/door/poddoor{ - id = "QMLoaddoor"; - name = "supply dock loading door" - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"bvT" = ( -/obj/structure/plasticflaps, -/obj/machinery/conveyor{ - dir = 8; - id = "QMLoad" - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"bvU" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "QMLoad" - }, -/obj/machinery/light, -/obj/machinery/status_display/supply{ - pixel_y = -32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"bvV" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "QMLoad" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"bvW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bvX" = ( -/obj/machinery/camera{ - c_tag = "Cargo Bay South"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bvY" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 8; - freq = 1400; - location = "QM #4" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"bvZ" = ( -/obj/structure/table, -/obj/item/storage/firstaid/regular{ - pixel_x = 6; - pixel_y = -5 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bwa" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bwb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bwc" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bwd" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/checkpoint/supply) -"bwe" = ( -/turf/closed/wall, -/area/security/checkpoint/supply) -"bwf" = ( -/obj/machinery/camera{ - c_tag = "Cargo Bay Entrance"; - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bwg" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hopqueue"; - name = "HoP Queue Shutters" - }, -/obj/effect/turf_decal/loading_area{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bwh" = ( -/obj/structure/sign/warning/securearea{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bwi" = ( -/obj/item/radio/intercom{ - dir = 8; - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/obj/structure/closet/secure_closet/hop, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/item/clothing/suit/ianshirt, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"bwj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"bwk" = ( -/obj/structure/table, -/obj/machinery/recharger, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"bwl" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"bwq" = ( -/obj/machinery/teleport/station, -/turf/open/floor/plating, -/area/teleporter) -"bwr" = ( -/obj/machinery/computer/teleporter{ - dir = 1 - }, -/turf/open/floor/plating, -/area/teleporter) -"bws" = ( -/obj/structure/rack, -/obj/item/tank/internals/oxygen, -/obj/item/clothing/mask/gas, -/turf/open/floor/plating, -/area/teleporter) -"bwt" = ( -/obj/machinery/teleport/hub, -/turf/open/floor/plating, -/area/teleporter) -"bwu" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bwv" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=4"; - dir = 4; - freq = 1400; - location = "Medbay" - }, -/obj/structure/plasticflaps/opaque, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/medical/medbay/central) -"bww" = ( -/obj/structure/chair, -/obj/machinery/camera{ - c_tag = "Surgery Observation"; - network = list("ss13","medbay") - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/medical/sleeper) -"bwx" = ( -/obj/machinery/door/window/eastleft{ - name = "Medical Delivery"; - req_access_txt = "5" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/medical/medbay/central) -"bwy" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bwz" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bwA" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bwB" = ( -/obj/structure/chair, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/medical/sleeper) -"bwD" = ( -/obj/machinery/sleeper{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bwE" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/medical/sleeper) -"bwF" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/glass/beaker/cryoxadone{ - pixel_x = 7; - pixel_y = 1 - }, -/obj/item/reagent_containers/glass/beaker/cryoxadone{ - pixel_x = 7; - pixel_y = 1 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bwG" = ( -/obj/structure/sign/warning/nosmoking, -/turf/closed/wall, -/area/medical/sleeper) -"bwH" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bwI" = ( -/obj/machinery/atmospherics/components/unary/cryo_cell, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bwJ" = ( -/obj/structure/table/glass, -/obj/machinery/camera{ - c_tag = "Medbay Cryogenics"; - network = list("ss13","medbay") - }, -/obj/item/reagent_containers/glass/beaker/cryoxadone, -/obj/item/reagent_containers/glass/beaker/cryoxadone, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bwK" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bwL" = ( -/obj/machinery/camera{ - c_tag = "Genetics Cloning"; - dir = 4; - network = list("ss13","medbay") - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/obj/structure/closet/secure_closet/personal/patient, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bwM" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"bwN" = ( -/obj/machinery/light_switch{ - pixel_x = 8; - pixel_y = 28 - }, -/obj/machinery/button/door{ - id = "Biohazard"; - name = "Biohazard Shutter Control"; - pixel_x = -5; - pixel_y = 28; - req_access_txt = "47" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"bwO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/science/research) -"bwQ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/hor) -"bwR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"bwS" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"bwT" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Quartermaster"; - req_access_txt = "41" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"bwU" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"bwV" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/start/shaft_miner, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bwW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bwX" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 1; - sortType = 3 - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bwY" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Security Office"; - req_access_txt = "63" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"bwZ" = ( -/obj/structure/chair, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/medical/sleeper) -"bxa" = ( -/obj/structure/chair, -/obj/structure/sign/warning/nosmoking{ - pixel_x = -28 - }, -/turf/open/floor/plasteel/dark, -/area/medical/sleeper) -"bxb" = ( -/obj/structure/chair, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/medical/sleeper) -"bxc" = ( -/obj/machinery/holopad, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/medical/sleeper) -"bxd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"bxe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/research) -"bxf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/science/research) -"bxg" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bxi" = ( -/obj/machinery/computer/aifixer{ - dir = 8 - }, -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Research Director's Desk"; - departmentType = 5; - name = "Research Director RC"; - pixel_x = -2; - pixel_y = 30; - receive_ore_updates = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"bxj" = ( -/obj/structure/table, -/obj/machinery/computer/security/telescreen/rd, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"bxk" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/storage/primary) -"bxl" = ( -/obj/structure/rack, -/obj/item/circuitboard/aicore{ - pixel_x = -2; - pixel_y = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/hor) -"bxm" = ( -/obj/effect/landmark/xmastree/rdrod, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/hor) -"bxn" = ( -/turf/closed/wall, -/area/science/explab) -"bxo" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/explab) -"bxp" = ( -/obj/machinery/computer/rdconsole/experiment{ - dir = 1 - }, -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/science/explab) -"bxq" = ( -/obj/structure/table, -/obj/item/clipboard, -/obj/item/book/manual/wiki/experimentor, -/turf/open/floor/plasteel/white/corner{ - dir = 4 - }, -/area/science/explab) -"bxr" = ( -/obj/structure/closet/radiation, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/science/explab) -"bxs" = ( -/obj/machinery/button/door{ - id = "telelab"; - name = "Test Chamber Blast Doors"; - pixel_x = 25; - req_access_txt = "47" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, -/area/science/explab) -"bxt" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bxu" = ( -/turf/closed/wall, -/area/quartermaster/qm) -"bxv" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/effect/landmark/start/depsec/science, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"bxw" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Quartermaster"; - req_access_txt = "41" - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"bxx" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/quartermaster/qm) -"bxy" = ( -/turf/closed/wall, -/area/quartermaster/miningdock) -"bxz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/quartermaster/miningdock) -"bxA" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/mining{ - req_access_txt = "48" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bxB" = ( -/obj/item/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/pen, -/obj/structure/table, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"bxC" = ( -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/structure/table, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"bxD" = ( -/obj/item/book/manual/wiki/security_space_law, -/obj/structure/table, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"bxE" = ( -/obj/machinery/computer/secure_data{ - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"bxF" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/science/research) -"bxG" = ( -/obj/machinery/door/airlock/command{ - name = "Head of Personnel"; - req_access_txt = "57" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/hop) -"bxI" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bxK" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/hallway/primary/central) -"bxL" = ( -/obj/machinery/camera{ - c_tag = "Central Hallway South-East"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bxM" = ( -/obj/structure/chair/office/dark, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/auxiliary) -"bxN" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/structure/mirror{ - pixel_x = -28 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bxO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bxP" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"bxQ" = ( -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bxR" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bxS" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bxT" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bxU" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bxV" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bxW" = ( -/obj/machinery/door/airlock/command/glass{ - name = "Research Director"; - req_access_txt = "30" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"bxX" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bxY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"bxZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"bya" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"byb" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"byc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/computer/card/minor/qm{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"byd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"bye" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/wall/r_wall, -/area/medical/genetics) -"byf" = ( -/turf/closed/wall/r_wall, -/area/science/server) -"byg" = ( -/obj/structure/table, -/obj/item/clipboard, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/cartridge/quartermaster{ - pixel_x = 6; - pixel_y = 5 - }, -/obj/item/cartridge/quartermaster{ - pixel_x = -4; - pixel_y = 7 - }, -/obj/item/cartridge/quartermaster, -/obj/item/coin/silver, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/item/stamp/qm, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen/fountain, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"byh" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Server Room"; - req_access_txt = "30" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/science/server) -"byi" = ( -/turf/closed/wall, -/area/security/checkpoint/science) -"byj" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Security Office"; - req_access_txt = "63" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/security/checkpoint/science) -"byk" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/checkpoint/science) -"byl" = ( -/obj/structure/table, -/obj/item/folder/yellow, -/obj/item/pen{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/pen/red, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"bym" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/quartermaster/qm) -"byn" = ( -/obj/structure/filingcabinet, -/obj/machinery/light_switch{ - pixel_y = -25 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"byo" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "Biohazard"; - name = "Biohazard Shutter Control"; - pixel_x = -5; - pixel_y = 5; - req_access_txt = "47" - }, -/obj/machinery/button/door{ - id = "rnd2"; - name = "Research Lab Shutter Control"; - pixel_x = 5; - pixel_y = 5; - req_access_txt = "47" - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"byp" = ( -/obj/machinery/computer/robotics{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"byq" = ( -/obj/structure/chair/office/light{ - dir = 8 - }, -/obj/effect/landmark/start/research_director, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"byr" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/hor) -"bys" = ( -/obj/structure/rack, -/obj/item/aicard, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/hor) -"byt" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/hor) -"byu" = ( -/obj/structure/displaycase/labcage, -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/hor) -"byv" = ( -/obj/machinery/door/poddoor/preopen{ - id = "telelab"; - name = "test chamber blast door" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/engine, -/area/science/explab) -"byw" = ( -/obj/machinery/door/poddoor/preopen{ - id = "telelab"; - name = "test chamber blast door" - }, -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/engine, -/area/science/explab) -"byx" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"byy" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"byz" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"byA" = ( -/obj/machinery/power/apc{ - areastring = "/area/quartermaster/qm"; - dir = 1; - name = "Quartermaster APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"byB" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"byC" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"byD" = ( -/obj/structure/closet/secure_closet/quartermaster, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"byE" = ( -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"byF" = ( -/obj/machinery/power/apc{ - areastring = "/area/quartermaster/miningdock"; - dir = 1; - name = "Mining Dock APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"byG" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"byH" = ( -/obj/machinery/light_switch{ - pixel_y = -25 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/closet/secure_closet/security/cargo, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"byI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"byJ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/checkpoint/supply) -"byK" = ( -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"byL" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/obj/effect/landmark/start/depsec/supply, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"byM" = ( -/obj/item/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_x = 27 - }, -/obj/machinery/computer/security/mining{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"byN" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"byO" = ( -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; - pixel_y = -30 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"byP" = ( -/obj/structure/sign/warning/securearea{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"byQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"byR" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"byS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"byT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/vending/wardrobe/sec_wardrobe, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"byU" = ( -/obj/machinery/light, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"byW" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"byX" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"byY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/medical/sleeper) -"byZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/medical/sleeper) -"bza" = ( -/obj/structure/chair, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/dark, -/area/medical/sleeper) -"bzb" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/medical/sleeper) -"bzc" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Recovery Room" - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bzd" = ( -/obj/structure/table, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/obj/item/pen, -/obj/machinery/requests_console{ - department = "Medbay"; - departmentType = 1; - name = "Medbay RC"; - pixel_y = 30 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bze" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/shower{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bzf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/effect/landmark/start/paramedic, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bzg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bzh" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bzi" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bzj" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bzk" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bzl" = ( -/obj/machinery/dna_scannernew, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bzm" = ( -/obj/machinery/clonepod, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bzn" = ( -/obj/machinery/computer/cloning{ - dir = 1 - }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bzo" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/light_switch{ - pixel_y = -28 - }, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bzp" = ( -/obj/structure/closet/secure_closet/personal/patient, -/obj/machinery/light, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bzq" = ( -/obj/structure/closet/secure_closet/medical1, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bzr" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/machinery/vending/wardrobe/gene_wardrobe, -/turf/open/floor/plasteel/white, -/area/medical/genetics) -"bzs" = ( -/turf/closed/wall, -/area/maintenance/aft) -"bzt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4; - external_pressure_bound = 140; - name = "server vent"; - pressure_checks = 0 - }, -/turf/open/floor/circuit/telecomms/server, -/area/science/server) -"bzu" = ( -/obj/machinery/rnd/server, -/turf/open/floor/circuit/telecomms/server, -/area/science/server) -"bzv" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/dark, -/area/science/server) -"bzw" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/structure/sign/warning/securearea{ - desc = "A warning sign which reads 'SERVER ROOM'."; - name = "SERVER ROOM"; - pixel_y = 32 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/science/server) -"bzx" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plasteel/dark, -/area/science/server) -"bzy" = ( -/obj/machinery/camera{ - c_tag = "Server Room"; - network = list("ss13","rd"); - pixel_x = 22 - }, -/obj/machinery/power/apc{ - areastring = "/area/science/server"; - dir = 1; - name = "Server Room APC"; - pixel_y = 25 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel/dark, -/area/science/server) -"bzz" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = -30 - }, -/obj/machinery/airalarm{ - pixel_y = 25 - }, -/obj/structure/closet/secure_closet/security/science, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"bzA" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/science/research) -"bzB" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/science/research) -"bzC" = ( -/obj/structure/table, -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"bzD" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/computer/security/telescreen/circuitry, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"bzE" = ( -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/science/research) -"bzF" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bzG" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bzH" = ( -/obj/structure/table, -/obj/item/hemostat, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white/side, -/area/medical/sleeper) -"bzI" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/table, -/obj/item/surgicaldrill, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bzJ" = ( -/obj/machinery/computer/mecha{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"bzK" = ( -/obj/structure/table, -/obj/item/scalpel{ - pixel_y = 12 - }, -/obj/item/circular_saw, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bzL" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/hor) -"bzM" = ( -/obj/structure/rack, -/obj/item/taperecorder{ - pixel_x = -3 - }, -/obj/item/paicard{ - pixel_x = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/hor) -"bzN" = ( -/obj/machinery/modular_computer/console/preset/research{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/hor) -"bzO" = ( -/turf/open/floor/engine, -/area/science/explab) -"bzP" = ( -/obj/machinery/computer/cargo{ - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"bzQ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"bzR" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"bzS" = ( -/obj/structure/table, -/obj/item/cautery{ - pixel_x = 4 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bzT" = ( -/obj/structure/chair/office/dark, -/obj/effect/landmark/start/quartermaster, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"bzU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bzV" = ( -/obj/machinery/vending/wardrobe/medi_wardrobe, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bzW" = ( -/obj/structure/closet/l3closet, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bzX" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bzY" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bzZ" = ( -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/science/research) -"bAa" = ( -/obj/machinery/door/firedoor/heavy, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel/white, -/area/science/research) -"bAb" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/effect/landmark/start/shaft_miner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bAc" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bAd" = ( -/obj/item/screwdriver{ - pixel_y = 10 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/item/radio/off, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"bAe" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=AIW"; - location = "QM" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bAf" = ( -/obj/machinery/holopad, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bAg" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=AftH"; - location = "AIW" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bAh" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=CHE"; - location = "AIE" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bAi" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bAj" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=HOP"; - location = "CHE" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bAk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bAl" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/dark, -/area/medical/sleeper) -"bAm" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bAn" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Mining Maintenance"; - req_access_txt = "48" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bAo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/power/apc{ - areastring = "/area/security/checkpoint/supply"; - dir = 1; - name = "Cargo Security APC"; - pixel_x = 1; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bAp" = ( -/obj/structure/closet/secure_closet/medical1, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bAq" = ( -/obj/machinery/sleeper{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Medbay Treatment Center"; - dir = 8; - network = list("ss13","medbay") - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bAr" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bAs" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1; - name = "Connector Port (Air Supply)" - }, -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bAt" = ( -/obj/structure/table/reinforced, -/obj/item/wrench/medical, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bAu" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bAv" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1; - name = "Connector Port (Air Supply)" - }, -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bAw" = ( -/turf/open/floor/plating, -/area/maintenance/aft) -"bAx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bAy" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plasteel/dark/telecomms, -/area/science/server) -"bAz" = ( -/obj/machinery/airalarm/server{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/telecomms, -/area/science/server) -"bAA" = ( -/obj/machinery/atmospherics/pipe/manifold{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/science/server) -"bAB" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command/glass{ - name = "Server Room"; - req_access_txt = "30" - }, -/turf/open/floor/plasteel/dark, -/area/science/server) -"bAC" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 9 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/science/server) -"bAD" = ( -/obj/structure/chair/office/light, -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/science/server) -"bAE" = ( -/obj/machinery/camera{ - c_tag = "Security Post - Science"; - dir = 4; - network = list("ss13","rd") - }, -/obj/machinery/newscaster{ - pixel_x = -30 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/vending/wardrobe/sec_wardrobe, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"bAF" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"bAG" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"bAH" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/security_space_law, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"bAI" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bAJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bAK" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bAL" = ( -/obj/structure/table, -/obj/item/plant_analyzer, -/obj/item/stock_parts/cell/high/plus, -/turf/open/floor/plating, -/area/storage/tech) -"bAM" = ( -/obj/structure/table, -/obj/item/analyzer, -/obj/item/healthanalyzer, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bAN" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bAO" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bAP" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bAQ" = ( -/obj/effect/landmark/blobstart, -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/engine, -/area/science/explab) -"bAR" = ( -/obj/machinery/rnd/experimentor, -/turf/open/floor/engine, -/area/science/explab) -"bAS" = ( -/obj/machinery/camera{ - c_tag = "Quartermaster's Office"; - dir = 4 - }, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -35 - }, -/obj/machinery/status_display/supply{ - pixel_x = -32 - }, -/obj/machinery/computer/security/qm{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/qm) -"bAT" = ( -/obj/machinery/vending/wardrobe/jani_wardrobe, -/turf/open/floor/plasteel, -/area/janitor) -"bAU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/janitor) -"bAV" = ( -/obj/machinery/door/window/westleft{ - name = "Janitorial Delivery"; - req_access_txt = "26" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/janitor) -"bAW" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bAX" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/table, -/obj/item/clothing/gloves/color/latex, -/obj/item/clothing/mask/surgical, -/obj/item/clothing/suit/apron/surgical, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/medical/sleeper) -"bAY" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bAZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bBa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bBb" = ( -/obj/effect/landmark/start/medical_doctor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bBc" = ( -/obj/structure/table, -/obj/item/surgical_drapes, -/obj/item/razor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 8 - }, -/area/medical/sleeper) -"bBd" = ( -/obj/structure/table, -/obj/structure/bedsheetbin{ - pixel_x = 2 - }, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/mask/muzzle, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bBe" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bBf" = ( -/obj/structure/filingcabinet, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30 - }, -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/obj/machinery/camera{ - c_tag = "Security Post - Cargo"; - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"bBg" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/machinery/light{ - light_color = "#cee5d2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBh" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBi" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBj" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBk" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/camera{ - c_tag = "Central Primary Hallway South-West"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBl" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bBn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bBo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBq" = ( -/obj/structure/disposalpipe/junction/flip{ - dir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/sign/directions/engineering{ - pixel_x = -32; - pixel_y = -40 - }, -/obj/structure/sign/directions/medical{ - dir = 4; - pixel_x = -32; - pixel_y = -24 - }, -/obj/structure/sign/directions/evac{ - dir = 4; - pixel_x = -32; - pixel_y = -32 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/status_display/evac{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Central Primary Hallway South"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBv" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 8; - sortType = 22 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBw" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bBx" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBy" = ( -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBz" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/poster/contraband/space_up{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBA" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/disposalpipe/junction/flip{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBB" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bBC" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bBD" = ( -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/science/research) -"bBE" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"bBF" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/item/storage/firstaid/toxin, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/airalarm/unlocked{ - pixel_y = 24 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bBG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bBH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/quartermaster/miningdock) -"bBI" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/structure/closet/wardrobe/miner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/radio/headset/headset_cargo/mining, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bBJ" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bBK" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bBL" = ( -/obj/machinery/vending/medical{ - pixel_x = -2 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bBN" = ( -/turf/closed/wall, -/area/crew_quarters/heads/cmo) -"bBO" = ( -/obj/machinery/computer/med_data, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bBP" = ( -/obj/machinery/computer/crew, -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Chief Medical Officer's Desk"; - departmentType = 5; - name = "Chief Medical Officer RC"; - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bBQ" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bBR" = ( -/turf/closed/mineral/random/snow/no_caves, -/area/security/main) -"bBS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - dir = 4; - external_pressure_bound = 120; - name = "server vent" - }, -/turf/open/floor/circuit/telecomms/server, -/area/science/server) -"bBU" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 9 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/dark, -/area/science/server) -"bBV" = ( -/obj/structure/sign/warning/securearea{ - desc = "A warning sign which reads 'SERVER ROOM'."; - name = "SERVER ROOM"; - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/science/server) -"bBW" = ( -/obj/structure/table, -/obj/item/folder/white, -/obj/item/pen, -/turf/open/floor/plasteel/dark, -/area/science/server) -"bBX" = ( -/obj/machinery/computer/rdservercontrol{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/science/server) -"bBY" = ( -/obj/item/radio/intercom{ - pixel_x = -25 - }, -/obj/structure/filingcabinet, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"bBZ" = ( -/obj/item/screwdriver{ - pixel_y = 10 - }, -/obj/item/radio/off, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"bCa" = ( -/obj/machinery/power/apc{ - areastring = "/area/security/checkpoint/science"; - name = "Science Security APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"bCb" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/pen, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"bCc" = ( -/obj/machinery/computer/secure_data{ - dir = 1 - }, -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; - pixel_y = -30 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/science) -"bCd" = ( -/obj/structure/disposalpipe/sorting/mail{ - dir = 8; - sortType = 15 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/light{ - light_color = "#cee5d2" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bCe" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bCf" = ( -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/heads/hor"; - dir = 8; - name = "RD Office APC"; - pixel_x = -25 - }, -/obj/structure/cable, -/obj/machinery/light_switch{ - pixel_y = -23 - }, -/obj/item/twohanded/required/kirbyplants/dead, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"bCg" = ( -/obj/structure/table, -/obj/item/cartridge/signal/toxins, -/obj/item/cartridge/signal/toxins{ - pixel_x = -4; - pixel_y = 2 - }, -/obj/item/cartridge/signal/toxins{ - pixel_x = 4; - pixel_y = 6 - }, -/obj/machinery/camera{ - c_tag = "Research Director's Office"; - dir = 1; - network = list("ss13","rd") - }, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"bCh" = ( -/obj/machinery/keycard_auth{ - pixel_y = -24 - }, -/obj/machinery/light, -/obj/machinery/computer/card/minor/rd{ - dir = 1 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"bCi" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"bCj" = ( -/obj/structure/closet/secure_closet/RD, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"bCk" = ( -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/hor) -"bCl" = ( -/obj/machinery/camera{ - c_tag = "Experimentor Lab Chamber"; - dir = 1; - network = list("ss13","rd") - }, -/obj/machinery/light, -/obj/structure/sign/warning/nosmoking{ - pixel_y = -32 - }, -/turf/open/floor/engine, -/area/science/explab) -"bCm" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bCn" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bCo" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bCp" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bCq" = ( -/turf/closed/wall, -/area/maintenance/port/aft) -"bCr" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bCs" = ( -/turf/closed/wall, -/area/storage/tech) -"bCt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/mob/living/simple_animal/hostile/lizard{ - name = "Wags-His-Tail"; - real_name = "Wags-His-Tail" - }, -/turf/open/floor/plasteel, -/area/janitor) -"bCu" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bCv" = ( -/turf/closed/wall, -/area/janitor) -"bCw" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/janitor) -"bCx" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/gateway) -"bCy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/janitor) -"bCz" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/aft) -"bCA" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"bCB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance{ - name = "Surgery Maintenance"; - req_access_txt = "45" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bCC" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bCD" = ( -/obj/structure/table, -/obj/item/retractor, -/turf/open/floor/plasteel/white/side, -/area/medical/sleeper) -"bCE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCF" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCG" = ( -/obj/structure/table, -/obj/item/folder/white, -/obj/item/reagent_containers/dropper, -/obj/item/soap/nanotrasen, -/obj/item/gun/syringe/dart, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCK" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCL" = ( -/obj/structure/closet/secure_closet/medical3, -/obj/machinery/camera{ - c_tag = "Medbay Storage"; - network = list("ss13","medbay") - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCM" = ( -/obj/structure/closet/secure_closet/medical3, -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCN" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/bin, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCO" = ( -/obj/structure/table, -/obj/item/storage/box/bodybags{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/box/rxglasses, -/obj/item/hand_labeler, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/medical/sleeper) -"bCQ" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/medical/sleeper) -"bCR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bCS" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/iv_drip, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/bloodbankgen, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bCU" = ( -/obj/item/radio/intercom{ - frequency = 1485; - name = "Station Intercom (Medbay)"; - pixel_x = -30 - }, -/obj/machinery/camera{ - c_tag = "Medbay South"; - dir = 4; - network = list("ss13","medbay") - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bCV" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bCW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bCX" = ( -/obj/effect/decal/cleanable/oil, -/obj/item/cigbutt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/storage) -"bCY" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bCZ" = ( -/obj/structure/chair/office/light, -/obj/effect/landmark/start/chief_medical_officer, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bDa" = ( -/obj/machinery/keycard_auth{ - pixel_x = 24 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bDb" = ( -/turf/closed/wall/r_wall, -/area/science/xenobiology) -"bDc" = ( -/turf/closed/wall, -/area/science/storage) -"bDd" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/science/research) -"bDe" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"bDf" = ( -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/storage) -"bDg" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bDh" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bDj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/storage) -"bDk" = ( -/obj/structure/table, -/obj/item/folder/yellow, -/obj/item/pen, -/obj/machinery/requests_console{ - department = "Mining"; - pixel_x = -30 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bDl" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/science/research) -"bDm" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"bDn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"bDo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bDp" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bDq" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/item/key/janitor, -/turf/open/floor/plasteel, -/area/janitor) -"bDr" = ( -/obj/item/restraints/legcuffs/beartrap, -/obj/item/restraints/legcuffs/beartrap, -/obj/item/storage/box/mousetraps, -/obj/item/storage/box/mousetraps, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/table, -/turf/open/floor/plasteel, -/area/janitor) -"bDs" = ( -/obj/structure/sign/poster/contraband/lusty_xenomorph{ - pixel_x = 32 - }, -/obj/structure/reagent_dispensers/watertank/high, -/turf/open/floor/plasteel, -/area/janitor) -"bDt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall, -/area/maintenance/port/aft) -"bDu" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bDv" = ( -/obj/structure/table, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/assembly/flash/handheld, -/obj/item/assembly/flash/handheld, -/obj/machinery/status_display/ai{ - pixel_x = -32 - }, -/obj/machinery/power/apc{ - areastring = "/area/storage/tech"; - dir = 1; - name = "Tech Storage APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/storage/tech) -"bDw" = ( -/obj/structure/table, -/obj/item/screwdriver{ - pixel_y = 16 - }, -/obj/item/wirecutters, -/turf/open/floor/plating, -/area/storage/tech) -"bDx" = ( -/obj/structure/table, -/obj/item/electronics/apc, -/obj/item/electronics/airlock, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bDA" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/power/apc{ - areastring = "/area/medical/sleeper"; - dir = 4; - name = "Treatment Center APC"; - pixel_x = 26 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bDB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/medical/sleeper) -"bDC" = ( -/obj/machinery/computer/operating{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bDD" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bDE" = ( -/obj/machinery/vending/wallmed{ - pixel_x = 28 - }, -/obj/machinery/camera{ - c_tag = "Medbay Recovery Room"; - dir = 8; - network = list("ss13","medbay") - }, -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bDF" = ( -/obj/machinery/door/poddoor/preopen{ - id = "medpriv4"; - name = "privacy door" - }, -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/medbay/central) -"bDG" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bDH" = ( -/obj/structure/closet/l3closet/janitor, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/janitor) -"bDI" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bDJ" = ( -/obj/structure/closet/jcloset, -/obj/item/storage/bag/trash, -/obj/item/clothing/under/rank/civilian/janitor/maid, -/obj/item/clothing/under/rank/civilian/janitor/maid, -/obj/item/clothing/under/rank/civilian/janitor/maid, -/obj/item/clothing/under/costume/maid, -/obj/item/clothing/under/costume/maid, -/obj/item/clothing/under/costume/maid, -/turf/open/floor/plasteel, -/area/janitor) -"bDK" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/camera{ - c_tag = "Custodial Closet" - }, -/obj/vehicle/ridden/janicart, -/turf/open/floor/plasteel, -/area/janitor) -"bDL" = ( -/obj/structure/sign/poster/contraband/lizard{ - pixel_x = -32 - }, -/turf/open/floor/plasteel, -/area/janitor) -"bDM" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/janitor) -"bDN" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bDO" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/sign/poster/contraband/hacking_guide{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bDP" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - dir = 1; - freq = 1400; - location = "Janitor" - }, -/obj/structure/plasticflaps/opaque, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/janitor) -"bDQ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bDR" = ( -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bDS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bDT" = ( -/obj/effect/landmark/start/medical_doctor, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bDU" = ( -/obj/machinery/door/airlock/command/glass{ - name = "Chief Medical Officer"; - req_access_txt = "40" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bDV" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/sorting/mail{ - sortType = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bDW" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Medbay Storage"; - req_access_txt = "5" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bDY" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plasteel, -/area/science/storage) -"bDZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bEa" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bEb" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/storage) -"bEc" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/science/storage) -"bEd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/medical/glass{ - name = "Medbay Storage"; - req_access_txt = "5" - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bEe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bEf" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/science/research) -"bEg" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/research{ - name = "Toxins Storage"; - req_access_txt = "8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/storage) -"bEh" = ( -/obj/structure/table/glass, -/obj/item/paper_bin{ - pixel_x = -2; - pixel_y = 5 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bEi" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/crew_quarters/heads/cmo) -"bEj" = ( -/obj/structure/table/glass, -/obj/item/pen, -/obj/item/clothing/neck/stethoscope, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/mob/living/simple_animal/pet/cat/Runtime, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bEk" = ( -/obj/structure/table/glass, -/obj/item/folder/white, -/obj/item/stamp/cmo, -/obj/item/clothing/glasses/hud/health, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bEl" = ( -/obj/structure/disposalpipe/segment, -/obj/item/radio/intercom{ - pixel_x = 25 - }, -/obj/machinery/camera{ - c_tag = "Chief Medical Office"; - dir = 8; - network = list("ss13","medbay"); - pixel_y = -22 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bEm" = ( -/turf/open/floor/engine, -/area/science/xenobiology) -"bEn" = ( -/obj/machinery/camera{ - c_tag = "Xenobiology Test Chamber"; - network = list("xeno","rd") - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/engine, -/area/science/xenobiology) -"bEo" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/science/storage) -"bEp" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/obj/structure/sign/warning/nosmoking{ - pixel_y = 32 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/science/storage) -"bEq" = ( -/obj/machinery/power/apc{ - areastring = "/area/science/research"; - dir = 8; - name = "Misc Research APC"; - pixel_x = -25 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/science/research) -"bEr" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/research) -"bEs" = ( -/turf/closed/wall, -/area/science/mixing) -"bEt" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel/white, -/area/science/research) -"bEu" = ( -/obj/structure/closet/bombcloset, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bEv" = ( -/obj/structure/closet/bombcloset, -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bEw" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bEx" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/machinery/camera{ - c_tag = "Toxins Lab West"; - network = list("ss13","rd") - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bEy" = ( -/obj/machinery/portable_atmospherics/pump, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bEz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"bEA" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bEB" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bEC" = ( -/turf/closed/wall/r_wall, -/area/science/mixing) -"bED" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bEE" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bEF" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bEG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bEH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/science/mixing) -"bEI" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bEJ" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"bEK" = ( -/obj/machinery/camera{ - c_tag = "Mining Dock"; - dir = 4 - }, -/obj/machinery/computer/security/mining, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bEL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bEM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/science/mixing) -"bEN" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel, -/area/science/mixing) -"bEO" = ( -/obj/structure/sign/warning/securearea{ - pixel_x = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/mixing) -"bEP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bEQ" = ( -/obj/effect/landmark/start/shaft_miner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bER" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bES" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/port/aft) -"bET" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bEU" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/storage/tech) -"bEV" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/storage/tech) -"bEW" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/storage/tech) -"bEX" = ( -/obj/structure/table, -/obj/item/aicard, -/obj/item/aiModule/reset, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/storage/tech) -"bEY" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/storage/tech) -"bEZ" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil, -/obj/item/stock_parts/cell/high/plus, -/turf/open/floor/plating, -/area/storage/tech) -"bFa" = ( -/turf/open/floor/plating, -/area/storage/tech) -"bFb" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/storage/tech) -"bFc" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/landmark/blobstart, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bFd" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bFe" = ( -/obj/machinery/door/airlock/engineering{ - name = "Tech Storage"; - req_access_txt = "23" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bFf" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/start/janitor, -/turf/open/floor/plasteel, -/area/janitor) -"bFg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/janitor) -"bFh" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bFi" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/janitor) -"bFj" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bFk" = ( -/obj/item/mop, -/obj/item/reagent_containers/glass/bucket, -/obj/structure/sign/poster/contraband/busty_backdoor_xeno_babes_6{ - pixel_x = 32 - }, -/obj/structure/closet, -/turf/open/floor/plasteel, -/area/janitor) -"bFl" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/janitor"; - dir = 8; - name = "Custodial Closet APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bFm" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 8; - sortType = 6 - }, -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/maintenance/aft) -"bFn" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/aft) -"bFo" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bFp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/maintenance/aft) -"bFq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bFr" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bFs" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Custodial Maintenance"; - req_access_txt = "26" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bFt" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bFu" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical{ - name = "Operating Theatre"; - req_access_txt = "45" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bFv" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bFw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bFx" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bFy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bFz" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/medical/sleeper) -"bFA" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/machinery/requests_console{ - department = "Medbay"; - departmentType = 1; - name = "Medbay RC"; - pixel_x = 30 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bFB" = ( -/obj/structure/closet/secure_closet/medical2, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"bFC" = ( -/obj/structure/table/wood/poker, -/obj/item/clothing/mask/cigarette/cigar{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4; - pixel_y = 5 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"bFD" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bFE" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/machinery/computer/security/telescreen/cmo{ - dir = 1; - pixel_y = -24 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bFF" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bFG" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bFH" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/light_switch{ - pixel_x = 28 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bFI" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/storage) -"bFJ" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, -/obj/structure/sign/warning/nosmoking{ - pixel_x = -28 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bFK" = ( -/obj/structure/closet/wardrobe/pjs, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bFL" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bFM" = ( -/obj/structure/disposalpipe/junction/flip{ - dir = 2 - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bFN" = ( -/obj/structure/table, -/obj/item/cartridge/medical{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/item/cartridge/medical{ - pixel_x = 6; - pixel_y = 3 - }, -/obj/item/cartridge/medical, -/obj/item/cartridge/chemistry{ - pixel_y = 2 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bFO" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/cmo) -"bFP" = ( -/obj/machinery/computer/card/minor/cmo{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bFQ" = ( -/obj/structure/sign/warning/nosmoking{ - pixel_x = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/science/research) -"bFR" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/research) -"bFS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"bFT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bFU" = ( -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bFV" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/obj/machinery/meter, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bFW" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bFX" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bFY" = ( -/obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "8;12" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bFZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/science/mixing) -"bGa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/maintenance/starboard) -"bGb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/closed/wall, -/area/science/mixing) -"bGc" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/science/mixing) -"bGd" = ( -/obj/machinery/doppler_array/research/science{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/mixing) -"bGe" = ( -/turf/closed/wall, -/area/science/test_area) -"bGf" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/science/test_area) -"bGi" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/quartermaster/miningdock) -"bGj" = ( -/obj/machinery/computer/shuttle/mining{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bGk" = ( -/obj/structure/chair/stool, -/obj/effect/landmark/start/scientist, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bGl" = ( -/obj/item/assembly/prox_sensor{ - pixel_x = -4; - pixel_y = 1 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = 8; - pixel_y = 9 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = 9; - pixel_y = -2 - }, -/obj/item/assembly/prox_sensor{ - pixel_y = 2 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bGm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bGn" = ( -/obj/structure/closet/secure_closet/miner, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bGo" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Firefighting equipment"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bGp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bGq" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bGr" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/storage/tech) -"bGs" = ( -/obj/machinery/camera{ - c_tag = "Secure Tech Storage" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/storage/tech) -"bGt" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/techstorage/AI, -/turf/open/floor/plasteel, -/area/storage/tech) -"bGu" = ( -/obj/structure/sign/warning/electricshock, -/turf/closed/wall/r_wall, -/area/storage/tech) -"bGv" = ( -/obj/structure/table, -/obj/machinery/cell_charger{ - pixel_y = 5 - }, -/obj/item/multitool, -/turf/open/floor/plating, -/area/storage/tech) -"bGw" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/techstorage/rnd, -/turf/open/floor/plating, -/area/storage/tech) -"bGx" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/techstorage/tcomms, -/turf/open/floor/plating, -/area/storage/tech) -"bGy" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/techstorage/service, -/turf/open/floor/plating, -/area/storage/tech) -"bGz" = ( -/obj/structure/table/reinforced, -/obj/item/wrench, -/obj/item/screwdriver{ - pixel_y = 10 - }, -/obj/item/analyzer, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bGA" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bGB" = ( -/obj/structure/table, -/obj/item/grenade/chem_grenade/cleaner, -/obj/item/grenade/chem_grenade/cleaner, -/obj/item/grenade/chem_grenade/cleaner, -/obj/machinery/requests_console{ - department = "Janitorial"; - departmentType = 1; - pixel_y = -29 - }, -/obj/item/reagent_containers/spray/cleaner, -/obj/item/storage/box/lights/mixed, -/obj/item/storage/box/lights/mixed, -/turf/open/floor/plasteel, -/area/janitor) -"bGC" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/research{ - name = "Toxins Launch Room Access"; - req_access_txt = "7" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bGD" = ( -/obj/structure/janitorialcart, -/turf/open/floor/plasteel, -/area/janitor) -"bGE" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/janitor) -"bGF" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bGG" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/mixing) -"bGH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bGI" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/aft) -"bGJ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bGK" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/mixing) -"bGL" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/mixing) -"bGM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bGN" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bGO" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bGP" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bGQ" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bGR" = ( -/obj/structure/table, -/obj/item/storage/belt/medical{ - pixel_y = 2 - }, -/obj/item/storage/belt/medical{ - pixel_y = 2 - }, -/obj/item/storage/belt/medical{ - pixel_y = 2 - }, -/obj/item/clothing/neck/stethoscope, -/obj/item/gun/syringe/dart, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bGT" = ( -/obj/structure/table, -/obj/item/folder/white, -/obj/item/clothing/neck/stethoscope, -/obj/machinery/vending/wallmed{ - pixel_y = 28 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bGU" = ( -/obj/structure/closet/secure_closet/personal/patient, -/obj/machinery/button/door{ - id = "medpriv4"; - name = "Privacy Shutters"; - pixel_y = 25 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bGV" = ( -/obj/structure/chair/office/light{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bGW" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plating, -/area/maintenance/aft) -"bGX" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bGY" = ( -/obj/machinery/portable_atmospherics/scrubber/huge, -/turf/open/floor/plasteel, -/area/science/storage) -"bGZ" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bHa" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/heads/cmo) -"bHb" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bHc" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/science/research) -"bHd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bHe" = ( -/obj/machinery/power/apc{ - areastring = "/area/science/storage"; - dir = 8; - name = "Toxins Storage APC"; - pixel_x = -25 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/camera{ - c_tag = "Toxins Storage"; - dir = 4; - network = list("ss13","rd") - }, -/turf/open/floor/plasteel, -/area/science/storage) -"bHf" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"bHg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"bHh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bHi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bHj" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bHk" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bHl" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bHm" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/research{ - name = "Toxins Lab"; - req_access_txt = "7" - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bHn" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/closed/wall/r_wall, -/area/maintenance/aft) -"bHo" = ( -/obj/structure/closet, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bHp" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bHq" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bHr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/science/mixing) -"bHs" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel, -/area/science/mixing) -"bHt" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bHu" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/mixing) -"bHv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/mixing) -"bHw" = ( -/obj/item/target, -/obj/structure/window/reinforced, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/science/test_area) -"bHy" = ( -/obj/structure/closet/crate, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/item/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_x = 27 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bHz" = ( -/obj/item/stack/ore/iron, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bHA" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bHC" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bHD" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bHE" = ( -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bHG" = ( -/obj/structure/rack, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/spawner/lootdrop/techstorage/command, -/turf/open/floor/plasteel, -/area/storage/tech) -"bHH" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/storage/tech) -"bHI" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "Secure Tech Storage"; - req_access_txt = "19;23" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/storage/tech) -"bHJ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plating, -/area/storage/tech) -"bHK" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/science/research) -"bHL" = ( -/obj/machinery/camera{ - c_tag = "Research Division South"; - dir = 8 - }, -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/plasteel/white/side{ - dir = 9 - }, -/area/science/research) -"bHM" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/research) -"bHN" = ( -/obj/machinery/requests_console{ - department = "Tech storage"; - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bHO" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/multitool, -/obj/item/clothing/glasses/meson, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/storage/tech) -"bHP" = ( -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bHQ" = ( -/obj/machinery/vending/assist, -/turf/open/floor/plating, -/area/storage/tech) -"bHR" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/camera{ - c_tag = "Aft Primary Hallway 2"; - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bHS" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bHT" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/medical/medbay/central) -"bHU" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/aft) -"bHV" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/aft"; - dir = 8; - name = "Aft Maintenance APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bHW" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/maintenance/aft) -"bHX" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/maintenance/aft) -"bHY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bIa" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bIb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/science/research) -"bIc" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/medical/sleeper) -"bId" = ( -/obj/machinery/vending/wallmed{ - pixel_y = -28 - }, -/obj/machinery/camera{ - c_tag = "Surgery Operating"; - dir = 1; - network = list("ss13","medbay"); - pixel_x = 22 - }, -/obj/machinery/light, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bIe" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/status_display/evac{ - pixel_x = -32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bIf" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/doorButtons/access_button{ - idDoor = "virology_airlock_exterior"; - idSelf = "virology_airlock_control"; - name = "Virology Access Button"; - pixel_x = -24; - req_access_txt = "39" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/virology{ - autoclose = 0; - frequency = 1449; - id_tag = "virology_airlock_exterior"; - name = "Virology Exterior Airlock"; - req_access_txt = "39" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bIg" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 2; - sortType = 13 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bIh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bIi" = ( -/obj/structure/table, -/obj/item/storage/firstaid/o2{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/o2, -/obj/item/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bIj" = ( -/obj/structure/table, -/obj/machinery/light, -/obj/item/reagent_containers/spray/cleaner, -/obj/item/clothing/glasses/hud/health, -/obj/item/clothing/glasses/hud/health, -/obj/item/clothing/glasses/hud/health, -/obj/item/hand_labeler, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bIk" = ( -/obj/structure/table, -/obj/item/storage/firstaid/fire{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/fire, -/obj/item/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/machinery/door/window/northright{ - name = "First-Aid Supplies"; - red_alert_access = 1; - req_access_txt = "5" - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bIl" = ( -/obj/structure/table, -/obj/item/storage/firstaid/toxin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/toxin, -/obj/item/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/machinery/door/window/northleft{ - name = "First-Aid Supplies"; - red_alert_access = 1; - req_access_txt = "5" - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bIm" = ( -/obj/machinery/light, -/obj/machinery/rnd/production/techfab/department/medical, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bIn" = ( -/obj/structure/table, -/obj/item/storage/firstaid/brute{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/brute, -/obj/item/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"bIo" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bIp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bIq" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bIr" = ( -/obj/machinery/door/airlock/medical{ - name = "Patient Room"; - req_access_txt = "5" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bIs" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance{ - name = "Xenobiology Maintenance"; - req_access_txt = "55" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bIt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bIu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bIv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bIw" = ( -/obj/structure/closet/secure_closet/CMO, -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/heads/cmo) -"bIx" = ( -/obj/structure/sign/warning/electricshock, -/turf/closed/wall/r_wall, -/area/science/xenobiology) -"bIy" = ( -/obj/structure/disposaloutlet{ - dir = 1 - }, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/engine, -/area/science/xenobiology) -"bIz" = ( -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/storage) -"bIA" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/storage) -"bIB" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/storage) -"bIC" = ( -/turf/open/floor/plasteel, -/area/science/storage) -"bID" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/white/side{ - dir = 5 - }, -/area/science/research) -"bIE" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"bIF" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bIG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bIH" = ( -/obj/machinery/pipedispenser/disposal, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bII" = ( -/obj/item/storage/secure/safe{ - pixel_x = 5; - pixel_y = 29 - }, -/obj/machinery/camera{ - c_tag = "Virology Break Room"; - network = list("ss13","medbay") - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bIJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bIK" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bIL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bIM" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/sign/warning/securearea{ - pixel_x = 32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bIN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/science/xenobiology) -"bIO" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bIP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/chair/comfy/black, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bIQ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bIR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bIS" = ( -/obj/machinery/door/airlock/research{ - name = "Toxins Launch Room"; - req_access_txt = "7" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/mixing) -"bIT" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/sign/departments/xenobio{ - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/science/xenobiology) -"bIU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel, -/area/science/mixing) -"bIV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/mixing) -"bIW" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/science/mixing) -"bIX" = ( -/obj/structure/sign/warning/securearea{ - desc = "A warning sign which reads 'BOMB RANGE"; - name = "BOMB RANGE" - }, -/turf/closed/wall, -/area/science/test_area) -"bIY" = ( -/obj/structure/chair, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/science/test_area) -"bIZ" = ( -/obj/structure/chair, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/science/test_area) -"bJa" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/science/test_area) -"bJb" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/mining/glass{ - name = "Mining Dock"; - req_access_txt = "48" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/quartermaster/miningdock) -"bJd" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/mining/glass{ - name = "Mining Dock"; - req_access_txt = "48" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bJe" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bJf" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bJg" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/storage/tech) -"bJh" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/techstorage/RnD_secure, -/turf/open/floor/plasteel, -/area/storage/tech) -"bJi" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/wall/r_wall, -/area/storage/tech) -"bJj" = ( -/obj/structure/table, -/obj/item/stock_parts/subspace/analyzer, -/obj/item/stock_parts/subspace/analyzer, -/obj/item/stock_parts/subspace/analyzer, -/turf/open/floor/plating, -/area/storage/tech) -"bJk" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/techstorage/medical, -/turf/open/floor/plating, -/area/storage/tech) -"bJl" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/techstorage/engineering, -/turf/open/floor/plating, -/area/storage/tech) -"bJm" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/techstorage/security, -/turf/open/floor/plating, -/area/storage/tech) -"bJn" = ( -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bJo" = ( -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/science/research) -"bJp" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bJq" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bJr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/science/research) -"bJs" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bJt" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bJu" = ( -/obj/structure/light_construct{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/construction) -"bJv" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bJw" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bJx" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"bJy" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bJz" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 1 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bJA" = ( -/obj/effect/landmark/blobstart, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bJB" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bJC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/medical/sleeper) -"bJD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/medical/sleeper) -"bJE" = ( -/turf/closed/wall/r_wall, -/area/medical/medbay/central) -"bJF" = ( -/obj/machinery/pipedispenser/disposal/transit_tube, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bJG" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bJH" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/shieldwallgen/xenobiologyaccess, -/turf/open/floor/plating, -/area/science/xenobiology) -"bJI" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/door/poddoor/preopen{ - id = "misclab"; - name = "test chamber blast door" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/engine, -/area/science/xenobiology) -"bJJ" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/door/poddoor/preopen{ - id = "misclab"; - name = "test chamber blast door" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/engine, -/area/science/xenobiology) -"bJK" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/door/poddoor/preopen{ - id = "misclab"; - name = "test chamber blast door" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/engine, -/area/science/xenobiology) -"bJM" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "misclab"; - name = "test chamber blast door" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/engine, -/area/science/xenobiology) -"bJN" = ( -/turf/closed/wall, -/area/science/xenobiology) -"bJO" = ( -/obj/machinery/door/airlock/research{ - name = "Testing Lab"; - req_access_txt = "47" - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bJP" = ( -/obj/effect/spawner/lootdrop/keg, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bJQ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bJR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/science/storage) -"bJT" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/white, -/area/science/research) -"bJU" = ( -/obj/machinery/vending/wardrobe/science_wardrobe, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bJV" = ( -/obj/structure/closet/l3closet/scientist{ - pixel_x = -2 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bJW" = ( -/obj/item/transfer_valve{ - pixel_x = -5 - }, -/obj/item/transfer_valve{ - pixel_x = -5 - }, -/obj/item/transfer_valve, -/obj/item/transfer_valve, -/obj/item/transfer_valve{ - pixel_x = 5 - }, -/obj/item/transfer_valve{ - pixel_x = 5 - }, -/obj/machinery/requests_console{ - department = "Science"; - departmentType = 2; - name = "Science Requests Console"; - pixel_y = -30; - receive_ore_updates = 1 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bJX" = ( -/obj/item/assembly/signaler{ - pixel_y = 8 - }, -/obj/item/assembly/signaler{ - pixel_x = -8; - pixel_y = 5 - }, -/obj/item/assembly/signaler{ - pixel_x = 6; - pixel_y = 5 - }, -/obj/item/assembly/signaler{ - pixel_x = -2; - pixel_y = -2 - }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bJY" = ( -/obj/structure/tank_dispenser, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bJZ" = ( -/obj/item/assembly/timer{ - pixel_x = 5; - pixel_y = 4 - }, -/obj/item/assembly/timer{ - pixel_x = -4; - pixel_y = 2 - }, -/obj/item/assembly/timer{ - pixel_x = 6; - pixel_y = -4 - }, -/obj/item/assembly/timer, -/obj/structure/table/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bKa" = ( -/obj/machinery/power/apc{ - areastring = "/area/science/mixing"; - dir = 4; - name = "Toxins Lab APC"; - pixel_x = 26 - }, -/obj/structure/cable, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bKb" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/science/mixing) -"bKc" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/mixing) -"bKd" = ( -/obj/machinery/camera{ - c_tag = "Toxins Launch Room Access"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/mixing) -"bKe" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/science/mixing) -"bKf" = ( -/obj/machinery/door/window/southleft{ - name = "Mass Driver Door"; - req_access_txt = "7" - }, -/obj/effect/turf_decal/loading_area, -/turf/open/floor/plasteel, -/area/science/mixing) -"bKg" = ( -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/science/test_area) -"bKh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/science/test_area) -"bKi" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/science/test_area) -"bKj" = ( -/obj/machinery/camera{ - c_tag = "Mining Dock External"; - dir = 8 - }, -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bKk" = ( -/obj/item/stack/ore/silver, -/obj/item/stack/ore/silver, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bKl" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bKm" = ( -/obj/structure/sign/warning/vacuum/external, -/turf/closed/wall, -/area/quartermaster/miningdock) -"bKn" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/pickaxe{ - pixel_x = 5 - }, -/obj/item/shovel{ - pixel_x = -5 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bKo" = ( -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bKp" = ( -/obj/structure/closet/crate, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bKq" = ( -/obj/machinery/mineral/equipment_vendor, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"bKr" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/storage/tech) -"bKs" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/storage/tech) -"bKt" = ( -/obj/structure/table, -/obj/item/stock_parts/micro_laser, -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/manipulator, -/obj/item/stock_parts/capacitor, -/obj/item/stock_parts/micro_laser/high, -/obj/item/stock_parts/micro_laser/high, -/obj/item/stock_parts/micro_laser/high, -/obj/item/stock_parts/micro_laser/high, -/turf/open/floor/plating, -/area/storage/tech) -"bKu" = ( -/obj/structure/table, -/obj/item/stock_parts/subspace/amplifier, -/obj/item/stock_parts/subspace/amplifier, -/obj/item/stock_parts/subspace/amplifier, -/turf/open/floor/plating, -/area/storage/tech) -"bKv" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bKw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/aft) -"bKx" = ( -/obj/structure/closet/crate, -/obj/effect/landmark/blobstart, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/construction) -"bKy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/maintenance/aft) -"bKz" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bKA" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plating, -/area/construction) -"bKB" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bKC" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bKD" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bKE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bKF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"bKG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/sign/warning/securearea{ - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bKH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bKI" = ( -/obj/structure/disposalpipe/sorting/mail{ - dir = 8; - sortType = 11 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bKJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bKK" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - areastring = "/area/medical/medbay/central"; - dir = 4; - name = "Medbay APC"; - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bKL" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bKM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/airalarm{ - pixel_y = 24 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bKN" = ( -/obj/machinery/door/airlock/medical{ - name = "Apothecary"; - req_access_txt = "5" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bKO" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bKP" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/window/westleft{ - name = "Delivery Desk"; - req_access_txt = "50" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"bKQ" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bKR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/medical/medbay/central) -"bKS" = ( -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/heads/cmo"; - dir = 1; - name = "CM Office APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bKT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bKU" = ( -/obj/machinery/door/airlock/engineering/abandoned{ - name = "Construction Area"; - req_access_txt = "32" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/construction) -"bKV" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bKW" = ( -/obj/item/wrench, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bKX" = ( -/obj/machinery/button/door{ - id = "misclab"; - name = "Test Chamber Blast Doors"; - pixel_y = -2; - req_access_txt = "55" - }, -/obj/structure/table/reinforced, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bKY" = ( -/obj/machinery/computer/security/telescreen{ - name = "Test Chamber Monitor"; - network = list("xeno"); - pixel_y = 2 - }, -/obj/structure/table/reinforced, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bKZ" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bLb" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bLc" = ( -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/obj/item/clothing/glasses/science, -/obj/item/clothing/glasses/science, -/obj/structure/table, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bLd" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/machinery/doorButtons/access_button{ - idDoor = "virology_airlock_interior"; - idSelf = "virology_airlock_control"; - name = "Virology Access Button"; - pixel_x = 8; - pixel_y = -28; - req_access_txt = "39" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bLe" = ( -/obj/structure/sign/warning/biohazard, -/turf/closed/wall, -/area/science/xenobiology) -"bLf" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bLg" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bLh" = ( -/obj/structure/sign/warning/fire, -/turf/closed/wall, -/area/science/research) -"bLi" = ( -/obj/structure/sign/warning/nosmoking{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bLj" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/science/mixing) -"bLk" = ( -/obj/machinery/mass_driver{ - dir = 4; - id = "toxinsdriver" - }, -/turf/open/floor/plating, -/area/science/mixing) -"bLl" = ( -/obj/machinery/door/poddoor{ - id = "toxinsdriver"; - name = "toxins launcher bay door" - }, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/science/mixing) -"bLm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/science/mixing) -"bLn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/science/test_area) -"bLo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/science/test_area) -"bLp" = ( -/obj/item/beacon, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/science/test_area) -"bLq" = ( -/turf/closed/indestructible{ - desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease"; - icon_state = "riveted"; - name = "hyper-reinforced wall" - }, -/area/science/test_area) -"bLr" = ( -/obj/item/target/alien/anchored, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/camera/preset/toxins{ - dir = 8 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/science/test_area) -"bLu" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bLv" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bLw" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bLx" = ( -/obj/structure/table, -/obj/item/stock_parts/subspace/transmitter, -/obj/item/stock_parts/subspace/transmitter, -/obj/item/stock_parts/subspace/treatment, -/obj/item/stock_parts/subspace/treatment, -/obj/item/stock_parts/subspace/treatment, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bLy" = ( -/obj/structure/table, -/obj/item/stock_parts/subspace/ansible, -/obj/item/stock_parts/subspace/ansible, -/obj/item/stock_parts/subspace/ansible, -/obj/item/stock_parts/subspace/crystal, -/obj/item/stock_parts/subspace/crystal, -/obj/item/stock_parts/subspace/crystal, -/turf/open/floor/plating, -/area/storage/tech) -"bLz" = ( -/obj/structure/table, -/obj/item/stock_parts/subspace/filter, -/obj/item/stock_parts/subspace/filter, -/obj/item/stock_parts/subspace/filter, -/obj/item/stock_parts/subspace/filter, -/obj/item/stock_parts/subspace/filter, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/storage/tech) -"bLA" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/clothing/gloves/color/yellow, -/obj/item/t_scanner, -/obj/item/multitool, -/obj/machinery/camera{ - c_tag = "Tech Storage"; - dir = 1 - }, -/turf/open/floor/plating, -/area/storage/tech) -"bLB" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bLC" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/construction) -"bLD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/storage/tech) -"bLE" = ( -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"bLF" = ( -/obj/structure/filingcabinet/filingcabinet, -/obj/machinery/power/apc{ - areastring = "/area/quartermaster/sorting"; - name = "Delivery Office APC"; - pixel_x = 1; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"bLG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"bLH" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bLI" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bLJ" = ( -/obj/machinery/computer/atmos_control, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bLK" = ( -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bLL" = ( -/obj/machinery/computer/station_alert, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bLM" = ( -/obj/machinery/computer/atmos_alert, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bLN" = ( -/obj/machinery/vending/wardrobe/atmos_wardrobe, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bLO" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/maintenance{ - name = "Atmospherics Maintenance"; - req_access_txt = "24" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bLP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bLQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bLR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/visible, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bLS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bLT" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bLU" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/chem_dispenser, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bLV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/chem_heater, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bLW" = ( -/obj/structure/chair/office/light{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bLX" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"bLY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bLZ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bMa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bMb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bMc" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Medbay Maintenance"; - req_access_txt = "5" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bMd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bMe" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/junction, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"bMf" = ( -/obj/structure/table, -/obj/machinery/cell_charger{ - pixel_y = 5 - }, -/obj/item/stack/cable_coil, -/obj/item/multitool, -/obj/item/stock_parts/cell/high/plus, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bMg" = ( -/obj/machinery/power/apc{ - areastring = "/area/science/xenobiology"; - dir = 8; - name = "Xenobiology APC"; - pixel_x = -25 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bMh" = ( -/obj/structure/chair/stool, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bMi" = ( -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bMj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/closed/wall, -/area/maintenance/port/aft) -"bMk" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bMl" = ( -/obj/machinery/processor/slime, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bMm" = ( -/obj/machinery/monkey_recycler, -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bMn" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/structure/table/glass, -/obj/machinery/reagentgrinder{ - desc = "Used to grind things up into raw materials and liquids."; - pixel_y = 5 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bMo" = ( -/obj/machinery/smartfridge/extract/preloaded, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bMp" = ( -/obj/structure/closet/l3closet/scientist, -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/item/extinguisher, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bMq" = ( -/obj/structure/closet/l3closet/scientist, -/obj/item/extinguisher, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bMr" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/science/xenobiology) -"bMs" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/science/research) -"bMt" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 - }, -/turf/open/floor/engine/vacuum, -/area/science/mixing) -"bMu" = ( -/obj/machinery/door/poddoor/incinerator_toxmix, -/turf/open/floor/engine/vacuum, -/area/science/mixing) -"bMv" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/science/mixing) -"bMw" = ( -/obj/machinery/sparker/toxmix{ - pixel_x = 25 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output{ - dir = 4 - }, -/turf/open/floor/engine/vacuum, -/area/science/mixing) -"bMx" = ( -/obj/machinery/airlock_sensor/incinerator_toxmix{ - pixel_y = 24 - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/engine, -/area/science/mixing) -"bMy" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4; - name = "mix to port" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bMz" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{ - pixel_x = -24 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bMA" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/science/mixing) -"bMB" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"bMC" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"bMD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/science/test_area) -"bME" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/science/test_area) -"bMG" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bMH" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bMI" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bMJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bMK" = ( -/turf/closed/wall, -/area/engine/atmos) -"bML" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/plasticflaps/opaque, -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=4"; - dir = 4; - freq = 1400; - location = "Atmospherics" - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/window/northleft{ - dir = 4; - name = "Atmospherics Desk"; - req_access_txt = "24" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bMM" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bMN" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bMO" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bMP" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bMQ" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/atmos) -"bMR" = ( -/obj/machinery/pipedispenser, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bMS" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics North East" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Distro to Waste" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bMT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 8 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/meter/atmos/atmos_waste_loop, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bMU" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/visible{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bMV" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/visible, -/obj/machinery/meter/atmos/distro_loop, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bMW" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bMX" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Air to Distro" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bMY" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bMZ" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bNc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/medical/virology) -"bNd" = ( -/turf/closed/wall/r_wall, -/area/medical/virology) -"bNe" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/table, -/obj/item/hand_labeler, -/obj/item/clothing/glasses/science, -/obj/item/clothing/glasses/science, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bNf" = ( -/obj/structure/sign/warning/biohazard, -/turf/closed/wall, -/area/medical/virology) -"bNg" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bNh" = ( -/obj/machinery/computer/pandemic, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bNi" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bNj" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/virology/glass{ - name = "Isolation A"; - req_access_txt = "39" - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bNk" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/medical/virology) -"bNl" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/virology/glass{ - name = "Isolation B"; - req_access_txt = "39" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bNm" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bNn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bNo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bNp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bNq" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass/fifty{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/mineral/plasma, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bNr" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - name = "Xenobiology Lab"; - req_access_txt = "55" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bNs" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bNt" = ( -/turf/open/floor/engine/vacuum, -/area/science/mixing) -"bNu" = ( -/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior, -/turf/open/floor/engine, -/area/science/mixing) -"bNv" = ( -/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior, -/turf/open/floor/engine, -/area/science/mixing) -"bNw" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix, -/turf/open/floor/engine, -/area/science/mixing) -"bNx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bNy" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bNz" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/obj/machinery/camera{ - c_tag = "Toxins Lab East"; - dir = 8; - network = list("ss13","rd"); - pixel_y = -22 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/mixing) -"bNA" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"bNB" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"bNC" = ( -/obj/structure/closet/wardrobe/grey, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"bND" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/science/test_area) -"bNE" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/science/test_area) -"bNF" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/science/test_area) -"bNG" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/science/test_area) -"bNH" = ( -/obj/structure/table/reinforced, -/obj/item/radio/intercom{ - pixel_y = -26 - }, -/obj/item/paper_bin{ - pixel_x = -3 - }, -/obj/item/pen{ - pixel_x = -3 - }, -/obj/item/folder/yellow{ - pixel_x = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"bNI" = ( -/turf/closed/wall, -/area/construction) -"bNJ" = ( -/turf/open/floor/plating, -/area/construction) -"bNK" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/mining/glass{ - name = "Cargo Office"; - req_access_txt = "50" - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bNN" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bNO" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bNP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/loading_area{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bNQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bNR" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Atmospherics Monitoring" - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel/checker, -/area/engine/atmos) -"bNS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bNT" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics North West"; - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bNU" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/medical/virology) -"bNV" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bNW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bNX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bNY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/atmos) -"bNZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bOb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOc" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix to Distro" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOd" = ( -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOe" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold4w/cyan/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOf" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/atmos) -"bOg" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix to Incinerator" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOh" = ( -/obj/structure/grille, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bOj" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/closed/wall/r_wall, -/area/medical/virology) -"bOk" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bOl" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/announcement_system, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bOm" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bOn" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bOo" = ( -/obj/item/radio/intercom{ - dir = 8; - freerange = 1; - name = "Station Intercom (Telecomms)"; - pixel_y = 26 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bOp" = ( -/obj/structure/closet/emcloset, -/obj/machinery/camera{ - c_tag = "Virology Airlock"; - network = list("ss13","medbay") - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bOq" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bOr" = ( -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bOs" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bOt" = ( -/mob/living/carbon/monkey, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bOu" = ( -/obj/structure/rack, -/obj/item/clothing/mask/gas{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bOv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bOw" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bOx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bOy" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bOz" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bOA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/twohanded/required/kirbyplants, -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/science/research) -"bOB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/science/misc_lab) -"bOC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bOD" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bOE" = ( -/obj/machinery/sparker/toxmix{ - pixel_x = 25 - }, -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{ - dir = 4 - }, -/turf/open/floor/engine/vacuum, -/area/science/mixing) -"bOF" = ( -/obj/structure/sign/warning/fire{ - pixel_y = -32 - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/engine, -/area/science/mixing) -"bOG" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4; - name = "port to mix" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bOH" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/obj/machinery/button/door/incinerator_vent_toxmix{ - pixel_x = -25; - pixel_y = 5 - }, -/obj/machinery/button/ignition/incinerator/toxmix{ - pixel_x = -25; - pixel_y = -5 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"bOI" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/science/mixing) -"bOJ" = ( -/obj/item/target, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/science/test_area) -"bOK" = ( -/obj/structure/barricade/wooden, -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bOL" = ( -/obj/structure/closet/crate, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"bOM" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/item/pen/fountain, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bON" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kanyewest"; - name = "privacy shutters" - }, -/turf/open/floor/plating, -/area/security/detectives_office) -"bOO" = ( -/obj/machinery/power/apc{ - areastring = "/area/security/checkpoint/engineering"; - dir = 8; - name = "Engineering Security APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bOP" = ( -/obj/structure/table/glass, -/obj/structure/reagent_dispensers/virusfood{ - pixel_x = -30 - }, -/obj/item/book/manual/wiki/infections{ - pixel_y = 7 - }, -/obj/item/reagent_containers/syringe/antiviral, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/spray/cleaner, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bOQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/beacon, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOR" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 1 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/structure/tank_dispenser, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOT" = ( -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - name = "Atmospherics Blast Door" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/atmos) -"bOU" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOW" = ( -/obj/machinery/requests_console{ - department = "Atmospherics"; - departmentType = 4; - name = "Atmos RC"; - pixel_x = 30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/computer/atmos_control{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) -"bOX" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bOY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/engine/atmos) -"bOZ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bPa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/atmos) -"bPb" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research/glass{ - name = "Circuitry Lab"; - req_access_txt = "47" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"bPc" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Mix to Waste" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bPd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bPe" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bPf" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bPg" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bPh" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/atmos) -"bPi" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/yellow/visible, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bPj" = ( -/obj/machinery/atmospherics/pipe/simple{ - dir = 4 - }, -/obj/structure/grille, -/obj/machinery/meter, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bPk" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics Waste Tank" - }, -/turf/open/floor/engine/vacuum, -/area/engine/atmos) -"bPl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/mix_output{ - dir = 8 - }, -/turf/open/floor/engine/vacuum, -/area/engine/atmos) -"bPm" = ( -/turf/open/floor/engine/vacuum, -/area/engine/atmos) -"bPn" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/aft) -"bPo" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_x = -3; - pixel_y = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bPp" = ( -/obj/machinery/iv_drip, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bPq" = ( -/obj/machinery/shower{ - dir = 4 - }, -/obj/structure/sign/warning/securearea{ - pixel_x = -32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bPr" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/structure/closet/l3closet, -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bPs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/misc_lab) -"bPt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/mob/living/carbon/monkey, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bPu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bPw" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/medical/virology) -"bPx" = ( -/obj/machinery/disposal/bin, -/obj/structure/sign/warning/deathsposal{ - pixel_y = -32 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bPz" = ( -/obj/structure/table/glass, -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 7 - }, -/obj/item/storage/box/syringes{ - pixel_y = 5 - }, -/obj/item/storage/box/monkeycubes{ - pixel_x = 2; - pixel_y = -2 - }, -/obj/item/storage/box/monkeycubes, -/obj/machinery/light, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bPA" = ( -/obj/machinery/computer/camera_advanced/xenobio{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bPE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/portable_atmospherics/canister/bz, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bPF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"bPG" = ( -/obj/machinery/chem_master, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/machinery/light, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bPH" = ( -/obj/machinery/requests_console{ - department = "Science"; - departmentType = 2; - name = "Science Requests Console"; - pixel_y = -30; - receive_ore_updates = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/table/reinforced, -/obj/item/slime_scanner, -/obj/item/clothing/gloves/color/latex, -/obj/item/clothing/glasses/science, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bPI" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bPJ" = ( -/obj/structure/table/glass, -/obj/item/stack/sheet/mineral/plasma{ - pixel_y = 4 - }, -/obj/item/stack/sheet/mineral/plasma{ - pixel_y = 4 - }, -/obj/item/stack/sheet/mineral/plasma{ - pixel_y = 4 - }, -/obj/item/stack/sheet/mineral/plasma{ - pixel_y = 4 - }, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = 8; - pixel_y = 2 - }, -/obj/item/reagent_containers/glass/beaker/large{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/reagent_containers/dropper, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bPK" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/science/misc_lab) -"bPL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"bPM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"bPN" = ( -/turf/closed/wall, -/area/science/misc_lab) -"bPO" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"bPP" = ( -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"bPQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bPU" = ( -/obj/item/shard, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bPV" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Maint Bar Access"; - req_access_txt = "12" - }, -/obj/structure/barricade/wooden{ - name = "wooden barricade (CLOSED)" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bPW" = ( -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bPX" = ( -/obj/structure/closet/emcloset, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bPY" = ( -/obj/structure/girder, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bPZ" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bQa" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bQb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bQc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plating, -/area/construction) -"bQd" = ( -/obj/structure/table, -/obj/item/folder/blue, -/obj/item/pen/blue, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bQe" = ( -/obj/item/screwdriver{ - pixel_y = 10 - }, -/obj/machinery/button/door{ - desc = "A remote control-switch for the engineering security doors."; - id = "Engineering"; - name = "Engineering Lockdown"; - pixel_x = -24; - pixel_y = -6; - req_access_txt = "10" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/item/radio/off, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light_switch{ - pixel_x = -27; - pixel_y = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bQf" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bQg" = ( -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bQh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQi" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/window/northleft{ - dir = 4; - name = "Atmospherics Desk"; - req_access_txt = "24" - }, -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - name = "Atmospherics Blast Door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQl" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/machinery/computer/atmos_alert{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) -"bQm" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/engine/atmos) -"bQo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQp" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQq" = ( -/obj/machinery/camera{ - c_tag = "Security Post - Engineering"; - dir = 8 - }, -/obj/item/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_x = 27 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/vending/wardrobe/sec_wardrobe, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bQr" = ( -/obj/structure/closet/crate, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQs" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Air to Waste" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQt" = ( -/obj/item/crowbar, -/obj/item/wrench, -/obj/structure/window/reinforced, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/corner, -/area/hallway/primary/aft) -"bQu" = ( -/obj/structure/rack, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQv" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQw" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQx" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix to Distro" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQy" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/atmos) -"bQz" = ( -/obj/machinery/computer/atmos_control/tank/mix_tank{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bQA" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating/airless, -/area/engine/atmos) -"bQB" = ( -/obj/machinery/air_sensor/atmos/mix_tank, -/turf/open/floor/engine/vacuum, -/area/engine/atmos) -"bQC" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/engine/vacuum, -/area/engine/atmos) -"bQD" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bQE" = ( -/obj/structure/table, -/obj/item/storage/box/donkpockets{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/machinery/newscaster{ - pixel_x = -30 - }, -/obj/item/stack/sheet/mineral/plasma, -/obj/item/stack/sheet/mineral/plasma, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bQF" = ( -/obj/machinery/vending/wardrobe/viro_wardrobe, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bQG" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/science/circuit) -"bQH" = ( -/obj/structure/closet/l3closet, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bQI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"bQJ" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bQK" = ( -/obj/machinery/door/airlock/command/glass{ - name = "Control Room"; - req_access_txt = "19; 61" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bQM" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bQN" = ( -/obj/machinery/door/firedoor, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Xenobiology North"; - dir = 8; - network = list("ss13","rd") - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bQO" = ( -/obj/structure/closet/bombcloset, -/obj/machinery/light_switch{ - pixel_x = -20 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bQP" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/tcommsat/computer) -"bQQ" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bQR" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/storage/toolbox/mechanical, -/obj/item/clothing/ears/earmuffs, -/obj/machinery/camera{ - c_tag = "Testing Lab North"; - network = list("ss13","rd") - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bQS" = ( -/obj/machinery/requests_console{ - department = "Science"; - departmentType = 2; - name = "Science Requests Console"; - pixel_y = 30; - receive_ore_updates = 1 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bQT" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/science/misc_lab) -"bQU" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/science/misc_lab) -"bQV" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4 - }, -/turf/open/floor/engine, -/area/science/misc_lab) -"bQW" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 8 - }, -/turf/open/floor/engine, -/area/science/misc_lab) -"bQY" = ( -/obj/structure/table/reinforced, -/obj/item/integrated_circuit_printer, -/obj/machinery/computer/security/telescreen/circuitry{ - pixel_y = 30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"bQZ" = ( -/turf/closed/wall/r_wall, -/area/science/misc_lab) -"bRa" = ( -/obj/structure/table/reinforced, -/obj/machinery/light{ - dir = 1 - }, -/obj/item/stack/sheet/metal/ten, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"bRg" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bRh" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bRi" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bRj" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bRk" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bRl" = ( -/obj/structure/light_construct{ - dir = 8 - }, -/turf/open/floor/plating, -/area/construction) -"bRm" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Security Office"; - req_access_txt = "63" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bRn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/construction) -"bRo" = ( -/obj/machinery/computer/secure_data{ - dir = 8 - }, -/obj/machinery/computer/security/telescreen/engine{ - dir = 8; - pixel_x = 24 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bRp" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bRr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRs" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - name = "Atmospherics Blast Door" - }, -/turf/open/floor/plating, -/area/engine/atmos) -"bRt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRu" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/machinery/computer/atmos_alert{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) -"bRv" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/effect/landmark/start/atmospheric_technician, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRw" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRx" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/engine/atmos) -"bRy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRB" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/atmos/glass{ - name = "Distribution Loop"; - req_access_txt = "24" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRD" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRE" = ( -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 1 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRF" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRG" = ( -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRI" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/atmos) -"bRJ" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4; - name = "Unfiltered & Air to Mix" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bRL" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/mix_input{ - dir = 8 - }, -/turf/open/floor/engine/vacuum, -/area/engine/atmos) -"bRM" = ( -/obj/structure/table, -/obj/machinery/light_switch{ - pixel_x = -23 - }, -/obj/machinery/reagentgrinder, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bRN" = ( -/turf/closed/wall, -/area/medical/virology) -"bRO" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bRP" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/virology{ - autoclose = 0; - frequency = 1449; - id_tag = "virology_airlock_interior"; - name = "Virology Interior Airlock"; - req_access_txt = "39" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bRQ" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/medical/virology) -"bRR" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/virology/glass{ - name = "Monkey Pen"; - req_access_txt = "39" - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bRS" = ( -/obj/structure/chair/office/dark, -/obj/effect/landmark/start/depsec/engineering, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bRT" = ( -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/structure/disposaloutlet, -/turf/open/floor/engine, -/area/science/xenobiology) -"bRU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/engine, -/area/science/xenobiology) -"bRV" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/window/reinforced, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bRW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio3"; - name = "containment blast door" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/engine, -/area/science/xenobiology) -"bRY" = ( -/obj/structure/window/reinforced, -/obj/structure/table/reinforced, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/button/door{ - id = "xenobio8"; - name = "Containment Blast Doors"; - pixel_y = 4; - req_access_txt = "55" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bRZ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bSa" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio8"; - name = "containment blast door" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/engine, -/area/science/xenobiology) -"bSb" = ( -/obj/structure/closet/l3closet/scientist{ - pixel_x = -2 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bSc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bSd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bSe" = ( -/obj/structure/table, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/electropack, -/obj/item/healthanalyzer, -/obj/item/assembly/signaler, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bSf" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bSg" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/science/misc_lab) -"bSh" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/engine, -/area/science/misc_lab) -"bSi" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/turf/open/floor/engine, -/area/science/misc_lab) -"bSj" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8 - }, -/turf/open/floor/engine, -/area/science/misc_lab) -"bSk" = ( -/obj/effect/landmark/start/scientist, -/obj/structure/chair/office/light{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"bSl" = ( -/turf/closed/wall/r_wall, -/area/science/circuit) -"bSm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/starboard/aft) -"bSn" = ( -/obj/effect/spawner/lootdrop/crate_spawner, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bSo" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bSp" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bSq" = ( -/obj/structure/rack, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bSs" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bSt" = ( -/obj/structure/closet/emcloset, -/obj/machinery/camera{ - c_tag = "Telecomms Monitoring"; - dir = 8; - network = list("tcomms") - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bSv" = ( -/obj/machinery/camera{ - c_tag = "Construction Area"; - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plating, -/area/construction) -"bSw" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bSx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/construction) -"bSy" = ( -/obj/machinery/light/small, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"bSz" = ( -/obj/structure/table, -/turf/open/floor/plating, -/area/construction) -"bSA" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bSB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/airlock/atmos/glass{ - name = "Atmospherics Monitoring"; - req_access_txt = "24" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bSC" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bSD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/engine/atmos) -"bSE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall, -/area/engine/atmos) -"bSF" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/portable_atmospherics/canister/nitrogen, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bSI" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bSJ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 - }, -/turf/open/floor/plating, -/area/engine/atmos) -"bSK" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/atmos) -"bSM" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plating, -/area/engine/atmos) -"bSN" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 5 - }, -/turf/open/floor/plating, -/area/engine/atmos) -"bSQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bSR" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bSS" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/virology{ - name = "Break Room"; - req_access_txt = "39" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bST" = ( -/obj/machinery/doorButtons/airlock_controller{ - idExterior = "virology_airlock_exterior"; - idInterior = "virology_airlock_interior"; - idSelf = "virology_airlock_control"; - name = "Virology Access Console"; - pixel_x = 8; - pixel_y = 22; - req_access_txt = "39" - }, -/obj/machinery/light_switch{ - pixel_x = -4; - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bSU" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bSV" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/firealarm{ - pixel_y = 25 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bSW" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bSX" = ( -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/medical/virology"; - dir = 1; - name = "Virology APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/camera{ - c_tag = "Virology Module"; - network = list("ss13","medbay") - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bSY" = ( -/obj/machinery/vending/medical, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bTf" = ( -/obj/structure/rack, -/obj/item/wrench, -/obj/item/crowbar, -/obj/machinery/computer/security/telescreen{ - name = "Test Chamber Monitor"; - network = list("test"); - pixel_y = -30 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bTg" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bTh" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bTi" = ( -/obj/structure/table, -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bTj" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/checkpoint/engineering) -"bTk" = ( -/obj/machinery/atmospherics/components/binary/valve, -/turf/open/floor/engine, -/area/science/misc_lab) -"bTl" = ( -/turf/open/floor/engine, -/area/science/misc_lab) -"bTm" = ( -/obj/machinery/atmospherics/components/trinary/mixer/flipped{ - dir = 1 - }, -/turf/open/floor/engine, -/area/science/misc_lab) -"bTn" = ( -/obj/structure/table, -/obj/item/assembly/igniter{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/item/assembly/igniter{ - pixel_x = 5; - pixel_y = -4 - }, -/obj/item/assembly/igniter{ - pixel_x = 2; - pixel_y = 6 - }, -/obj/item/assembly/igniter{ - pixel_x = 2; - pixel_y = -1 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/item/assembly/timer{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/assembly/timer{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/assembly/timer{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/assembly/timer{ - pixel_x = -3; - pixel_y = 3 - }, -/turf/open/floor/engine, -/area/science/misc_lab) -"bTo" = ( -/obj/structure/table/reinforced, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"bTp" = ( -/obj/structure/table/reinforced, -/obj/item/stack/sheet/glass/fifty, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"bTr" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"bTz" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bTA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/port/aft) -"bTB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/maintenance/port/aft) -"bTC" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/port/aft) -"bTD" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bTE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bTF" = ( -/obj/structure/closet/emcloset, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bTG" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/pen, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bTH" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/security_space_law, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bTI" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bTJ" = ( -/obj/machinery/power/apc{ - areastring = "/area/hallway/primary/aft"; - dir = 8; - name = "Aft Hall APC"; - pixel_x = -25; - pixel_y = 1 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bTK" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) -"bTL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTN" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/obj/effect/spawner/structure/window, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTP" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTQ" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Waste to Filter" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTR" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Filter to Waste" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTS" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTU" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bTV" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "N2O Outlet Pump" - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel/cafeteria, -/area/engine/atmos) -"bTW" = ( -/turf/open/floor/engine/n2o, -/area/engine/atmos) -"bTX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrous_output{ - dir = 8 - }, -/turf/open/floor/engine/n2o, -/area/engine/atmos) -"bTY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/medical/virology) -"bTZ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/medical/virology) -"bUa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall, -/area/medical/virology) -"bUb" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bUc" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Telecomms Admin"; - departmentType = 5; - name = "Telecomms RC"; - pixel_x = 30 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bUd" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - id = "xenobio3"; - name = "Containment Blast Doors"; - pixel_y = 4; - req_access_txt = "55" - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bUe" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio3"; - name = "containment blast door" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/engine, -/area/science/xenobiology) -"bUg" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bUh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio8"; - name = "containment blast door" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/engine, -/area/science/xenobiology) -"bUi" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/disposaloutlet{ - dir = 1 - }, -/turf/open/floor/engine, -/area/science/xenobiology) -"bUj" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bUk" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bUl" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 2; - sortType = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bUm" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bUn" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/open/floor/engine, -/area/science/misc_lab) -"bUo" = ( -/obj/structure/table, -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/grenade/chem_grenade, -/obj/item/grenade/chem_grenade, -/turf/open/floor/engine, -/area/science/misc_lab) -"bUp" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"bUq" = ( -/obj/machinery/vending/assist, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"bUs" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bUt" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bUu" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bUv" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bUx" = ( -/obj/structure/disposalpipe/junction/yjunction{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bUy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bUz" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bUB" = ( -/obj/machinery/power/apc{ - areastring = "/area/tcommsat/computer"; - name = "Telecomms Monitoring APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bUC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/tcommsat/computer) -"bUD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bUE" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/pump, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/engine/atmos) -"bUF" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) -"bUG" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/obj/machinery/meter, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bUH" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUI" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/decal/cleanable/oil{ - icon_state = "floor5" - }, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) -"bUJ" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics"; - req_access_txt = "24" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUL" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plating, -/area/engine/atmos) -"bUM" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUN" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 10 - }, -/turf/open/floor/plating, -/area/engine/atmos) -"bUO" = ( -/obj/machinery/atmospherics/pipe/manifold/orange/visible, -/obj/machinery/meter, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bUP" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/closed/wall, -/area/engine/atmos) -"bUQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUS" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Mix to External" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bUT" = ( -/obj/machinery/computer/atmos_control/tank/nitrous_tank{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel/white/corner, -/area/engine/atmos) -"bUU" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/machinery/atmospherics/miner/n2o, -/turf/open/floor/engine/n2o, -/area/engine/atmos) -"bUV" = ( -/obj/machinery/air_sensor/atmos/nitrous_tank, -/turf/open/floor/engine/n2o, -/area/engine/atmos) -"bUW" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/engine/n2o, -/area/engine/atmos) -"bUY" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bUZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bVa" = ( -/obj/machinery/smartfridge/chemistry/virology/preloaded, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bVb" = ( -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bVc" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bVd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bVe" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bVf" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bVg" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bVh" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bVi" = ( -/obj/structure/sign/warning/electricshock, -/turf/closed/wall, -/area/science/xenobiology) -"bVj" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bVk" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bVl" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bVm" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bVn" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bVo" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/break_room) -"bVp" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bVq" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bVr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bVs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"bVt" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/target_stake, -/turf/open/floor/plasteel, -/area/science/circuit) -"bVx" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/maintenance/port/aft) -"bVy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bVA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bVB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/closet/emcloset, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bVC" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bVD" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/sign/warning/deathsposal{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bVE" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bVF" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bVG" = ( -/obj/structure/sign/warning/nosmoking{ - pixel_x = -28 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bVI" = ( -/turf/closed/wall/r_wall, -/area/tcommsat/server) -"bVJ" = ( -/turf/closed/wall/r_wall, -/area/tcommsat/computer) -"bVK" = ( -/obj/machinery/vending/snack/random, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bVM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bVN" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics Access"; - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) -"bVO" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bVP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, -/obj/effect/spawner/structure/window, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bVQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bVR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/suit_storage_unit/atmos, -/turf/open/floor/plasteel/dark/corner, -/area/engine/atmos) -"bVS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/structure/sign/warning/securearea, -/turf/closed/wall, -/area/engine/atmos) -"bVT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bVU" = ( -/obj/machinery/portable_atmospherics/pump, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/engine/atmos) -"bVV" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bVW" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Air to External" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bVX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/suit_storage_unit/atmos, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bVY" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4; - name = "External to Filter" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bVZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bWa" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 8 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bWc" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ - dir = 1 - }, -/turf/open/floor/plasteel/white/corner, -/area/engine/atmos) -"bWd" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrous_input{ - dir = 8 - }, -/turf/open/floor/engine/n2o, -/area/engine/atmos) -"bWe" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bWf" = ( -/obj/structure/table/glass, -/obj/item/clothing/gloves/color/latex, -/obj/machinery/requests_console{ - department = "Virology"; - name = "Virology Requests Console"; - pixel_x = -32 - }, -/obj/item/healthanalyzer, -/obj/item/clothing/glasses/hud/health, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bWg" = ( -/obj/structure/table, -/obj/item/hand_labeler, -/obj/item/radio/headset/headset_med, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bWh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bWi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/medical/virology) -"bWj" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/medical/virology) -"bWl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio2"; - name = "containment blast door" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/engine, -/area/science/xenobiology) -"bWm" = ( -/obj/structure/window/reinforced, -/obj/structure/table/reinforced, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/button/door{ - id = "xenobio7"; - name = "Containment Blast Doors"; - pixel_y = 4; - req_access_txt = "55" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bWn" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio7"; - name = "containment blast door" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/engine, -/area/science/xenobiology) -"bWo" = ( -/obj/item/radio/intercom{ - pixel_x = -25 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bWp" = ( -/obj/structure/chair/office/light, -/obj/effect/landmark/start/scientist, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bWq" = ( -/obj/machinery/atmospherics/components/binary/pump, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bWr" = ( -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bWs" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bWt" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bWu" = ( -/obj/machinery/door/airlock/engineering{ - name = "Telecommunications"; - req_access_txt = "61" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bWv" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bWw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bWx" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bWy" = ( -/turf/open/floor/plasteel, -/area/maintenance/port/aft) -"bWz" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bWA" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bWB" = ( -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bWC" = ( -/obj/machinery/telecomms/bus/preset_four, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bWD" = ( -/obj/machinery/telecomms/server/presets/engineering, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bWE" = ( -/obj/machinery/telecomms/processor/preset_three, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bWF" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/tcommsat/server"; - dir = 1; - name = "Telecomms Server APC"; - pixel_y = 25 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bWG" = ( -/obj/machinery/telecomms/server/presets/security, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bWH" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bWI" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/tcommsat/computer) -"bWJ" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bWK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bWL" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bWM" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/scrubber, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/engine/atmos) -"bWN" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bWO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bWP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/closed/wall, -/area/engine/atmos) -"bWQ" = ( -/turf/closed/wall/r_wall, -/area/security/checkpoint/engineering) -"bWR" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = -30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/camera{ - c_tag = "Atmospherics Central"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bWT" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/engine/atmos) -"bWU" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Mix to Engine" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bWV" = ( -/obj/machinery/door/airlock/external{ - name = "Atmospherics External Airlock"; - req_access_txt = "24" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bWW" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bWX" = ( -/obj/structure/table/glass, -/obj/item/radio/intercom{ - pixel_x = -25 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/storage/box/syringes, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bWY" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -2; - pixel_y = 5 - }, -/obj/item/pen/red, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bWZ" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/effect/landmark/start/virologist, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bXa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bXb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/medical/virology) -"bXc" = ( -/obj/structure/table, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bXd" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bXh" = ( -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bXi" = ( -/obj/structure/table, -/obj/item/folder/white, -/obj/item/folder/white, -/obj/item/pen, -/obj/item/taperecorder, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bXj" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/button/ignition{ - id = "testigniter"; - pixel_x = -6; - pixel_y = 2 - }, -/obj/machinery/button/door{ - id = "testlab"; - name = "Test Chamber Blast Doors"; - pixel_x = 4; - pixel_y = 2; - req_access_txt = "55" - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bXk" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=AIE"; - location = "AftH" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bXl" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_y = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bXm" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bXn" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bXo" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bXp" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bXq" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Engineering"; - req_access_txt = "32" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bXr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bXs" = ( -/turf/open/floor/plasteel/white, -/area/science/circuit) -"bXt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/science/circuit) -"bXv" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "External Access"; - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bXw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) -"bXx" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) -"bXy" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) -"bXz" = ( -/obj/machinery/telecomms/processor/preset_four, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bXA" = ( -/obj/machinery/telecomms/server/presets/common, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bXB" = ( -/obj/machinery/telecomms/bus/preset_three, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bXC" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bXD" = ( -/obj/machinery/telecomms/server/presets/command, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bXE" = ( -/obj/machinery/computer/message_monitor{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bXF" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/tcommsat/computer) -"bXG" = ( -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bXH" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bXI" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bXJ" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/scrubber, -/obj/machinery/light/small, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/engine/atmos) -"bXK" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"bXL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 9 - }, -/turf/closed/wall, -/area/engine/atmos) -"bXM" = ( -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - name = "Atmospherics Blast Door" - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bXN" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bXO" = ( -/obj/structure/filingcabinet, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bXP" = ( -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; - pixel_y = 30 - }, -/obj/structure/closet/secure_closet/security/engine, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"bXQ" = ( -/obj/structure/fireaxecabinet{ - pixel_x = -32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bXR" = ( -/obj/machinery/power/floodlight, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/engine/atmos) -"bXS" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/engine/atmos) -"bXT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bXU" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bXV" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics East"; - dir = 8 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Plasma Outlet Pump" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bXW" = ( -/turf/open/floor/engine/plasma, -/area/engine/atmos) -"bXX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output{ - dir = 8 - }, -/turf/open/floor/engine/plasma, -/area/engine/atmos) -"bXY" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/engine/plasma, -/area/engine/atmos) -"bXZ" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/aft) -"bYa" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bYb" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bYc" = ( -/obj/machinery/disposal/bin, -/obj/structure/sign/warning/deathsposal{ - pixel_y = -32 - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bYd" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bYe" = ( -/obj/structure/closet/secure_closet/personal/patient, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bYf" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - id = "xenobio2"; - name = "Containment Blast Doors"; - pixel_y = 4; - req_access_txt = "55" - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bYg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio2"; - name = "containment blast door" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/engine, -/area/science/xenobiology) -"bYh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio7"; - name = "containment blast door" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/engine, -/area/science/xenobiology) -"bYi" = ( -/obj/machinery/door/poddoor/preopen{ - id = "testlab"; - name = "test chamber blast door" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/engine, -/area/science/misc_lab) -"bYj" = ( -/obj/machinery/door/poddoor/preopen{ - id = "testlab"; - name = "test chamber blast door" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/engine, -/area/science/misc_lab) -"bYk" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bYl" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bYm" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bYn" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bYo" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel/white, -/area/science/misc_lab) -"bYp" = ( -/obj/structure/sign/warning/securearea{ - pixel_x = -32 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bYq" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bYr" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"bYs" = ( -/obj/structure/closet/crate, -/obj/item/clothing/under/color/lightpurple, -/obj/item/stack/spacecash/c200, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"bYt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bYu" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_x = -32 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bYv" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix to Space" - }, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) -"bYw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) -"bYx" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) -"bYy" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Incinerator Access"; - req_access_txt = "12" - }, -/obj/structure/barricade/wooden{ - name = "wooden barricade (CLOSED)" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bYz" = ( -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bYA" = ( -/obj/machinery/telecomms/broadcaster/preset_right, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bYB" = ( -/obj/machinery/blackbox_recorder, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bYC" = ( -/obj/machinery/telecomms/receiver/preset_right, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"bYD" = ( -/obj/machinery/computer/telecomms/server{ - dir = 4; - network = "tcommsat" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bYE" = ( -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bYF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"bYG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/structure/sign/departments/engineering{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bYH" = ( -/turf/closed/wall, -/area/engine/break_room) -"bYI" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bYJ" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics"; - req_access_txt = "24" - }, -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/plasteel/dark/corner{ - dir = 1 - }, -/area/engine/atmos) -"bYK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bYL" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bYM" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bYN" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/atmos) -"bYO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bYP" = ( -/obj/effect/landmark/event_spawn, -/turf/closed/wall, -/area/crew_quarters/bar) -"bYT" = ( -/obj/machinery/computer/atmos_control/tank/toxin_tank{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bYU" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/obj/machinery/atmospherics/miner/toxins, -/turf/open/floor/engine/plasma, -/area/engine/atmos) -"bYV" = ( -/obj/machinery/air_sensor/atmos/toxin_tank, -/turf/open/floor/engine/plasma, -/area/engine/atmos) -"bYW" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/engine/plasma, -/area/engine/atmos) -"bYX" = ( -/obj/structure/closet/l3closet/virology, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bYY" = ( -/obj/structure/closet/secure_closet/medical1, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/virology) -"bYZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/medical/virology) -"bZa" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/machinery/camera{ - c_tag = "Xenobiology South"; - dir = 4; - network = list("ss13","rd") - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bZb" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"bZc" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1 - }, -/turf/open/floor/engine, -/area/science/misc_lab) -"bZd" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/disposalpipe/junction/flip, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"bZe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/break_room) -"bZg" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bZh" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"bZi" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/starboard) -"bZj" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bZk" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bZl" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix to Port" - }, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bZn" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bZo" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bZp" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"bZq" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/tcommsat/computer) -"bZr" = ( -/obj/machinery/status_display/evac, -/turf/closed/wall, -/area/tcommsat/computer) -"bZs" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/tcommsat/computer) -"bZt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bZu" = ( -/obj/machinery/camera{ - c_tag = "Engineering Foyer"; - dir = 1 - }, -/obj/structure/noticeboard{ - dir = 1; - pixel_y = -27 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bZv" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/tcommsat/computer) -"bZw" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bZx" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"bZy" = ( -/turf/open/floor/plasteel, -/area/engine/break_room) -"bZz" = ( -/obj/structure/table, -/obj/machinery/light_switch{ - pixel_x = -23 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/item/book/manual/wiki/engineering_hacking{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/book/manual/wiki/engineering_construction, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bZA" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bZB" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"bZC" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "ceprivacy"; - name = "privacy shutter" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/chief) -"bZD" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "ceprivacy"; - name = "privacy shutter" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/chief) -"bZE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"bZF" = ( -/obj/machinery/power/apc{ - areastring = "/area/engine/atmos"; - dir = 8; - name = "Atmospherics APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bZG" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bZH" = ( -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bZI" = ( -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bZK" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"bZL" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input{ - dir = 8 - }, -/turf/open/floor/engine/plasma, -/area/engine/atmos) -"bZM" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/aft) -"bZN" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/aft) -"bZO" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bZP" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/medical/virology) -"bZQ" = ( -/obj/machinery/atmospherics/components/binary/valve/on{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bZR" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/item/wrench, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bZS" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"bZT" = ( -/obj/structure/rack, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/aft) -"bZU" = ( -/obj/structure/closet/emcloset, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/maintenance/aft) -"bZV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio1"; - name = "containment blast door" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/engine, -/area/science/xenobiology) -"bZW" = ( -/obj/structure/window/reinforced, -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - id = "xenobio6"; - name = "Containment Blast Doors"; - pixel_y = 4; - req_access_txt = "55" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"bZX" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio6"; - name = "containment blast door" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/engine, -/area/science/xenobiology) -"bZY" = ( -/obj/item/radio/intercom{ - pixel_x = -25 - }, -/turf/open/floor/engine, -/area/science/misc_lab) -"bZZ" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/science/misc_lab) -"caa" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cac" = ( -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cad" = ( -/obj/structure/table, -/obj/item/flashlight/lamp, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cae" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/starboard/aft) -"caf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/maintenance/port/aft) -"cag" = ( -/obj/machinery/ntnet_relay, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"cah" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"cai" = ( -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"cak" = ( -/obj/machinery/telecomms/hub/preset, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"cal" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/engineering/glass{ - name = "Server Room"; - req_access_txt = "61" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/tcommsat/computer) -"can" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/engineering/glass{ - name = "Server Room"; - req_access_txt = "61" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/tcommsat/computer) -"cao" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/tcommsat/computer) -"cap" = ( -/obj/machinery/light, -/obj/structure/closet/firecloset, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"caq" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"car" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall, -/area/maintenance/port/aft) -"cas" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cat" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cau" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cav" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"caw" = ( -/obj/structure/table, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/obj/item/hand_labeler, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cax" = ( -/obj/structure/closet/wardrobe/black, -/obj/effect/decal/cleanable/cobweb, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cay" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"caz" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"caA" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/checkpoint/engineering) -"caC" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"caD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/security/checkpoint/engineering) -"caE" = ( -/obj/structure/reagent_dispensers/watertank/high, -/turf/open/floor/plasteel, -/area/engine/atmos) -"caF" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"caG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/requests_console{ - department = "Atmospherics"; - departmentType = 4; - name = "Atmos RC"; - pixel_x = -30 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"caH" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 5 - }, -/obj/effect/decal/cleanable/oil{ - icon_state = "floor6" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"caI" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"caK" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/aft) -"caL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"caM" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"caN" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"caO" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"caP" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/aft) -"caQ" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"caR" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"caS" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"caT" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"caU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"caX" = ( -/obj/machinery/sparker{ - id = "testigniter"; - pixel_x = -25 - }, -/turf/open/floor/engine, -/area/science/misc_lab) -"caY" = ( -/obj/item/beacon, -/turf/open/floor/engine, -/area/science/misc_lab) -"caZ" = ( -/obj/machinery/door/poddoor/preopen{ - id = "testlab"; - name = "test chamber blast door" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/engine, -/area/science/misc_lab) -"cba" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/engine, -/area/science/misc_lab) -"cbb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/science/misc_lab) -"cbc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/engine, -/area/science/misc_lab) -"cbd" = ( -/obj/machinery/power/apc{ - areastring = "/area/science/misc_lab"; - dir = 4; - name = "Testing Lab APC"; - pixel_x = 26 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cbe" = ( -/obj/structure/table/reinforced, -/obj/item/integrated_electronics/analyzer, -/obj/item/integrated_electronics/debugger, -/obj/item/integrated_electronics/wirer, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"cbf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cbg" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/starboard/aft) -"cbh" = ( -/obj/structure/table, -/obj/item/folder/white, -/obj/item/folder/white, -/obj/item/pen, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cbi" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -2; - pixel_y = 5 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cbj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/maintenance/port/aft) -"cbk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Mix to Space" - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/maintenance/port/aft) -"cbl" = ( -/obj/machinery/camera{ - c_tag = "Telecomms Server Room"; - dir = 4; - network = list("tcomms") - }, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"cbm" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/tcommsat/computer) -"cbn" = ( -/obj/structure/sign/warning/securearea{ - desc = "A warning sign which reads 'SERVER ROOM'."; - name = "SERVER ROOM" - }, -/turf/closed/wall, -/area/tcommsat/computer) -"cbo" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/tcommsat/computer) -"cbp" = ( -/obj/structure/closet/secure_closet/engineering_chief, -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/crew_quarters/heads/chief"; - dir = 4; - name = "CE Office APC"; - pixel_x = 24 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cbq" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/mob/living/simple_animal/parrot/Poly, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cbr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cbs" = ( -/obj/structure/sign/warning/securearea, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/engine/engineering) -"cbt" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/camera{ - c_tag = "Aft Primary Hallway 1"; - dir = 8; - pixel_y = -22 - }, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cbu" = ( -/obj/machinery/power/apc{ - areastring = "/area/engine/break_room"; - dir = 8; - name = "Engineering Foyer APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cbv" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Research Delivery access"; - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cbw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cbx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 8; - sortType = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cby" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cbA" = ( -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cbB" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Air Outlet Pump" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cbC" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cbD" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cbE" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cbF" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cbG" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "CO2 Outlet Pump" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cbH" = ( -/turf/open/floor/engine/co2, -/area/engine/atmos) -"cbI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output{ - dir = 8 - }, -/turf/open/floor/engine/co2, -/area/engine/atmos) -"cbJ" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cbK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/aft) -"cbL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"cbM" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"cbN" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"cbO" = ( -/obj/machinery/door/airlock/atmos/abandoned{ - name = "Atmospherics Maintenance"; - req_access_txt = "12;24" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cbP" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"cbQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"cbR" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - id = "xenobio1"; - name = "Containment Blast Doors"; - pixel_y = 4; - req_access_txt = "55" - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"cbS" = ( -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio1"; - name = "containment blast door" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/engine, -/area/science/xenobiology) -"cbU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio6"; - name = "containment blast door" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/engine, -/area/science/xenobiology) -"cbV" = ( -/obj/machinery/camera{ - c_tag = "Testing Chamber"; - dir = 1; - network = list("test","rd") - }, -/obj/machinery/light, -/turf/open/floor/engine, -/area/science/misc_lab) -"cbW" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cbY" = ( -/obj/structure/table/reinforced, -/obj/item/multitool, -/obj/item/screwdriver, -/obj/machinery/requests_console{ - department = "Science"; - departmentType = 2; - name = "Science Requests Console"; - pixel_y = -30; - receive_ore_updates = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"cbZ" = ( -/obj/structure/table/reinforced, -/obj/item/integrated_circuit_printer, -/obj/machinery/computer/security/telescreen/circuitry{ - dir = 1; - pixel_y = -30 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"cca" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/solar{ - id = "portsolar"; - name = "Port Solar Array" - }, -/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, -/area/icemoon/surface/outdoors) -"ccb" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/solar{ - id = "portsolar"; - name = "Port Solar Array" - }, -/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, -/area/icemoon/surface/outdoors) -"ccc" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"ccd" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 8; - name = "8maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cce" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Construction Area Maintenance"; - req_access_txt = "32" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"ccf" = ( -/obj/machinery/telecomms/broadcaster/preset_left, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"ccg" = ( -/obj/machinery/telecomms/message_server, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"cch" = ( -/obj/machinery/telecomms/receiver/preset_left, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"cci" = ( -/obj/structure/table, -/obj/item/multitool, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"ccj" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cck" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"ccl" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"ccm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ccn" = ( -/obj/machinery/camera{ - c_tag = "Engineering Access" - }, -/obj/structure/closet/radiation, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cco" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ccp" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ccq" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ccr" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ccs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cct" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ccv" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ccw" = ( -/turf/closed/wall/r_wall, -/area/engine/engineering) -"ccy" = ( -/obj/machinery/space_heater, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ccz" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ccA" = ( -/obj/machinery/computer/atmos_control/tank/carbon_tank{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ccB" = ( -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, -/obj/machinery/atmospherics/miner/carbon_dioxide, -/turf/open/floor/engine/co2, -/area/engine/atmos) -"ccC" = ( -/obj/machinery/air_sensor/atmos/carbon_tank, -/turf/open/floor/engine/co2, -/area/engine/atmos) -"ccD" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/engine/co2, -/area/engine/atmos) -"ccE" = ( -/obj/structure/sign/warning/nosmoking{ - pixel_y = 28 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"ccF" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"ccG" = ( -/obj/structure/chair/stool, -/obj/effect/decal/cleanable/cobweb{ - icon_state = "cobweb2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"ccI" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"ccJ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"ccK" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"ccL" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"ccM" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/aft) -"ccN" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"ccO" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ccQ" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/science/xenobiology) -"ccR" = ( -/obj/machinery/portable_atmospherics/pump, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"ccT" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"ccU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/maintenance/starboard/aft) -"ccV" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ccW" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ccX" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"ccZ" = ( -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cda" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cdb" = ( -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cdc" = ( -/obj/machinery/telecomms/bus/preset_two, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"cdd" = ( -/obj/machinery/telecomms/server/presets/supply, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"cde" = ( -/obj/machinery/telecomms/processor/preset_one, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"cdf" = ( -/obj/machinery/telecomms/server/presets/medical, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"cdg" = ( -/obj/machinery/computer/telecomms/monitor{ - dir = 4; - network = "tcommsat" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"cdh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cdj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cdk" = ( -/obj/machinery/computer/atmos_alert, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"cdl" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/carpet, -/area/chapel/main) -"cdm" = ( -/obj/structure/table/reinforced, -/obj/item/clipboard, -/obj/item/paper/monitorkey, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/pen/fountain, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"cdn" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cdo" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/closet/radiation, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cdp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cdq" = ( -/obj/effect/spawner/structure/window/reinforced/tinted, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cdr" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cds" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/starboard/aft"; - dir = 8; - name = "Starboard Quarter Maintenance APC"; - pixel_x = -25 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/camera{ - c_tag = "Aft Starboard Solar Access"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cdt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cdu" = ( -/obj/structure/closet/emcloset, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cdv" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cdw" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cdx" = ( -/obj/machinery/atmospherics/components/unary/relief_valve/atmos/atmos_waste{ - dir = 1 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/engine/atmos) -"cdB" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cdC" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cdD" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input{ - dir = 8 - }, -/turf/open/floor/engine/co2, -/area/engine/atmos) -"cdE" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cdF" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cdG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cdH" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"cdI" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cdJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cdK" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cdL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cdN" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cdO" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cdQ" = ( -/obj/structure/closet/emcloset, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cdR" = ( -/obj/machinery/atmospherics/components/unary/tank/air, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cdS" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cdT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cdU" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/effect/landmark/start/chief_engineer, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"cdV" = ( -/obj/structure/table, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cdW" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/port/aft"; - dir = 8; - name = "Port Quarter Maintenance APC"; - pixel_x = -25; - pixel_y = 1 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cdX" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/research) -"cdZ" = ( -/obj/machinery/telecomms/processor/preset_two, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"cea" = ( -/obj/machinery/telecomms/server/presets/service, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"ceb" = ( -/obj/machinery/telecomms/bus/preset_one, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"cec" = ( -/obj/structure/sign/warning/nosmoking{ - pixel_y = -32 - }, -/obj/machinery/light, -/turf/open/floor/circuit/telecomms/mainframe, -/area/tcommsat/server) -"ced" = ( -/obj/machinery/telecomms/server/presets/science, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"cee" = ( -/obj/structure/table, -/obj/item/radio/off, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"cef" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/tcommsat/computer) -"ceg" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/machinery/light, -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"ceh" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/bridge) -"cei" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"cej" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Engineering"; - name = "engineering security door" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/delivery, -/obj/machinery/shower{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cek" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Engineering"; - name = "engineering security door" - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/shower{ - dir = 8 - }, -/obj/structure/sign/warning/enginesafety{ - pixel_x = 32 - }, -/obj/structure/sign/poster/official/safety_eye_protection{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cel" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Engineering"; - name = "engineering security door" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cem" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cen" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ceo" = ( -/obj/machinery/keycard_auth{ - pixel_y = -28 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"cep" = ( -/obj/structure/sign/warning/securearea, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"ceq" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/crew_quarters/heads/chief) -"cer" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"ces" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cet" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cev" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cew" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cex" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics South West"; - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cey" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cez" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ceA" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plating, -/area/engine/atmos) -"ceB" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ceC" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plating, -/area/maintenance/aft) -"ceD" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/aft) -"ceE" = ( -/obj/structure/sign/warning/fire{ - pixel_y = -32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"ceF" = ( -/obj/structure/closet/emcloset, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"ceG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"ceH" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/maintenance/aft) -"ceI" = ( -/obj/structure/sign/warning/biohazard, -/turf/closed/wall, -/area/maintenance/aft) -"ceJ" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/maintenance/aft) -"ceK" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/closet/l3closet, -/turf/open/floor/plating, -/area/maintenance/aft) -"ceL" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/aft) -"ceM" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ceN" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ceO" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ceP" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"ceQ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"ceR" = ( -/obj/effect/landmark/blobstart, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ceS" = ( -/obj/item/stack/sheet/cardboard, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ceT" = ( -/obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ceU" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ceV" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"ceW" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"ceX" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/white, -/area/science/research) -"ceY" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"ceZ" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Power Storage"; - req_access_txt = "11" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cfa" = ( -/obj/structure/rack, -/obj/item/storage/belt/utility, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/item/weldingtool/largetank, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/clothing/glasses/welding, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cfb" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/chief) -"cfc" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "ceprivacy"; - name = "privacy shutter" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/chief) -"cfd" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/obj/structure/closet/radiation, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cfe" = ( -/obj/structure/sign/warning/radiation/rad_area{ - pixel_x = -32 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/sign/warning/securearea{ - pixel_x = 32 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cfg" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cfh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/break_room) -"cfi" = ( -/obj/machinery/portable_atmospherics/scrubber/huge, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cfj" = ( -/turf/closed/wall, -/area/maintenance/disposal/incinerator) -"cfk" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/airlock/atmos{ - name = "Turbine Access"; - req_access_txt = "32" - }, -/turf/open/floor/plating, -/area/maintenance/disposal/incinerator) -"cfl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/maintenance/disposal/incinerator) -"cfm" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/item/toy/minimeteor, -/obj/item/poster/random_contraband, -/turf/open/floor/plating, -/area/maintenance/aft) -"cfn" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/reagent_containers/food/snacks/donkpocket, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"cfo" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/roller, -/turf/open/floor/plating, -/area/maintenance/aft) -"cfp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/c_tube, -/turf/open/floor/plating, -/area/maintenance/aft) -"cfq" = ( -/obj/structure/mopbucket, -/obj/item/caution, -/turf/open/floor/plating, -/area/maintenance/aft) -"cfr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - external_pressure_bound = 140; - name = "killroom vent"; - pressure_checks = 0 - }, -/obj/machinery/camera{ - c_tag = "Xenobiology Kill Room"; - dir = 4; - network = list("ss13","rd") - }, -/turf/open/floor/circuit/telecomms, -/area/science/xenobiology) -"cfs" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Air Supply Maintenance"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cft" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Testing Lab Maintenance"; - req_access_txt = "47" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cfu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/science/misc_lab) -"cfv" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Firefighting equipment"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cfw" = ( -/turf/closed/wall/r_wall, -/area/maintenance/solars/port/aft) -"cfx" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/maintenance/solars/port/aft) -"cfy" = ( -/obj/structure/rack, -/obj/item/clothing/shoes/winterboots, -/obj/item/clothing/suit/hooded/wintercoat, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"cfz" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cfB" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/item/clothing/under/misc/overalls, -/obj/item/clothing/under/misc/overalls, -/obj/item/radio/headset/headset_eng, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cfD" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - name = "Engineering Maintenance"; - req_access_txt = "10" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cfF" = ( -/obj/machinery/suit_storage_unit/ce, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/chief) -"cfG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cfH" = ( -/obj/machinery/button/door{ - id = "ceprivacy"; - name = "Privacy Shutters Control"; - pixel_y = 26 - }, -/obj/machinery/holopad, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cfI" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/item/clothing/under/misc/overalls, -/obj/item/clothing/under/misc/overalls, -/obj/item/radio/headset/headset_eng, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cfJ" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cfK" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/wall, -/area/engine/engineering) -"cfL" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cfM" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/engineering{ - name = "Engine Room"; - req_access_txt = "10" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cfN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cfP" = ( -/obj/machinery/atmospherics/components/trinary/mixer/airmix/inverse{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cfQ" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cfT" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cfU" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics"; - req_access_txt = "24" - }, -/turf/open/floor/plating, -/area/maintenance/disposal/incinerator) -"cfW" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plating, -/area/maintenance/aft) -"cfX" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/disposal/incinerator"; - name = "Incinerator APC"; - pixel_y = -24 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plating, -/area/maintenance/aft) -"cfY" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/disposal/incinerator) -"cfZ" = ( -/obj/machinery/light_switch{ - pixel_y = 26 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cga" = ( -/obj/machinery/power/smes{ - capacity = 9e+006; - charge = 10000 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/decal/cleanable/cobweb{ - icon_state = "cobweb2" - }, -/turf/open/floor/plating, -/area/maintenance/disposal/incinerator) -"cgb" = ( -/obj/machinery/disposal/bin, -/obj/structure/sign/warning/deathsposal{ - pixel_y = 32 - }, -/obj/structure/disposalpipe/trunk, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/disposal/incinerator) -"cgc" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/aft) -"cgd" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cge" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cgf" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/grille/broken, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cgg" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cgh" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cgi" = ( -/turf/open/floor/circuit/telecomms, -/area/science/xenobiology) -"cgj" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/barricade/wooden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cgk" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/biohazard, -/turf/open/floor/plating, -/area/science/xenobiology) -"cgl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ - external_pressure_bound = 120; - name = "killroom vent" - }, -/turf/open/floor/circuit/telecomms, -/area/science/xenobiology) -"cgm" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cgn" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"cgo" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cgp" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/closet/toolcloset, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cgq" = ( -/obj/machinery/space_heater, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cgr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/starboard/aft) -"cgs" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cgt" = ( -/obj/structure/sign/warning/securearea{ - pixel_y = 32 - }, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cgu" = ( -/obj/structure/rack, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cgv" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cgw" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/closet/radiation, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cgy" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cgA" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_x = -32 - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/aft) -"cgB" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/smes, -/turf/open/floor/plating, -/area/maintenance/solars/port/aft) -"cgC" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/aft) -"cgD" = ( -/obj/machinery/camera{ - c_tag = "Aft Port Solar Access"; - dir = 4 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cgE" = ( -/obj/structure/sign/warning/electricshock, -/turf/closed/wall/r_wall, -/area/maintenance/solars/port/aft) -"cgF" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cgG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cgI" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cgO" = ( -/obj/structure/rack, -/obj/item/lighter, -/obj/item/clothing/glasses/meson{ - pixel_y = 4 - }, -/obj/item/stock_parts/cell/high/plus, -/obj/item/reagent_containers/pill/patch/silver_sulf, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cgQ" = ( -/obj/machinery/camera{ - c_tag = "Engineering East"; - dir = 8 - }, -/obj/machinery/vending/wardrobe/engi_wardrobe, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cgR" = ( -/turf/open/floor/plasteel, -/area/engine/engineering) -"cgS" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "ceprivacy"; - name = "privacy shutter" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/chief) -"cgT" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/engineering{ - name = "SMES Room"; - req_access_txt = "32" - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cgU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cgV" = ( -/obj/machinery/computer/atmos_control/tank/nitrogen_tank{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cgW" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cgX" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cgY" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1; - name = "N2 Outlet Pump" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cgZ" = ( -/obj/machinery/computer/atmos_control/tank/oxygen_tank{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cha" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"chb" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1; - name = "O2 Outlet Pump" - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"chc" = ( -/obj/machinery/computer/atmos_control/tank/air_tank{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 9 - }, -/turf/open/floor/plasteel/white/corner, -/area/engine/atmos) -"chd" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/engine/atmos) -"che" = ( -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics"; - req_access_txt = "24" - }, -/turf/open/floor/plating, -/area/engine/atmos) -"chf" = ( -/obj/machinery/camera{ - c_tag = "Atmospherics South East"; - dir = 1 - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1; - name = "Air Outlet Pump" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner, -/area/engine/atmos) -"chg" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/floor/plating, -/area/engine/atmos) -"chh" = ( -/obj/machinery/atmospherics/components/unary/tank/toxins{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"chi" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general{ - level = 2 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"chj" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "plasma tank pump" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"chk" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/closed/wall, -/area/maintenance/disposal/incinerator) -"chl" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/components/binary/pump{ - name = "atmospherics mix pump" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"chm" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/machinery/airalarm/all_access{ - dir = 8; - pixel_x = 24 - }, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"chn" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cho" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/circuit/telecomms, -/area/science/xenobiology) -"chp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall, -/area/maintenance/starboard/aft) -"chq" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/circuit/telecomms, -/area/science/xenobiology) -"chr" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - name = "Kill Chamber"; - req_access_txt = "55" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/science/xenobiology) -"chs" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/circuit/telecomms, -/area/science/xenobiology) -"chu" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"chv" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"chw" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"chx" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"chy" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"chz" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"chA" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"chB" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"chC" = ( -/obj/structure/rack, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/spawner/lootdrop/maintenance, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"chD" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"chE" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"chH" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"chJ" = ( -/obj/machinery/power/tracker, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, -/area/icemoon/surface/outdoors) -"chN" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/aft) -"chO" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "Solar Maintenance"; - req_access_txt = "10; 13" - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/aft) -"chP" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/aft) -"chQ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/aft) -"chR" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/aft) -"chS" = ( -/obj/machinery/door/airlock/engineering{ - name = "Port Quarter Solar Access"; - req_access_txt = "10" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/aft) -"chT" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"chY" = ( -/obj/machinery/shieldgen, -/turf/open/floor/plating, -/area/engine/engineering) -"cia" = ( -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cic" = ( -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cid" = ( -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/structure/reagent_dispensers/watertank, -/obj/machinery/power/apc/highcap/fifteen_k{ - areastring = "/area/engine/engineering"; - dir = 1; - name = "Engineering APC"; - pixel_y = 25 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cie" = ( -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/structure/table, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cif" = ( -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/structure/reagent_dispensers/fueltank, -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cig" = ( -/turf/closed/wall, -/area/engine/engineering) -"cij" = ( -/obj/machinery/modular_computer/console/preset/engineering, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"cik" = ( -/obj/machinery/computer/apc_control{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cim" = ( -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"cin" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cio" = ( -/obj/structure/table/reinforced, -/obj/item/folder/yellow, -/obj/item/stamp/ce, -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"ciq" = ( -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "ceprivacy"; - name = "privacy shutter" - }, -/turf/open/floor/plating, -/area/crew_quarters/heads/chief) -"cis" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cit" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"ciu" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/atmos) -"civ" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/atmos) -"cix" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"ciy" = ( -/obj/structure/sign/warning/nosmoking{ - pixel_x = -28 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4; - name = "input gas connector port" - }, -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"ciz" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"ciA" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "input port pump" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"ciB" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/structure/reagent_dispensers/watertank, -/obj/item/extinguisher, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"ciD" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - name = "output gas connector port" - }, -/obj/machinery/portable_atmospherics/canister, -/obj/structure/sign/warning/nosmoking{ - pixel_x = 28 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"ciE" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"ciF" = ( -/obj/structure/table, -/obj/item/cartridge/medical, -/turf/open/floor/plating, -/area/maintenance/aft) -"ciG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating, -/area/maintenance/aft) -"ciH" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/item/latexballon, -/turf/open/floor/plating, -/area/maintenance/aft) -"ciI" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ciJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/starboard/aft) -"ciK" = ( -/obj/structure/rack, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ciL" = ( -/obj/effect/spawner/structure/window/reinforced/tinted, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ciM" = ( -/obj/machinery/power/compressor{ - comp_id = "incineratorturbine"; - dir = 1; - luminosity = 2 - }, -/obj/structure/cable/yellow, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/obj/machinery/camera{ - c_tag = "Turbine Chamber"; - dir = 4; - network = list("turbine") - }, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"ciN" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ciQ" = ( -/obj/machinery/power/solar_control{ - dir = 4; - id = "portsolar"; - name = "Port Quarter Solar Control" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/maintenance/solars/port/aft) -"ciR" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/solars/port/aft"; - dir = 4; - name = "Port Quarter Solar APC"; - pixel_x = 23; - pixel_y = 2 - }, -/obj/machinery/camera{ - c_tag = "Aft Port Solar Control"; - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/maintenance/solars/port/aft) -"ciS" = ( -/turf/open/floor/plating, -/area/maintenance/solars/port/aft) -"ciT" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"ciU" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"ciW" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/engine/engineering) -"ciX" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/rods/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/stock_parts/cell/high/plus, -/obj/item/stack/sheet/mineral/plasma{ - amount = 30 - }, -/obj/item/lightreplacer, -/obj/item/lightreplacer, -/turf/open/floor/plating, -/area/engine/engineering) -"ciY" = ( -/obj/machinery/door/poddoor{ - id = "Secure Storage"; - name = "secure storage" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"ciZ" = ( -/turf/open/floor/plating, -/area/engine/engineering) -"cja" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjb" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel{ - name = "floor" - }, -/area/engine/engineering) -"cjc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjd" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"cje" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjf" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/chair/office/dark{ - dir = 1 - }, -/obj/effect/landmark/start/station_engineer, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"cjg" = ( -/obj/machinery/computer/card/minor/ce{ - dir = 4 - }, -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Chief Engineer's Desk"; - departmentType = 3; - name = "Chief Engineer RC"; - pixel_x = -32 - }, -/obj/machinery/camera{ - c_tag = "Chief Engineer's Office"; - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cji" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjj" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/item/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_x = 27 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cjk" = ( -/obj/structure/sign/warning/securearea, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cjl" = ( -/obj/machinery/camera{ - c_tag = "Engineering MiniSat Access"; - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjm" = ( -/obj/machinery/door/airlock/command{ - name = "MiniSat Access"; - req_access_txt = "65" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjn" = ( -/obj/structure/chair/wood/normal{ - dir = 4 - }, -/obj/effect/landmark/blobstart, -/turf/open/floor/wood, -/area/maintenance/bar) -"cjo" = ( -/obj/structure/closet/toolcloset, -/turf/open/floor/plasteel, -/area/construction) -"cjp" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cjq" = ( -/obj/machinery/atmospherics/components/binary/valve{ - name = "Mix to Space" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cjr" = ( -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cjs" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cjt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cju" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Incinerator to Output" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cjv" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cjw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/aft) -"cjx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/closed/wall, -/area/maintenance/disposal/incinerator) -"cjy" = ( -/obj/structure/disposalpipe/segment, -/obj/item/shard, -/turf/open/floor/plating, -/area/maintenance/aft) -"cjz" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/closed/wall, -/area/maintenance/aft) -"cjA" = ( -/obj/structure/disposalpipe/segment, -/obj/item/cigbutt/roach, -/turf/open/floor/plating, -/area/maintenance/aft) -"cjB" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/obj/structure/table, -/obj/item/folder/white, -/obj/item/pen, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/science/xenobiology) -"cjC" = ( -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cjD" = ( -/turf/closed/wall/r_wall, -/area/maintenance/solars/starboard/aft) -"cjE" = ( -/obj/structure/rack, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cjF" = ( -/obj/machinery/door/airlock/engineering{ - name = "Starboard Quarter Solar Access"; - req_access_txt = "10" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"cjG" = ( -/obj/structure/sign/warning/electricshock, -/turf/closed/wall/r_wall, -/area/maintenance/solars/starboard/aft) -"cjH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"cjI" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cjJ" = ( -/turf/closed/wall/r_wall, -/area/engine/engine_smes) -"cjK" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cjL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/construction) -"cjM" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Engineering Secure Storage"; - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cjN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjO" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjR" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access_txt = "10;13" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/closet/wardrobe/engineering_yellow, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjU" = ( -/obj/machinery/computer/station_alert{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen/ce{ - dir = 4; - pixel_x = -24 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cjV" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cjW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"cjX" = ( -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cjY" = ( -/obj/structure/table/reinforced, -/obj/item/cartridge/engineering{ - pixel_x = 4; - pixel_y = 5 - }, -/obj/item/cartridge/engineering{ - pixel_x = -3; - pixel_y = 2 - }, -/obj/item/cartridge/engineering{ - pixel_x = 3 - }, -/obj/item/cartridge/atmos, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"cka" = ( -/obj/machinery/door/poddoor/preopen{ - id = "testlab"; - name = "test chamber blast door" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/research/glass{ - name = "Test Chamber"; - req_access_txt = "47" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/science/misc_lab) -"ckb" = ( -/obj/machinery/atmospherics/pipe/simple, -/obj/structure/grille, -/obj/machinery/meter, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"ckc" = ( -/obj/machinery/atmospherics/pipe/simple, -/obj/structure/grille, -/obj/machinery/meter{ - name = "Mixed Air Tank In" - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"ckd" = ( -/obj/machinery/atmospherics/pipe/simple, -/obj/structure/grille, -/obj/machinery/meter{ - name = "Mixed Air Tank Out" - }, -/turf/closed/wall/r_wall, -/area/engine/atmos) -"cke" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"ckf" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/disposal/incinerator) -"ckg" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"ckh" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix to MiniSat" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cki" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"ckj" = ( -/obj/item/cigbutt, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"ckk" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4; - name = "Incinerator to Space" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"ckl" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/maintenance/aft) -"ckm" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Biohazard Disposals"; - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"cko" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/maintenance/starboard/aft) -"ckp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ckr" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cks" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"ckt" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/solars/starboard/aft"; - dir = 8; - name = "Starboard Quarter Solar APC"; - pixel_x = -26; - pixel_y = 3 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"cku" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/smes, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"ckv" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"ckw" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"ckx" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"cky" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"ckz" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"ckA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"ckB" = ( -/obj/machinery/field/generator, -/turf/open/floor/plating, -/area/engine/engineering) -"ckC" = ( -/obj/machinery/power/emitter, -/turf/open/floor/plating, -/area/engine/engineering) -"ckD" = ( -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/structure/table, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/item/storage/box/lights/mixed, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ckF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ckG" = ( -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/structure/closet/crate/solarpanel_small, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ckH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ckI" = ( -/obj/machinery/suit_storage_unit/engine, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ckK" = ( -/obj/structure/tank_dispenser, -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ckL" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/crew_quarters/heads/chief) -"ckM" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"ckN" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/research/glass{ - name = "Test Chamber"; - req_access_txt = "47" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/science/misc_lab) -"ckO" = ( -/obj/machinery/door/airlock/command/glass{ - name = "Chief Engineer"; - req_access_txt = "56" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"ckQ" = ( -/obj/structure/closet/cardboard, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"ckS" = ( -/obj/structure/closet/cardboard, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"ckT" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"ckU" = ( -/obj/machinery/air_sensor/atmos/nitrogen_tank, -/turf/open/floor/engine/n2, -/area/engine/atmos) -"ckV" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input{ - dir = 1 - }, -/turf/open/floor/engine/n2, -/area/engine/atmos) -"ckW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output{ - dir = 1 - }, -/turf/open/floor/engine/n2, -/area/engine/atmos) -"ckX" = ( -/obj/machinery/air_sensor/atmos/oxygen_tank, -/turf/open/floor/engine/o2, -/area/engine/atmos) -"ckY" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{ - dir = 1 - }, -/turf/open/floor/engine/o2, -/area/engine/atmos) -"ckZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{ - dir = 1 - }, -/turf/open/floor/engine/o2, -/area/engine/atmos) -"cla" = ( -/obj/machinery/air_sensor/atmos/air_tank, -/turf/open/floor/engine/air, -/area/engine/atmos) -"clb" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input{ - dir = 1 - }, -/turf/open/floor/engine/air, -/area/engine/atmos) -"clc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{ - dir = 1 - }, -/turf/open/floor/engine/air, -/area/engine/atmos) -"cld" = ( -/obj/effect/landmark/blobstart, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Mix to Incinerator" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cle" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"clf" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"clg" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/turf/open/floor/plating, -/area/maintenance/disposal/incinerator) -"clh" = ( -/obj/machinery/light/small, -/obj/structure/extinguisher_cabinet{ - pixel_y = -31 - }, -/obj/machinery/computer/turbine_computer{ - dir = 1; - id = "incineratorturbine" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"cli" = ( -/obj/machinery/button/door/incinerator_vent_atmos_aux{ - pixel_x = 6; - pixel_y = -24 - }, -/obj/machinery/button/door/incinerator_vent_atmos_main{ - pixel_x = -6; - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"clj" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"clk" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cll" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"clm" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/general/hidden{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/aft) -"cln" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"clo" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/maintenance/aft) -"clp" = ( -/obj/machinery/door/airlock/external{ - name = "Solar Maintenance"; - req_access_txt = "10; 13" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"clq" = ( -/obj/structure/rack, -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"clr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cls" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"clt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"clu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"clv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/starboard/aft) -"clw" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"clx" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"cly" = ( -/obj/structure/chair/stool, -/obj/machinery/camera{ - c_tag = "Aft Starboard Solar Control"; - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"clz" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"clA" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"clB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"clC" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"clD" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"clE" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/smes/engineering, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"clF" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"clG" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/smes/engineering, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"clJ" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/engine/engineering) -"clM" = ( -/obj/structure/table, -/obj/item/storage/box/lights/mixed, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"clN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"clO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/closet/wardrobe/grey, -/obj/item/clothing/under/misc/assistantformal, -/obj/item/clothing/under/misc/assistantformal, -/obj/machinery/camera{ - c_tag = "Dorms East - Holodeck"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"clQ" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"clR" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"clT" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/machinery/atmospherics/miner/nitrogen, -/turf/open/floor/engine/n2, -/area/engine/atmos) -"clU" = ( -/turf/open/floor/engine/n2, -/area/engine/atmos) -"clV" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/atmospherics/miner/oxygen, -/turf/open/floor/engine/o2, -/area/engine/atmos) -"clW" = ( -/turf/open/floor/engine/o2, -/area/engine/atmos) -"clY" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/engine/air, -/area/engine/atmos) -"clZ" = ( -/turf/open/floor/engine/air, -/area/engine/atmos) -"cmb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/disposal/incinerator) -"cmd" = ( -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"cme" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"cmf" = ( -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{ - pixel_x = 38; - pixel_y = 6 - }, -/turf/open/floor/engine, -/area/maintenance/disposal/incinerator) -"cmg" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/aft) -"cmh" = ( -/obj/structure/disposalpipe/junction/yjunction{ - dir = 2 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cmi" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/aft) -"cmj" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cmk" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cmo" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cmq" = ( -/obj/effect/landmark/xeno_spawn, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/starboard/aft) -"cmr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall, -/area/maintenance/starboard/aft) -"cmt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cmu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/closed/wall, -/area/maintenance/starboard/aft) -"cmv" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"cmw" = ( -/obj/machinery/power/solar_control{ - dir = 1; - id = "starboardsolar"; - name = "Starboard Quarter Solar Control" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"cmx" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"cmy" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"cmz" = ( -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"cmA" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"cmB" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"cmC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cmD" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=2"; - freq = 1400; - location = "Engineering" - }, -/obj/structure/plasticflaps/opaque, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cmF" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cmG" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cmL" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cmN" = ( -/obj/structure/sign/warning/nosmoking{ - pixel_y = 32 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cmU" = ( -/obj/machinery/light/small, -/turf/open/floor/engine/n2, -/area/engine/atmos) -"cmV" = ( -/obj/machinery/light/small, -/turf/open/floor/engine/o2, -/area/engine/atmos) -"cmW" = ( -/obj/machinery/light/small, -/turf/open/floor/engine/air, -/area/engine/atmos) -"cmX" = ( -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/construction) -"cmY" = ( -/obj/machinery/atmospherics/components/binary/pump/on, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/sign/warning/fire{ - pixel_x = -32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/airlock_sensor/incinerator_atmos{ - pixel_x = 8; - pixel_y = 24 - }, -/turf/open/floor/engine, -/area/maintenance/disposal/incinerator) -"cmZ" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1 - }, -/obj/structure/sign/warning/fire{ - pixel_x = 32 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/maintenance/disposal/incinerator) -"cna" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ - dir = 8 - }, -/turf/open/floor/engine, -/area/maintenance/disposal/incinerator) -"cnb" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cnc" = ( -/obj/machinery/light/small, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/aft) -"cnd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/aft) -"cne" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/aft) -"cnf" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cng" = ( -/obj/machinery/light/small, -/obj/structure/table, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/clipboard, -/turf/open/floor/plating, -/area/maintenance/aft) -"cnj" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"cnk" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - name = "Solar Maintenance"; - req_access_txt = "10; 13" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"cnl" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"cnm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"cnn" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"cnp" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/camera{ - c_tag = "SMES Room"; - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"cnr" = ( -/obj/machinery/door/window/southleft{ - name = "Engineering Delivery"; - req_access_txt = "10" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cnt" = ( -/obj/machinery/camera{ - c_tag = "Engineering West"; - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/landmark/start/station_engineer, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cnv" = ( -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cny" = ( -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cnA" = ( -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/structure/table, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/electronics/apc, -/obj/item/electronics/apc, -/obj/item/stock_parts/cell/high/plus, -/obj/item/stock_parts/cell/high/plus, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/item/twohanded/rcl/pre_loaded, -/obj/item/twohanded/rcl/pre_loaded, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cnB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/construction) -"cnC" = ( -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/engine, -/area/maintenance/disposal/incinerator) -"cnD" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/closed/wall, -/area/maintenance/aft) -"cnE" = ( -/obj/structure/disposalpipe/junction/flip{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cnF" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Waste Out" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cnG" = ( -/obj/structure/closet/emcloset, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"cnH" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cnJ" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cnK" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"cnL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"cnM" = ( -/obj/machinery/door/window{ - name = "SMES Chamber"; - req_access_txt = "32" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"cnN" = ( -/obj/structure/window/reinforced, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/machinery/power/terminal{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"cnO" = ( -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"cnP" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/window/reinforced, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engine_smes) -"cnQ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cnR" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engine_smes) -"cnS" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/camera{ - c_tag = "SMES Access"; - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cnU" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/sign/warning/electricshock{ - pixel_x = -32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/loading_area, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cnX" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cnY" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/sign/warning/nosmoking{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cnZ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"coa" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cob" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"coh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"con" = ( -/turf/open/pool, -/area/crew_quarters/fitness/pool) -"cop" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ - dir = 1 - }, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"coq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/incinerator_output{ - dir = 1 - }, -/obj/structure/sign/warning/vacuum/external{ - pixel_y = -32 - }, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"cor" = ( -/obj/machinery/igniter{ - id = "Incinerator" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/air_sensor{ - pixel_x = -32; - pixel_y = -32 - }, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"cos" = ( -/obj/machinery/door/poddoor/incinerator_atmos_aux, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"cot" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/aft) -"cou" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cov" = ( -/obj/machinery/power/port_gen/pacman, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cow" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cox" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"coy" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"coz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"coA" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"coB" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/engineering{ - name = "SMES Room"; - req_access_txt = "32" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"coC" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"coH" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"coI" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hydroponics) -"coJ" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"coL" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"coT" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/science/misc_lab) -"coZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/closet/secure_closet/engineering_electrical, -/obj/item/storage/toolbox/artistic{ - icon_state = "yellow"; - item_state = "toolbox_yellow"; - name = "Cable Toolbox"; - pixel_y = 6 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cpa" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/closet/secure_closet/engineering_welding, -/obj/item/clothing/glasses/welding, -/obj/item/clothing/glasses/welding, -/obj/item/clothing/glasses/welding, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cpb" = ( -/obj/structure/closet/emcloset, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cpj" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/obj/structure/chair/office/light, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cpk" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cpl" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cpm" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cpn" = ( -/obj/machinery/light, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cpo" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cpp" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cpq" = ( -/obj/structure/sign/warning/electricshock{ - pixel_x = -32 - }, -/obj/machinery/computer/rdconsole/production{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cps" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cpC" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/bridge) -"cpE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cpF" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/structure/sign/poster/official/space_cops{ - pixel_x = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"cpG" = ( -/obj/structure/table/optable, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"cpI" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "Escape Pod Four" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cpN" = ( -/obj/machinery/power/turbine{ - luminosity = 2 - }, -/obj/structure/cable/yellow, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"cpO" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Incinerator Output Pump" - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/maintenance/disposal/incinerator) -"cpQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/maintenance/disposal/incinerator) -"cpR" = ( -/obj/machinery/door/airlock/abandoned{ - name = "Observatory Access" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cpS" = ( -/obj/structure/cable, -/obj/machinery/power/apc{ - areastring = "/area/engine/engine_smes"; - name = "SMES room APC"; - pixel_y = -24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/table, -/obj/item/stock_parts/cell/high/plus, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cpT" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -35 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cpU" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"cpV" = ( -/obj/machinery/camera{ - c_tag = "Engineering Storage"; - dir = 4 - }, -/obj/machinery/rnd/production/protolathe/department/engineering, -/obj/structure/sign/poster/contraband/power{ - desc = "Lord Singuloth must feed. Annoyingly, it's really easy for people to sabotage containment and let Lord Singuloth eat the entire station.. For this reason, Nanotrasen prefers Supermatter reactors."; - pixel_x = -32; - poster_item_desc = "This poster depicts Lord Singuloth. Nanotrasen doesn't approve. Nanotrasen wants Supermatter over Singularities, as they are usually much safer." - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cpW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cpX" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/rods/fifty, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cpY" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cqn" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cqo" = ( -/obj/structure/sign/warning/pods{ - pixel_x = 32 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqp" = ( -/obj/machinery/camera{ - c_tag = "Engineering Escape Pod"; - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cqr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"cqs" = ( -/obj/structure/sign/warning/fire, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"cqt" = ( -/obj/machinery/door/poddoor/incinerator_atmos_main, -/turf/open/floor/engine/vacuum, -/area/maintenance/disposal/incinerator) -"cqv" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cqw" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/rnd/production/circuit_imprinter, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqy" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cqz" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqK" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cqL" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cqM" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"cqN" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/plasteel{ - amount = 10 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqO" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = -7 - }, -/obj/item/stack/cable_coil, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqP" = ( -/obj/structure/table, -/obj/item/folder/yellow, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -3; - pixel_y = -2 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"cqR" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cqY" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"crh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cri" = ( -/obj/machinery/door/airlock/external{ - name = "External Access"; - req_access_txt = "13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"crk" = ( -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"crl" = ( -/obj/structure/table, -/obj/item/taperecorder, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"crm" = ( -/obj/structure/table, -/obj/item/storage/box/matches, -/obj/item/storage/fancy/cigarettes, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"crn" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"cro" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"crp" = ( -/obj/structure/sign/warning/electricshock, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"crq" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"crr" = ( -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"crw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cry" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"crz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"crA" = ( -/obj/structure/transit_tube_pod, -/obj/structure/transit_tube/station/reverse/flipped{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"crB" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"crC" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"crE" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"crG" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"crP" = ( -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/engine/engineering) -"crR" = ( -/obj/structure/transit_tube, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"crW" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"crX" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_x = 32 - }, -/obj/structure/closet/emcloset/anchored, -/turf/open/floor/plating, -/area/engine/engineering) -"crY" = ( -/obj/structure/window/reinforced/fulltile, -/obj/structure/transit_tube, -/turf/open/floor/plating, -/area/engine/engineering) -"csc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/maintenance/aft) -"csg" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access_txt = "10;13" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"csm" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/maintenance/aft) -"csq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen/turbine{ - dir = 1; - pixel_y = -30 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"csr" = ( -/obj/machinery/button/ignition{ - id = "Incinerator"; - pixel_x = -6; - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"csy" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"csD" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"csN" = ( -/obj/structure/transit_tube/horizontal, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"csO" = ( -/obj/structure/window/reinforced/fulltile, -/obj/structure/transit_tube/horizontal, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"csT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/landmark/xmastree, -/turf/open/floor/plasteel/dark, -/area/chapel/main) -"csU" = ( -/obj/structure/transit_tube/station/reverse, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"csV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"csW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"csX" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"csZ" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"cta" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "MiniSat External Access"; - req_access_txt = "65;13" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"ctb" = ( -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"ctc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"ctg" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"cth" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"cti" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/securearea{ - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"ctj" = ( -/obj/machinery/camera{ - c_tag = "MiniSat Pod Access"; - dir = 1; - network = list("minisat"); - start_active = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"ctk" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/closed/wall, -/area/ai_monitored/turret_protected/aisat_interior) -"cto" = ( -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Foyer"; - req_one_access_txt = "65" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"ctp" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/ai_monitored/turret_protected/aisat_interior) -"ctq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/ai_monitored/turret_protected/aisat_interior) -"ctr" = ( -/obj/structure/table, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/item/folder{ - pixel_x = 3 - }, -/obj/item/phone{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/pen, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cts" = ( -/obj/structure/rack, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/radio/off{ - pixel_y = 4 - }, -/obj/item/screwdriver{ - pixel_y = 10 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"ctt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"ctu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/ai_monitored/turret_protected/aisat_interior) -"ctw" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/obj/machinery/computer/station_alert{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"ctx" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plasteel/grimy, -/area/ai_monitored/turret_protected/aisat_interior) -"cty" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/ai_monitored/turret_protected/aisat_interior) -"ctz" = ( -/obj/machinery/door/poddoor/shutters{ - id = "teledoor"; - name = "MiniSat Teleport Access" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"ctA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"ctB" = ( -/obj/structure/cable, -/obj/machinery/power/tracker, -/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, -/area/icemoon/surface/outdoors) -"ctE" = ( -/obj/machinery/teleport/hub, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"ctF" = ( -/obj/machinery/button/door{ - id = "teledoor"; - name = "MiniSat Teleport Shutters Control"; - pixel_y = 25; - req_access_txt = "17;65" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"ctG" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/grimy, -/area/ai_monitored/turret_protected/aisat_interior) -"ctH" = ( -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = -31 - }, -/obj/machinery/computer/monitor{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"ctI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/grimy, -/area/ai_monitored/turret_protected/aisat_interior) -"ctJ" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/landmark/start/cyborg, -/turf/open/floor/plasteel/grimy, -/area/ai_monitored/turret_protected/aisat_interior) -"ctK" = ( -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Teleporter"; - req_access_txt = "17;65" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"ctL" = ( -/obj/machinery/teleport/station, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"ctM" = ( -/obj/machinery/bluespace_beacon, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/landmark/start/cyborg, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"ctP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/ai_monitored/turret_protected/aisat_interior) -"ctQ" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 4 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"ctR" = ( -/obj/structure/sign/warning/radiation/rad_area, -/turf/closed/wall, -/area/engine/engineering) -"ctS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/grimy, -/area/ai_monitored/turret_protected/aisat_interior) -"ctT" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/grimy, -/area/ai_monitored/turret_protected/aisat_interior) -"ctU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/ai_monitored/turret_protected/aisat_interior) -"ctV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - areastring = "/area/ai_monitored/turret_protected/aisat_interior"; - dir = 4; - name = "MiniSat Foyer APC"; - pixel_x = 27 - }, -/obj/structure/chair, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"ctW" = ( -/obj/machinery/computer/teleporter{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"ctX" = ( -/obj/machinery/camera{ - c_tag = "MiniSat Teleporter"; - dir = 1; - network = list("minisat"); - start_active = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"ctY" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/meter, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/aisat/atmos) -"ctZ" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/aisat/atmos) -"cua" = ( -/turf/closed/wall, -/area/ai_monitored/turret_protected/aisat_interior) -"cub" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cuc" = ( -/obj/structure/rack, -/obj/machinery/status_display/evac{ - pixel_y = -32 - }, -/obj/item/storage/box/donkpockets, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cud" = ( -/obj/machinery/turretid{ - control_area = "/area/ai_monitored/turret_protected/aisat_interior"; - name = "Antechamber Turret Control"; - pixel_y = -24; - req_access = null; - req_access_txt = "65" - }, -/obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/camera/motion{ - c_tag = "MiniSat Foyer"; - dir = 1; - network = list("minisat") - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cue" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cuf" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/aisat/service) -"cug" = ( -/obj/machinery/status_display/ai{ - pixel_y = -32 - }, -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cuh" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/structure/rack, -/obj/item/wrench, -/obj/item/crowbar/red, -/obj/item/clothing/head/welding, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/atmos) -"cui" = ( -/obj/machinery/atmospherics/components/unary/tank/air, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/atmos) -"cuj" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/aisat_interior) -"cuk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/aisat_interior) -"cul" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Antechamber"; - req_one_access_txt = "65" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cum" = ( -/obj/machinery/recharge_station, -/obj/effect/landmark/start/cyborg, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/service) -"cun" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Mix to MiniSat" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/atmos) -"cuo" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/atmos) -"cup" = ( -/obj/structure/showcase/cyborg/old{ - dir = 8; - pixel_x = 9; - pixel_y = 2 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -5; - pixel_y = 30 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/atmos) -"cuq" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Air Out" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/atmos) -"cur" = ( -/obj/structure/showcase/cyborg/old{ - dir = 4; - pixel_x = -9; - pixel_y = 2 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cus" = ( -/obj/structure/showcase/cyborg/old{ - dir = 8; - pixel_x = 9; - pixel_y = 2 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cuu" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cuv" = ( -/obj/structure/showcase/cyborg/old{ - dir = 4; - pixel_x = -9; - pixel_y = 2 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = 30 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/service) -"cuw" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/service) -"cux" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/clothing/head/welding, -/obj/item/stack/sheet/mineral/plasma{ - amount = 35 - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/service) -"cuy" = ( -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cuz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/atmos) -"cuA" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "MiniSat Atmospherics"; - dir = 4; - network = list("minisat"); - start_active = 1 - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/obj/machinery/space_heater, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/atmos) -"cuB" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = 28 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/atmos) -"cuC" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/start/cyborg, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/atmos) -"cuD" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "MiniSat Antechamber"; - dir = 4; - network = list("minisat"); - start_active = 1 - }, -/obj/machinery/turretid{ - control_area = "/area/ai_monitored/turret_protected/aisat/atmos"; - name = "Atmospherics Turret Control"; - pixel_x = -27; - req_access = null; - req_access_txt = "65" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cuE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/aisat_interior) -"cuF" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/turretid{ - control_area = "/area/ai_monitored/turret_protected/aisat/service"; - name = "Service Bay Turret Control"; - pixel_x = 27; - req_access = null; - req_access_txt = "65" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cuG" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/landmark/start/cyborg, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cuH" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = -28 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/service) -"cuI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/service) -"cuJ" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/service) -"cuK" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "MiniSat Service Bay"; - dir = 8; - network = list("minisat"); - start_active = 1 - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/structure/rack, -/obj/item/storage/toolbox/electrical{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/storage/toolbox/mechanical, -/obj/item/multitool, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/service) -"cuL" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/atmos) -"cuM" = ( -/obj/machinery/power/apc{ - areastring = "/area/ai_monitored/turret_protected/aisat/atmos"; - dir = 8; - name = "MiniSat Atmospherics APC"; - pixel_x = -27 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/portable_atmospherics/scrubber, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/atmos) -"cuN" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/atmos) -"cuO" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/atmos) -"cuP" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cuQ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Atmospherics"; - req_one_access_txt = "65" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cuR" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cuS" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/mob/living/simple_animal/bot/secbot/pingsky, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cuT" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/service) -"cuU" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Service Bay"; - req_one_access_txt = "65" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cuV" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/service) -"cuW" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/service) -"cuX" = ( -/obj/machinery/power/apc{ - areastring = "/area/ai_monitored/turret_protected/aisat/service"; - dir = 4; - name = "MiniSat Service Bay APC"; - pixel_x = 27 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/port_gen/pacman, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/service) -"cuY" = ( -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/atmos) -"cuZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/mob/living/simple_animal/bot/floorbot, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/atmos) -"cva" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai) -"cvb" = ( -/obj/machinery/status_display/ai, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai) -"cvc" = ( -/obj/structure/sign/warning/securearea{ - pixel_x = -32 - }, -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/obj/item/radio/intercom{ - broadcasting = 1; - frequency = 1447; - listening = 0; - name = "Station Intercom (AI Private)"; - pixel_y = -29 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cvd" = ( -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/obj/structure/sign/warning/securearea{ - pixel_x = 32 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cve" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/machinery/turretid{ - control_area = "/area/ai_monitored/turret_protected/aisat/hallway"; - name = "Chamber Hallway Turret Control"; - pixel_x = 32; - pixel_y = -24; - req_access = null; - req_access_txt = "65" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat_interior) -"cvf" = ( -/obj/machinery/status_display/evac, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai) -"cvg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/mob/living/simple_animal/bot/cleanbot, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/service) -"cvh" = ( -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/service) -"cvi" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/service) -"cvj" = ( -/turf/closed/wall, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvk" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvl" = ( -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cvm" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "MiniSat Maintenance"; - req_access_txt = "65" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvo" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Chamber Hallway"; - req_one_access_txt = "65" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvp" = ( -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cvq" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "MiniSat Maintenance"; - req_access_txt = "65" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvr" = ( -/obj/machinery/porta_turret/ai{ - dir = 4 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cvs" = ( -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvu" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvv" = ( -/turf/closed/wall, -/area/ai_monitored/turret_protected/ai) -"cvw" = ( -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvx" = ( -/obj/effect/landmark/start/ai/secondary, -/obj/item/radio/intercom{ - freerange = 1; - listening = 0; - name = "Custom Channel"; - pixel_y = 28 - }, -/obj/item/radio/intercom{ - freerange = 1; - name = "Common Channel"; - pixel_x = -27; - pixel_y = 5 - }, -/obj/item/radio/intercom{ - freerange = 1; - frequency = 1447; - name = "Private Channel"; - pixel_y = -25 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cvy" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvz" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvA" = ( -/obj/effect/landmark/start/ai/secondary, -/obj/item/radio/intercom{ - freerange = 1; - listening = 0; - name = "Custom Channel"; - pixel_y = 28 - }, -/obj/item/radio/intercom{ - freerange = 1; - name = "Common Channel"; - pixel_x = 27; - pixel_y = 5 - }, -/obj/item/radio/intercom{ - freerange = 1; - frequency = 1447; - name = "Private Channel"; - pixel_y = -25 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cvB" = ( -/obj/structure/rack, -/obj/item/crowbar/red, -/obj/item/wrench, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvC" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvD" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvE" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvG" = ( -/obj/machinery/porta_turret/ai{ - dir = 4; - installation = /obj/item/gun/energy/e_gun - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvH" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvI" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvJ" = ( -/obj/machinery/porta_turret/ai{ - dir = 4; - installation = /obj/item/gun/energy/e_gun - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvL" = ( -/obj/structure/sign/warning/securearea{ - pixel_x = 32 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvM" = ( -/obj/machinery/camera/motion{ - c_tag = "MiniSat Core Hallway"; - dir = 4; - network = list("aicore") - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvN" = ( -/obj/structure/sign/warning/securearea{ - pixel_x = -32 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cvP" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "MiniSat Maintenance"; - req_access_txt = "65" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvR" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvT" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvU" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "MiniSat Maintenance"; - req_access_txt = "65" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvV" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvW" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvX" = ( -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvY" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cvZ" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/aisat/hallway) -"cwa" = ( -/obj/structure/cable, -/obj/machinery/power/apc{ - areastring = "/area/ai_monitored/turret_protected/aisat/hallway"; - dir = 4; - name = "MiniSat Chamber Hallway APC"; - pixel_x = 27 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/aisat/hallway) -"cwb" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cwc" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/hallway) -"cwd" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/radio/intercom{ - broadcasting = 1; - frequency = 1447; - listening = 0; - name = "Station Intercom (AI Private)"; - pixel_x = -28; - pixel_y = -29 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/hallway) -"cwe" = ( -/obj/structure/sign/warning/securearea, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/turret_protected/ai) -"cwf" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Chamber Observation"; - req_one_access_txt = "65" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cwg" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cwh" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen{ - pixel_x = 4; - pixel_y = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cwi" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cwj" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cwk" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cwl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cwm" = ( -/obj/structure/table/reinforced, -/obj/item/folder/white, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cwn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cwo" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cwp" = ( -/obj/structure/chair/office/dark, -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cwq" = ( -/obj/structure/grille, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat/hallway) -"cwr" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai) -"cws" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/ai) -"cwt" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command/glass{ - name = "AI Core"; - req_access_txt = "65" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cwu" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cwv" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/status_display/evac{ - pixel_x = -32 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cww" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cwx" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cwz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cwA" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cwB" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/status_display/ai{ - pixel_x = 32 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cwC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cwD" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/turretid{ - name = "AI Chamber turret control"; - pixel_x = 5; - pixel_y = -24 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cwE" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/ai_monitored/turret_protected/ai"; - name = "AI Chamber APC"; - pixel_y = -24 - }, -/obj/machinery/flasher{ - id = "AI"; - pixel_x = -11; - pixel_y = -24 - }, -/obj/machinery/camera/motion{ - c_tag = "MiniSat AI Chamber North"; - dir = 1; - network = list("aicore") - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cwH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"cwT" = ( -/obj/machinery/camera{ - c_tag = "Arrivals Escape Pod 2"; - dir = 8 - }, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cxm" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cxo" = ( -/obj/structure/chair/wood/normal, -/turf/open/floor/wood, -/area/maintenance/bar) -"cxN" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/external{ - name = "Solar Maintenance"; - req_access_txt = "10; 13" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/fore) -"cxP" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/security/processing) -"cxW" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/external{ - name = "External Access"; - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"cxY" = ( -/obj/machinery/camera{ - c_tag = "Arrivals Escape Pod 1"; - dir = 8 - }, -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cya" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/fore) -"cyb" = ( -/obj/machinery/door/airlock/external{ - name = "Escape Pod One" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cyg" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/command{ - name = "Command Tool Storage"; - req_access_txt = "19" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/storage/eva) -"cyh" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "Security Escape Airlock"; - req_access_txt = "2" - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"cyl" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "Port Docking Bay 2" - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cyp" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "Escape Airlock" - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"cyr" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "Cargo Escape Airlock" - }, -/turf/open/floor/plating, -/area/hallway/secondary/exit) -"cyt" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/external{ - name = "Port Docking Bay 4" - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cyu" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/external{ - name = "Port Docking Bay 3" - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cyC" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"cyD" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "Supply Dock Airlock"; - req_access_txt = "31" - }, -/turf/open/floor/plating, -/area/quartermaster/storage) -"cyE" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "External Access"; - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cyG" = ( -/turf/open/floor/plating, -/area/engine/atmos) -"cyK" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "Solar Maintenance"; - req_access_txt = "10; 13" - }, -/turf/open/floor/plating, -/area/maintenance/solars/port/aft) -"cyL" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "12" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cyM" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/engineering{ - name = "Engine Room"; - req_access_txt = "10" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cyU" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/external{ - name = "Solar Maintenance"; - req_access_txt = "10; 13" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/aft) -"czg" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "Escape Pod Four"; - shuttledocked = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"czk" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "MiniSat External Access"; - req_access_txt = "65;13" - }, -/turf/open/floor/plating, -/area/ai_monitored/turret_protected/aisat_interior) -"czG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"czH" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"czJ" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 1 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/maintenance/disposal/incinerator) -"czK" = ( -/turf/closed/wall, -/area/security/vacantoffice) -"czO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"czQ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"czR" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"czS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/starboard/aft) -"czT" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"czU" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"czW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"czX" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"czY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"czZ" = ( -/obj/structure/chair, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cAa" = ( -/obj/structure/chair, -/obj/item/storage/fancy/cigarettes, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cAb" = ( -/obj/structure/closet, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cAc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/starboard/aft) -"cAd" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cAe" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/aft) -"cAg" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"cAh" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cAi" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cAy" = ( -/obj/structure/closet/secure_closet/freezer/kitchen/maintenance, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cAz" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/chapel/office) -"cAA" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cAB" = ( -/obj/structure/table, -/obj/machinery/microwave, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cAC" = ( -/obj/structure/sink/kitchen{ - dir = 8; - pixel_x = 11 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cAD" = ( -/obj/structure/table, -/obj/item/kitchen/knife, -/obj/item/storage/box/donkpockets, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cAE" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_y = 2 - }, -/obj/item/reagent_containers/food/condiment/peppermill{ - pixel_x = 2 - }, -/obj/item/reagent_containers/food/snacks/mint{ - pixel_y = 9 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cAF" = ( -/turf/open/floor/plating, -/area/maintenance/disposal) -"cAG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/heads/hop"; - name = "Head of Personnel APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/central) -"cAH" = ( -/obj/machinery/processor, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cAI" = ( -/obj/machinery/conveyor_switch/oneway{ - dir = 8; - id = "garbage"; - name = "disposal conveyor" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"cAJ" = ( -/obj/structure/closet, -/turf/open/floor/plating, -/area/maintenance/disposal) -"cAK" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cAL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/landmark/start/janitor, -/turf/open/floor/plasteel, -/area/janitor) -"cAQ" = ( -/obj/structure/chair, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cAR" = ( -/obj/machinery/door/window{ - dir = 1; - name = "AI Core Door"; - req_access_txt = "16" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cAS" = ( -/obj/effect/landmark/start/ai, -/obj/item/radio/intercom{ - freerange = 1; - name = "Common Channel"; - pixel_x = -27; - pixel_y = -9 - }, -/obj/item/radio/intercom{ - freerange = 1; - listening = 0; - name = "Custom Channel"; - pixel_y = -31 - }, -/obj/item/radio/intercom{ - freerange = 1; - frequency = 1447; - name = "Private Channel"; - pixel_x = 27; - pixel_y = -9 - }, -/obj/machinery/newscaster/security_unit{ - pixel_x = -28; - pixel_y = -28 - }, -/obj/machinery/requests_console{ - department = "AI"; - departmentType = 5; - pixel_x = 28; - pixel_y = -28 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cAT" = ( -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cAV" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/showcase/cyborg/old{ - dir = 8; - pixel_x = 9; - pixel_y = 2 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cAW" = ( -/obj/structure/showcase/cyborg/old{ - dir = 4; - pixel_x = -9; - pixel_y = 2 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cAY" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/closed/wall, -/area/ai_monitored/turret_protected/ai) -"cAZ" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cBa" = ( -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cBb" = ( -/obj/machinery/camera/motion{ - c_tag = "MiniSat AI Chamber South"; - network = list("aicore") - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cBc" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/turf/open/floor/circuit, -/area/ai_monitored/turret_protected/ai) -"cBd" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cBe" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai) -"cBg" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/hydroponics) -"cBh" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/locker) -"cBi" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"cBj" = ( -/obj/structure/table, -/obj/item/folder/blue, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/ai_upload) -"cBk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"cBl" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/hallway/secondary/exit) -"cBm" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"cBn" = ( -/obj/structure/closet, -/obj/item/stack/tile/carpet/royalblue{ - amount = 24 - }, -/obj/item/stack/tile/carpet/green{ - amount = 24 - }, -/obj/item/stack/tile/carpet/purple{ - amount = 24 - }, -/obj/item/stack/tile/carpet/orange{ - amount = 24 - }, -/obj/item/stack/tile/wood{ - amount = 24 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"cBo" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"cBp" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"cBq" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"cBr" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"cBt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/white, -/area/science/explab) -"cBu" = ( -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/crew_quarters/heads/hor) -"cBv" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/security/checkpoint/supply) -"cBw" = ( -/obj/machinery/door/firedoor, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"cBx" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/white, -/area/science/research) -"cBy" = ( -/obj/machinery/door/airlock{ - name = "Custodial Closet"; - req_access_txt = "26" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/janitor) -"cBz" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/engine, -/area/science/xenobiology) -"cBA" = ( -/obj/machinery/button/massdriver{ - id = "toxinsdriver"; - pixel_y = 24 - }, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/mixing) -"cBB" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"cBC" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/storage/tech) -"cBD" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/maintenance/aft) -"cBE" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/air_sensor/atmos/toxins_mixing_tank, -/turf/open/floor/engine/vacuum, -/area/science/mixing) -"cBF" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/visible, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cBH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"cBI" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/security/checkpoint/engineering) -"cBJ" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cBK" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -35 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/tcommsat/computer) -"cBL" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cBM" = ( -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/plus, -/obj/item/twohanded/rcl/pre_loaded, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"cBN" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cBO" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cBP" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/landmark/event_spawn, -/turf/open/floor/engine/air, -/area/engine/atmos) -"cBS" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/turret_protected/aisat/hallway) -"cBT" = ( -/obj/machinery/door/airlock/external{ - name = "External Access"; - req_access_txt = "13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cBZ" = ( -/obj/structure/table/wood, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/turf/open/floor/plasteel/grimy, -/area/chapel/office) -"cCb" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - amount = 5 - }, -/obj/item/flashlight, -/turf/open/floor/plating, -/area/construction) -"cCc" = ( -/obj/structure/rack, -/obj/item/clothing/suit/hazardvest, -/turf/open/floor/plating, -/area/construction) -"cCd" = ( -/turf/open/floor/plasteel, -/area/construction) -"cCe" = ( -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/construction) -"cCf" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/turf/open/floor/plating, -/area/construction) -"cCi" = ( -/turf/closed/wall, -/area/security/vacantoffice/b) -"cCj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/security/detectives_office) -"cCk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/security/detectives_office) -"cCn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/warehouse) -"cCo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"cCp" = ( -/obj/structure/closet/crate/freezer, -/obj/item/reagent_containers/blood, -/obj/item/reagent_containers/blood, -/obj/item/reagent_containers/blood/AMinus, -/obj/item/reagent_containers/blood/BMinus{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/reagent_containers/blood/BPlus{ - pixel_x = 1; - pixel_y = 2 - }, -/obj/item/reagent_containers/blood/OMinus, -/obj/item/reagent_containers/blood/OPlus{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/reagent_containers/blood/random, -/obj/item/reagent_containers/blood/random, -/obj/item/reagent_containers/blood/APlus, -/obj/item/reagent_containers/blood/random, -/turf/open/floor/plasteel, -/area/medical/sleeper) -"cCq" = ( -/obj/machinery/deepfryer, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"cCt" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/obj/item/poster/random_official, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cCE" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cCF" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/atmos) -"cCT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cCY" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cDl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/vending/tool, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cDm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/vending/engivend, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cDB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cDJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cDK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cDL" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"cDN" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/closed/wall, -/area/engine/engineering) -"cDZ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/closet/radiation, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cEo" = ( -/obj/structure/closet/boxinggloves, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"cGz" = ( -/obj/structure/table/wood, -/obj/item/instrument/violin, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"cGG" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"cHf" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/table/wood, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3; - pixel_y = 20 - }, -/obj/item/reagent_containers/food/condiment/peppermill{ - dir = 1; - pixel_x = 3; - pixel_y = 20 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/item/reagent_containers/food/drinks/britcup, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"cHD" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 2; - sortType = 14 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"cHE" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Mech Bay Maintenance"; - req_access_txt = "29" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/science/robotics/mechbay) -"cHF" = ( -/obj/machinery/button/door{ - id = "Skynet_launch"; - name = "Mech Bay Door Control"; - pixel_x = 6; - pixel_y = 24 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/robotics/mechbay) -"cHG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/robotics/mechbay) -"cHH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/robotics/mechbay) -"cHI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/robotics/mechbay) -"cHJ" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/robotics/mechbay) -"cHK" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research/glass{ - name = "Robotics Lab"; - req_access_txt = "29" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"cHL" = ( -/obj/machinery/mech_bay_recharge_port{ - dir = 2 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/science/robotics/mechbay) -"cHM" = ( -/obj/structure/chair/office/light{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"cHN" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/circuit, -/area/science/robotics/mechbay) -"cHO" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "robo1" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"cHP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/table, -/obj/item/storage/belt/utility, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass{ - amount = 20; - pixel_x = -3; - pixel_y = 6 - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"cHQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/robotics/mechbay) -"cHR" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "robo1" - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"cHS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/landmark/start/roboticist, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"cHT" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"cHU" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"cHV" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "robo2" - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"cHW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/mecha_part_fabricator, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"cHX" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/clothing/glasses/welding, -/obj/item/multitool{ - pixel_x = 3 - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"cHZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"cIa" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"cIb" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/conveyor{ - dir = 4; - id = "robo2" - }, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"cIc" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/bot, -/obj/effect/landmark/start/cyborg, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"cId" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/science/robotics/lab) -"cIe" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/science/robotics/lab) -"cIf" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"cIh" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/external{ - name = "Port Docking Bay 1" - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"cIv" = ( -/obj/structure/sign/poster/official/cohiba_robusto_ad, -/turf/closed/wall, -/area/lawoffice) -"cJW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"cKC" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"cKT" = ( -/obj/machinery/door/airlock/external{ - name = "Atmospherics External Airlock"; - req_access_txt = "24" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/engine/atmos) -"cMp" = ( -/obj/machinery/light, -/turf/open/floor/plating, -/area/engine/engineering) -"cMC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/computer/security/telescreen/engine{ - dir = 8; - pixel_x = 30 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"cMQ" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/solar{ - id = "starboardsolar"; - name = "Starboard Solar Array" - }, -/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, -/area/icemoon/surface/outdoors) -"cMS" = ( -/obj/item/chair/wood, -/turf/open/floor/plating, -/area/maintenance/port) -"cNa" = ( -/obj/structure/cable, -/obj/machinery/power/solar{ - id = "starboardsolar"; - name = "Starboard Solar Array" - }, -/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, -/area/icemoon/surface/outdoors) -"cNE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/crew_quarters/bar) -"cNG" = ( -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"cNI" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/quartermaster/sorting) -"cNJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"cNL" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/central"; - dir = 1; - name = "Central Maintenance APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/central) -"cNM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"cNN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/sorting) -"cNR" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"cNS" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/starboard"; - dir = 4; - name = "Starboard Maintenance APC"; - pixel_x = 26 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"cNT" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"cNU" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"cNV" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - req_one_access_txt = "8;12" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard) -"cNW" = ( -/turf/closed/wall, -/area/maintenance/starboard/aft) -"cNX" = ( -/obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "8;12" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cNY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/starboard/aft) -"cNZ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cOb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cOe" = ( -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cOw" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cOx" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cOz" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cOT" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cOV" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/sign/warning/securearea{ - pixel_x = -32 - }, -/obj/machinery/door/poddoor/preopen{ - id = "Prison Gate"; - name = "prison blast door" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/security/prison) -"cPn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/freezer, -/area/crew_quarters/toilet) -"cPA" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cPH" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cPI" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cQw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/starboard/aft) -"cQB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"cQF" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 8; - name = "8maintenance loot spawner" - }, -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"cQT" = ( -/obj/structure/filingcabinet, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"cQU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cSA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/security/courtroom) -"cSE" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"cSF" = ( -/obj/machinery/power/terminal{ - dir = 1 - }, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) -"cSL" = ( -/obj/machinery/button/door{ - id = "atmos"; - name = "Atmospherics Lockdown"; - pixel_x = -24; - pixel_y = 10; - req_access_txt = "24" - }, -/obj/machinery/button/door{ - desc = "A remote control-switch for secure storage."; - id = "Secure Storage"; - name = "Engineering Secure Storage"; - pixel_x = -24; - req_access_txt = "11" - }, -/obj/machinery/button/door{ - desc = "A remote control-switch for the engineering security doors."; - id = "Engineering"; - name = "Engineering Lockdown"; - pixel_x = -24; - pixel_y = -10; - req_access_txt = "10" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/chief) -"cSM" = ( -/obj/machinery/computer/station_alert, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = 20 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"cSN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cSO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cSP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cSQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cSR" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/sign/warning/nosmoking{ - pixel_y = 32 - }, -/obj/machinery/camera{ - c_tag = "Engineering Power Storage" - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cSS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cST" = ( -/obj/effect/landmark/start/station_engineer, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cSU" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cSV" = ( -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cSW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"cSX" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"cSY" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"cSZ" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/heads/chief) -"cTa" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cTb" = ( -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/pump, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cTc" = ( -/obj/effect/spawner/structure/window, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"cTd" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/engine/engineering) -"cTe" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cTf" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/requests_console{ - department = "Engineering"; - departmentType = 4; - name = "Engineering RC"; - pixel_y = 30 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"cTD" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/maintenance/central/secondary"; - dir = 8; - name = "Central Maintenance APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/central/secondary) -"cTE" = ( -/obj/machinery/computer/shuttle/mining{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"cTF" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"cTJ" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"cTK" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"cTL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"cTM" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/department/medical/morgue"; - dir = 4; - name = "Morgue Maintenance APC"; - pixel_x = 26 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) -"cTO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"cTS" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"cTT" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"cTX" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/shieldwallgen/xenobiologyaccess, -/obj/structure/sign/poster/official/safety_eye_protection{ - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/science/xenobiology) -"cTY" = ( -/obj/structure/sign/poster/official/safety_internals{ - pixel_x = -32 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cTZ" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/xenobiology) -"cUx" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/bridge/meeting_room) -"cVb" = ( -/turf/closed/wall, -/area/hallway/secondary/service) -"cVs" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"cVt" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"cVK" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"cXi" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"cXU" = ( -/obj/effect/turf_decal/tile/red, -/obj/machinery/light{ - light_color = "#c9d3e8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"cZe" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"daI" = ( -/obj/structure/window/reinforced, -/obj/effect/turf_decal/bot, -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"daY" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"dbU" = ( -/obj/structure/light_construct{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"dce" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"dev" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/power/apc{ - areastring = "/area/quartermaster/storage"; - name = "Cargo Bay APC"; - pixel_x = 1; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"deE" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Gas to Filter" - }, -/obj/machinery/airalarm/engine{ - dir = 4; - pixel_x = -23 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"dfh" = ( -/obj/machinery/power/apc{ - areastring = "/area/science/circuit"; - name = "Circuitry Lab APC"; - pixel_x = 30 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"dfL" = ( -/obj/structure/reagent_dispensers/keg/gargle, -/turf/open/floor/wood, -/area/maintenance/bar) -"dgz" = ( -/turf/closed/wall, -/area/crew_quarters/cryopod) -"dgO" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"dhT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/camera{ - c_tag = "Engineering Supermatter Starboard"; - dir = 8; - network = list("ss13","engine") - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"diq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"dly" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/security/range) -"dlO" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"dml" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"dqb" = ( -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"dqu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"dsC" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, -/area/crew_quarters/theatre) -"dtx" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/structure/mirror{ - pixel_x = 25 - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet) -"dvc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/cryopod) -"dvO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall, -/area/science/circuit) -"dyE" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"dyS" = ( -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"dzi" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/carpet, -/area/crew_quarters/cryopod) -"dzQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"dBm" = ( -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"dCr" = ( -/obj/structure/pool/Rboard, -/turf/open/floor/plasteel/yellowsiding{ - dir = 8 - }, -/area/crew_quarters/fitness/pool) -"dCV" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/range) -"dDc" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix Bypass" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"dFX" = ( -/turf/closed/wall, -/area/crew_quarters/fitness/pool) -"dIt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"dIH" = ( -/obj/structure/grille/broken, -/obj/effect/landmark/loneopspawn, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"dJL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/airlock/command{ - name = "Head of Security's Office"; - req_access_txt = "58" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/hos) -"dKP" = ( -/turf/closed/wall, -/area/maintenance/bar) -"dKV" = ( -/obj/structure/chair/stool/bar, -/turf/open/floor/wood, -/area/maintenance/bar) -"dMZ" = ( -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"dPk" = ( -/obj/structure/closet{ - name = "Costume Closet" - }, -/obj/item/clothing/head/russobluecamohat, -/obj/item/clothing/head/russobluecamohat, -/obj/item/clothing/head/ushanka, -/obj/item/clothing/head/ushanka, -/obj/item/clothing/head/ushanka, -/obj/item/clothing/head/ushanka, -/obj/item/clothing/under/misc/blue_camo, -/obj/item/clothing/under/misc/blue_camo, -/obj/item/clothing/under/misc/blue_camo, -/obj/item/clothing/under/misc/blue_camo, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/shoes/jackboots, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"dPq" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"dSF" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"dSI" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/obj/machinery/meter, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"dTI" = ( -/obj/structure/urinal{ - pixel_y = 32 - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet) -"dUG" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"dVX" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"dXq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"dYZ" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/range) -"eaI" = ( -/obj/structure/table/reinforced, -/obj/item/radio/intercom{ - pixel_x = -30 - }, -/obj/item/stock_parts/cell/high, -/obj/item/stock_parts/cell/high, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"ecg" = ( -/turf/open/floor/plasteel/yellowsiding/corner{ - dir = 4 - }, -/area/crew_quarters/fitness/pool) -"ecE" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix to Waste" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"edA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-04" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"egt" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/requests_console{ - department = "Bar"; - departmentType = 2; - pixel_x = -30; - pixel_y = 45; - receive_ore_updates = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"eih" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"elh" = ( -/obj/structure/chair/comfy/black{ - dir = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"ene" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"enB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/security/execution/transfer) -"eon" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"epC" = ( -/obj/machinery/door/airlock{ - desc = "To keep the station within regulations, space IKEA requires one storage cupboard for their Nanotrasen partnership to continue."; - id_tag = "MaintDorm1"; - name = "Furniture Storage" - }, -/turf/open/floor/plasteel/dark, -/area/maintenance/port) -"epD" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/obj/structure/chair/sofa/right{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"eqd" = ( -/obj/item/electropack/shockcollar, -/obj/item/assembly/signaler, -/turf/open/floor/plating, -/area/security/prison) -"eqA" = ( -/obj/machinery/shower{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"esK" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Chemical Storage"; - req_access_txt = "12" - }, -/obj/structure/barricade/wooden, -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/fore) -"esL" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/item/radio/intercom{ - pixel_y = 20 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"esZ" = ( -/obj/machinery/door/airlock{ - desc = "Private study room where nerds are probably playing Dungeons and Dragons 13e, or a place for blood cult rituals."; - id_tag = "PrivateStudy"; - name = "Private Study" - }, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood, -/area/library) -"etE" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"evR" = ( -/turf/open/floor/plating, -/area/maintenance/bar) -"ewu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "holoprivacy"; - name = "Holodeck Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"exP" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-14" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"eyM" = ( -/obj/machinery/mineral/ore_redemption{ - input_dir = 2; - output_dir = 1 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"eAG" = ( -/obj/item/clothing/under/misc/pj/blue, -/obj/item/clothing/shoes/sneakers/white, -/turf/open/floor/plating, -/area/maintenance/fore) -"eAJ" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"eBm" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"eBX" = ( -/obj/machinery/vending/cola/space_up, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"eCr" = ( -/obj/structure/closet{ - name = "Suit Closet" - }, -/obj/item/clothing/under/suit/white, -/obj/item/clothing/under/suit/tan, -/obj/item/clothing/under/suit/red, -/obj/item/clothing/under/suit/black_really, -/obj/item/clothing/under/suit/navy, -/obj/item/clothing/under/suit/green, -/obj/item/clothing/under/suit/black/skirt, -/obj/item/clothing/under/suit/checkered, -/obj/item/clothing/under/suit/charcoal, -/obj/item/clothing/under/suit/burgundy, -/obj/item/clothing/under/suit/black, -/obj/item/clothing/under/rank/civilian/lawyer/black, -/obj/item/clothing/under/suit/black, -/obj/item/clothing/under/rank/civilian/lawyer/blue, -/obj/item/clothing/under/rank/civilian/lawyer/bluesuit, -/obj/item/clothing/under/rank/civilian/lawyer/female, -/obj/item/clothing/under/rank/civilian/lawyer/purpsuit, -/obj/item/clothing/under/rank/civilian/lawyer/really_black, -/obj/item/clothing/under/rank/civilian/lawyer/red, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"eCR" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"eEe" = ( -/obj/machinery/door/airlock{ - name = "Theatre Backstage"; - req_access_txt = "46" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"eFx" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"eHa" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"eHI" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"eJa" = ( -/obj/structure/table/wood/poker, -/obj/item/toy/cards/deck{ - pixel_y = 5 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"eMs" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"ePe" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"ePU" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/light, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"eQb" = ( -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"eSe" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"eVC" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/cryopod) -"eVJ" = ( -/turf/open/floor/plasteel/yellowsiding{ - dir = 1 - }, -/area/crew_quarters/fitness/pool) -"eVL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"eWL" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "Prison Gate"; - name = "prison blast door" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/security/prison) -"eWV" = ( -/obj/machinery/door/airlock/external{ - name = "Atmospherics External Airlock"; - req_access_txt = "24" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/aft) -"eXz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"fcn" = ( -/obj/structure/lattice, -/turf/closed/wall/r_wall, -/area/ai_monitored/nuke_storage) -"fcG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/science/mixing) -"fdQ" = ( -/obj/structure/bed, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/plating, -/area/maintenance/fore) -"feE" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/starboard/fore) -"feG" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"fft" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"fgG" = ( -/obj/structure/table/wood, -/obj/machinery/requests_console{ - department = "Theatre"; - name = "theatre RC"; - pixel_x = -32 - }, -/obj/item/reagent_containers/food/snacks/baguette, -/obj/item/toy/dummy, -/obj/item/lipstick/random{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/lipstick/random{ - pixel_x = -2; - pixel_y = -2 - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/crew_quarters/theatre) -"fjS" = ( -/obj/structure/closet/radiation, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"fkR" = ( -/obj/machinery/door/airlock/engineering/glass{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"flc" = ( -/obj/structure/table/reinforced, -/obj/item/storage/fancy/donut_box, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"flE" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"fne" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/effect/landmark/start/mime, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/crew_quarters/theatre) -"fnC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/service) -"foo" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 - }, -/obj/machinery/meter, -/turf/open/floor/engine, -/area/engine/engineering) -"foT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/processing) -"fpl" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "holoprivacy"; - name = "Holodeck Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"fpt" = ( -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access_txt = "10;13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"fpz" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"fpI" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-06" - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) -"fpW" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Gas to Chamber" - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"fqD" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"fsa" = ( -/obj/machinery/button/door{ - id = "armory3"; - name = "Armory Shutters"; - pixel_y = 26; - req_access_txt = "3" - }, -/obj/machinery/light{ - dir = 1; - light_color = "#cee5d2" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"fsj" = ( -/obj/structure/table, -/obj/item/clothing/glasses/sunglasses{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/clothing/glasses/sunglasses{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -3; - pixel_y = -2 - }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -3; - pixel_y = -2 - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/security/range) -"ftE" = ( -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"fup" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"fvY" = ( -/obj/machinery/computer/cryopod{ - pixel_y = 26 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/cryopod) -"fxa" = ( -/obj/structure/chair/wood/normal, -/turf/open/floor/wood{ - icon_state = "wood-broken4" - }, -/area/maintenance/bar) -"fxe" = ( -/obj/structure/chair/sofa, -/obj/structure/window{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"fxx" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/security/brig) -"fxS" = ( -/obj/structure/window/plasma/reinforced{ - dir = 8 - }, -/obj/machinery/power/rad_collector/anchored, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"fxV" = ( -/turf/closed/wall/r_wall, -/area/hallway/primary/central) -"fxZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"fyS" = ( -/obj/structure/pool/ladder{ - dir = 1; - pixel_y = -24 - }, -/turf/open/pool, -/area/crew_quarters/fitness/pool) -"fzd" = ( -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel, -/area/hydroponics) -"fAj" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/structure/sign/poster/official/love_ian{ - pixel_x = 32; - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"fAX" = ( -/obj/structure/table, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"fBy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"fCx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "holoprivacy"; - name = "Holodeck Privacy"; - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"fFA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"fGf" = ( -/obj/machinery/smartfridge/disks{ - pixel_y = 2 - }, -/obj/structure/table, -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"fHs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"fHG" = ( -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"fJs" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Cooling Loop Bypass" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"fJY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/processing) -"fJZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"fKl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/science/circuit) -"fMp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"fNu" = ( -/obj/machinery/door/airlock/external{ - name = "Atmospherics External Airlock"; - req_access_txt = "24" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/engine/atmos) -"fOA" = ( -/obj/machinery/door/airlock{ - name = "Theatre Backstage"; - req_access_txt = "46" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"fOI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-18" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"fPL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"fPM" = ( -/obj/structure/rack, -/obj/item/clothing/head/welding{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/wrench, -/obj/item/weldingtool, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"fPU" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"fTg" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"fTC" = ( -/obj/structure/filingcabinet, -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"fUP" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/engineering/glass/critical{ - heat_proof = 1; - name = "Supermatter Chamber"; - req_access_txt = "10" - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"fZm" = ( -/obj/structure/chair/sofa/left, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"gav" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/security/processing) -"gbd" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"gbh" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Holodeck Door" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/fitness) -"gbq" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plating, -/area/construction) -"gbu" = ( -/obj/structure/bed, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/plating, -/area/security/prison) -"gbT" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass/fifty, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"gcj" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"gcF" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/light_construct{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"gfr" = ( -/obj/structure/bed, -/turf/open/floor/plating, -/area/maintenance/port) -"gfC" = ( -/obj/effect/turf_decal/tile/red, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"gfD" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/carpet, -/area/crew_quarters/cryopod) -"gfJ" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics"; - req_access_txt = "24" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"ghD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"gii" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"gjl" = ( -/turf/closed/wall, -/area/quartermaster/warehouse) -"gkD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"glC" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"glY" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/obj/structure/closet/secure_closet/atmospherics, -/obj/item/cartridge/atmos, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"gnf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/departments/custodian{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"gpD" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"grc" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"grA" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Holodeck Door" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/fitness) -"gsM" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"gvX" = ( -/turf/open/floor/plasteel/yellowsiding, -/area/crew_quarters/fitness/pool) -"gwd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"gxc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"gyr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"gzf" = ( -/obj/structure/window/reinforced/tinted{ - dir = 8 - }, -/obj/structure/window/reinforced/tinted{ - dir = 4 - }, -/obj/structure/curtain, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/dorms) -"gzv" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"gzY" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/maintenance/fore) -"gAi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"gAE" = ( -/obj/structure/rack, -/obj/item/flashlight, -/obj/item/crowbar/large, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"gBa" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"gBo" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"gCd" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Engineering Supermatter Aft"; - network = list("ss13","engine"); - pixel_x = 23 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/engine, -/area/engine/engineering) -"gCC" = ( -/obj/structure/sign/poster/contraband/tools, -/turf/closed/wall, -/area/storage/primary) -"gDB" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"gDP" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 28 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/item/radio/intercom{ - pixel_y = 20 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"gGH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"gIy" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"gJm" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"gLz" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"gLH" = ( -/obj/machinery/door/airlock/external{ - name = "External Access"; - req_access_txt = "13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"gMl" = ( -/obj/structure/chair/wood/normal{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"gNC" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"gNE" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/security/brig) -"gOZ" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"gQX" = ( -/obj/machinery/button/door{ - desc = "Alright, GAMER! Want to take your PWRGAME addiction to the MAX? Just smash this button with your chubby chetto encrusted hands an- oh, you broke the switch. Good job, idiot."; - id = "RIPFUN"; - name = "Powerful Gamer Toggle"; - normaldoorcontrol = 1; - pixel_x = -24; - pixel_y = 7; - specialfunctions = 4 - }, -/obj/structure/table_frame/wood, -/turf/open/floor/plating, -/area/maintenance/port) -"gRZ" = ( -/obj/structure/bookcase{ - name = "Forbidden Knowledge" - }, -/turf/open/floor/carpet, -/area/library) -"gTx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"gUu" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"gWd" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/construction) -"gWo" = ( -/turf/closed/wall, -/area/security/range) -"gZG" = ( -/obj/structure/closet/crate/freezer/surplus_limbs, -/obj/item/reagent_containers/glass/beaker/synthflesh, -/turf/open/floor/plasteel/white/side{ - dir = 8 - }, -/area/medical/sleeper) -"haM" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"hcb" = ( -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"hcA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"hew" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/port) -"hgO" = ( -/obj/structure/table, -/obj/item/storage/pill_bottle/dice{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/reagent_containers/food/snacks/cherrycupcake, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"hhc" = ( -/obj/machinery/light, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"hid" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"hiV" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/maintenance/department/electrical) -"hlT" = ( -/obj/machinery/door/airlock/external{ - name = "Labor Camp Shuttle Airlock"; - req_access_txt = "2"; - shuttledocked = 1 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/processing) -"hlV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/dorms) -"hnl" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/closed/wall, -/area/maintenance/port) -"hnU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/window/westleft{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Shooting Range" - }, -/turf/open/floor/plating, -/area/security/range) -"hrF" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"hsb" = ( -/obj/structure/table/wood, -/obj/item/book/codex_gigas, -/obj/item/clothing/under/suit/red, -/obj/structure/destructible/cult/tome, -/turf/open/floor/carpet, -/area/library) -"hsZ" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"hzK" = ( -/turf/open/floor/plasteel/yellowsiding/corner{ - dir = 1 - }, -/area/crew_quarters/fitness/pool) -"hAe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/item/clothing/glasses/meson/engine, -/obj/item/clothing/gloves/color/black, -/obj/item/tank/internals/emergency_oxygen/engi{ - pixel_x = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"hBw" = ( -/obj/structure/lattice, -/turf/closed/wall, -/area/maintenance/fore) -"hBA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/table, -/obj/item/storage/firstaid/regular{ - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"hGf" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"hGH" = ( -/obj/machinery/door/airlock{ - desc = "Private study room where nerds are probably playing Dungeons and Dragons 13e, or a place for blood cult rituals."; - id_tag = "PrivateStudy"; - name = "Private Study" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/wood, -/area/library) -"hHQ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"hIL" = ( -/obj/structure/sign/poster/contraband/space_up{ - pixel_x = -32; - pixel_y = 32 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"hIM" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restrooms" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"hLJ" = ( -/obj/structure/cable, -/turf/open/floor/plating, -/area/engine/engineering) -"hNw" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Atmos to Loop" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"hOv" = ( -/obj/structure/table/wood/fancy, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4; - pixel_y = 5 - }, -/obj/item/reagent_containers/food/snacks/burger/plain, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"hOI" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"hPs" = ( -/obj/structure/fireplace{ - pixel_y = -6 - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 23 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"hPP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/quartermaster/warehouse) -"hRa" = ( -/obj/structure/table/reinforced, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/cell_charger{ - pixel_y = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"hRI" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"hSh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"hSl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"hSZ" = ( -/obj/structure/chair/comfy/brown{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"hVs" = ( -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"hWd" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"iaZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"ibK" = ( -/turf/open/floor/plasteel, -/area/security/processing) -"idK" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Firing Range"; - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/security/range) -"iiW" = ( -/turf/open/floor/wood, -/area/maintenance/bar) -"ijG" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/structure/window, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"ikk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"ikm" = ( -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"imH" = ( -/obj/structure/falsewall, -/turf/open/floor/plating, -/area/maintenance/bar) -"inq" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fore) -"inw" = ( -/mob/living/simple_animal/hostile/retaliate/goose{ - desc = "Some evil loose goose."; - name = "Cere" - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"inR" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, -/area/crew_quarters/theatre) -"iou" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"ipA" = ( -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"itD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/security/brig) -"itG" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"itK" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/obj/structure/light_construct{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"itQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/security/range) -"ium" = ( -/mob/living/simple_animal/bot/cleanbot{ - name = "C.L.E.A.N." - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"iuR" = ( -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"iwB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/maintenance/port) -"izg" = ( -/obj/item/cigbutt/cigarbutt, -/turf/open/floor/plating, -/area/maintenance/fore) -"izv" = ( -/obj/machinery/vending/clothing, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"izw" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4; - name = "Output to Waste" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"iBv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"iEJ" = ( -/obj/machinery/door/airlock/external{ - name = "Escape Pod One" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) -"iGX" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 10 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"iHk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"iJM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/engine/engineering) -"iLJ" = ( -/obj/item/reagent_containers/glass/bucket, -/mob/living/simple_animal/pet/bumbles, -/turf/open/floor/plasteel, -/area/hydroponics) -"iMv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/table/glass, -/obj/structure/bedsheetbin/towel, -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"iNn" = ( -/obj/machinery/camera{ - c_tag = "Kitchen Cold Room" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/reagent_dispensers/cooking_oil, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"iPp" = ( -/obj/structure/girder, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"iPX" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder{ - desc = "Used to grind things up into raw materials and liquids."; - pixel_y = 5 - }, -/obj/item/lighter, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/maintenance/fore) -"iRj" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/structure/sign/warning/electricshock{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"iTq" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, -/area/crew_quarters/theatre) -"iTU" = ( -/obj/structure/musician/piano{ - icon_state = "piano" - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"iUK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/vacantoffice/b) -"iVJ" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"iVU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/crew_quarters/cryopod) -"iWx" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/coin/silver, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"iWD" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"iXc" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"iYC" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/engine/atmos) -"iYE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/table/glass, -/obj/item/storage/firstaid/regular, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"jaF" = ( -/obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"jaH" = ( -/obj/structure/door_assembly/door_assembly_mai, -/obj/item/electronics/airlock, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"jbf" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/hallway/secondary/service"; - dir = 1; - name = "Service Hall APC"; - pixel_y = 25 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/service) -"jex" = ( -/obj/machinery/smartfridge/organ/preloaded, -/turf/closed/wall, -/area/medical/sleeper) -"jez" = ( -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"jfm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"jgm" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/camera{ - c_tag = "Circuitry Lab"; - dir = 8; - network = list("ss13","rd") - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"jgA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"jhU" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"jjC" = ( -/obj/structure/table/wood, -/obj/item/toy/cards/deck, -/turf/open/floor/plasteel, -/area/security/prison) -"jkx" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/computer/slot_machine, -/obj/item/coin/iron, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"jkz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"jlm" = ( -/obj/machinery/rnd/production/techfab/department/cargo, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"jmV" = ( -/obj/structure/table/wood/fancy, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/reagent_containers/food/drinks/britcup{ - desc = "Kingston's personal cup."; - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"jqv" = ( -/obj/structure/chair/wood/normal{ - dir = 1 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"jqS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"jrl" = ( -/obj/machinery/door/airlock/engineering/glass{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"jrE" = ( -/obj/structure/sign/poster/official/random{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"jsT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"juG" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchen"; - name = "kitchen shutters" - }, -/obj/item/reagent_containers/food/snacks/bluecherrycupcake{ - pixel_y = 5 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"juQ" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"jvd" = ( -/obj/structure/closet/athletic_mixed, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"jxF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/port) -"jyO" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"jAN" = ( -/obj/machinery/vr_sleeper{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white/side{ - dir = 8 - }, -/area/crew_quarters/fitness) -"jBi" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Holodeck Door" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/fitness) -"jBA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"jCq" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"jEc" = ( -/obj/machinery/vr_sleeper{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/crew_quarters/fitness) -"jFH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"jGW" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"jHh" = ( -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"jHt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"jIb" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"jIs" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"jJF" = ( -/obj/machinery/door/airlock/maintenance, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/maintenance/port/aft) -"jKP" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"jLn" = ( -/obj/machinery/door/airlock/engineering{ - name = "Gravity Generator"; - req_access_txt = "11" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/engine_smes) -"jLT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"jMW" = ( -/obj/structure/chair/comfy/black{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "PoolShut"; - name = "Pool Shutters"; - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"jRw" = ( -/obj/machinery/computer/arcade/minesweeper{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"jSO" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"jTJ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable, -/obj/machinery/power/emitter/anchored{ - dir = 4; - state = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"jVl" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"jXN" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 8; - filter_type = "n2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"jZT" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "maint2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"kbm" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - id = "Cell 2"; - name = "Cell 2" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"kbT" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{ - dir = 1 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/engine/engineering) -"kdO" = ( -/obj/machinery/pool/controller, -/turf/open/floor/plasteel/yellowsiding, -/area/crew_quarters/fitness/pool) -"kdP" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/range) -"ker" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"keM" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/washing_machine, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"kfv" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/storage/tech) -"kfX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/engine/engine_smes) -"kgr" = ( -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/turf/open/floor/plating, -/area/security/prison) -"khb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/table, -/obj/item/kitchen/rollingpin, -/obj/item/shovel/spade, -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/plasteel, -/area/hallway/secondary/service) -"khB" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Pool Maintenance"; - req_access_txt = "12" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"khV" = ( -/obj/machinery/vending/cola/red, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"kjm" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4; - name = "Cooling Loop to Gas" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"kmw" = ( -/obj/structure/chair/comfy/black{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"kmS" = ( -/obj/structure/dresser, -/obj/item/flashlight/lamp/green{ - pixel_x = -2; - pixel_y = 15 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"knx" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"kob" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"kqI" = ( -/obj/structure/window, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"ksp" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/closed/wall, -/area/engine/atmos) -"ktP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"kuh" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"kuA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/item/radio/intercom{ - pixel_y = 20 - }, -/turf/open/floor/plasteel, -/area/security/range) -"kvL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/bridge/meeting_room) -"kxf" = ( -/obj/machinery/vr_sleeper{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/crew_quarters/fitness) -"kyF" = ( -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/wood, -/area/maintenance/bar) -"kyT" = ( -/obj/effect/landmark/loneopspawn, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"kzT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/science/mixing) -"kAH" = ( -/obj/machinery/camera{ - c_tag = "Bar West"; - dir = 4 - }, -/obj/machinery/computer/arcade/orion_trail, -/obj/structure/sign/poster/official/foam_force_ad{ - pixel_x = -32 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"kAJ" = ( -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"kAO" = ( -/obj/structure/chair/sofa{ - dir = 1 - }, -/obj/structure/window, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"kCa" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/range) -"kCo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/theatre) -"kGJ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"kHd" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Prisoner Processing"; - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"kJc" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"kLz" = ( -/obj/structure/cable, -/obj/machinery/power/emitter/anchored{ - dir = 4; - state = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"kMt" = ( -/obj/machinery/computer/prisoner/gulag_teleporter_computer, -/turf/open/floor/plasteel, -/area/security/prison) -"kNt" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"kNv" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/sign/poster/contraband/free_drone{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"kOV" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"kPd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/service) -"kPj" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/junction/flip, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"kQk" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/item/storage/toolbox/electrical, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"kQz" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"kQO" = ( -/obj/structure/reagent_dispensers/keg/semen, -/turf/open/floor/plating, -/area/maintenance/bar) -"kSb" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"kTj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "maintenance access"; - req_access_txt = "12" - }, -/obj/structure/barricade/wooden, -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/fore) -"kUC" = ( -/obj/machinery/chem_master/condimaster, -/turf/open/floor/plating, -/area/maintenance/fore) -"kVO" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable, -/obj/machinery/power/emitter/anchored{ - dir = 8; - state = 2 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"kXA" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"kYk" = ( -/obj/machinery/door/firedoor, -/obj/structure/sign/departments/evac{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"kZE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"kZS" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"laq" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/range) -"lfB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"lfV" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"lgA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/camera{ - c_tag = "Engineering Supermatter Port"; - dir = 4; - network = list("ss13","engine") - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"lip" = ( -/obj/structure/closet{ - name = "Suit Closet" - }, -/obj/item/clothing/under/suit/white, -/obj/item/clothing/under/suit/tan, -/obj/item/clothing/under/suit/red, -/obj/item/clothing/under/suit/black_really, -/obj/item/clothing/under/suit/navy, -/obj/item/clothing/under/suit/green, -/obj/item/clothing/under/suit/black/skirt, -/obj/item/clothing/under/suit/checkered, -/obj/item/clothing/under/suit/charcoal, -/obj/item/clothing/under/suit/burgundy, -/obj/item/clothing/under/suit/black, -/obj/item/clothing/under/rank/civilian/lawyer/black, -/obj/item/clothing/under/suit/black, -/obj/item/clothing/under/rank/civilian/lawyer/blue, -/obj/item/clothing/under/rank/civilian/lawyer/bluesuit, -/obj/item/clothing/under/rank/civilian/lawyer/female, -/obj/item/clothing/under/rank/civilian/lawyer/purpsuit, -/obj/item/clothing/under/rank/civilian/lawyer/really_black, -/obj/item/clothing/under/rank/civilian/lawyer/red, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"lnk" = ( -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"lnu" = ( -/obj/structure/chair/wood/normal{ - dir = 4 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/bar) -"lpA" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"lsk" = ( -/obj/machinery/vending/autodrobe, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"ltK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"lva" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"lwN" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"lzX" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"lAB" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/wall, -/area/science/circuit) -"lAH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/security/processing) -"lBy" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/item/tank/internals/plasma, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"lBz" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/door/window/northleft{ - name = "Brig Operations"; - req_one_access_txt = "4; 1" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"lCi" = ( -/obj/docking_port/stationary/public_mining_dock{ - dir = 8 - }, -/turf/open/floor/plating, -/area/construction/mining/aux_base) -"lCo" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"lGV" = ( -/obj/machinery/button/door{ - id = "maintdiy"; - name = "Shutters Control Button"; - pixel_x = -6; - pixel_y = 24 - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"lHe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, -/obj/item/wrench, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"lHk" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "External Gas to Loop" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"lIY" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"lJC" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "Escape Pod Three" - }, -/turf/open/floor/plating, -/area/security/main) -"lLa" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"lMg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"lNH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/light_switch{ - pixel_x = 27 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"lPl" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/quartermaster/miningdock) -"lPr" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "applebush" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"lQG" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/science/circuit) -"lRb" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/security/range) -"lSa" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"lUS" = ( -/obj/structure/table/wood/fancy/black, -/obj/machinery/light/small, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"lZl" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/coin/gold, -/obj/item/coin/gold, -/obj/item/coin/gold, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"lZn" = ( -/obj/machinery/door/airlock/security/glass{ - id_tag = "innerbrig"; - name = "Brig Infirmary"; - req_access_txt = "2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"lZs" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fore) -"lZK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall, -/area/crew_quarters/fitness/pool) -"mbP" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"mbU" = ( -/obj/machinery/vr_sleeper{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/crew_quarters/fitness) -"mcp" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/security/range) -"mdG" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"meb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/bed, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"mgF" = ( -/obj/structure/bed, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"mjr" = ( -/obj/structure/reagent_dispensers/keg/milk, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"mkv" = ( -/obj/machinery/camera{ - c_tag = "Gravity Generator Room"; - dir = 8 - }, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"mkO" = ( -/obj/machinery/door/airlock{ - name = "Shower Room" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/toilet) -"mkU" = ( -/obj/machinery/door/airlock/external{ - name = "Labor Camp Shuttle Airlock" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/security/processing) -"mml" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"mnC" = ( -/obj/structure/target_stake, -/obj/item/target/syndicate, -/turf/open/floor/plating, -/area/security/range) -"mos" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/item/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - name = "Prison Intercom (General)"; - pixel_x = -27; - pixel_y = -27; - prison_radio = 1 - }, -/obj/machinery/flasher{ - id = "Cell 3"; - pixel_x = -24; - pixel_y = -36 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/structure/bed, -/obj/item/bedsheet/yellow, -/turf/open/floor/plasteel, -/area/security/brig) -"moD" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/snacks/bluecherrycupcake{ - pixel_y = 5 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"mps" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"mpI" = ( -/obj/structure/table/wood, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"mqh" = ( -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/engine, -/area/engine/engineering) -"mqZ" = ( -/obj/structure/reagent_dispensers/keg/aphro/strong, -/obj/item/reagent_containers/glass/beaker, -/turf/open/floor/plating, -/area/maintenance/bar) -"mrR" = ( -/obj/effect/spawner/lootdrop/keg, -/turf/open/floor/wood, -/area/maintenance/bar) -"msM" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 5 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"mvt" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"mxn" = ( -/obj/machinery/door/airlock/external{ - name = "Escape Pod Three" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/security/main) -"myh" = ( -/obj/structure/musician/piano, -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"mzB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/window, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"mAH" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"mDB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"mGw" = ( -/obj/machinery/door/airlock/security{ - name = "Labor Shuttle"; - req_access_txt = "2" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/security/range) -"mHl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"mHU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/light_construct{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"mIZ" = ( -/obj/structure/falsewall, -/turf/open/floor/plating, -/area/security/prison) -"mJo" = ( -/obj/structure/door_assembly/door_assembly_mai, -/obj/item/electronics/airlock, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"mJG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"mKq" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"mNi" = ( -/obj/machinery/light_switch{ - pixel_x = -20 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"mNW" = ( -/obj/structure/sign/poster/official/fruit_bowl{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/hallway/primary/starboard) -"mOB" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/engineering/glass{ - name = "Gravity Generator"; - req_access_txt = "11" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/dark, -/area/engine/gravity_generator) -"mPk" = ( -/obj/structure/bed, -/obj/machinery/button/door{ - id = "Dorm5"; - name = "Cabin Bolt Control"; - normaldoorcontrol = 1; - pixel_y = -25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"mPr" = ( -/obj/structure/rack, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/obj/effect/decal/cleanable/cobweb, -/obj/item/clothing/under/color/grey, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"mPE" = ( -/obj/machinery/chem_dispenser/drinks, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/bar) -"mQS" = ( -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"mRe" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"mRQ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"mTG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"mZO" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"naN" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"nbT" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "bridge blast door" - }, -/turf/open/floor/plating, -/area/hallway/primary/central) -"nbY" = ( -/obj/item/melee/baton/cattleprod, -/obj/item/stock_parts/cell/high, -/obj/item/electropack, -/obj/structure/closet/secure_closet{ - name = "Persuasion Storage"; - req_access = "list(2)" - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"ncF" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"ndq" = ( -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"nez" = ( -/obj/structure/table/wood, -/obj/item/instrument/piano_synth, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"nfm" = ( -/obj/machinery/vending/autodrobe, -/turf/open/floor/wood, -/area/maintenance/bar) -"nfw" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"ngs" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"ngU" = ( -/obj/structure/rack, -/obj/item/storage/firstaid, -/obj/item/clothing/glasses/hud/health, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fore) -"ngV" = ( -/obj/structure/table/wood, -/obj/item/instrument/guitar, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"nhY" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"nkP" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 8; - name = "8maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"nnp" = ( -/obj/structure/closet/secure_closet/medical1, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/maintenance/fore) -"noy" = ( -/obj/structure/sign/poster/contraband/smoke{ - desc = "This poster reminds us all that the Detective is a parasite. Year after year, they must get replacement lungs because of their addiction. "; - pixel_y = -32 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"noF" = ( -/obj/machinery/door/airlock{ - name = "Instrument Storage" - }, -/turf/open/floor/plasteel/dark, -/area/maintenance/starboard/fore) -"nss" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/door/window/northright{ - name = "Brig Operations"; - req_one_access_txt = "4; 1" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"nsA" = ( -/turf/closed/wall, -/area/crew_quarters/abandoned_gambling_den) -"nuw" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 4; - name = "4maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"nxv" = ( -/obj/machinery/power/apc{ - areastring = "/area/construction"; - name = "Construction Area APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/construction) -"nyb" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"nBI" = ( -/obj/item/cigbutt/cigarbutt, -/obj/effect/decal/cleanable/blood/old, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"nEj" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/security/processing) -"nEI" = ( -/obj/structure/closet/emcloset/anchored, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"nGf" = ( -/obj/machinery/hydroponics/constructable, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/hydroponics) -"nGt" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"nLu" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"nLw" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/structure/window{ - dir = 1 - }, -/obj/structure/window{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"nQi" = ( -/obj/machinery/recharge_station, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"nRl" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "engsm"; - name = "Radiation Shutters Control"; - pixel_y = -24; - req_access_txt = "10" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"nRG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"nSt" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"nTG" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"nUV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"nVR" = ( -/obj/docking_port/stationary{ - dir = 4; - dwidth = 1; - height = 4; - name = "escape pod loader"; - roundstart_template = /datum/map_template/shuttle/escape_pod/default; - width = 3 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"nYe" = ( -/obj/structure/safe, -/obj/item/clothing/head/bearpelt, -/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, -/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, -/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka, -/obj/effect/turf_decal/bot_white/left, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/item/gun/ballistic/revolver/nagant, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"nZE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"nZL" = ( -/obj/machinery/computer/arcade/minesweeper, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"oax" = ( -/obj/structure/table/wood/fancy, -/obj/machinery/light, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3; - pixel_y = 20 - }, -/obj/item/reagent_containers/food/condiment/peppermill{ - dir = 1; - pixel_x = 3; - pixel_y = 20 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4; - pixel_y = 5 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"oby" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/item/radio/intercom{ - pixel_y = 20 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"oce" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"ocv" = ( -/obj/structure/table, -/obj/item/clothing/gloves/boxing/yellow, -/obj/item/clothing/gloves/boxing/green, -/obj/item/clothing/gloves/boxing/blue, -/obj/item/clothing/gloves/boxing/blue, -/obj/item/clothing/gloves/boxing, -/obj/item/clothing/gloves/boxing, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"odx" = ( -/obj/machinery/vending/kink, -/turf/open/floor/plating, -/area/maintenance/bar) -"ofU" = ( -/obj/structure/chair/comfy/black{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"ohq" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"okG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"okK" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green, -/obj/item/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - name = "Prison Intercom (General)"; - pixel_x = -27; - pixel_y = -27; - prison_radio = 1 - }, -/obj/machinery/flasher{ - id = "Cell 1"; - pixel_x = -24; - pixel_y = -36 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/structure/bed, -/obj/item/bedsheet/green, -/turf/open/floor/plasteel, -/area/security/brig) -"old" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/sign/departments/security{ - pixel_x = -32; - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"olr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"omX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel, -/area/security/prison) -"omY" = ( -/obj/item/flashlight/lamp/green{ - pixel_x = -2; - pixel_y = 15 - }, -/obj/structure/dresser{ - desc = "There's plenty of clothes here to change into! It has a surprising amount of variety, too."; - name = "Dresser"; - pixel_y = 7 - }, -/turf/open/floor/plating, -/area/maintenance/port) -"oqj" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "holoprivacy"; - name = "Holodeck Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"oqO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"osB" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/engine/engineering) -"ouQ" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_y = 6 - }, -/obj/item/pen/fountain, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"ovv" = ( -/obj/structure/table, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/recharger, -/obj/item/gun/energy/laser/practice, -/obj/item/gun/energy/laser/practice, -/turf/open/floor/plasteel, -/area/security/range) -"owT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/item/geiger_counter, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/suit/radiation, -/obj/item/clothing/head/radiation, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"oxl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"oxm" = ( -/obj/structure/flora/ausbushes/fullgrass, -/obj/structure/flora/ausbushes/sparsegrass, -/obj/structure/flora/ausbushes/ppflowers, -/obj/structure/flora/ausbushes/ywflowers, -/obj/structure/flora/ausbushes/brflowers, -/obj/effect/spawner/structure/window, -/turf/open/floor/grass, -/area/crew_quarters/bar) -"oyl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/machinery/door/window/eastleft{ - name = "Blue Corner" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"oyz" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"oyX" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4; - name = "Air In" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"oAb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/bar) -"oAB" = ( -/obj/structure/fireplace{ - pixel_y = -6 - }, -/turf/open/floor/carpet, -/area/crew_quarters/dorms) -"oDb" = ( -/obj/effect/landmark/loneopspawn, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors) -"oDm" = ( -/obj/machinery/gulag_teleporter, -/turf/open/floor/plasteel, -/area/security/prison) -"oDN" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "holoprivacy"; - name = "Holodeck Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"oEe" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"oEZ" = ( -/obj/effect/spawner/lootdrop/keg, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"oHB" = ( -/turf/open/floor/plasteel/dark, -/area/crew_quarters/dorms) -"oHU" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"oIJ" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"oIW" = ( -/obj/structure/toilet/secret/low_loot{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/dorms) -"oKh" = ( -/obj/structure/chair/wood/normal{ - dir = 8 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"oLl" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light_switch{ - pixel_y = -25 - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"oNz" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"oNQ" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"oRG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"oSl" = ( -/obj/machinery/door/airlock/security{ - name = "Firing Range"; - req_access_txt = "2" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/security/range) -"oTW" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, -/area/crew_quarters/theatre) -"oUh" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"oVo" = ( -/obj/structure/pool/ladder, -/turf/open/pool, -/area/crew_quarters/fitness/pool) -"oXJ" = ( -/obj/structure/sign/warning/fire, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"oYj" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 1 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -26 - }, -/obj/machinery/camera{ - c_tag = "Engineering Supermatter Fore"; - dir = 1; - network = list("ss13","engine"); - pixel_x = 23 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"oYS" = ( -/obj/structure/window/plasma/reinforced{ - dir = 8 - }, -/obj/machinery/power/rad_collector/anchored, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"oZl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/closet/wardrobe/pjs, -/obj/item/clothing/under/costume/maid, -/obj/item/clothing/under/costume/maid, -/obj/item/clothing/under/rank/civilian/janitor/maid, -/obj/item/clothing/under/rank/civilian/janitor/maid, -/obj/item/clothing/accessory/maidapron, -/obj/item/clothing/accessory/maidapron, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"oZv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"pem" = ( -/obj/machinery/button/door{ - desc = "Bolts the doors to the Private Study."; - id = "PrivateStudy"; - name = "Private Study Lock"; - pixel_x = 25; - pixel_y = 25; - req_access_txt = ""; - req_one_access_txt = "28;63" - }, -/turf/open/floor/wood, -/area/library) -"peI" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"pgf" = ( -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/dorms) -"pgn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/security/range) -"pjg" = ( -/obj/structure/table/wood, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fore) -"pkF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"plC" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"plS" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - id = "Cell 1"; - name = "Cell 1" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"poc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/mixing) -"pou" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"pqe" = ( -/obj/structure/chair/sofa, -/obj/structure/window{ - dir = 1 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"pqs" = ( -/obj/machinery/vending/clothing, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"psk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/bridge/meeting_room) -"pst" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/vault, -/obj/effect/mapping_helpers/airlock/locked, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"puh" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/light/small, -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/crew_quarters/fitness) -"pzk" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"pAK" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - id = "Cell 3"; - name = "Cell 3" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"pBd" = ( -/turf/open/floor/engine, -/area/engine/supermatter) -"pBp" = ( -/obj/effect/landmark/event_spawn, -/turf/closed/wall, -/area/crew_quarters/fitness) -"pDe" = ( -/obj/machinery/door/window/southright{ - name = "Target Storage" - }, -/obj/item/target/alien, -/obj/item/target/alien, -/obj/item/target/syndicate, -/turf/open/floor/plating, -/area/security/range) -"pHl" = ( -/obj/structure/table, -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/storage/box/syringes, -/obj/item/reagent_containers/glass/bottle/epinephrine{ - pixel_x = 7; - pixel_y = -3 - }, -/obj/item/reagent_containers/glass/bottle/morphine{ - pixel_x = 8; - pixel_y = -3 - }, -/obj/item/reagent_containers/syringe{ - pixel_x = 6; - pixel_y = -3 - }, -/obj/item/radio/intercom{ - frequency = 1485; - name = "Station Intercom (Medbay)"; - pixel_x = 30 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) -"pHH" = ( -/obj/machinery/door/airlock/external{ - name = "Mining Dock Airlock"; - req_access_txt = "48"; - shuttledocked = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/quartermaster/miningdock) -"pHO" = ( -/obj/effect/turf_decal/tile/blue, -/obj/structure/sign/poster/contraband/fun_police{ - pixel_x = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"pIf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/crew_quarters/theatre) -"pJR" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/chair/comfy/brown{ - dir = 1 - }, -/turf/open/floor/wood, -/area/library) -"pLn" = ( -/obj/machinery/conveyor/inverted{ - dir = 5; - id = "garbage" - }, -/turf/open/floor/plating, -/area/maintenance/disposal) -"pPi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"pPs" = ( -/obj/structure/reflector/single/anchored{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"pPv" = ( -/obj/structure/sign/warning/radiation, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"pPI" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"pQp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "holoprivacy"; - name = "Holodeck Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"pQr" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"pQN" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"pRg" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/closed/wall, -/area/maintenance/aft) -"pRs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "holoprivacy"; - name = "Holodeck Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"pRx" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating, -/area/engine/supermatter) -"pRW" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"pSn" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/meter, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"pUy" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"qaY" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"qcm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/captain) -"qeb" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/abandoned_gambling_den"; - name = "Abandoned Gambling Den APC"; - pixel_y = -24 - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"qeA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Pool" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"qeF" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"qeQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"qfk" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/structure/window, -/obj/structure/window{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"qfD" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - desc = "Privacy shutters for the Private Study. Stops people spying in on your game."; - id = "PrivateStudy1"; - name = "Private Study Privacy Shutters" - }, -/obj/effect/spawner/structure/window, -/turf/open/floor/wood, -/area/library) -"qiK" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 9 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"qje" = ( -/obj/structure/sign/mining{ - pixel_y = 7 - }, -/turf/closed/wall, -/area/quartermaster/miningdock) -"qmn" = ( -/obj/machinery/computer/libraryconsole/bookmanagement, -/obj/structure/table, -/turf/open/floor/plasteel, -/area/security/prison) -"qmG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"qqs" = ( -/obj/structure/mirror{ - pixel_y = 32 - }, -/obj/structure/sink{ - dir = 1; - pixel_y = 25 - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet) -"qus" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchen"; - name = "kitchen shutters" - }, -/obj/item/reagent_containers/food/snacks/cheesynachos{ - pixel_y = 5 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/kitchen) -"qyj" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, -/turf/open/floor/plasteel/dark, -/area/maintenance/fore) -"qzA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"qBi" = ( -/obj/structure/lattice, -/turf/closed/wall/r_wall, -/area/crew_quarters/heads/captain) -"qBq" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/camera{ - c_tag = "Supermatter Chamber"; - network = list("engine"); - pixel_x = 23 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"qGd" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Gas to Cooling Loop" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"qIw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/cryopod) -"qLR" = ( -/obj/structure/mirror{ - pixel_y = 32 - }, -/obj/structure/sink{ - dir = 1; - pixel_y = 25 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/dorms) -"qOc" = ( -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green, -/obj/machinery/camera{ - c_tag = "VR Sleepers"; - dir = 1 - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel/white/side{ - dir = 1 - }, -/area/crew_quarters/fitness) -"qOB" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/captain) -"qTA" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"qTG" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"qTV" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"qVP" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"qWV" = ( -/obj/machinery/pool/filter{ - pixel_y = 24 - }, -/turf/open/pool, -/area/crew_quarters/fitness/pool) -"qXg" = ( -/obj/structure/chair/sofa/left, -/turf/open/floor/plasteel, -/area/security/prison) -"qXZ" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"rca" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/obj/structure/closet/secure_closet/atmospherics, -/obj/item/cartridge/atmos, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/engine/atmos) -"rcD" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/science/circuit) -"rcI" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/closet/secure_closet/brig{ - id = "Cell 1"; - name = "Cell 1 Locker" - }, -/obj/item/radio/headset{ - desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; - name = "prisoner headset"; - prison_radio = 1 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"rdG" = ( -/obj/machinery/hydroponics/constructable, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = 29 - }, -/turf/open/floor/plasteel/dark, -/area/hydroponics) -"reA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/vending/kink, -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"rfW" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) -"rgx" = ( -/obj/structure/window/plasma/reinforced{ - dir = 4 - }, -/obj/machinery/power/rad_collector/anchored, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 5 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"rhX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/processing) -"rjH" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"rjQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"rmN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/chair/comfy/brown, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"rmX" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/beer, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"rnt" = ( -/obj/structure/chair/comfy/black{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/bridge/meeting_room) -"roP" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"rqf" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"rqk" = ( -/obj/structure/reagent_dispensers/water_cooler, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"rqE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"rqW" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/dresser, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/theatre"; - dir = 8; - name = "Theatre APC"; - pixel_x = -25 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/theatre) -"rrM" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/obj/structure/closet/wardrobe/black, -/obj/item/clothing/under/dress/skirt, -/obj/item/clothing/head/beret/black, -/obj/item/clothing/head/beret/black, -/obj/item/clothing/under/custom/trendy_fit, -/obj/item/clothing/under/custom/trendy_fit, -/obj/item/clothing/under/dress/sundress, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"rtl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/camera{ - c_tag = "Bar Backroom" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"rtC" = ( -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating, -/area/maintenance/fore) -"ruo" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"rvr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"rvC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"rvS" = ( -/obj/structure/chair/comfy/brown{ - color = "#66b266"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"ryr" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"rAR" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"rBq" = ( -/obj/item/clothing/head/kitty, -/obj/item/clothing/under/costume/maid, -/obj/item/clothing/mask/muzzle, -/turf/open/floor/plating, -/area/maintenance/bar) -"rBE" = ( -/obj/structure/ladder, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"rBP" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"rCl" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/machinery/door/airlock/security/glass{ - id_tag = "outerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"rEB" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/light, -/obj/machinery/meter, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"rEJ" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"rGq" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"rGC" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"rIA" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"rJv" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Gate"; - name = "brig shutters" - }, -/turf/open/floor/plating, -/area/security/brig) -"rJw" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating/airless, -/area/maintenance/port/fore) -"rKP" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/construction) -"rMN" = ( -/obj/structure/bed, -/obj/item/tank/internals/anesthetic, -/obj/item/clothing/mask/breath, -/obj/effect/decal/cleanable/semen, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/plating, -/area/maintenance/bar) -"rNc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/computer/security/telescreen/toxins{ - dir = 1; - network = list("toxins"); - pixel_y = -28 - }, -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/science/mixing) -"rOg" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/engineering/glass/critical{ - heat_proof = 1; - name = "Supermatter Chamber"; - req_access_txt = "10" - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"rPU" = ( -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/crew_quarters/theatre) -"rQJ" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/maintenance/fore) -"rQX" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/quartermaster/miningdock) -"rTu" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/command{ - name = "Command Access To Vault"; - req_access = "19" - }, -/turf/open/floor/plasteel/dark, -/area/bridge/meeting_room) -"rTD" = ( -/obj/machinery/vending/snack/random, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"rUG" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"rXl" = ( -/obj/structure/chair/office/light, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"saK" = ( -/obj/structure/closet/crate, -/obj/item/target/alien, -/obj/item/target/alien, -/obj/item/target/clown, -/obj/item/target/clown, -/obj/item/target/syndicate, -/obj/item/target/syndicate, -/obj/item/gun/energy/laser/practice, -/obj/item/gun/energy/laser/practice, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"saU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/engine/engine_smes) -"saX" = ( -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/grass, -/area/security/prison) -"sci" = ( -/obj/machinery/vr_sleeper{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel/white/side{ - dir = 4 - }, -/area/crew_quarters/fitness) -"seP" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Gate"; - name = "brig shutters" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/security/brig) -"sfs" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fore) -"slk" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/maintenance/department/medical/morgue) -"snF" = ( -/obj/structure/window/plasma/reinforced{ - dir = 4 - }, -/obj/machinery/power/rad_collector/anchored, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"spl" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/table/reinforced, -/obj/item/pipe_dispenser, -/obj/item/flashlight, -/obj/item/storage/toolbox/mechanical, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"spz" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"sqg" = ( -/obj/structure/table/wood, -/obj/item/clothing/under/misc/pj/red, -/obj/item/clothing/shoes/sneakers/white, -/turf/open/floor/plating, -/area/maintenance/fore) -"sqp" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/airlock/command{ - name = "Captain's Vault Access"; - req_access_txt = "20" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/captain) -"sra" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"srG" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"ssh" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ssB" = ( -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"sth" = ( -/obj/structure/table/glass, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"str" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/crew_quarters/fitness/pool) -"stF" = ( -/obj/structure/closet/secure_closet/personal, -/obj/item/toy/poolnoodle/yellow, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"svN" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"swf" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"sxs" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/table, -/obj/item/storage/box/beakers{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/service) -"syJ" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"szG" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"sAk" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"sAM" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken6" - }, -/area/maintenance/bar) -"sAQ" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"sCS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"sEi" = ( -/obj/machinery/vr_sleeper{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 4 - }, -/area/crew_quarters/fitness) -"sEt" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/bar) -"sEM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "holoprivacy"; - name = "Holodeck Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"sFW" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/sign/departments/restroom{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"sHx" = ( -/obj/structure/table, -/obj/item/book/manual/hydroponics_pod_people{ - pixel_x = -4; - pixel_y = 5 - }, -/obj/item/paper/guides/jobs/hydroponics{ - pixel_x = -5; - pixel_y = 3 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"sJx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hydroponics) -"sJI" = ( -/obj/structure/table/wood/fancy, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3; - pixel_y = 9 - }, -/obj/item/reagent_containers/food/condiment/peppermill{ - dir = 1; - pixel_x = 3; - pixel_y = 9 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"sLa" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/window{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"sLj" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"sLv" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"sNK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"sOs" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance/abandoned, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"sOA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"sPm" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Engine Coolant Bypass" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"sPT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"sPY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/engine/engine_smes) -"sRH" = ( -/obj/machinery/autolathe/secure{ - name = "public autolathe" - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"sRT" = ( -/obj/machinery/vending/cola/random, -/turf/open/floor/wood, -/area/maintenance/bar) -"sSW" = ( -/obj/structure/chair/office/light, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"sTo" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"sTI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"sUh" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/closed/wall, -/area/engine/atmos) -"sVb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"sWR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/computer/bounty{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/office) -"sXl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"sXy" = ( -/obj/machinery/door/airlock/external{ - name = "Security External Airlock"; - req_access_txt = "63" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"sXA" = ( -/obj/machinery/vending/boozeomat, -/turf/closed/wall, -/area/maintenance/bar) -"sXV" = ( -/turf/closed/wall/r_wall, -/area/security/range) -"sYC" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/turf/open/floor/plating, -/area/engine/engineering) -"sYR" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restrooms" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/bar) -"sZN" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 6 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"tal" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/hallway/secondary/service) -"taY" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"tcF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"tgH" = ( -/obj/structure/filingcabinet/employment, -/turf/open/floor/wood, -/area/crew_quarters/heads/captain) -"thz" = ( -/obj/machinery/door/airlock/external{ - name = "Engineering External Access"; - req_access_txt = "10;13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/engine/engineering) -"tif" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"tkq" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"tkB" = ( -/obj/structure/sign/poster/official/help_others{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"tkU" = ( -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"tlu" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"tmO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plating, -/area/security/range) -"tqg" = ( -/obj/machinery/cryopod{ - dir = 4 - }, -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/turf/open/floor/carpet, -/area/crew_quarters/cryopod) -"trb" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) -"ttL" = ( -/obj/structure/sign/poster/contraband/random{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"tur" = ( -/obj/item/restraints/handcuffs/fake, -/turf/open/floor/plating, -/area/maintenance/bar) -"tvi" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"twn" = ( -/obj/machinery/door/airlock/engineering/glass{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"txm" = ( -/obj/structure/table/wood/fancy/royalblue, -/obj/item/crowbar/red, -/turf/open/floor/plating, -/area/maintenance/port) -"tyX" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"tzQ" = ( -/obj/machinery/shower{ - dir = 4 - }, -/obj/item/soap, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/dorms) -"tAC" = ( -/obj/structure/closet/athletic_mixed, -/obj/item/toy/poolnoodle/red, -/obj/item/toy/poolnoodle/blue, -/obj/item/toy/poolnoodle/yellow, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"tAH" = ( -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"tAR" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/engine/engineering) -"tCa" = ( -/obj/structure/table/wood, -/obj/item/instrument/guitar{ - pixel_x = -7 - }, -/obj/item/instrument/eguitar{ - pixel_x = 5 - }, -/obj/item/instrument/violin, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"tCd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - alpha = 255; - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"tGG" = ( -/obj/structure/reflector/double/anchored{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"tHh" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"tIV" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"tJi" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/obj/structure/closet/crate/wooden/toy, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/structure/sign/poster/contraband/clown{ - pixel_y = -32 - }, -/obj/item/megaphone/clown, -/turf/open/floor/plasteel, -/area/crew_quarters/theatre) -"tJK" = ( -/obj/machinery/door/airlock/engineering{ - name = "Gravity Generator"; - req_access_txt = "11" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"tJS" = ( -/obj/effect/spawner/lootdrop/keg, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"tKb" = ( -/obj/item/radio/intercom{ - pixel_y = 20 - }, -/turf/open/floor/plating, -/area/security/vacantoffice/b) -"tKk" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/sign/warning/fire{ - desc = "A sign that states the labeled room's number."; - icon_state = "roomnum"; - name = "Room Number 1"; - pixel_x = -30; - pixel_y = -7 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"tMj" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 9 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"tMl" = ( -/obj/effect/turf_decal/loading_area, -/turf/open/floor/plasteel/showroomfloor, -/area/crew_quarters/kitchen) -"tNF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"tOn" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/meter, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"tOq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) -"tPe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"tPT" = ( -/obj/machinery/chem_dispenser/drinks/beer, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/maintenance/bar) -"tQY" = ( -/obj/machinery/atmospherics/components/binary/valve/digital/on{ - dir = 4; - name = "Output Release" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"tRe" = ( -/obj/machinery/chem_master, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"tRi" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/meter, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/engine/engineering) -"tRB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"tRF" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"tWj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"tXL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"tZe" = ( -/obj/effect/turf_decal/bot, -/obj/structure/sign/poster/official/pda_ad{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"uaw" = ( -/obj/machinery/power/apc{ - areastring = "/area/storage/art"; - dir = 1; - name = "Maint bar"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"ubj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/door/window/westright{ - name = "Red Corner" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"ucq" = ( -/obj/structure/sign/poster/contraband/red_rum{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"uei" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"ufD" = ( -/obj/machinery/vr_sleeper{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 4 - }, -/area/crew_quarters/fitness) -"uge" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Gas to Mix" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"ugu" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"uhm" = ( -/obj/machinery/door/airlock{ - name = "Recharging Station" - }, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"ujv" = ( -/obj/structure/sign/departments/restroom, -/turf/closed/wall, -/area/crew_quarters/toilet) -"ujF" = ( -/obj/machinery/cryopod{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/cryopod) -"ujS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"ulB" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"ulM" = ( -/obj/structure/closet/secure_closet/personal, -/obj/item/toy/poolnoodle/red, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"uml" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"unA" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"unR" = ( -/turf/open/floor/plasteel/yellowsiding{ - dir = 8 - }, -/area/crew_quarters/fitness/pool) -"uoB" = ( -/obj/structure/table/reinforced, -/obj/item/multitool, -/obj/item/screwdriver, -/obj/machinery/camera{ - c_tag = "Circuitry Lab North"; - network = list("ss13","rd") - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"uoG" = ( -/obj/machinery/power/apc{ - areastring = "/area/security/detectives_office"; - dir = 4; - name = "Detective's Office APC"; - pixel_x = 24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"uqX" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 4 - }, -/obj/machinery/meter, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"usE" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/structure/rack, -/turf/open/floor/plating, -/area/maintenance/fore) -"usO" = ( -/obj/machinery/vending/snack/random, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"utp" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"uua" = ( -/obj/machinery/atmospherics/components/binary/valve, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"uut" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 6 - }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/engine, -/area/engine/engineering) -"uuG" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"uvd" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/engineering) -"uve" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/coin/silver, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"uvZ" = ( -/obj/structure/mineral_door/wood, -/turf/open/floor/wood, -/area/maintenance/bar) -"uxY" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/disposalpipe/junction, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"uzi" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"uzs" = ( -/turf/open/floor/plasteel/yellowsiding{ - dir = 4 - }, -/area/crew_quarters/fitness/pool) -"uAH" = ( -/turf/open/floor/plasteel/yellowsiding/corner{ - dir = 8 - }, -/area/crew_quarters/fitness/pool) -"uBa" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/soda_cans/starkist{ - pixel_x = 5; - pixel_y = 7 - }, -/obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb{ - pixel_x = -3; - pixel_y = 2 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"uBP" = ( -/obj/structure/reflector/box/anchored{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"uCo" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"uCU" = ( -/obj/machinery/door/airlock/security{ - name = "Interrogation"; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"uDO" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"uEx" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - id = "PoolShut"; - name = "Pool Shutters" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/crew_quarters/fitness/pool) -"uEI" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"uFp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/sign/poster/official/cohiba_robusto_ad{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"uFZ" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/light{ - light_color = "#cee5d2" - }, -/turf/open/floor/plasteel, -/area/security/processing) -"uGI" = ( -/turf/open/floor/grass, -/area/security/prison) -"uHp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/security/main) -"uIO" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"uJx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"uNu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"uOJ" = ( -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/vault, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"uPT" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"uQS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1; - pixel_x = 5 - }, -/obj/machinery/light/small, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet) -"uRd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) -"uRx" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 10 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"uRS" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/turf/open/floor/carpet{ - icon_state = "carpetsymbol" - }, -/area/crew_quarters/theatre) -"uSC" = ( -/obj/machinery/pool/drain, -/turf/open/pool, -/area/crew_quarters/fitness/pool) -"uSL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"uTe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"uUi" = ( -/obj/effect/decal/cleanable/vomit, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fore) -"uVS" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"uXt" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"vaW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"vbi" = ( -/obj/structure/table, -/obj/item/instrument/guitar{ - pixel_x = -7 - }, -/obj/item/instrument/eguitar{ - pixel_x = 5 - }, -/obj/item/instrument/violin, -/obj/item/instrument/trombone, -/obj/item/instrument/saxophone, -/obj/item/instrument/piano_synth, -/obj/item/instrument/recorder, -/obj/item/instrument/accordion, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"vbD" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command/glass{ - name = "EVA Storage"; - req_access_txt = "18" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/storage/eva) -"vcN" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"vda" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/range) -"vdu" = ( -/obj/structure/table/wood, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/turf/open/floor/wood, -/area/security/vacantoffice) -"veS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/crew_quarters/fitness/pool) -"vfX" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"vgJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/power/apc{ - areastring = "/area/maintenance/fore"; - dir = 1; - name = "Fore Maintenance APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"vhb" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/structure/window{ - dir = 1 - }, -/turf/open/floor/plasteel/cafeteria, -/area/crew_quarters/locker) -"viD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"viF" = ( -/obj/structure/table/wood, -/obj/item/instrument/trumpet, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"vjm" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/rag, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"vmQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "holoprivacy"; - name = "Holodeck Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/fitness) -"vnu" = ( -/obj/machinery/status_display/evac, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"vnI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/power/apc{ - areastring = "/area/quartermaster/warehouse"; - dir = 4; - name = "Cargo Warehouse APC"; - pixel_x = 26 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/port) -"voa" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/obj/machinery/meter, -/turf/closed/wall/r_wall, -/area/engine/supermatter) -"vob" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, -/turf/open/floor/plating, -/area/engine/supermatter) -"voW" = ( -/obj/structure/pool/Lboard, -/turf/open/pool, -/area/crew_quarters/fitness/pool) -"vpY" = ( -/obj/structure/closet/lasertag/blue, -/obj/item/clothing/under/misc/pj/blue, -/obj/item/clothing/under/misc/pj/blue, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"vqP" = ( -/obj/structure/bed/dogbed{ - desc = "A comfy-looking pet bed. You can even strap your pet in, in case the gravity turns off."; - name = "pet bed" - }, -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating, -/area/maintenance/fore) -"vsM" = ( -/obj/machinery/power/apc/auto_name/south, -/obj/structure/cable, -/turf/open/floor/carpet, -/area/crew_quarters/cryopod) -"vsT" = ( -/obj/structure/closet/crate, -/obj/item/book/manual/wiki/telescience, -/obj/item/book/manual/wiki/engineering_guide, -/obj/item/book/manual/wiki/engineering_construction, -/obj/item/book/manual/wiki/atmospherics, -/obj/item/book/manual/wiki/detective, -/obj/item/book/manual/wiki/tcomms, -/obj/item/book/manual/wiki/engineering_singulo_tesla, -/obj/item/book/manual/wiki/experimentor, -/obj/item/book/manual/wiki/research_and_development, -/obj/item/book/manual/wiki/robotics_cyborgs, -/obj/item/book/manual/wiki/security_space_law, -/obj/item/book/manual/wiki/medicine, -/obj/item/book/manual/wiki/medical_cloning, -/obj/item/book/manual/wiki/infections, -/obj/item/book/manual/ripley_build_and_repair, -/obj/item/book/manual/hydroponics_pod_people, -/obj/item/book/manual/wiki/toxins, -/obj/item/book/manual/wiki/grenades, -/obj/item/book{ - desc = "An undeniably handy book."; - icon_state = "bookknock"; - name = "A Simpleton's Guide to Safe-cracking with Stethoscopes" - }, -/turf/open/floor/wood, -/area/library) -"vwZ" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"vxh" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 8; - name = "8maintenance loot spawner" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"vxV" = ( -/obj/structure/reflector/single/anchored{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"vxX" = ( -/obj/machinery/door/airlock/external{ - name = "Labor Camp Shuttle Airlock" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/processing) -"vyp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/crew_quarters/dorms) -"vyK" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Gate"; - name = "brig shutters" - }, -/turf/open/floor/plating, -/area/security/brig) -"vzp" = ( -/obj/structure/table/reinforced, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/obj/item/stock_parts/cell/high, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"vzO" = ( -/obj/structure/chair/wood/normal{ - dir = 1 - }, -/turf/open/floor/wood, -/area/maintenance/bar) -"vAi" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"vAl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/machinery/camera{ - c_tag = "Pool East"; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"vBa" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/bridge/meeting_room) -"vCa" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"vCb" = ( -/obj/machinery/rnd/production/techfab/department/service, -/turf/open/floor/plasteel, -/area/hallway/secondary/service) -"vCn" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"vCt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"vCy" = ( -/obj/machinery/power/apc{ - areastring = "/area/maintenance/starboard/fore"; - dir = 1; - name = "Starboard Bow Maintenance APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"vEc" = ( -/obj/machinery/power/supermatter_crystal/engine, -/turf/open/floor/engine, -/area/engine/supermatter) -"vEi" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 5; - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"vEp" = ( -/obj/structure/sign/poster/contraband/lizard{ - pixel_x = -32 - }, -/obj/structure/sign/poster/contraband/lizard{ - pixel_x = -32 - }, -/obj/structure/sign/poster/contraband/lizard{ - pixel_x = -32 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"vFr" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"vGn" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Prisoner Processing"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel, -/area/security/processing) -"vHj" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Cryogenics " - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/crew_quarters/cryopod) -"vHx" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"vHz" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 4; - light_color = "#d8b1b1" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"vHT" = ( -/obj/machinery/door/firedoor, -/obj/structure/sign/departments/evac{ - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) -"vHY" = ( -/turf/open/floor/plating, -/area/science/mixing) -"vIi" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/power/apc{ - areastring = "/area/security/range"; - dir = 4; - name = "Firing Range APC"; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/security/range) -"vIo" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Brig East"; - dir = 8 - }, -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"vJu" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"vLo" = ( -/obj/structure/closet/secure_closet/chemical, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/maintenance/fore) -"vLM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"vOF" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"vOU" = ( -/obj/structure/sign/warning/securearea, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/ai_monitored/nuke_storage) -"vPs" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"vPE" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"vTP" = ( -/obj/machinery/door/airlock/external{ - name = "Labor Camp Shuttle Airlock"; - req_access_txt = "2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/security/processing) -"vUs" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix to Gas" - }, -/turf/open/floor/engine, -/area/engine/engineering) -"vZA" = ( -/obj/structure/cable, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) -"vZR" = ( -/obj/structure/chair/comfy/brown{ - dir = 1 - }, -/turf/open/floor/wood, -/area/library) -"wag" = ( -/obj/structure/chair/comfy/black{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"wbd" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/engine/engineering) -"wbE" = ( -/obj/effect/turf_decal/tile/blue{ - alpha = 255 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - alpha = 255; - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) -"wcB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) -"wcR" = ( -/turf/open/floor/plasteel/yellowsiding/corner, -/area/crew_quarters/fitness/pool) -"wdr" = ( -/obj/machinery/door/window/southleft{ - name = "Target Storage" - }, -/obj/item/target/clown, -/obj/item/target/clown, -/obj/item/target, -/obj/item/target, -/turf/open/floor/plating, -/area/security/range) -"wfR" = ( -/obj/item/electropack/shockcollar, -/obj/item/assembly/signaler, -/turf/open/floor/plating, -/area/maintenance/bar) -"wgZ" = ( -/obj/structure/cable, -/turf/open/floor/plasteel, -/area/engine/engineering) -"wig" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"wje" = ( -/obj/structure/rack, -/obj/item/instrument/banjo, -/obj/item/instrument/harmonica, -/obj/item/instrument/accordion, -/obj/item/instrument/recorder, -/turf/open/floor/plating, -/area/maintenance/fore) -"wjz" = ( -/obj/structure/table, -/obj/item/pipe_dispenser, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"wkN" = ( -/turf/closed/wall, -/area/science/circuit) -"wlf" = ( -/obj/machinery/door/airlock/engineering/glass{ - name = "Supermatter Engine Room"; - req_access_txt = "10" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, -/turf/open/floor/engine, -/area/engine/engineering) -"wlI" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"woR" = ( -/obj/machinery/cryopod{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/crew_quarters/cryopod) -"wph" = ( -/obj/docking_port/stationary{ - area_type = /area/construction/mining/aux_base; - dheight = 4; - dir = 8; - dwidth = 4; - height = 9; - id = "aux_base_zone"; - name = "aux base zone"; - roundstart_template = /datum/map_template/shuttle/aux_base/default; - width = 9 - }, -/turf/open/floor/plating, -/area/construction/mining/aux_base) -"wql" = ( -/obj/structure/extinguisher_cabinet, -/turf/closed/wall/r_wall, -/area/hallway/primary/central) -"wqF" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"wrp" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/service) -"wun" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"wvX" = ( -/obj/structure/table/reinforced, -/obj/machinery/light, -/obj/item/stack/sheet/metal/ten, -/turf/open/floor/plasteel/white, -/area/science/circuit) -"wxT" = ( -/obj/structure/chair/sofa/left, -/obj/structure/window{ - dir = 1 - }, -/turf/open/floor/wood, -/area/crew_quarters/bar) -"wzX" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plating, -/area/engine/atmos) -"wAh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/engine, -/area/engine/engineering) -"wAN" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) -"wBd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/hallway/secondary/service) -"wHk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"wHz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"wHT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"wIY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"wKe" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "maintdiy"; - name = "Security Shutters" - }, -/turf/open/floor/plating, -/area/crew_quarters/abandoned_gambling_den) -"wKZ" = ( -/turf/open/floor/engine, -/area/engine/engineering) -"wLY" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"wQg" = ( -/obj/structure/pool/ladder{ - dir = 2; - pixel_y = 24 - }, -/turf/open/pool, -/area/crew_quarters/fitness/pool) -"wTf" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) -"wUg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"wUr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/theatre) -"wUY" = ( -/obj/structure/table, -/obj/item/stack/packageWrap, -/obj/item/stack/packageWrap, -/obj/item/hand_labeler, -/turf/open/floor/plasteel, -/area/hallway/secondary/service) -"wWu" = ( -/turf/open/openspace/icemoon, -/area/icemoon/surface/outdoors) -"wWT" = ( -/obj/effect/landmark/start/roboticist, -/turf/open/floor/plasteel/white, -/area/science/robotics/lab) -"wWW" = ( -/obj/structure/closet/secure_closet/personal, -/obj/item/toy/poolnoodle/yellow, -/obj/machinery/button/door{ - id = "PoolShut"; - name = "Pool Shutters"; - pixel_y = 24 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"wXl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/machinery/camera{ - c_tag = "Pool West"; - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"wYc" = ( -/obj/machinery/vr_sleeper{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"wZI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/crew_quarters/heads/captain) -"xal" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Gate"; - name = "brig shutters" - }, -/turf/open/floor/plating, -/area/security/brig) -"xaB" = ( -/obj/structure/closet/athletic_mixed, -/obj/item/toy/poolnoodle/red, -/obj/item/toy/poolnoodle/blue, -/obj/item/toy/poolnoodle/yellow, -/obj/machinery/button/door{ - id = "PoolShut"; - name = "Pool Shutters"; - pixel_y = 24 - }, -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"xaS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"xbn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/table, -/obj/item/coin/gold, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"xfY" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"xgk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/port/aft) -"xgC" = ( -/obj/machinery/power/apc{ - areastring = "/area/engine/gravity_generator"; - dir = 8; - name = "Gravity Generator APC"; - pixel_x = -25; - pixel_y = 1 - }, -/obj/structure/table, -/obj/item/paper/guides/jobs/engi/gravity_gen, -/obj/item/pen/blue, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"xgF" = ( -/obj/structure/chair/stool/bar, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/bar) -"xhS" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"xhV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/construction) -"xib" = ( -/obj/machinery/door/window/westleft{ - base_state = "right"; - icon_state = "right"; - name = "Unisex Showers" - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"xiw" = ( -/obj/machinery/door/airlock{ - name = "Service Hall"; - req_one_access_txt = "25;26;35;28" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/hallway/secondary/service) -"xkd" = ( -/obj/machinery/light/small{ - dir = 4; - light_color = "#d8b1b1" - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"xmo" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"xmS" = ( -/obj/structure/chair/comfy/beige{ - dir = 8 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/grimy, -/area/hallway/secondary/entry) -"xnm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"xol" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 8 - }, -/obj/machinery/meter, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"xqG" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/item/reagent_containers/food/drinks/soda_cans/starkist{ - pixel_x = -3; - pixel_y = 5 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar) -"xrc" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/engine, -/area/engine/supermatter) -"xrN" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"xtP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"xuz" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ - dir = 8 - }, -/turf/open/floor/engine, -/area/engine/engineering) -"xxi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"xxp" = ( -/turf/open/floor/plating, -/area/security/range) -"xzv" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"xAk" = ( -/obj/structure/chair/stool{ - pixel_y = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/starboard/fore) -"xAv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/dorms) -"xBk" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 23 - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet) -"xBw" = ( -/obj/structure/closet/wardrobe/cargotech, -/obj/item/radio/headset/headset_cargo, -/turf/open/floor/plasteel, -/area/quartermaster/storage) -"xDM" = ( -/obj/machinery/camera{ - c_tag = "Locker Room South"; - dir = 8 - }, -/obj/structure/closet/secure_closet/personal, -/turf/open/floor/plasteel, -/area/crew_quarters/locker) -"xEu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) -"xEB" = ( -/obj/machinery/power/apc{ - areastring = "/area/ai_monitored/nuke_storage"; - dir = 1; - name = "Vault APC"; - pixel_y = 25 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/circuit, -/area/ai_monitored/nuke_storage) -"xEC" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, -/area/engine/engineering) -"xEE" = ( -/obj/item/radio/intercom{ - pixel_y = 25 - }, -/obj/machinery/vending/wardrobe/curator_wardrobe, -/turf/open/floor/carpet, -/area/library) -"xGQ" = ( -/obj/structure/sign/plaques/golden{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"xIa" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"xJV" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/quartermaster/miningdock) -"xJW" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Security Maintenance"; - req_access_txt = "1" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/main) -"xJY" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 8 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) -"xOx" = ( -/obj/structure/chair/comfy/brown{ - color = "#596479"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"xPk" = ( -/obj/structure/bed, -/obj/machinery/button/door{ - id = "Dorm6"; - name = "Cabin Bolt Control"; - normaldoorcontrol = 1; - pixel_y = -25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/spawner/lootdrop/bedsheet, -/turf/open/floor/wood, -/area/crew_quarters/dorms) -"xPY" = ( -/obj/structure/table/wood, -/obj/machinery/light{ - dir = 4 - }, -/obj/item/instrument/trombone, -/turf/open/floor/wood, -/area/crew_quarters/theatre) -"xSW" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"xTe" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"xTy" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/engine/gravity_generator) -"xUe" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/prison) -"xUL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light, -/obj/machinery/camera/motion{ - c_tag = "Vault"; - dir = 1; - network = list("vault") - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/nuke_storage) -"xUX" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/rack, -/obj/item/storage/box/zipties{ - pixel_x = -1; - pixel_y = 1 - }, -/obj/item/storage/box/zipties{ - pixel_x = 1; - pixel_y = -1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"xWq" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/vacuum/external{ - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/security/processing) -"xXi" = ( -/obj/machinery/vending/clothing, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"xZD" = ( -/obj/structure/closet/lasertag/red, -/obj/item/clothing/under/misc/pj/red, -/obj/item/clothing/under/misc/pj/red, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness) -"xZL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/fitness/pool) -"ycd" = ( -/obj/structure/toilet/secret/low_loot{ - dir = 4 - }, -/obj/structure/mirror{ - pixel_y = 32 - }, -/obj/structure/sink{ - dir = 1; - pixel_y = 25 - }, -/obj/machinery/button/door{ - id = "LockerShitter2"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 14; - pixel_y = 38; - specialfunctions = 4 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/mineral/titanium/blue, -/area/crew_quarters/toilet/locker) -"ycu" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/science/circuit) -"ycY" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/machinery/light{ - dir = 1; - light_color = "#d1dfff" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"yds" = ( -/obj/effect/decal/cleanable/vomit, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/port/fore) -"ydD" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/suit_storage_unit/rd, -/turf/open/floor/plasteel, -/area/science/mixing) -"ydM" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/maintenance/fore/secondary) -"yhx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/closed/wall/r_wall, -/area/security/brig) -"yhz" = ( -/obj/structure/table, -/obj/item/folder/blue, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/central) -"ykN" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors) - -(1,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(2,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(3,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(4,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(5,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(6,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(7,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(8,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(9,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(10,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(11,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(12,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(13,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(14,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(15,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(16,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(17,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(18,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(19,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(20,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(21,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(22,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(23,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(24,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(25,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(26,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(27,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(28,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(29,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aud -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -auC -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(30,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(31,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(32,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(33,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -crk -aBM -aBM -aBM -aBM -aBM -crk -auj -crk -aBM -aBM -aBM -crk -crk -crk -crk -crk -aBM -aBM -aBM -crk -auj -crk -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(34,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -crk -crk -aBM -crk -crk -aBM -crk -crk -aBM -arB -asE -cyb -asE -arB -aBM -aBM -crk -crk -crk -crk -crk -aBM -aBM -arB -asE -cyb -asE -arB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(35,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -apJ -apJ -apJ -apJ -apJ -apJ -apJ -apJ -apJ -apJ -apJ -auO -auP -cwT -aAC -aBM -aBM -crk -crk -crk -crk -crk -aBM -aBM -aAC -auO -auP -cxY -arB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(36,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -apJ -apN -apN -apN -apN -apN -apN -apN -apN -apN -apJ -avP -iEJ -asE -arB -aBM -crk -crk -crk -crk -crk -crk -crk -aBM -arB -asE -iEJ -avP -arB -aBM -aBM -aBM -aBM -aBM -arB -arB -arB -arB -aAC -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(37,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -crk -apJ -apN -apN -apN -apN -apN -apN -apN -apN -apN -apJ -fpI -ayk -awW -aAD -awW -crk -crk -crk -crk -crk -crk -crk -awW -awW -awW -aQG -aRX -arB -aBM -aBM -aBM -aBM -aBM -arB -awZ -ayk -awW -aAD -awW -crk -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(38,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -crk -apJ -apN -apN -apN -apN -apN -apN -apN -apN -apN -apJ -awZ -ayl -azy -auP -cIh -crk -crk -crk -crk -crk -crk -crk -azy -auP -cIh -ayl -aRY -awW -aBM -aBM -aBM -aBM -aBM -awW -awZ -ayl -beK -auP -cyt -avb -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(39,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -crk -apJ -apN -apN -apN -apN -apN -apN -apN -apN -apN -apJ -awZ -ayk -awW -awW -awW -crk -crk -crk -crk -crk -crk -crk -awW -awW -awW -awV -aRY -awW -aBM -aBM -aBM -aBM -aBM -awW -awZ -ayk -awW -awW -awW -crk -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(40,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -apJ -apN -apN -apN -apN -wph -apN -apN -apN -apN -apJ -awZ -cqr -azz -aAF -awW -crk -crk -crk -crk -crk -crk -crk -awW -aOf -azz -aPu -aRY -awW -aBM -aBM -aBM -aBM -aBM -awW -awZ -aym -azz -aAF -awW -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(41,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -crk -apJ -apN -apN -apN -apN -apN -apN -apN -apN -apN -apJ -awZ -aIK -ayl -aAE -awW -crk -crk -crk -crk -crk -crk -crk -awW -aOe -ayl -ayl -aRY -awW -aBM -aBM -aBM -aBM -aBM -awW -awZ -ayl -ayl -aAE -awW -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(42,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -crk -apJ -apN -apN -apN -apN -apN -apN -apN -apN -apN -apJ -awZ -aIK -ayl -aAH -awW -crk -crk -crk -crk -crk -crk -crk -awW -aOh -ayl -jHh -aRY -awW -aBM -aBM -aBM -aBM -aBM -awW -awZ -ayl -ayl -bgi -awW -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(43,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -crk -apJ -apN -apN -apN -apN -apN -apN -apN -apN -apN -apJ -awZ -cry -azA -aAG -awW -crk -crk -crk -crk -crk -crk -crk -awW -aOg -azA -aQH -aRY -awW -aBM -aBM -aBM -aBM -aBM -awW -awZ -ayn -azA -bgh -awW -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(44,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -crk -apJ -apN -apN -apN -apN -lCi -apN -apN -apN -apN -apJ -awZ -crz -awW -awW -awW -crk -crk -crk -crk -crk -crk -crk -awW -awW -awW -awV -aRY -awW -aBM -aBM -aBM -aBM -aBM -awW -awZ -ayk -awW -awW -awW -crk -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(45,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -apJ -apJ -apJ -ajZ -asF -atp -asF -asF -asF -asF -apJ -axh -aIK -azy -auP -cIh -crk -crk -crk -crk -crk -crk -crk -azy -auP -cIh -ayl -aRY -awW -aBM -crk -auS -crk -aBM -awW -awZ -ayl -beL -auP -cyu -crk -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(46,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -apJ -asH -atI -atI -arE -ayq -ayq -auc -avp -axI -ayp -awW -aAD -awW -crk -crk -crk -crk -crk -crk -crk -awW -awW -awW -aQG -aRX -arB -aBM -aWa -aXI -awW -aBM -arB -awY -ayk -awW -aAD -awW -crk -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(47,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -asF -asI -auQ -auQ -auQ -auQ -aCX -aub -aLu -axH -ayo -azB -awW -aBM -crk -crk -crk -auA -crk -crk -crk -aBM -awW -aPt -aPu -aRY -arB -awW -awW -auP -awW -awW -arB -awZ -aym -fOI -awW -crk -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(48,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -apJ -asJ -cTE -avQ -axc -aCT -atb -aIH -apJ -clB -aIK -azC -arB -arB -arB -awW -awW -awW -awW -awW -arB -arB -arB -aPv -ayl -aRZ -asE -aAF -awW -cyl -awW -baF -asE -bbb -ayl -beN -arB -crk -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(49,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -apJ -apJ -apJ -apJ -apJ -apJ -apJ -apJ -apJ -axG -aIK -aym -aAI -aBH -azz -azz -azz -azz -azz -azz -aLv -aBH -azz -aPu -ayl -ayl -aNh -aym -azz -ayl -azz -aPu -ayl -aIK -ayl -beM -aAC -crk -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(50,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -alU -atJ -amC -aKf -bEJ -axb -ayr -azD -aAJ -azD -aCp -aEz -aFG -aHu -ayl -ayl -ayl -aNb -ayl -ayl -ayl -ayl -aTr -aUM -ayl -ayl -aWc -baG -ayl -aIK -ayl -beM -arB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(51,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -alU -alU -alU -aCW -amC -asK -alU -alU -atO -alU -alU -aBI -aBI -aBI -aBI -aBI -aNh -aKj -aLw -aLw -aLw -aLw -aQI -aNh -czK -czK -czK -czK -aXX -czK -czK -bbc -beO -beO -beO -beO -beO -beO -beO -beO -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(52,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -oDb -ayF -ayF -ayF -ayF -aqJ -amC -gLH -ase -avq -aum -avq -avq -cwH -avq -aAj -aBK -aCL -aEG -aFI -aBI -aIM -aKk -aLy -aNd -aOj -aPx -aQJ -ayl -czK -aUO -aUy -aWm -aWf -vdu -czK -bhN -bcl -beQ -pLn -bhI -bjb -bkz -blS -bnv -wWu -wWu -wWu -wWu -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(53,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -alU -alU -alU -alU -asc -atn -aLt -aue -aue -aue -aue -aAe -aBJ -aCs -aEE -aFH -aGZ -aIJ -aJX -aLi -aMO -aNR -aOY -aQl -bcD -aTs -aUN -baH -aWi -aXY -baH -aTs -bbd -beO -beP -bgj -beO -bja -beO -bja -bja -wWu -wWu -wWu -wWu -wWu -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(54,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -alU -apL -aqK -alU -asc -atq -aon -amC -axe -ays -alU -auT -aBI -aCY -aEI -aFK -aHy -aIM -aKk -aLz -aNe -aNe -aLz -aQo -aSb -czK -aUQ -aUA -aWr -aXZ -aUQ -czK -bbe -beO -beS -bgj -bhJ -bjd -bkB -cAI -bja -wWu -wWu -wWu -wWu -wWu -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayB -ayB -ayB -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(55,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -crk -alU -alU -apM -aqL -alU -asc -atq -auX -avS -amC -amC -alU -auT -aBI -aDc -aEH -bxM -aHa -aIL -aJY -aLj -aMP -aMP -aPa -aQn -ayl -czK -aUO -aUO -aXL -aXZ -aUO -czK -bbe -beO -beR -bgj -bgj -bjc -cAF -cAF -bja -wWu -wWu -wWu -wWu -wWu -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -ayF -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(56,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -aAM -ayB -ayB -ayF -ayF -ayF -ayF -ayF -ayF -alU -aoS -amC -aom -ank -asc -atq -auZ -bsU -axf -amC -alU -auT -aBI -aDf -aEK -aFM -aHy -ayl -aKk -aLA -xmS -aNf -aLA -aQD -aSd -czK -aUQ -aUW -aXL -aXZ -baJ -czK -bbe -beO -beU -bgk -bhL -bjc -cAF -blV -beO -wWu -wWu -wWu -wWu -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -chJ -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(57,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBD -ayF -ayF -ayF -ayF -ayF -ayF -ayF -anO -ayF -ayF -ayF -atl -ayF -ayB -ayF -ayF -ayF -ayF -ayF -ayF -alU -aoR -apO -aqM -arF -asc -atq -auY -amC -amC -ayt -alU -aAw -aBl -aCZ -aEJ -aFL -aBI -aIO -aKk -asE -asE -asE -asE -aQD -ayl -czK -aUl -aUR -aWs -aXZ -aUQ -czK -bbf -beT -beT -bdQ -beZ -bje -bkC -cAJ -beO -wWu -wWu -wWu -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayB -ayB -ayB -ayB -ayF -ayF -ayF -hrF -ayF -ayF -ayF -ayB -ayB -aAM -ayB -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(58,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBD -ayF -ads -adS -aeG -ayF -ads -adS -aeG -ayF -ads -adS -aeG -ayF -ayB -ayF -ayF -ayF -ayF -ayF -ayF -alU -aoT -amC -aqO -arG -asc -atq -ava -amC -axg -ayu -azF -azF -azF -azF -azF -azF -azF -aIQ -aKk -aLC -aNg -aOk -aPy -aRd -aRM -aTt -aUm -aUm -aWt -aYd -aZn -aTt -bbg -bdG -bdu -bdT -beO -bjf -beO -beO -beO -wWu -wWu -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -ayF -ayF -ayF -ayF -ayF -ayF -hrF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(59,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBD -ayF -ads -adu -aeG -ayF -ads -adu -aeG -ayF -ads -adu -aeG -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -alU -alU -alU -alU -arG -ash -atq -alU -alU -alU -alU -azF -aAP -aAP -aAP -aEF -aFN -azF -aIP -aKl -aLB -aLB -aLB -aLB -aQK -aSe -czK -aUQ -aUQ -aXN -aUO -aUQ -czK -bcI -aPz -bdt -bdR -aSg -aYf -bkD -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -cca -cca -cca -cca -cca -ayF -csZ -ayF -cca -cca -cca -cca -cca -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(60,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBD -ayF -ads -adu -aeG -ayF -ads -adu -aeG -ayF -ads -adu -aeG -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ali -aoX -arI -asi -atr -atN -atN -atN -ayi -azq -aAK -aBv -aDa -aAQ -aAQ -azF -aIR -ayl -ayl -aNi -ayl -ayl -ayl -aSf -czK -czK -czK -czK -czK -czK -czK -aPz -aPz -bdB -aWv -aTu -bjg -bkD -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayB -ayF -ccc -ccX -ccX -ccX -ccX -vZA -crk -uDO -cjH -cjH -cjH -cjH -cnl -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(61,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ads -adu -aeG -ayF -ads -adu -aeG -ayF -ads -adu -aeG -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ali -amC -arH -atP -auV -auV -auV -axK -ayh -azi -aAx -aBm -aAQ -aAQ -aAQ -azF -azF -azF -aLD -aNh -aNh -aPz -aPz -aPz -aPz -aSg -aWj -aXP -aZr -baL -bbI -bcK -aPz -bdB -aWv -bfh -aPz -aPz -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayB -ayF -ccb -ccb -ccb -ccb -ccb -ayF -vPs -ayF -ccb -ccb -ccb -ccb -ccb -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(62,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayB -ayB -ayF -ayF -ads -adu -aeG -ayF -ads -adu -aeG -ayF -ads -adu -aeG -ayF -ayF -ayF -ajV -alR -alR -alR -alR -alU -alU -alU -aqP -arJ -alU -atQ -ats -atV -atO -asK -azF -aAT -aBw -aDg -aAQ -aAQ -aHz -aIS -aKn -aLF -aLF -aLF -aPz -aQL -aSg -aSg -aSg -aWl -aSg -aZs -baN -bbK -bcM -bdH -bdD -bea -bfq -bji -bkF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayB -ayF -ayF -ayF -ayF -ayF -ayF -ayF -hrF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aAM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(63,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -ayF -ayF -ayF -ayF -csZ -ayF -ayF -ayF -csZ -ayF -ayF -ayF -csZ -ayF -ayF -ajV -ajV -ajV -alQ -amy -ang -alR -aoj -amC -apP -amC -arH -alU -ats -atS -ats -atO -asK -azF -aAS -aFP -aAQ -aAQ -aAQ -aAQ -aAQ -aKm -aLE -aNj -aLE -aPz -aPz -aPz -aTu -aUS -aWk -aWk -aWk -baM -bbJ -bcL -aWk -bdC -bdZ -bhO -bjh -bkE -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayB -ayF -cca -cca -cca -cca -cca -ayF -csZ -ayF -cca -cca -cca -cca -cca -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(64,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -abX -jIs -jIs -vZA -crk -uDO -jIs -vZA -crk -uDO -jIs -vZA -crk -uDO -jIs -ajW -akB -alh -alT -amA -ani -anI -aol -aol -aol -aol -arL -alU -atR -atQ -atV -atO -asK -azF -aAU -aBG -aAQ -aAQ -aAQ -aAQ -aAQ -aKn -aLE -aNl -aOm -aPB -aQM -aQM -aTv -aUT -aPz -aXQ -aXQ -aXQ -aXQ -aPz -aPz -epC -aPz -bhQ -bjj -bkF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayB -ayF -ccc -ccX -ccX -ccX -ccX -vZA -crk -uDO -cjH -cjH -cjH -cjH -cnl -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(65,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -ayF -ayF -ayF -ayF -vPs -ayF -ayF -ayF -vPs -ayF -ayF -ayF -vPs -ayF -ayF -ajV -ajV -ajV -alS -amz -anh -anH -amC -aok -anJ -aFJ -arK -alU -alU -ali -alU -atO -asK -azF -aAP -aAP -aAP -aAQ -aFO -aHA -aIT -azF -aLG -aNk -aOl -aPA -aPA -aPA -aPA -aPA -aPA -aXQ -aZt -aXQ -ycd -aPz -omY -cMS -gQX -bhQ -bjj -bkF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayB -ayF -ccb -ccb -ccb -ccb -ccb -ayF -vPs -ayF -ccb -ccb -ccb -ccb -ccb -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(66,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -aAM -ayB -ayF -ayF -ads -crE -aeG -ayF -ads -crE -aeG -ayF -ads -crE -aeG -ayF -ayF -ayF -ajV -alR -alR -alR -alR -amC -aom -apP -amC -arN -amC -amC -amC -amC -axi -asK -azF -azF -azF -azF -aEL -azF -azF -azF -azF -aLE -aNm -aOl -aPA -aQO -aSh -aTw -aUU -aWn -aXQ -aZv -aXQ -bbL -aPz -bdJ -txm -bgr -iwB -hew -bkF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aAM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -hrF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(67,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ads -crE -aeG -ayF -ads -crE -aeG -ayF -ads -crE -aeG -ayF -ayF -ayF -ayF -ayF -alU -alF -anj -anJ -aoU -alU -amC -arM -alU -avc -asO -avV -atO -ayw -atN -aAV -aBQ -aDh -aDo -aFQ -aHe -aIN -aKp -aLE -aNm -aOl -aPA -aQN -aQN -aQN -aUn -aTy -aWy -aYe -bbq -aZw -aPz -bct -bfa -gfr -bhQ -bjk -bkE -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayB -ayF -cca -cca -cca -cca -cca -ayF -csZ -ayF -cca -cca -cca -cca -cca -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(68,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -ads -crE -aeG -ayF -ads -crE -aeG -ayF -ads -crE -aeG -ayF -ayF -ayF -ayF -ayF -alU -alF -anl -amC -alU -alU -amC -alU -alU -apP -alU -alU -atP -auV -axK -aAN -aBL -aDd -aDd -aFR -aDd -aDd -aJZ -aLk -aNo -aOo -aPA -aQS -aQN -aSV -aUo -aUX -aXp -baO -aZo -baw -aPz -hPs -cBn -bgs -hnl -bjk -bkF -aBM -aBM -aBM -aBM -aBM -aBM -avd -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -avT -aBM -aBM -aBM -ayF -ayB -ayF -ccc -ccX -ccX -ccX -ccX -vZA -crk -uDO -cjH -cjH -cjH -cjH -cnl -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(69,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -ads -crE -aeG -ayF -ads -crE -aeG -ayF -ads -crE -aeG -ayF -ayF -ayF -ayF -ayF -alU -alU -ank -alU -alU -alU -amC -amC -amC -arN -alU -avW -amC -ayx -atO -aAL -aBQ -aDb -aDo -aFY -aDo -aDo -aKp -aLE -aLE -aOn -aPA -aQP -aQN -aTB -aUt -aWo -aXQ -aXQ -aXQ -aXQ -aPz -aPz -aPz -aPz -bhQ -bjk -aPz -aBM -aBM -boI -bqi -brJ -boI -brJ -bvS -boI -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -avU -ayF -ayF -crk -ayF -ayB -ayF -ccb -ccb -ccb -ccb -ccb -ayF -vPs -ayF -ccb -ccb -ccb -ccb -ccb -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(70,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -ads -crG -aeG -ayF -ads -crG -aeG -ayF -ads -crG -aeG -ayF -ayB -ayF -ayF -ayF -alU -amD -anm -amC -amC -ali -amC -alU -asO -atL -alU -avX -axf -amC -atO -aAY -aBQ -aDl -bxk -aDo -aDo -aIX -gCC -aLE -aLE -aOp -aPA -aQR -aQN -aQN -aUt -aWq -aQN -aQN -aQN -aQN -vhb -bbO -aPA -bgt -bhS -bjk -aPz -aBM -aBM -blW -bqj -brK -blW -brK -bvT -blW -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -oDb -avU -ayF -ayF -ayF -ayF -ayB -ayF -ayF -ayF -ayF -ayF -ayF -ayF -hrF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(71,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayB -ayF -ayF -ayF -alU -amC -amC -amC -amC -ali -amC -alU -alU -alU -alU -alU -axj -alU -atO -aAY -aBQ -aDk -aDo -aDo -aDo -aIW -aBQ -aLE -aLE -aOl -aPC -aQN -aQN -aTz -aUp -ubj -aXr -aZx -aQN -aQN -cBh -bdL -aPA -bgt -bhR -bjk -aZE -blW -blW -blW -bqi -cyD -blW -cyD -bvS -blW -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -avU -ayF -ayF -ayF -ayF -ayB -ayB -ayB -ayF -ayF -ayF -ayF -ayF -hrF -ayF -ayF -ayF -ayF -ayF -ayB -ayB -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(72,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayB -ayB -ayB -ayB -ayB -ayF -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayF -ayF -ayF -alU -amE -ann -amC -amC -alU -amC -alU -arN -atU -alU -atU -amC -atJ -atO -aAY -aBQ -aDn -aDo -aDo -aHD -aIZ -aBQ -aLE -aLE -aOq -aPD -aQT -aQN -aTC -aUs -aUY -aXv -aYS -aQN -aQN -vhb -bbO -aPA -aSg -bhT -bjk -aZE -blY -bnw -boJ -bql -brL -btr -bnw -bvV -blW -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -ayF -avU -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -cfx -chO -cfx -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(73,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -oDb -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -alU -alU -alU -ank -alU -alU -amC -amC -amC -amC -alU -avc -amC -atJ -atO -aAY -aBQ -aDm -aDo -aDo -aDo -aIY -gCC -aLE -aLE -aOl -aPA -pqs -aQN -aTC -aUs -mTG -aXt -ijG -aQN -aQN -aPA -aPA -aPA -bel -bfI -bgq -bhY -bkj -bqm -bqm -bps -bjr -bjr -buB -bvU -aZE -ayF -ayF -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -bVx -caf -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -cfx -chN -cfx -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(74,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -alU -amF -alU -amC -alU -alU -alU -alU -amC -amC -alU -atM -axl -auV -azG -aAY -aBQ -aDp -aDo -aFU -aDo -aJb -aKp -aLE -aLE -aOl -aPE -aQV -aQN -aTC -aUu -gxc -aXt -ijG -aQN -aQN -aZB -aPA -bfc -bew -bfM -bjl -bkG -bkp -bmj -bjt -cCo -bjt -bjt -biq -bvV -blW -aBM -aBM -aBM -aBM -ayF -ayF -ayF -lPl -rQX -lPl -ayF -ayF -ayF -bCq -bCq -bCq -bLv -bCq -ayF -cbj -crk -crk -crk -ayF -bCq -bCq -bCq -bCq -bCq -bCq -cfx -cfx -cyK -cfx -cfx -ayF -ayF -oDb -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(75,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -alU -alU -alU -amC -alU -crk -rJw -arO -amC -amC -avc -atO -axk -ayy -ayy -aAO -aBN -aDe -aDe -aFT -aDe -aIU -aKa -aLH -aLE -aOl -aPA -aiB -aQN -nLw -sLa -oyl -aXw -qfk -aQN -aQN -aZA -aPA -aWv -aYb -aZE -aZE -aZE -bkn -bmh -bjr -bmb -bjr -bjr -buC -bvV -blW -aBM -aBM -aBM -aBM -ayF -ayF -bxy -bxy -pHH -bxy -bxy -ayF -ayF -bCq -ajD -bCq -bSn -bCq -bCq -cbj -bLv -bXv -bLv -ayF -bCq -cAy -cAB -ajG -cAD -cAH -cfw -cgA -chP -ciQ -cfw -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(76,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ali -anK -ali -ayF -alU -rJw -alU -atW -atW -atO -axn -alU -aoX -atJ -aBQ -aDq -aDo -aFZ -aHE -aJc -aKs -aLK -aLK -aOr -aPA -aQX -aQN -aSi -aUv -aWp -aTy -aTy -aTy -aTy -bbs -bcw -bfd -bgw -aZE -bjn -bjr -bkt -bmh -boK -bpz -boK -bjr -bkt -bvV -blW -aBM -aBM -aBM -aBM -ayF -ayF -bxy -vCa -avl -vCa -bxy -ayF -ayF -bCq -bHE -bJP -bHE -bJP -bCq -cbk -bLv -bHE -bLv -ayF -bCq -cAA -bHE -bHE -ccZ -cAK -cfw -cgC -chR -ciS -cfw -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(77,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ali -aKY -ali -ayF -ayF -ayF -alU -ali -ali -atO -axo -ayz -ayz -ayz -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aLm -aLE -aOl -aPA -vJu -aQN -aTD -ocv -aUZ -aYU -aYU -aYU -aYU -aYU -bcu -bfe -aYb -aZE -bjm -bjr -bjr -bmh -boK -bjr -boK -bjr -bjr -bvV -bxu -aBM -aBM -aBM -aBM -ayF -ayF -bxy -juQ -gzv -byE -bxy -ayF -ayF -bCq -bHE -bHE -bHE -bHE -bCq -bVy -bLv -cyE -bLv -bLv -bCq -bHE -cAC -ccZ -cAE -ceV -cfw -cgB -chQ -ciR -cfw -crk -crk -crk -ayF -aBM -aBM -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(78,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ali -ali -amC -alU -alU -alU -ayF -ayF -ayF -crk -avY -axo -arP -fgG -rqW -aGD -tJi -aCr -hcb -qTG -hcb -aKu -aLM -aLF -aOs -aPG -aPG -aPG -aPG -aPG -lip -aQW -aQW -aQW -aQW -xDM -aPA -jxF -aYb -aZE -bjp -bjr -bjr -bmh -boK -bjr -cBp -bjr -buB -bvV -bxu -bxu -bxx -bxu -bxu -avf -ayF -bxy -avl -rBE -byE -bxy -ayF -ayF -bCq -bHE -bPW -bHE -bHE -bCq -bVB -bHE -bHE -bYu -bZk -bCq -cTF -bCq -bCq -bCq -bCq -cfw -cgE -chS -cfw -cfw -bCq -bXv -bCq -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(79,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ali -yds -amC -aon -aoW -arP -aqQ -aqQ -aqQ -aqQ -avZ -axo -arP -rPU -fne -aGr -aHI -fOA -tWj -oyz -hcb -aKu -aLL -bDe -aOl -aPF -aQY -aSk -aTE -aPG -aPA -aPA -aPA -aPA -aPA -aPA -aPA -aWv -aYb -aZE -bjo -bjr -bjr -bmh -boK -bjr -boK -bjr -bjr -bub -bxu -bvF -bzP -bAS -bxu -ayF -ayF -bxy -gii -eBm -byE -bxy -ayF -ayF -bCq -bHE -bHE -bSo -bHE -bCq -bVA -bWw -bXw -bYt -bZj -bCq -bHE -bCq -bSq -cdW -ceW -bCq -cgD -bUs -bHE -cjI -bCq -clA -bCq -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(80,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ali -aKY -amC -amC -amC -gsM -aqR -aqR -aGh -aqR -awb -axo -arP -aCh -pIf -kCo -aHK -aCr -uJx -ikk -hcb -aKu -aLN -aLE -aOl -aPH -aRa -aRa -aTG -aPG -aWu -aYc -aZD -aZD -vnI -aZD -aZD -bff -dev -aZE -xBw -bjr -ama -bmh -bjr -bjr -bjr -bjr -bjr -bvX -bxu -byA -bzR -byd -bxx -ayF -ayF -bxy -qTA -avl -qTA -bxy -ayF -ayF -bCq -bPV -bCq -bCq -cTF -bCq -bVD -bWy -bXx -bYw -bZj -bYy -bHE -bTz -bHE -bUs -ceY -bCq -bJP -bUs -bHE -bLu -bCq -cyE -bCq -ayF -ayF -ayF -ayF -bCq -bCq -bLv -bLv -bLv -ayF -aBD -aBD -aBD -aBD -aBD -aBD -aBD -aBD -aBD -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(81,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ali -nBI -anL -aoo -aoX -arP -arP -arP -arP -arP -avZ -axp -ayC -azH -eEe -aGv -aCr -aCr -uJx -ikk -hcb -aKu -aLN -aLE -aOl -aPF -aQZ -aRa -aTF -aPG -aSX -hPP -aZF -aZF -aZF -aZF -aZF -aZF -bgy -gjl -bjq -bjr -bjr -bmh -bjr -bjr -bjr -bjr -bjr -bjr -bxw -byz -bzQ -byc -bxx -ayF -ayF -bGi -bGi -bJb -bGi -bGi -ayF -ayF -bCq -bPU -bHE -bSp -bHE -bCq -bVC -bWx -bWy -bYv -bZl -bCq -bHE -bCq -cda -cgF -bCq -cqn -cAh -chT -bHE -bHE -ckv -bHE -bCq -bLv -bLv -bLv -bLv -bCq -ciT -cqK -crl -bLv -ayF -aBD -azl -azl -azl -azl -azl -azl -azl -aBD -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(82,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ali -ali -ali -alU -alU -arP -aqR -wje -rQJ -uUi -avZ -xtP -ayA -sNK -xmo -aBV -mzB -mJG -szG -aHG -aJe -aKw -aLP -aMR -aNU -aPJ -aPJ -aPJ -aPJ -aPJ -aVC -aXJ -bgA -aZp -baY -bcJ -bcF -bfg -bgA -bhW -bjt -biq -bjr -bmh -bjr -bqn -brN -brN -brN -brN -bxx -byC -bzT -byl -bxx -ayF -ayF -bGi -bHz -avl -bKk -bGi -ayF -ayF -bCq -bPW -bCq -bCq -cOw -bCq -bVF -bWA -bXy -bYx -bWz -bCq -bHE -bCq -bQa -cpY -cyL -cqy -cAi -bQa -bHE -bHE -bHE -bHE -bHE -bHE -bHE -bHE -bHE -cpR -bHE -cAQ -crm -bLv -ayF -aBD -aBD -aBD -aBD -aBD -aBD -aBD -aBD -aBD -oDb -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(83,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -crk -crk -crk -crk -crk -crk -crk -crk -crk -arP -vqP -inw -gzY -rtC -izg -awa -axq -qyj -azI -rjQ -aBU -myh -inR -wUr -iTq -hcb -aKu -aLN -aMQ -aNT -aPI -aRb -aRb -aRb -aRb -aWx -aXE -baS -baS -bbP -bcR -bcE -baS -bex -aZF -bgu -bic -bku -bmh -bjr -aZE -brM -bts -buD -bvY -bxx -byB -bwS -byg -bxx -ayF -ayF -bGi -bHy -avl -bKj -bGi -ayF -ayF -bCq -bHE -bHE -mPr -cdb -bCq -bVE -bWz -bHE -bHE -bLu -bCq -bLu -bCq -cdb -bSs -bCq -bCq -cgG -bCq -bCq -bCq -bCq -cTF -bCq -bLv -bLv -bLv -bLv -bCq -cqv -cqL -bJe -bLv -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBD -aBD -aBD -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(84,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -crk -crk -crk -crk -crk -crk -crk -crk -crk -aqQ -uCo -gzY -eAG -aqR -aqR -kTj -xxi -ayD -cGz -aMr -ngs -aDv -uRS -uJx -dsC -hcb -aKu -aLN -aMS -aOt -aPK -aPK -aPK -aPK -aPK -aWA -aXM -bfi -cBi -bbS -bcS -bbt -bfi -beD -gjl -aZE -biA -bmg -bmH -bkJ -aZE -aZE -aZE -aZE -aZE -bxu -byD -bwU -byn -bxu -ayF -bxy -bxy -bxy -bJd -bKm -bxy -ayF -ayF -bCq -bPY -cOw -bCq -bCq -bCq -bCq -bCq -bYy -bCq -bCq -bCq -bCq -bCq -bCq -bCq -bCq -bCq -bUs -bLv -ayF -bCq -ckv -bHE -bCq -ayF -ayF -ayF -ayF -bCq -bCq -bCq -bCq -bCq -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBD -azl -aBD -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(85,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -crk -crk -crk -crk -crk -crk -crk -crk -crk -aqQ -aqR -aqR -pjg -sqg -inq -avZ -xxi -ayD -viF -aMr -aMr -aOH -uRS -lSa -oTW -hcb -aKu -aLN -aMS -aOi -lPr -aPK -aSl -aTH -aPK -aWz -aWC -baS -baS -baS -bcR -baS -baS -baS -gjl -bju -biv -bmf -bmt -boN -bqo -brO -btt -buE -bvZ -bxu -bxx -bwT -bym -bxu -bxy -bxy -bGj -bHA -tIV -bKl -bxy -crk -crk -bCq -bPX -bRg -bRg -bCq -bHE -bVG -bHE -bHE -bCq -tPT -tRF -mrR -dKP -odx -rBq -kQO -bCq -bUs -bLv -ayF -bLv -bJf -ccd -bCq -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -gUu -crn -bij -bij -bij -bij -bij -jkz -btG -ayF -aBD -azl -aBD -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(86,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -crk -crk -crk -crk -crk -crk -crk -crk -crk -aqQ -uCo -gzY -arP -arP -arP -avZ -xxi -ayD -nez -ngV -xPY -aOH -hcb -hcb -syJ -hcb -aKu -aLN -aMS -aOi -aLE -aRc -aSm -aTJ -aPK -aWA -aWC -baS -aZI -baS -cCn -bdS -bdU -ckQ -gjl -bgz -biT -boU -bmP -buF -bbR -bbR -btu -bbR -bOL -qje -byF -bwW -bGm -bCo -bDk -bEK -byE -byE -avl -byE -bGi -ayF -ayF -bLv -bQa -bHE -bHE -bCq -bHE -bCq -bCq -bCq -sXA -mPE -kyF -sAM -imH -evR -evR -rMN -bCq -bUs -bLv -ayF -cjJ -cjJ -cjJ -cjJ -cjJ -cjJ -cjJ -kfX -saU -saU -bij -crn -bij -bij -eCR -wUg -bnT -bph -bsc -mQS -bsc -tNF -btG -ayF -aBD -azl -aBD -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(87,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -crk -crk -crk -crk -crk -crk -ato -crk -crk -arP -aqR -aqR -arP -asQ -aqR -awb -axr -ayE -ayE -ayE -ayE -ayE -ayE -ayE -ayE -ayE -ayE -aLl -aMT -aOi -aPL -aPK -aSm -aTI -aPK -aWB -cCj -apd -apd -apd -cCk -apd -aZK -bgB -bhX -bgv -biF -bkw -bnE -bny -btv -btv -bjv -btv -buc -bxz -eVL -bwV -byy -bBa -bAb -bzY -bBa -bEQ -bGM -bKn -bGi -ayF -ayF -bLv -bPZ -bHE -bHE -cTF -bHE -bCq -iiW -iiW -iiW -iiW -iiW -dfL -dKP -mqZ -tur -wfR -bCq -bUs -bLv -ayF -cjJ -ckw -clC -cmy -cnm -cnL -cov -cpj -cpS -cjJ -fjS -sPT -btG -rXl -xgC -ugu -bnV -bph -bih -big -bii -bsc -btG -ayF -aBD -azl -aBD -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(88,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aiU -hlT -aiU -ayF -aiU -vxX -aiU -ayF -arP -lZs -dPq -arP -asP -cya -awa -axu -ayH -ayH -ayH -ayH -ayH -ayH -aFV -ayH -ayH -aKy -aLn -aMU -aOw -aPN -aPK -aSn -aTK -aPK -uoG -sOA -asW -baW -bLE -bLG -apd -bfj -bgC -bia -aZK -bjs -bkx -bmQ -bnA -bpB -bpB -brR -bsV -bwc -bxA -bvI -bwX -byG -bvI -bAm -bBG -bDo -xJV -gzv -bKp -bGi -ayF -ayF -bLv -bHE -bHE -bSs -bCq -bHE -bCq -uvZ -dKP -vjm -bcU -bcU -bcU -dKP -dKP -dKP -dKP -bCq -bUs -bLv -ayF -cjJ -cky -clE -cmA -clE -cnN -cox -cpl -cpU -jLn -xTy -xTy -tJK -xTy -xTy -xhS -mOB -bph -big -bgN -big -bsc -btG -ayF -aBD -azl -aBD -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(89,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aoV -ayF -ayF -ayF -gWo -gWo -gWo -dYZ -gWo -gWo -ayF -ayF -ayF -aiU -alp -aiU -ayF -aiU -alp -aiU -arP -arP -arP -arP -arP -arP -arP -avZ -axt -ayG -ayG -ayG -ayG -ayG -ayG -ayG -ayG -ayG -ayG -aLm -aMS -aOv -aPM -aPQ -aPQ -aPQ -aPQ -apd -aYi -aqW -aqW -bbQ -uFp -apd -aZH -aZK -bhZ -aZK -cNM -bfQ -bnG -bnz -bpA -bbR -sWR -jlm -bud -eyM -kSb -bAZ -bGm -bzF -bAc -bGm -byE -cBB -byE -bKo -bxy -crk -crk -bCq -bHE -bRh -bLu -bCq -bHE -bCq -iiW -iiW -dKV -xgF -dKV -dKV -iiW -gMl -gMl -iiW -bLv -bUs -bLv -ayF -cjJ -ckx -clD -cmz -cnn -cnM -cow -cpk -cpT -cjJ -fjS -dXq -btG -rtl -oqO -vFr -bnV -bph -bii -big -bih -bsc -btG -ayF -aBD -azl -aBD -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(90,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -abc -abc -abc -afu -abc -wdr -itQ -pgn -tmO -gWo -xUe -aiU -aiT -nEj -vTP -aiU -amK -aiU -mkU -xWq -arP -asR -gzY -fdQ -ngU -kUC -arP -awc -axt -ayG -azK -aBe -aBe -aDj -aER -aFX -aHj -aJa -aKc -aLp -aMV -aOy -aLE -aPQ -aRV -aSW -aVa -apd -aWE -aqW -aqW -bcG -bLG -apd -aZH -bgD -bfN -bgE -cNN -bkH -bfm -boS -bfm -bNK -bkN -bfm -bwe -bwe -bwd -bwY -byJ -bwe -bAc -bBI -bGn -bGn -bGn -bKq -bxy -ayF -ayF -bCq -bOK -bCq -bCq -bCq -bUt -bCq -uaw -tkU -iiW -lnu -cjn -iiW -cxo -bcU -bcU -vzO -bLv -bUs -bLv -ayF -cjJ -cky -clG -cmB -clG -cnP -coz -cpn -sPY -sPY -bgO -dgO -bgO -pPI -uRd -ktP -bnW -bph -bsc -mkv -bsc -jFH -btG -ayF -aBD -azl -aBD -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(91,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -abc -aea -aeH -aft -abc -pDe -dly -mnC -mcp -gWo -oDm -ibK -akb -ahq -akI -ahU -aiT -aiD -akI -uFZ -hBw -vLo -gzY -aqR -gzY -gzY -esK -awb -axt -ayG -azJ -aBd -aBX -aDi -aEQ -aFW -aHh -aIV -ayG -aLN -aMS -aOx -aPc -aRe -aRT -aSt -aWF -apd -aWG -aZa -baX -bcH -bdE -apd -aZH -bnL -cNG -cNJ -cNM -cNI -bnI -boR -bqs -bbR -bkM -bbR -bwd -bxB -bvL -byI -byH -bwe -bAn -bBH -bxy -bxy -bxy -bxy -bxy -bLv -bLv -bCq -bHE -bLv -ayF -bLv -uuG -jJF -gBo -sEt -cxo -bcU -bcU -jqv -cxo -bcU -mpI -vzO -bLv -bUs -bLv -ayF -cjJ -ckz -clF -cmy -cnp -cnO -coy -cpm -cjJ -ayF -ayF -ayF -ayF -ayF -iHk -bgO -bgO -bgO -bgO -bgO -bgO -jBA -btG -ayF -aBD -azl -aBD -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(92,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -crk -abc -abu -abu -abu -abc -abc -aec -aeJ -afw -abc -abc -dly -xxp -mcp -dYZ -kMt -nTG -rhX -ahr -ahD -ahV -agr -fJY -eXz -pUy -arP -arP -arP -arP -iPX -nnp -arP -awb -axt -ayG -azM -aBg -aBZ -aDx -aET -aET -bCx -aHJ -aKd -aLq -aMY -aOA -aPO -aRf -aSc -aSc -aUw -apd -aXK -avr -aZJ -bbT -bSy -apd -aZH -beF -bfl -bmi -bjw -bmk -bbR -boT -bbR -bbR -buI -bbR -bwd -bxD -byL -byK -byT -bwe -bAx -bTE -bCq -bHD -bJe -bCq -nkP -bHE -bHE -bHE -bHE -bLv -ayF -bLv -bUs -bCq -iiW -iiW -fxa -bcU -bcU -vzO -iiW -oKh -oKh -iiW -bLv -bUs -bLv -ayF -cjJ -cjJ -cjJ -cjJ -cjJ -cnR -coB -cjJ -cjJ -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBD -azl -aBD -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(93,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aai -aai -aai -abb -abt -aca -acz -acX -adC -aeb -aeI -afv -agf -abc -dly -xxp -mcp -gWo -gDP -lAH -lNH -akG -akG -kHd -vGn -gav -cxP -pUy -arP -aqU -arg -arP -arP -arP -arP -vgJ -hSl -ayG -azL -aBf -aBY -aDw -aES -aJh -aHv -aJh -aKA -aLN -aMS -aOz -exP -aPQ -aSa -aSr -aSr -apd -aYZ -bLE -aqW -aqW -noy -apd -beA -bqp -cNG -cNJ -bLF -aZK -sRH -bbR -bqt -cBq -bbR -bbR -bwd -bxC -byK -cBv -byO -bwe -bAo -bTE -bGo -bHC -bHE -bCq -bCq -bLv -bLv -bHE -bLv -bCq -ayF -bLv -bUs -bCq -sRT -usO -iiW -oKh -oKh -iiW -iiW -iiW -izv -nfm -bCq -bUs -bCq -ayF -ayF -ayF -ayF -ayF -cjJ -cnQ -coA -cpo -cjJ -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBD -aBD -aBD -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(94,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aai -eqd -kgr -abe -abw -acc -acB -acZ -adE -aee -aeL -afy -agh -abc -kCa -hnU -vda -sXV -agv -amM -aiX -aiX -aiX -aiX -aiX -foT -ibK -pUy -arP -aqR -arl -arP -asS -sfs -aqR -awb -axt -ayG -azN -aBe -aBe -aDy -aEU -aGf -aHL -aJi -aKB -aLT -aNp -aOC -aPQ -aPQ -aTL -aTP -aWD -apd -aYj -aZL -baU -baU -bcV -apf -bfn -beW -bfR -bKF -bNH -aZK -bnJ -bbR -bbR -bbR -bty -buJ -bwe -bxE -byM -bAd -bBf -bwe -bAJ -bCe -bCq -bHE -bJf -bCq -ayF -ayF -bLv -bHE -bLv -ayF -ayF -bTB -bUv -bES -bES -bES -bES -bGp -bGp -bGp -bGp -bES -bES -bES -car -bUs -bCq -bCq -bCq -bCq -bCq -bCq -cjJ -cnS -coC -cpp -cjJ -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(95,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aai -gbu -aay -abd -abv -acb -acA -acI -adD -aed -aeK -afx -agg -abc -ovv -dCV -idK -age -kZS -agu -agj -amL -apK -amX -aiX -aiE -aiK -aiN -arP -arc -arP -arP -usE -aqR -aqR -awb -axt -ayG -ayG -ayG -ayG -ayG -ayG -ayG -ayG -ayG -ayG -aHP -aNc -aOB -aPQ -aPQ -aSs -aSs -aSs -apd -apd -apd -baV -bON -apd -apd -aZK -beV -cNI -bKP -cNI -aZK -bnK -bnK -bqu -bqu -bnK -bnK -bwe -bwe -bwe -bwe -bwe -bwe -bAI -bCd -bCq -bCq -bCq -bCq -bLv -bLv -bLv -bOK -bLv -bLv -bLv -bTA -bUu -bLw -bLw -bLw -bLw -bLw -bLw -bLw -bLw -bLw -bLw -bLw -caq -cbw -bHE -ciT -bCq -bSs -ceY -ccw -ccw -cnR -cgT -cjJ -ccw -ccw -ccw -ccw -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(96,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -aai -acd -mIZ -abg -enB -aby -aby -aby -aby -aeg -aeN -afA -afA -abc -kuA -laq -kdP -mGw -akm -akr -alZ -amO -arQ -aor -aiX -aiF -aqI -asv -aqT -apS -arn -apS -apS -apS -apS -ajw -ajy -ayJ -ayJ -aBi -aqR -aqR -aqR -aqR -aqR -aqR -arP -aLI -aNr -bBo -aJq -aRh -aJq -aJq -aJq -aJq -aJq -aLY -aJq -aJq -aRh -bbV -bfo -bkS -bfo -bgn -bfo -bmn -bfo -boW -bmE -bmE -btz -btz -bwf -btz -btz -btz -bBh -bCr -bAK -bCn -bGq -bGq -bGq -rGq -bLw -bGq -bGq -bGq -bLw -bGq -rGq -bTD -bUx -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bVI -bTA -xgk -bHE -bHE -bHE -bHE -bHE -cmD -cnr -cnU -chD -cpq -cpV -cqw -cqO -crp -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(97,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -aai -aai -abf -aaK -jRw -aaU -acd -acC -ada -adF -aef -aeM -afz -oSl -ail -lRb -vIi -fsj -sXV -xnm -rAR -uCU -and -arS -anq -aiX -aiT -ass -aiT -arP -arP -arP -arP -arP -arP -arP -ajx -axw -ayI -azO -aBh -akL -aDz -aEV -aGg -aHx -aqZ -apg -aLx -aNq -aOD -aPe -aJq -aJq -aJq -aJq -aJq -aJq -aLY -aJq -aJq -bHt -aJq -aJq -beX -aJq -bgm -bjx -bmm -bnM -boV -bnM -bnM -bnM -bnM -bnM -bnM -bnM -bAe -bBg -bCq -bCq -bDt -bGp -bGp -bGp -bES -bGp -bGp -bGp -bGp -bGp -bGp -bES -bTC -bAx -bVI -bWB -bWB -bYz -bYz -cag -cbl -bYz -bWB -bWB -bVI -cax -cbx -cdh -ciU -cjK -ckA -ckA -cmC -cmC -cfJ -chB -cpW -cgR -cgR -cqN -cro -swf -ncF -swf -ykN -ykN -ykN -ykN -ykN -ncF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(98,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aiS -aai -aai -aai -aai -aaI -aat -aat -aat -aat -ace -aat -aat -adH -aei -aeO -afJ -sXV -sXV -sXV -sXV -sXV -sXV -oby -ajX -agj -amL -asp -nbY -aiX -iRj -anz -aov -cCi -apU -ajd -arU -apU -apU -cCi -awg -axy -ayL -azQ -aBk -ayL -ayL -ayL -ayW -ayW -ayW -ayW -aLW -aNs -aJq -aLX -aLX -aLX -aLX -aLX -aJq -aYl -aZN -aYl -aYl -aYl -aYl -aYl -bgG -bid -aYl -bBi -aLY -bnN -boY -bqw -aJq -aJq -aYl -fAj -aLX -aJq -aJq -bBi -aJw -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -bCq -bTF -bAx -bVI -bWD -bXA -bYB -bYz -cai -cSF -ccg -cdd -cea -bVI -caz -cby -cdj -cdv -cem -cem -cem -cfe -cfD -cgv -chE -ciN -ciN -cji -cDZ -crr -utp -utp -utp -swf -ykN -ykN -ykN -ykN -dUG -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(99,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aai -aan -aaw -aaB -qmn -aaJ -aat -abh -aat -acd -abK -acY -adG -aeh -aeO -ado -afq -afH -agY -ahS -aiI -afn -vfX -akD -agj -agj -agj -agj -aiX -ycY -anz -aov -cCi -air -aqY -arT -apU -apU -cCi -awg -axy -ayK -azE -aBj -aBO -aDC -ayL -aGo -aHN -aJj -ayW -aLV -aJq -aOE -aJn -aJn -aJn -aJn -aJs -aJq -aYk -aZM -aZM -bbW -bcX -bcX -aZM -aZM -aZM -bjz -bkT -bjz -bjz -aiV -bqv -bqv -bqv -bqv -bwg -aJw -aJq -aJq -bBi -aJw -ayF -bEU -bGr -bGr -bGr -bKr -ayF -ayF -ayF -ayF -ayF -ayF -bCq -bTE -bAx -bVI -bWC -bXz -bYA -bZn -cah -bWB -ccf -cdc -cdZ -bVI -cay -ccw -ccw -ccw -ccw -ccw -ccw -ccw -ccw -cfL -coH -cBO -cgR -cDB -cqP -crq -utp -utp -utp -jhU -ykN -ykN -ykN -ykN -ncF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(100,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aak -aap -saX -aaD -aau -aat -aat -aat -abA -acd -acd -acd -acd -aek -acp -aav -agO -afI -ahb -ahZ -aiL -lZn -akg -kuh -aly -anP -gyr -okK -xal -aqC -anz -aov -cCi -aqX -arR -asj -iUK -ajr -atY -auo -axy -ayN -azE -aAW -aCa -aDB -aDI -azW -azW -azW -ayW -aLX -aJq -aOE -aJn -ayF -ayF -aJn -aJs -aJq -aYn -aZM -aZu -bbY -bcY -bdX -bbX -bgH -bie -bjB -bkW -bmp -bjz -ajh -bqy -cBr -bqy -buK -tZe -aJw -aJq -aJq -bBi -aJw -ayF -bEW -bGt -bHG -bJh -bEW -ayF -ayF -ayF -ayF -bKv -bLB -bES -bMj -bAx -bVI -bWF -bXC -bXC -bZp -cak -bWB -bWB -bWB -cec -bVI -kNv -ccw -chY -ciX -cjM -ckB -ckB -ckB -ccw -cnY -coH -cgR -cgR -cqx -cgR -crp -utp -utp -utp -swf -ykN -ykN -ykN -ykN -dUG -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(101,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aaj -aao -aax -aaC -aaA -aat -aat -aat -aei -acd -acE -add -adF -aej -aeQ -adp -ahv -afK -aht -aid -aiM -ajz -alz -cZe -alg -plS -dyE -pQr -aou -aqC -anz -aov -ape -arT -aqV -ajf -apU -ajt -cCi -awg -axy -ayM -azs -aAR -aBP -aDA -aEW -aGi -aHB -aEZ -aBt -aJs -aJq -aOE -aJn -ayF -ayF -aJw -aVb -aWH -aYm -aZM -aZq -bbX -bbX -bbX -bfp -aZP -aZP -bjA -cAG -bmo -bmr -boZ -bqx -brU -bmr -bmr -bmr -bmr -byN -aJq -bBj -aJw -ayF -bEV -bGs -cBC -bJg -bKs -ayF -ayF -ayF -ayF -bJQ -bLg -cem -cem -bNg -bVI -bWE -bXB -bYC -bZo -bWB -bWB -cch -cde -ceb -bVI -cay -ccw -chY -ciZ -ciW -ckB -ckB -ckC -ccw -cnX -coH -cps -cpX -cqz -cqR -ccw -utp -utp -utp -jhU -ykN -ykN -ykN -ykN -ncF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(102,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aal -aar -uGI -aaF -aat -aat -aaW -aat -abB -acf -abM -acG -adI -aem -omX -afG -aim -afL -ahu -aie -aiO -afn -xzv -agL -akT -gNE -gLz -rcI -seP -aqC -anz -aov -cCi -tKb -arT -arT -asn -atK -auq -avs -axz -ayP -azU -aBo -aCg -azW -aEX -aEZ -aEZ -aEZ -vbD -aJs -aJq -bJx -aJn -ayF -ayF -aTQ -aVd -aWJ -aYp -aZM -aZz -baI -bda -bda -bca -bgJ -aZP -cNL -bkY -bmo -bnP -bpc -bqA -brW -btB -buM -bwi -bmr -aMm -aJq -vEi -bCs -bCs -bEY -bGu -bHI -bJi -bEY -bCs -bCs -bNI -bNI -bRn -cce -bNI -bNI -bUz -bVI -bWG -bXD -bYz -cSE -bWB -bYz -bYz -cdf -ced -bVI -cay -ccw -ciZ -ciZ -ciZ -ckC -ckC -ckC -ccw -coa -coJ -clJ -clJ -cig -cig -ccw -utp -utp -utp -swf -ykN -ykN -ykN -ykN -dUG -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(103,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aaj -aaq -dyS -aaE -aat -aaN -aaV -rvS -aat -acd -abL -adb -acd -ael -aeO -afF -agj -agj -afn -afn -agj -agj -agM -sAk -akp -akQ -amB -amn -amS -anz -anz -aov -cCi -arT -arT -asl -arT -apU -cCi -awg -axy -ayv -azE -aBn -aCb -aDD -aEY -aGj -aHC -aEZ -aBt -aJs -aJq -aOE -aJn -ayF -ayF -aPR -aVc -aWI -aYo -aZM -aZy -bay -bcZ -bdY -bdF -bgI -aZP -bjC -bkX -bmo -bnO -bpb -bqz -bqq -brS -bsY -bue -bmr -aMn -aJq -bBi -bCs -bDv -bEX -bFb -kfv -bFa -bKt -bLx -bCs -cCe -bRl -apV -bLC -cCf -bNI -bUz -bVI -bWB -bWB -bYz -bZq -cal -cbm -bYz -bWB -bWB -bVI -cay -ccw -ccw -ciY -ciY -ccw -ccw -ccw -ccw -cnZ -coH -cgR -cgR -cig -nEI -ccw -utp -utp -utp -jhU -ykN -ykN -ykN -ykN -ncF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(104,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aal -aat -aat -aat -aat -qXg -jjC -xOx -abD -acd -acd -acd -acd -aen -aeO -ahE -afq -aii -afM -aig -agp -agj -lfV -akl -akM -amm -gyr -anM -rJv -aqC -anz -aox -cCi -cCi -cCi -cCi -cCi -cCi -cCi -awg -axy -ayQ -azE -aBq -aBr -aDE -aFc -azW -azW -aJf -ayW -aJr -aJq -aOE -aJn -ayF -aPR -aPR -aPR -aWL -aPR -aZM -bbX -bay -bbM -bcN -bdK -bgL -aZP -aZP -aZP -bmo -bnR -bpe -bqB -bqq -btD -buO -bwk -bmr -aLY -cBw -bBk -bCs -bDx -bFa -bFa -bHJ -bFa -bFa -bLz -bCs -cCe -bNJ -apV -xhV -gWd -bNI -bUz -bVJ -bWI -bXF -bXF -bZs -cao -cbo -bXF -bXF -cef -bVJ -cay -ccw -cig -cjb -cjb -cig -cig -cmG -cnt -cob -coL -wgZ -cgR -thz -mZO -fpt -utp -jhU -dUG -swf -ykN -ykN -ykN -ykN -dUG -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(105,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aaj -aas -aat -aat -aat -aat -uEI -aat -abC -acd -acH -adc -acd -aeo -aev -aeS -ahw -ajg -afM -akU -afM -lBz -alA -ene -alg -kbm -dyE -cKC -seP -aqC -anR -aow -apg -aqZ -aqZ -aqZ -apW -aqZ -avh -awh -axz -ayO -azE -aBp -aCc -aDF -ayL -aGq -aHO -aJl -ayW -ftE -aJq -aOE -aJn -ayF -aPR -aTR -aVe -aWK -aYq -aZO -aZC -baK -rnt -bbC -bdI -bgK -bgK -bjE -bgK -bmq -bnQ -bpd -bpd -bqr -btC -buN -bwj -bmr -byP -aJq -bBi -bCs -bDw -bEZ -bGv -bHH -bJj -bKu -bLy -bCs -bNJ -bNJ -bKx -cjL -gbq -bNI -bUz -bVJ -bWH -bXE -bYD -bZr -can -cbn -cci -cdg -cee -bVJ -cay -ccw -cia -cSN -cSS -ckD -cTc -cTe -cfG -cgw -abY -fkR -uvd -ccw -ccw -ccw -xJY -gkD -sYC -spz -sYC -sYC -fft -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(106,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aam -aav -aav -aav -aav -aav -aav -aav -abE -acg -acJ -ade -adJ -aep -aeT -ahE -aim -ajL -akj -afM -afM -nss -kQz -alB -akT -gNE -gLz -anB -amR -aqC -anz -aov -aph -aph -aph -arW -aso -auf -avi -awi -axy -ayS -azS -aBs -aCi -aDI -ayL -ayW -ayW -ayW -ayW -aJq -aJq -aOE -aJn -ayF -aPR -aTT -aVg -aWN -aYs -aZQ -bbi -bde -kvL -bcd -bcd -gNC -bcd -bcd -bcd -bms -bnS -ajs -bqC -brZ -btE -bnS -bwl -bxG -byR -bnM -bBl -bCs -bFa -bFa -bFa -bHH -bFa -bFa -bFa -bCs -bNJ -bNJ -apV -cjL -nxv -bNI -bUz -bVJ -bOo -bOD -bQb -bZv -bSd -bXG -bOC -bWt -cBK -bVJ -cay -ccw -cid -cSO -cen -ckG -clJ -cmF -cgR -cgI -hsZ -eon -bHg -bHg -bHg -lgA -gDB -hOI -qmG -uqX -oEe -tcF -uSL -fft -ccw -ccw -ccw -ccw -ccw -ccw -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(107,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aai -wYc -wYc -aaG -wYc -aaP -aaX -keM -xib -acd -acD -acY -adG -aeq -aeV -agj -agj -agj -tHh -ahG -ajY -fxx -ako -ene -amj -akQ -amB -amn -amS -anz -anz -aov -aph -aob -ara -arV -apZ -aph -aph -awg -axA -ayR -azR -aBr -azW -afO -azW -agm -aBt -ayF -aJn -aLY -aLY -aOF -aPR -aPR -aPR -aTS -aVf -aWM -aYr -aZP -bbh -bcc -bdd -cVs -bfr -bgM -bif -aZM -aZM -bmr -bmr -bmr -bmr -bmr -bmr -bmr -bmr -bmr -byQ -aJq -bBi -bCs -bFa -bFa -bGw -bER -bJk -bFa -bLA -bCs -cCd -bQc -bKA -rKP -bSv -bNI -bUB -bVJ -bOl -bOC -bPQ -bQK -bYF -bTI -bUy -bWs -ceg -bVJ -cay -ccw -cic -cSP -cST -cTa -ceZ -clQ -cgR -vOF -hSh -ssh -wKZ -wKZ -wKZ -wKZ -qGd -wKZ -wKZ -kjm -wKZ -mdG -tcF -vOF -fAX -hVs -iWD -hVs -fPM -ccw -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(108,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aai -aai -aai -aai -aai -aai -aai -abj -abF -acd -acd -acd -acd -aeP -afC -agk -cOV -agP -ajJ -agT -all -all -aku -akl -amk -amm -gyr -mos -rJv -aqC -anz -aov -aph -aoc -ata -arY -ata -auh -aph -awg -axA -ayT -azR -azW -azW -aBt -azW -aio -aBt -ayF -aJn -aJq -aJq -aOE -aPT -aRj -aSv -aTV -aVi -aWP -aYu -aYt -bbk -bbk -bfu -bbk -bfs -rTu -aZM -aZM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -fxV -aXf -aJq -bBi -bCs -bAM -bFa -bGy -bFc -bJm -bFa -bHO -bCs -cCd -cCd -aYg -cjL -cCc -bNI -bEP -bVJ -bVJ -bOM -bQd -bQP -bSt -bUc -bVb -bWv -cei -bVJ -cay -ccw -cif -cSQ -cSU -cTb -cTd -ckF -ckF -qiK -cQU -wKZ -uut -cVt -cVt -svN -vHx -rjH -fJs -nyb -rBP -foo -sZN -tAR -oRG -oRG -mHl -hVs -hVs -ccw -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(109,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -aai -abi -eqA -ach -acK -adf -acd -aer -afB -agi -eWL -afN -ajK -aiH -akF -aiy -akv -uXt -alg -pAK -dyE -anQ -seP -aqC -anz -aov -api -ata -arb -arX -atc -aug -aph -awg -axA -azW -ayU -azW -aCj -ayW -ayW -ayW -ayW -aJn -aJn -aJq -aJq -aOE -aPS -aRi -aSu -aTU -cpC -aWO -aYt -aYx -bbj -bce -bdf -beb -aYv -cUx -fcn -ayF -ayF -ayF -ayF -ayF -fxV -fxV -fxV -fxV -fxV -fxV -aXf -aJq -byU -bCs -bAL -bFa -bGx -bET -bJl -bHh -bHN -bCs -cjo -cCd -bSx -cjL -cCb -bNI -bEP -bLu -bVJ -bVJ -bVJ -bVJ -bVJ -bVJ -bUC -bWu -bVJ -bVJ -cay -ccw -cie -cdT -cCY -cnA -cev -cfg -cgU -osB -kZE -wKZ -tRi -lHe -xEC -vnu -oNQ -lBy -oNQ -vnu -oZv -iVJ -glC -jrl -peI -kXA -ciZ -ciZ -cMp -ccw -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(110,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -aiS -aai -aai -aai -aai -aai -aai -aai -aaZ -aaZ -aiX -aiX -afS -ahx -aiX -aiQ -xUX -akx -uTe -akT -amx -any -arD -amR -aqC -anz -aov -aph -aqb -are -arZ -ata -aui -aph -awg -axA -ayX -azY -azW -azW -afP -aFb -aEZ -cyg -aJp -aKE -aMa -aNw -aOE -aPU -aRl -aSx -aTX -aVi -aWR -aYv -aZS -aZR -aZR -bbm -bec -bfu -vBa -aBa -aBa -aBa -aBa -aBa -aBa -fxV -bsb -yhz -ouQ -cQT -nbT -aXf -aJq -bBi -bCs -bFa -bFa -bFa -bET -bJn -bHi -bHQ -bCs -cjo -bJu -bSx -cmX -bSz -bNI -bUD -bVM -bVM -bVM -bVM -bVM -cat -bCq -bVd -bWK -bYp -bCq -cay -ccw -cig -cSR -cSV -cig -cig -cTf -cgR -ccw -spl -sXl -eHa -tOn -xEC -bkZ -qBq -sTo -vwZ -bkZ -cOz -jXN -dIt -uvd -ciZ -cxm -jTJ -kLz -ciZ -ccw -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(111,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -aAu -ayF -abx -aaZ -aeF -ack -agJ -acT -adK -aew -afT -ahy -aij -aiR -ajc -akz -ene -als -akQ -amB -amn -amS -aqD -anz -aov -aph -cIv -ard -ard -ard -aph -aph -awj -axA -ayW -ayW -aBt -aBt -ayW -ayW -ayW -ayW -aJo -aJq -aLZ -aNv -aOE -aPS -aRk -aSw -aTW -aVj -aWQ -aYv -aZR -aZR -aZR -aZR -aZR -bft -psk -aBa -aBT -aDs -aEN -aGb -aBa -bqD -bsa -vCn -dzQ -bsa -nbT -byS -aJq -wTf -bCs -bCs -bCs -bCs -bFe -bCs -bLD -bCs -bCs -bNI -bNI -bKU -cnB -bNI -bNI -bCq -bCq -bCq -bCq -bCq -bCq -cas -bCq -bVc -bWJ -bYn -bZB -caC -ccw -cSM -cjd -cSW -ckI -clJ -cmL -cBO -ccw -hAe -wKZ -ePU -pPv -bkZ -kJc -snF -snF -rgx -bkZ -dlO -gAi -dIt -ccw -ePe -hVs -hVs -hVs -hVs -ccw -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(112,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -aAu -ayF -abG -aaZ -aeW -acl -agJ -adg -adL -adL -ago -ahz -aim -aiW -ajc -akz -ene -alg -alt -amp -aot -apR -aqE -anz -old -apk -anw -anw -anw -anw -aVh -avj -awl -axC -ayY -cpF -azZ -azZ -azZ -azZ -aGt -aHQ -aJr -aJq -aMc -aNy -aOE -aPS -aRn -aSz -aTY -aVl -aWT -aYx -aZR -bbm -bbm -bdh -bee -bfv -xUL -aBb -gpD -aDr -cJW -aGa -aHF -bqF -buQ -buQ -pzk -buQ -bxI -bwa -bAg -bBq -bCu -bAO -bFd -bFd -bFj -bJp -bHk -bHR -bIe -bFd -bJz -bRp -cav -bSA -bTJ -bSA -bSA -bWL -bSA -bSA -bZx -bSR -bUl -bVf -bXm -bYE -bCq -bHE -ccw -cij -cjf -cSX -ckK -clJ -cmL -cgR -fkR -sVb -lIY -oYj -taY -deE -voa -vAi -vAi -vAi -bkZ -hid -lLa -gGH -uvd -tGG -hVs -hVs -pPs -hVs -ccw -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(113,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -aBD -ayF -abG -aaZ -aeX -acm -agK -aaZ -aaZ -aex -agt -aaZ -aaZ -aaZ -fsa -akz -itD -alg -vyK -amI -alg -alv -aqE -anS -aoy -apj -anz -anz -anz -anz -anz -anz -awk -axB -anz -anz -anz -anz -anz -anz -apj -aHP -aJq -aJq -aMb -aNx -aOE -aPS -aRm -aSy -aTX -aVk -aWS -aYw -aZT -cBj -bcf -bdg -bed -bfv -tyX -pst -cTT -alu -aEM -aGd -uOJ -bqE -bqE -bqE -bqE -bqE -knx -bvW -bAf -bBp -aHP -bAN -bQg -bQg -bFh -bGN -bHj -bNN -bNN -bNN -bNN -bNN -cau -cBH -bMG -bLZ -bLZ -bLZ -bLZ -bLZ -bQQ -bSw -cbr -bVe -bXk -bYq -bCq -ceW -ccw -cdk -cMC -cSY -ckI -clJ -cmL -cnv -uvd -sCS -wKZ -sPm -rOg -pBd -fUP -pBd -vEc -pBd -vob -gCd -wAh -wAh -uvd -uBP -hVs -uBP -iPp -hVs -ccw -ayF -oDb -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(114,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -aAu -ayF -abG -aaZ -aeY -acn -agR -agW -ahA -aeE -agz -ahW -ain -aiZ -jyO -ajC -akC -akX -alw -amJ -aoY -rCl -aqE -anz -aoz -apm -aqd -anA -asa -atd -anA -avk -awk -axE -ayZ -pHO -aBu -aAa -aAa -aAa -aGu -aHR -aJt -aJq -aMe -aNA -aOE -aPV -aRp -aSB -aTZ -aVn -aWV -aYz -aZR -bbm -bbm -bdh -bef -bfv -gTx -aBc -xEB -aDt -aEO -aGc -vOU -rTD -dml -dml -oNz -dml -bxK -bwh -bAh -bBs -bzG -bAP -bCp -bDp -bFq -bGO -bHl -bHS -bLI -apI -bQg -bQg -bQg -bQg -bQg -bQg -bQg -bQg -bQg -bYI -bDG -bHP -cbt -bVh -bXo -bYM -cfb -cfb -cfb -cfb -cfb -cfb -cfb -ccw -cmN -cgR -fkR -viD -lIY -nRl -mKq -fpW -dSI -fxZ -fxZ -fxZ -bkZ -wLY -gJm -qzA -uvd -hVs -hVs -hVs -vxV -hVs -ccw -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(115,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aAu -ayF -abG -aaZ -aeZ -aco -agS -aho -ahX -afb -agH -agH -aip -aja -xTe -akz -alg -agn -agn -amN -aoZ -apT -anw -anz -cXU -apl -aqc -aqc -aqc -aqc -aqc -aqc -awm -axD -ahn -ahn -ahn -ahn -ahn -ahn -ahn -ahn -aJs -aJq -aMd -aNz -aOE -aPS -aRo -aSA -aTX -aVm -aWU -aYy -aZR -aZR -aZR -aZR -aZR -bfw -wZI -aBa -aBW -bjy -aEP -nYe -aBa -bqG -bsa -eih -pQN -bsa -nbT -bwb -aJq -bBr -bCv -bCv -bCv -bCv -bCv -bJq -bKw -bLH -bQf -bNO -bQg -bQf -bQt -bTK -bTK -bVU -bUE -bWM -bXJ -bMK -bMK -bYH -bYH -bVg -bXn -bYG -cfb -cfF -cfb -cik -cjg -cjU -cfb -clM -cfz -cgR -ccw -owT -wKZ -rEB -bkZ -oXJ -roP -oYS -oYS -fxS -bkZ -dlO -gAi -dIt -ccw -ePe -hVs -hVs -hVs -hVs -ccw -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(116,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aBD -ayF -abG -aaZ -afc -aco -agU -ahp -ahY -afd -afd -ahB -aiq -ajb -mml -ajF -akN -akY -alE -amU -apH -apX -aqC -anz -gfC -aod -aqf -ahT -ahT -ahT -ahT -ahT -awn -axF -anF -anF -anF -anF -anF -anF -anF -aoa -aJu -aKF -aMf -aNB -aOE -aPW -aRr -aSD -ceh -aVp -aWX -aYB -aZU -aZR -aZR -bbm -beh -bfx -qcm -aBa -aBa -aBa -aBa -aBa -aBa -wql -bsg -yhz -ouQ -fTC -nbT -aJq -aJq -bBu -bCv -bAT -bDL -bDq -bCv -bJs -bKy -bLK -bLK -bML -bOT -bQi -bRs -bSC -bUO -bUG -bVO -bWO -bXK -bLK -bZz -caw -bYH -bVo -bXq -bZe -cfb -cfH -cSL -cim -cim -ceo -cfb -cfa -cje -cgR -ccw -owT -fJZ -fPU -lHk -uzi -bkZ -qeF -naN -xrc -bkZ -lpA -xuz -dIt -uvd -ciZ -wbd -kVO -hLJ -ciZ -ccw -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(117,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -adR -abo -adR -adR -adR -abI -acM -adh -adM -afe -agI -ahQ -ait -aje -eFx -alj -afM -akZ -alM -amV -apc -aqr -aqC -anT -aoA -apn -aqe -arf -arf -arf -arf -arf -arf -arf -arf -arf -dgz -dgz -dgz -dgz -dgz -dgz -aJn -aJn -aJq -aJq -aOE -aPS -aRq -aSC -aUa -aVo -aWW -aYA -aYz -bbn -bcg -aZU -beg -aYB -qOB -qBi -ayF -ayF -ayF -ayF -ayF -fxV -fxV -fxV -fxV -fxV -fxV -aJq -aJq -bBt -bCv -bDH -bFf -bGB -bCv -bJs -bKy -bLJ -agd -bNP -bOS -bQh -bRr -bSB -bTL -bUF -bVN -bWN -bXM -bYJ -bRi -bZy -cbu -bVm -bXp -bYO -cfc -cgO -ccj -cBM -cdU -cSZ -ckL -cmF -cje -cgR -uvd -oxl -gAi -fPU -lHk -uzi -vnu -mDB -pRx -mDB -vnu -gIy -gAi -izw -jrl -peI -gBa -ciZ -ciZ -cMp -ccw -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(118,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -adR -aaY -abJ -abR -adR -acq -ahX -adi -adP -ahK -ahK -ahR -aiv -adg -xSW -ajI -alC -ala -alN -amW -apv -aqt -aqF -anz -aoB -aod -aqe -arf -aqa -atf -arf -aqa -atf -arf -aqa -atf -dgz -tqg -ujF -ujF -ujF -dgz -ayF -aJn -aJq -aJq -aOE -aPX -aRs -aSE -aUc -aVm -aWY -aYC -aYA -bbp -bbp -bfx -bbp -bfz -sqp -aZV -aZV -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -fxV -aJq -aJq -aXf -bCv -bDK -bFi -bGE -bCv -bJs -bKy -bLM -alk -bNQ -bOV -bQk -bRt -bSD -bTM -bUH -bVQ -bVZ -bXM -bLK -cew -bTh -cdt -bVq -bXI -bZg -bZD -cbq -ccl -cdm -cio -cjY -ceq -clQ -cje -cgR -uvd -oxl -gAi -daY -rGC -rGC -kOV -xol -etE -dDc -pSn -uml -uRx -sra -uvd -hVs -sTI -iaZ -hVs -hVs -ccw -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(119,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -abo -abk -abk -abk -adR -agq -agV -aaZ -aaZ -agX -aih -aaZ -aaZ -aaZ -xGQ -ajN -amc -alo -alY -ans -ary -agn -anA -anz -gfC -aod -aqe -arf -apY -ate -arf -apY -ath -arf -apY -ath -dgz -fvY -dvc -dzi -vsM -dgz -ayF -aJn -aLY -aLY -aOG -aPR -aPR -aPR -aUb -aVq -aWM -aYr -aZV -bbo -bch -bdi -bbw -bfy -bgS -bik -aZV -aZV -bmx -bmx -bmx -bqH -bsh -bsh -bsh -bsh -bqH -aJq -aJq -gnf -bCv -bDJ -bCt -bGD -bCv -bJs -bKy -bLL -bOd -bNQ -bOU -bTO -bRr -bSE -bTN -gfJ -bVP -bWP -bXL -bLK -bRj -bTg -bUm -bVp -bXH -bUm -bZC -cbp -cck -cin -cjj -cjX -ckO -ckH -cja -cny -ccw -jqS -lfB -hNw -wKZ -wKZ -wKZ -vUs -wKZ -wKZ -uge -wKZ -mqh -tQY -ccw -dSF -vLM -sAQ -hVs -gAE -ccw -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(120,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -adR -abO -wlI -abO -abV -ags -ags -adj -afQ -afr -akc -aik -akh -adR -esL -aiG -amf -anr -aqN -arC -asq -agn -anA -anz -aoD -aod -aqe -arf -aqn -ath -arf -auw -ath -arf -ayV -ath -dgz -aCd -qIw -gfD -woR -dgz -aJw -aJw -aMh -aJq -aOE -aJn -ayF -aPR -aUe -aVs -aXa -aYD -aZX -baf -bdk -mRQ -bek -bfB -bgU -bdk -bjF -blc -bmz -bnY -bpk -bqJ -bsj -btI -btd -bwr -bqH -aMm -aJq -bBv -cBy -bDM -bCw -bDr -bCy -bGP -bHn -bLN -alX -bNS -bOX -bQm -bRv -cGG -glY -bTP -bVX -bWQ -bWQ -bWQ -bRm -bTj -caA -cer -ccs -bZu -cfb -cfb -cgS -ciq -cfb -cfb -cfb -clR -cgR -cgR -uvd -fqD -jsT -xfY -xaS -fHs -dhT -gcj -fHs -fHs -gcj -wun -rvC -jfm -tPe -tPe -okG -ccw -ccw -ccw -ccw -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(121,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -abo -abO -abO -abO -abO -abO -abO -adk -abo -afD -afU -aju -aki -akk -akq -lwN -amq -agn -amb -ant -agn -agn -anA -anz -aoC -aod -aqe -arf -asd -atg -arf -asd -awo -arf -asd -aAb -dgz -iVU -aDK -vHj -eVC -dgz -aJv -khV -aMg -bHt -aOE -aJn -ayF -aPR -aUd -aVr -aWZ -aYq -aZW -aZG -bej -bdj -bej -bfA -bgT -bil -bej -blb -bmy -bnX -bpj -bqI -bsi -btH -btc -bwq -bqH -aJq -aJq -aXf -bCv -bAU -cAL -bFg -bFs -bJt -bKy -bLK -bMK -bNR -bOW -bQl -bRu -iYC -rca -bUI -bVR -bWQ -bOO -bQe -bRk -bTi -caA -bVr -bXN -bZt -bZE -cbs -cCT -cdn -cej -cep -ces -clN -ccm -ckF -ckF -tlu -wlf -rUG -ccw -ccw -ccw -lzX -hVs -hVs -kNt -wIY -wjz -iGX -iJM -kbT -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(122,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -adR -abl -abN -abN -abN -abN -acO -adl -aet -agy -aha -aah -afo -adR -agD -agF -gyr -alq -amd -anu -asb -agn -aqH -anz -aoF -apo -aqh -arh -asg -atj -aul -auR -atj -mps -tKk -atj -aAX -azc -atj -aFe -aul -aHT -aJy -aJy -aMj -aJq -aOE -aJn -ayF -aPR -aPR -aPR -aXc -aPR -aZV -baq -baQ -wcB -bcQ -bfC -bgV -bim -bjG -aZV -bmB -bnZ -bpl -bqH -bsl -btK -buW -bwt -bqH -aLY -aLY -bBx -bCv -apG -bFk -bDs -bCv -bJs -bHo -bLK -bMK -bMK -bOY -bQn -bRx -bMK -bUP -bUJ -bVS -bWQ -bXP -cBI -bRS -bTH -caA -bWh -cdt -bZA -cfh -cfM -cco -cdp -cel -cyM -ckT -cgU -cco -cgU -cgU -cis -cjN -wAN -cgR -uvd -hVs -ulB -cXi -cXi -rEJ -hVs -hhc -ccw -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(123,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -abo -abm -abP -abS -abS -abS -acP -adm -afR -agx -agZ -ahI -aiw -adR -vIo -ake -ame -aaQ -amg -anv -apQ -agn -anA -anz -aoE -aod -aqg -aun -asf -ati -auk -aux -avt -axL -bbl -azT -nZE -ker -aDG -aFd -auk -aHH -aJg -aKo -aLO -aJq -aOE -aJn -ayF -ayF -aPR -aVt -aXb -aYo -aZV -bao -baP -asD -bcP -cBo -bgS -bbw -bbw -aZV -bmA -bmx -bmx -bqH -bsk -btJ -buV -bws -bqH -aJq -aJq -byW -bCv -bAV -bCv -bCv -bCv -bJs -bKz -bLK -bQr -bNT -bOV -bQo -bRw -bSF -daI -bTP -bRA -bWQ -bXO -bQq -bRo -bTG -caA -bVK -bYb -bZw -cap -ctR -ccn -cdo -cek -ccw -cet -cfd -cfB -cfI -cgQ -cjS -cjN -wAN -cgR -twn -sAQ -jIb -qXZ -dVX -dVX -hVs -hVs -ccw -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(124,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -adR -abn -abH -abn -abn -abn -adR -adR -adR -agA -afU -ahF -aiz -adR -akf -akJ -yhx -agn -agn -agn -agn -agn -anC -anU -anC -cSA -aqe -arf -arf -arf -arf -arf -ltK -xAv -awr -awr -ruo -aAh -aAh -aAh -aAh -aAh -aAh -aAh -aLR -aJq -aOE -aJn -ayF -ayF -aTQ -aVd -aXe -aYp -aZV -bbv -bcm -bcm -bem -bfD -bgW -bfD -bjI -aZV -bmC -boa -bpm -bqH -bsn -btL -buY -buY -bqH -ftE -aJq -aXf -bCv -bDP -bCv -bAw -bHV -bJw -bKC -bLK -bMN -bNV -bOV -bQo -bRw -bSF -daI -bVW -bVY -bWQ -bWQ -bWQ -bWQ -caD -bWQ -ccw -ccw -cey -ccw -ccw -ccw -ccw -ccw -ccw -ccw -ccw -ccw -ccw -ccw -cDl -cjN -hGf -iXc -ccw -ccw -ccw -ccw -ccw -uvd -uvd -uvd -ccw -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(125,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -abq -abq -abq -abT -abW -abq -abq -aff -aeU -ajA -akd -adB -agl -uHp -agQ -agN -akw -alb -alG -amr -amY -amY -ajp -ajp -aoG -cSA -aqe -arf -aqo -atm -fPL -arf -avv -awu -awr -aAd -tkq -aAh -aDL -aAh -aGk -aAh -aJz -aAh -aLQ -aJq -aOE -aJn -ayF -ayF -aJw -aVu -aXd -aYE -aZV -bbu -bbw -bbw -bbw -bbw -bbw -bbw -bjH -aZV -bmx -bmx -bmx -bqH -bsm -btL -buX -buX -bqH -aJq -aJq -bBy -bzs -bDO -bFl -bGH -bHU -bJv -bKB -bLK -bMM -bNV -bOQ -bQj -bRy -cfN -bUQ -bUK -bVT -bWR -bXQ -cfN -bZF -bXT -bYK -ccv -cdw -cex -caG -cfN -cbF -bLQ -cdx -bOh -bOh -bOh -bOh -bOh -ccw -cDm -cjP -ckF -cDJ -ckF -cpE -cjR -crW -csg -crk -crk -crk -ayF -ayF -ayF -ayF -azl -azl -azl -aAu -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(126,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -abq -adN -aeu -aez -aci -acs -acR -afh -afV -agB -ahd -ahI -akO -abp -ajj -ajP -aky -alc -alI -ams -amZ -amZ -cqQ -anW -aoH -cSA -aqe -arf -asm -atm -blU -avg -awp -axN -awr -awr -haM -aAh -aDQ -aAh -aGl -aAh -aBy -aAh -rqf -aJq -aOE -aJn -ayF -ayF -aJn -aVv -aXg -aYF -aZV -nZL -bcn -tgH -ben -bfE -bgX -bbw -bjJ -bld -bmD -cTD -bmD -bqK -bso -btN -buZ -buZ -bqH -byN -aJq -bBA -bCz -bDQ -bFn -bGJ -bHX -bJy -bKE -bLP -bMP -bIG -bJB -bKV -bRB -bSI -bUS -bUM -bVV -bVV -bVV -bWT -bZG -caE -cbA -ccy -bZH -bZI -bQu -bOd -cgW -cit -axs -ckb -ckV -clU -clU -bOh -ccw -coZ -cgU -cgU -cDK -crw -cjO -ccw -crX -cfK -ayF -ayF -crk -ayF -ayF -ayF -ayF -aAu -aAu -aAu -aAu -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(127,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aaL -adO -acr -acQ -adn -agw -abq -afg -afU -afU -ahc -ahH -akR -abp -aji -ajO -akw -ajn -alH -amr -amY -amY -ajp -anV -ajo -cSA -aqe -arf -ari -asu -mPk -aun -avR -xAv -ofU -awr -sFW -aAh -aDM -aGx -aDM -aDM -aDM -aAh -aMm -aJq -aOE -aJn -aJn -aJn -aJn -aJs -aXf -aYk -aZV -aZV -aZV -aZV -aZV -aZV -aZV -aZV -aZV -aZV -bmx -bmx -bmx -bqH -bqH -btM -bqH -bqH -bqH -aJq -bHt -bBz -bzs -bzs -bFm -bGI -bHW -cBD -bKD -bLO -bMO -bIF -bOZ -bQp -bRA -bTP -bOd -bOd -bOd -bOd -bOd -bXS -bOd -bXU -cbA -ccy -bZH -bZI -cfi -bOd -cgV -bMQ -crk -bQA -ckU -clT -cmU -bOh -ccw -cpa -cjc -cqo -cDL -cjk -cjm -ccw -ccw -cig -ayF -ayF -crk -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aAu -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(128,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aaM -abr -abQ -abU -acj -acv -dJL -afj -afX -agC -ahf -aks -akS -abp -ajl -ajR -akw -ald -alJ -amt -ajp -ajp -ajp -anY -ajo -apq -aqe -arf -arf -arf -arf -arf -ltK -axP -azb -aAi -uIO -aCn -xBk -dtx -aGm -aHV -aDM -hIM -aJq -aJq -aJq -aJr -aJr -aJr -aJr -aJr -aXh -aYG -aZY -aYG -aYG -bdn -bep -aYG -aYG -aYG -aYG -ble -bmE -bmE -bpn -bqL -bsp -btO -bva -bwu -bwu -bwu -kPj -bBB -eBX -bzs -bFp -bGJ -bHX -bJA -bKG -bLK -bMR -bIH -bJF -bRy -bTQ -ecE -bOd -bOd -bOd -bOd -bOd -bXS -bOd -bOd -bOd -bOd -bOd -bOd -bOd -cfQ -cgY -ciu -aAg -ckb -ckW -clU -clU -bOh -ccw -ccw -cpI -ccw -cDL -cjl -cjQ -cjV -cig -ayF -ayF -ayF -crk -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aAu -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(129,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aaO -adQ -act -acu -acu -acF -abq -afi -afW -afW -ahe -ahJ -ais -abp -ajk -ajQ -akw -ajn -alH -amr -amY -amY -ajp -anX -ajo -app -aqi -arf -ask -atm -fPL -arf -awq -axO -aza -kmw -xrN -aAh -aAh -aAh -aAh -aAh -aDN -aAh -aMo -aNC -aJq -aJq -aJq -aJq -aJq -aJq -aJq -aJq -aLY -aJq -bco -aJq -beo -aJq -aJq -aJq -aJq -aJq -aJq -aJq -aJq -aLY -aJq -bAk -aJq -aJq -aJq -aJq -bAj -aJq -aKG -bzs -bFo -bDu -bFt -bGQ -bHp -bLK -bMQ -bNY -bPa -bYN -bRC -bSK -bOd -bOd -bOd -bOd -bOd -bXS -bOd -bOd -bOd -bOd -bOd -bOd -bOd -apa -cgX -apF -crk -bOh -bOh -bOh -bOh -bOh -cig -cpb -ciZ -cqp -cDN -cjT -cgR -crP -cig -ayF -ayF -ayF -crk -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aAM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(130,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -abq -aes -aey -aeD -afs -acL -acS -afk -afZ -agE -ahh -ahM -aiC -abp -aiY -ajE -ajH -akn -ale -alD -ana -ana -fMp -amu -ajo -aps -aqk -arf -aqo -atm -aHw -avn -awv -axX -aze -awr -flE -aAh -aDU -aBz -aBz -aAh -dTI -ujv -aJq -aJq -aJq -aJq -aRt -aJq -aJq -aJq -aJq -aJq -aLY -aJq -bcp -aJq -beq -aJq -bgY -aJq -aJq -aJq -bAi -bmS -bmS -bpC -bqN -aNr -aJq -aJq -bxL -byX -aXh -bmE -bCA -bzs -bCC -bDA -bFx -bGW -bKI -bLQ -bMT -bOb -bPd -cBF -bRD -bSK -bOd -bOd -bOd -bOd -bOd -bXS -bOd -bOd -bOd -cBJ -bOd -bOd -bOd -bOd -cha -civ -axs -ckb -ckY -clW -clW -bOh -cig -cig -czg -cig -cDN -crh -crA -crR -crY -azj -crk -ayF -crk -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aAu -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(131,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -abq -abq -abq -abq -abq -abq -abq -afg -afY -afY -ahg -ahL -aiu -abp -ajm -ajS -ajn -ajT -akA -amr -amY -amY -ajp -anV -ajo -apr -aqj -arf -ark -asu -xPk -aun -awt -awr -awr -azX -aAZ -aCe -aDT -cPn -cPn -mkO -uQS -aAh -aJC -aJC -aJC -aQg -bYP -aJC -aQg -aJC -aJC -aQg -aJC -aJC -aHP -aHP -aHP -bfF -bfF -bfF -bfF -bfF -bfF -bfF -bfF -bfF -bqM -brV -bof -bwv -bvj -bvj -bvj -bvj -bvj -bvj -bCB -bCP -bvj -bvd -bKH -bLK -bMS -cfQ -bPc -bQs -bTR -bSJ -bOd -bOd -bOd -bOd -bOd -bXR -bOd -bOd -bOd -bOd -bOd -bOd -bOd -bOd -cgZ -bSK -crk -bQA -ckX -clV -cmV -bOh -cig -crk -nVR -crk -cDN -cqY -cqY -cqY -cig -crk -azn -ayF -crk -ayF -ayF -ayF -ayF -ayF -ayF -ayF -dIH -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(132,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -abo -aeB -afm -agb -agG -ahi -ahN -aix -abp -ajp -ajU -ajn -trb -ajn -amr -ajp -ajp -ajp -ajp -ajo -apt -aqm -arf -arf -arf -arf -arf -awz -awr -awr -avG -aBA -aAh -aDP -aBx -aBx -aAh -qqs -sYR -aMq -adq -aQb -aPZ -aRu -kAH -aKR -tCa -aXi -hgO -baa -aJC -bcq -bcq -bcq -bfF -bha -bio -bgF -blf -bmF -bob -bnB -bfF -bqR -brX -bof -bwx -bvj -bwB -bxa -byZ -bzI -bAX -bCF -bDB -bFB -bvd -bKJ -bLR -bMV -bTP -bOR -bQv -bRF -bSM -bTS -bOd -bOd -bOd -bOd -bOd -bOd -bOd -bOd -bOd -bOd -bOd -bOd -cbD -chb -wzX -aAg -ckb -ckZ -clW -clW -bOh -cig -ayF -ayF -ayF -cDN -ayF -ayF -ayF -ayF -ayF -azP -ayF -crk -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(133,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -abo -aeA -afl -aga -abp -ahj -abp -xJW -abp -ajo -ajo -ajo -ajo -ajo -ajo -ajo -ajo -ajo -aoa -ajo -apt -aql -pRW -pRW -pRW -pRW -avw -awy -nfw -nfw -vaW -wqF -aAh -aAh -aAh -aAh -aAh -aAh -aAh -aKR -aKR -fxe -aPY -kAO -aRx -aKR -iTU -pqe -aPY -aZZ -aQg -aYV -aYV -aYV -bfF -bgZ -bin -bin -bjK -bkK -bkK -bkK -bpD -bqO -bLX -btf -bui -bvi -bww -bwZ -byY -bzH -bAW -bCE -bFv -bFz -bvd -bKH -bLK -bMU -bOc -bPe -bTP -bRE -bUL -cfT -bOd -bOd -bOd -bOd -bOd -bOd -bOd -bOd -bOd -bOd -bOd -bOd -cfP -ccz -bSJ -crk -bOh -bOh -bOh -bOh -bOh -ccw -ayF -ayF -ayF -cDL -ayF -ayF -ayF -ayF -ayF -azV -ayF -crk -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aAM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(134,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -asX -abp -abp -adR -abp -lJC -agj -adR -ahl -uHp -aic -ahT -ahT -ahT -ahT -ahT -ahT -ahT -alL -ahT -anb -ahT -ydM -anZ -apu -arf -arf -arf -arf -arf -awA -axT -axW -aAl -cHf -aJC -aDR -aFl -kqI -aHZ -aJC -aKJ -hIL -aKR -wxT -moD -aQd -aQa -aKR -elh -wxT -uBa -bac -aJC -aYV -aYV -aYV -bfF -bhc -bip -bgP -bjL -bkL -bmT -bnD -bpM -bqT -bFD -bJG -bJG -bvl -bwE -bxc -bzb -bzK -bBb -cpG -bDC -bId -bvd -bKH -bLK -bMX -bTP -bPg -bQx -bRF -bSM -bTU -bOd -bOd -bOd -bOd -bOd -bOd -bOd -bOd -bOd -bMZ -bTS -caH -cbE -chd -bQy -axv -ckc -clb -clY -clZ -bOh -ayF -ayF -ayF -ayF -awX -ayF -ayF -ayF -ayF -ayF -azV -ayF -crk -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aAu -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(135,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -crk -acU -adr -sXy -aeC -anF -agc -abp -ahk -aoJ -aib -aif -aif -aif -aif -aif -fpz -bkV -jKP -alK -aif -anc -anc -anD -aoI -arf -eSe -asN -aur -avy -nSt -axS -azk -aAk -tvi -aJC -aDY -aDY -kqI -aKR -aJk -aKR -aKR -aKR -aKR -aKR -aKR -aKR -aKR -aKR -aKR -aKR -bab -aJC -ucq -aYV -ber -bfF -bhb -bip -bjO -bip -bmG -bip -bnC -bpF -bqS -brY -bwz -bwy -bvj -bza -bxb -bvh -bCD -bAY -bCH -bDR -bIc -bvd -bKH -bLK -bMW -bOe -bPf -bQw -bRG -bSN -bPg -bTS -bTS -cCE -bWa -bTS -bTS -bTS -bYL -bTS -cdB -caF -cbB -cfT -chc -bMQ -crk -bQA -cla -cBP -cmW -bOh -ayF -ayF -axR -ayF -awX -ayF -ayF -ayF -ayF -ayF -azV -ayF -crk -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBD -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(136,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -crk -abp -abp -abp -abp -mxn -abp -abp -ahn -ahn -ahn -uhm -ahn -aiA -ahn -grc -anE -aod -ahn -apx -ahn -ahn -ahn -ahn -ahn -arf -oAB -eQb -aut -arf -aXF -awr -awr -aAn -rqk -aJC -aEc -aFk -aGw -aKR -aJC -aKr -aKR -aKR -sLj -sLj -vcN -aKR -aKR -aKR -sLj -aKR -aKR -bbx -aYV -aYV -tkB -bfF -bhd -bis -bjR -bis -bmI -bod -bpt -bfF -bqV -bEe -bBL -bwA -bvj -bAl -bAl -bvh -bzS -bBc -bCJ -gZG -cCp -bvd -bKH -bLK -bMZ -bOg -bPi -bQz -bRJ -bUN -bTV -bUT -bWc -bWU -bXV -bYT -bZK -cfT -cbG -ccA -cdC -ceB -cbC -cez -chf -cix -axv -ckd -clc -clZ -clZ -bOh -ayF -ayF -ayF -ayF -awX -ayF -ayF -ayF -ayF -ayF -azP -ayF -crk -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aAu -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(137,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -abp -crk -nVR -crk -abp -aBM -ayF -ahn -nQi -ahn -uei -ahn -grc -anE -aod -aoK -oyX -aqp -ahn -tzQ -pgf -gzf -eQb -eQb -eQb -lUS -aun -avz -awr -awr -aAn -jGW -aJC -aJC -plC -oAb -aJC -aJC -aKq -aKR -aNF -hOv -oax -oxm -aSH -aKR -rmN -eJa -hSZ -aKR -aQg -aYV -aYV -bes -bfF -bfF -bir -bjQ -blh -bfF -bfF -bfF -bfF -bqU -bsq -bvj -bvj -bvj -bvj -bvj -bvj -bvj -bvd -bFu -jex -bvj -bvd -bKH -bLK -bMY -bOf -bPh -bQy -bRI -ceA -bPh -bQy -bRI -cCF -bPh -bQy -bRI -bQy -bPh -bQy -bRI -ceA -bVO -bLK -che -bLK -crk -bOh -bOh -bOh -bOh -bOh -ayF -ayF -ayF -ayF -awX -ayF -ayF -ayF -ayF -ayF -azV -ayF -crk -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aAu -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(138,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -bBR -ayF -ayF -ayF -adR -aBM -ayF -ahn -ahn -ahn -tAH -ahn -eMs -anG -aoe -aoL -apy -aqq -ahn -qLR -oIW -arf -kmS -ast -eQb -auv -arf -avA -axW -azo -aAp -uxY -aBC -aCt -aEA -aGz -aIb -aJC -aKN -aKR -aKR -aOJ -oIJ -unA -aKR -akH -aUg -bFC -hSZ -aKR -bbx -aYV -aYV -bet -bfH -aiP -wbE -bhh -wbE -bmJ -bof -bpu -bqP -bsy -bEe -bvh -ajv -bxN -bze -bAp -bvh -bCG -bBd -bFw -bDD -bFJ -bvd -bKH -bzs -avm -ayF -avm -ayF -avB -ayF -avm -ayF -avB -awd -awe -awN -aws -awN -awe -awN -aws -awN -awN -ksp -chg -ksp -mbP -mbP -mbP -mbP -mbP -mbP -mbP -mbP -mbP -mbP -tMj -ayF -ayF -ayF -ayF -ayF -azV -ayF -crk -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aAM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(139,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -ayF -ayF -ayF -crk -crk -ahn -ahn -khB -ahn -ahn -ahn -ahn -ahn -arf -arf -arf -asd -arf -arf -arf -arf -hlV -oHB -azf -aAo -vyp -aBB -aBB -aBB -aGy -aIa -cNE -aKM -aMu -aMu -feG -tif -aMu -aMu -aMu -jgA -aSq -aKR -bad -bby -aYV -aYV -bet -bfG -bhe -bit -bjS -tCd -bli -boe -bli -bpN -bqX -bEe -btg -bDR -bDR -bDR -bDR -bzc -bDR -bDZ -bCK -bFy -bFF -bvd -bKH -bzs -avm -bOh -bPj -bQA -bPj -bOh -bPj -bQA -bPj -bOh -bPj -bQA -bPj -bOh -bPj -bQA -bPj -bOh -ayF -bMK -cyG -bMK -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -azV -ayF -crk -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aAu -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(140,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -ayF -ayF -ayF -ayF -ayF -ayF -dFX -wWW -dqb -lCo -ohq -wXl -iou -pkF -xZL -wig -str -rrM -clO -ahC -ahP -oZl -awB -att -azh -fHG -fHG -kxf -ufD -alP -aGI -aId -aJD -aKP -aMx -aMx -aQe -aOL -aMx -aMx -aMx -aMx -rqE -aKR -aZb -aJC -aYV -aYV -bet -bfG -bhe -bhh -bjU -blk -blk -boh -biu -bpO -bqY -bss -btg -buk -bvm -bDT -buk -bvh -bzU -bBe -bCS -bDE -bFK -bvd -bKH -bzs -avm -bOh -bPl -bQB -bRL -bOh -bTX -bUV -bWd -bOh -bXX -bYV -bZL -bOh -cbI -ccC -cdD -bOh -ayF -bMQ -cyG -bMK -bMK -bMK -crk -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -azP -ayF -crk -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aAM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(141,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -asY -ayF -aBM -ayF -ayF -ayF -ayF -ayF -ayF -uEx -ulM -wcR -uzs -uzs -uzs -uzs -uzs -ecg -jLT -veS -arm -fHG -aya -fHG -fHG -auB -atZ -azg -azp -fHG -aCu -qOc -alP -aGH -aIc -aJC -aKO -aMw -aNI -aKR -aKR -acN -acN -acN -acN -acN -aKR -aKR -aJC -bcr -aYV -bet -bfG -bhe -bhh -bjV -blj -bmK -bog -bog -bhh -bsx -bsr -bvh -bwD -bDR -bDR -bAq -bvj -bCQ -bDW -bCP -bvj -bvj -bJC -bKH -bzs -avm -bOh -bPk -bPm -bPm -bOh -bTW -bUU -bTW -bOh -bXW -bYU -bXW -bOh -cbH -ccB -cbH -bOh -ayF -bMQ -cyG -cKT -cyG -fNu -crk -crk -crk -crk -crk -crk -crk -crk -crk -crk -crk -crk -crk -crk -azV -crk -crk -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aAM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(142,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -uEx -azm -gvX -qWV -con -oVo -con -con -eVJ -ujS -aqs -coh -fHG -fHG -fHG -fHG -pPi -fHG -ayb -hWd -fHG -aCv -mbU -alP -aGJ -aIe -aJC -aJC -aJC -aJC -aJC -aJC -aXj -aVy -aSY -aVy -xqG -acN -bah -aJC -aYV -bdo -beu -bvk -biu -biu -bjT -blm -bmL -boi -bpw -ium -bsx -btX -bvj -bwG -bxR -bxR -bvj -bvj -bzW -bDZ -bCT -bGR -bIj -bJC -bKH -bzs -avm -bOh -bPm -bQC -bPm -bOh -bTW -bUW -bTW -bOh -bXY -bYW -bXW -bOh -cbH -ccD -cbH -bOh -ayF -bMQ -cyG -bMK -bMK -bMK -crk -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -azV -ayF -crk -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBD -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(143,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -uEx -stF -gvX -con -con -con -con -con -eVJ -dqb -qeA -ahm -fHG -fHG -fHG -fHG -pPi -fHG -ayb -hWd -fHG -sci -sEi -alP -aGJ -aIe -aka -aLU -aKQ -aNu -aJC -aaz -egt -aQc -aSZ -aQc -qaY -acN -bag -aJC -aYV -aYV -bet -bfJ -bhh -bhh -bgQ -bll -bhh -bhh -bpv -bhh -bsx -btV -bvh -bwF -bxQ -bxQ -bAr -bvj -bzV -bDZ -bzf -bDR -bIi -bJC -bKH -bzs -avm -bOh -bOh -bOh -bOh -bOh -bOh -bOh -bOh -bOh -bOh -bOh -bOh -bOh -bOh -bOh -bOh -bOh -ayF -bMK -axm -sUh -aAg -aAg -aAg -aAg -msM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -azV -ayF -crk -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ctZ -ctZ -ctZ -ctZ -ctZ -ayF -ayF -ayF -aBS -ayF -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aCm -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(144,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -dFX -lnk -gvX -wQg -con -con -con -fyS -eVJ -dqb -veS -ahs -sJI -ahO -fHG -eAJ -rvr -nLu -hcA -ryr -fHG -aCu -puh -alP -aGA -aHS -aJx -aJx -aMi -aNE -aOO -aQi -aRz -aSF -aQc -aQc -aXl -aKR -bai -aJC -aYV -aYV -bet -bfH -qTV -bhh -bhg -bln -bmM -boj -bof -bhh -bsx -btV -bvj -bwI -bxT -bxQ -bAt -bvj -bCM -bDZ -bDR -bDR -bIl -bJC -bKH -bzs -avu -avx -avx -avx -avx -avx -avx -avx -avx -avx -avx -avx -avx -aww -ayF -ayF -ayF -ayF -ayF -cfj -cfU -cfj -cfj -ckf -cfj -cfj -aAm -aAg -aAg -aAg -aAg -aAg -aAg -aAg -aAg -aAg -aAg -aAg -aAf -aAg -aAg -aAg -aAg -aAg -aAg -aAg -msM -ctZ -ctZ -cuo -cuA -cuM -ctZ -cvk -cvk -cvk -cvk -ayF -ayF -ayF -ayF -cvk -cvk -cvk -cvk -cvk -cvk -cvk -cva -cva -cva -cva -cva -cva -cva -cva -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(145,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -uEx -dqb -gvX -con -con -con -con -con -eVJ -iBv -lZK -fZm -jmV -epD -ghD -hBA -xbn -fHG -reA -lsk -xXi -jAN -jEc -alP -aGL -aHM -aJm -aKz -mjr -akt -aJC -aab -aRg -aQc -aac -aQc -aXk -aKR -aKR -aJC -aYV -aYV -bev -bfK -bhi -bhi -bhi -bfK -bfK -bfK -bof -bhh -bsx -btV -bvh -bwH -bxS -bzh -bAs -bvj -bCL -bxO -bDR -bDR -bIk -bJC -bKH -bzs -bzs -bzs -bPn -bPn -bPn -bzs -bzs -bPn -bzs -eWV -bzs -bzs -bPn -caI -bPn -bzs -bzs -bzs -cfj -cfj -cjp -chh -ciy -cke -clg -cfj -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -azV -crk -crk -crk -ayF -ayF -ayF -ayF -aAm -ctY -cuh -cun -cuz -cuL -cuY -cvj -cvs -cvD -cvk -cvk -cvk -cvk -cvk -cvk -cvX -cvX -cvX -cvX -cwq -cwq -cva -cva -cva -cva -cva -cva -cva -cva -cva -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(146,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -uEx -dqb -kdO -con -con -uSC -con -con -akE -wHk -ewu -pQp -pQp -oqj -jBi -fpl -fpl -jBi -oDN -sEM -sEM -pRs -arj -alP -aGL -aIe -aJC -aKS -aMC -aJC -aJC -aJI -aJI -aSI -aJI -aVA -aJI -aYK -aJI -aJI -bcs -aYV -aYV -bfK -bhk -bix -bjX -blp -bmO -bhi -bpy -bwz -brg -btZ -bvj -bwI -bxV -bzj -bAv -bvj -bCO -bDR -bDR -bDR -bIn -bJC -bKL -bLT -bLT -bLT -bLT -bLT -bLT -bLT -bLT -bUY -pRg -bWe -pRg -bWe -bWe -cdE -bAw -bzs -bAw -caK -cfj -ciB -ckh -chj -ciA -cjr -clh -cfj -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -azV -csD -cta -csD -cua -ayF -ayF -ayF -ayF -ctZ -cui -cuq -cuC -cuO -cuz -cvm -cvt -cvt -cvt -cvL -cvQ -cvX -cvX -cvX -cvX -cva -cva -cva -cva -cva -cva -cva -cva -cvx -cva -cva -cva -cva -cva -cva -ayF -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(147,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -uEx -dqb -gvX -con -con -con -con -con -eVJ -wHk -aqu -aro -aro -aro -aro -aro -aro -aro -aro -aro -aro -aCw -ayF -alP -aGL -aIg -aJH -aKR -aMB -aJC -aOP -aJI -aRA -aVz -aVz -aVz -aVz -aYJ -aJI -mNW -aYV -aYV -aYV -bfK -bhj -biw -bhs -bjM -bmN -bok -bpx -bpP -brf -bhh -bvh -bwJ -bxU -bzi -bAu -bvj -bCN -bEa -pHl -bFA -bIm -bJD -bKK -bLS -bNc -bOj -bNc -bNc -bNc -bNc -bTY -bKH -bzs -bWV -bzs -bAw -bZM -cbJ -ceC -ceC -cfW -cfX -chk -chl -ciz -chi -ciz -cjq -ckg -cmb -cpO -cpQ -cpQ -cpQ -cpQ -czJ -ayF -ayF -ayF -ayF -ayF -ayF -azV -csD -csX -ctg -cua -cua -cua -cua -cua -ctZ -ctZ -cup -cuB -cuN -cuZ -cvj -cvj -cvj -cvj -cvj -cvP -cvj -cvj -cvj -cvj -cva -cva -cva -cva -cvp -cwv -cvr -cvp -cvl -cvr -cwv -cvp -cva -cva -cva -ayF -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(148,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -dFX -jMW -gvX -wQg -con -con -con -fyS -eVJ -wHk -aqu -aro -aro -aro -aro -aro -aro -aro -aro -aro -aro -aCw -ayF -alP -aGL -aIe -aJI -aJI -aJI -aJI -aJI -aJI -aRC -aSK -aVz -aVz -aVz -aYL -aJI -bbz -aYV -bdq -aYV -bfK -bhl -biy -bjY -bjN -bkO -bmU -bnH -bqQ -bsx -bhh -bvj -bvj -bxR -bxR -bvj -bvj -bCQ -bEd -bof -bof -bof -bJE -bJE -bJE -bNd -bIJ -bPo -bQE -bRM -bOr -bTZ -bKH -bAw -bAw -bAw -bAw -bzs -bzs -bzs -ccF -cdG -ceE -cfl -cfZ -cki -cld -eHI -cjt -csq -xEu -wHz -cmd -cmd -cmd -ayF -ayF -ayF -ayF -ayF -ayF -ayF -csD -csO -csD -czk -cti -cua -cua -ctw -ctH -ctQ -cuc -cuj -cuj -cuE -cuQ -cuj -cvk -cvw -cvw -cvG -cvM -cvS -cvZ -cvG -cvw -cvw -cvf -cwh -cwm -cwr -cvp -cwx -cwj -cwu -cAV -cAZ -cvl -cvl -cva -cva -cva -ayF -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(149,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -uEx -sth -gvX -con -con -con -con -con -eVJ -wHk -aqu -aro -aro -aro -aro -aro -aro -aro -aro -aro -aro -aCw -ayF -alP -aGN -aIh -aJI -aKT -aMD -aNM -aOI -aJI -aRy -aSJ -aTM -aVB -aVz -aVz -baj -bbz -aYV -bdp -mvt -bfK -bfK -bfK -bfK -bfK -bfK -bfK -bnF -bqQ -bsx -bhh -bfJ -bhh -bhh -bhh -bhh -bhh -bzX -bBm -bof -bGT -bIo -bof -tRe -bLU -bNd -bII -bOr -bQD -bLY -bMa -bTZ -bKH -bzs -bAw -bXZ -bAw -bZN -caK -bzs -ccE -cdF -ceD -cfk -cfY -rfW -ckj -cjs -cle -cli -uPT -cmY -cme -cop -cmd -cmd -cqs -ayF -ayF -ayF -ayF -ayF -csD -csN -csV -ctb -cth -cua -ctr -ctu -ctG -ctP -cub -cuj -cur -cuD -cuP -cvc -cvk -cvu -cvu -cvu -cvu -cvR -cvY -cwb -cvu -cvu -cva -cwg -cwl -cwr -cvl -cww -cwD -cvv -cvv -cAY -cBb -cBd -cva -cva -cva -ayF -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(150,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -uEx -wag -gvX -con -con -voW -con -con -eVJ -wHk -aqu -aro -aro -aro -aro -aro -aro -aro -aro -aro -aro -aCw -ayF -alP -aGB -aIf -aJA -aKC -aKC -aKC -aON -aQk -aRD -aSM -aVD -aVE -aXm -aVz -juG -bbz -aYV -bdp -aYV -bfL -bhn -biz -biz -biz -bmR -bfL -bol -bqQ -bsx -bst -bfJ -bhh -ajB -bwK -bhh -bhh -bhh -btV -bof -bGV -bIp -bof -bKM -bLW -bNd -bOn -bOr -bOr -bRO -bSQ -bTZ -bUZ -bLT -bLT -bLT -bLT -bLT -caM -cbL -cbL -cdI -ceG -cfj -cgb -chn -ciE -cjv -clj -ckk -cmf -cna -cnC -cor -ciM -cpN -cqt -ayF -ayF -ayF -ayF -ayF -csD -csU -csW -ctc -ctc -cto -ctt -cty -ctJ -ctT -cue -cul -cuu -cuG -cuS -cve -cvo -cvz -cvz -cvI -cvz -cvT -cBS -cwc -cvz -cwd -cwf -cwj -cwo -cwt -cwu -cwA -cAR -cAS -cvv -cBa -cBc -cBe -cva -cva -cva -aCq -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(151,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -oDb -ayF -ayF -ayF -ayF -ayF -ayF -uEx -tAC -uAH -unR -unR -dCr -unR -unR -hzK -iYE -aqu -aro -aro -aro -aro -aro -aro -aro -aro -aro -aro -aCw -ayF -alP -aGL -aHY -aQj -iNn -aMk -aNK -aOM -aQj -aRB -aSL -aTN -cCq -aVz -cAg -bak -bbz -aYV -bdp -cBm -bfL -bhm -bhm -bhm -bhm -bkP -bmV -boc -bqW -brh -bua -bua -bua -bua -bua -bua -bhh -bhh -btV -bof -bGU -bqQ -bof -fTg -bLV -bNd -bOm -bPp -bQF -bRN -bSS -bUa -bNc -bNc -bOj -bNc -bNc -bZO -caL -cbK -ccG -cdH -ceF -cfj -cga -chm -ciD -cju -clf -csr -cme -cmZ -cme -coq -cmd -cmd -cqs -ayF -ayF -ayF -ayF -ayF -csD -ctb -csV -ctb -ctj -ctk -cts -ctx -ctI -ctS -cud -cuk -cus -cuF -cuR -cvd -cvn -cvy -cvy -cvH -cvy -cvy -cvy -cvy -cvy -cvy -cwe -cwi -cwn -cws -cwn -cwz -cwE -cvv -cvv -cvv -cvp -cvl -cva -cva -cva -ayF -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(152,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -dFX -xaB -mgF -mgF -mgF -vAl -meb -meb -meb -iMv -vmQ -pQp -pQp -pQp -grA -fpl -fpl -gbh -sEM -sEM -sEM -aCy -arj -alP -aGL -avI -aJK -aKV -tMl -aMl -aMF -aJI -aRG -aSO -aTO -cCq -aVz -aVz -qus -bbz -aYV -bdp -bdc -bfL -beY -bhm -bhm -bhm -bkR -bfL -boo -bqQ -bhg -bua -bvn -bwL -bxX -bsL -bua -bBJ -bhh -bBn -bof -bDF -bIr -bof -bKN -bHT -bNd -bNd -bNd -bNd -bNd -bSU -bUb -bVa -bWf -bWX -bOP -bNd -bTZ -bKH -bzs -bzs -bzs -bzs -cfj -cfj -cfj -cfj -cjx -cfl -cfl -dqu -tXL -cmd -cos -cmd -ayF -ayF -ayF -ayF -ayF -ayF -ayF -csD -csD -csD -csD -cti -ctq -cua -ctA -cuy -ctV -cug -cuj -cuj -cuE -cuU -cuj -cvk -cvw -cvw -cvJ -cvw -cvV -cwa -cvJ -cvw -cvw -cvb -cwk -cwp -cwr -cvp -cwC -cwn -cAT -cAW -cvl -cvl -cvl -cva -cva -cva -ayF -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(153,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayF -dFX -dFX -uEx -uEx -uEx -dFX -uEx -uEx -uEx -dFX -dFX -ayF -ayF -arj -fCx -avD -awC -ayb -eCr -jvd -cEo -xZD -vpY -alP -aGJ -avI -aJI -aJI -aJI -aNO -aOT -aJI -aRF -aSN -aVF -aVF -aVF -aYM -aJI -bbA -aYV -bdr -bdb -bdN -blr -bho -bho -bho -bkQ -bmW -bom -bIq -bri -bsu -bsL -bsL -bvo -bzl -bua -bzd -bhh -btT -bCU -bCR -bqQ -bGX -bCR -edA -bRN -bIK -bPq -bLd -bNd -bST -bOr -bOr -bOr -bWW -bYa -bYX -bTZ -caN -cbM -cbM -cdJ -bzs -cfm -cgc -bAw -ciF -cjw -ckl -clk -clk -bAw -bzs -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -ctp -cua -ctz -ctK -ctU -cuf -cuf -cuv -cuH -cuT -cvg -cvj -cvj -cvj -cvj -cvj -cvU -cvj -cvj -cvj -cvj -cva -cva -cva -cva -cvp -cwB -cvr -cvp -cvl -cvr -cwB -cvp -cva -cva -cva -ayF -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(154,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -arj -auz -avC -vHz -aya -fHG -fHG -xkd -fHG -fHG -gOZ -aGJ -avI -aJL -aKX -aJI -aJI -aJI -aJI -aRH -aVz -aVz -aVH -aXn -aYN -aJI -bbz -aYV -aYV -bey -bfL -bhm -biz -biz -biz -bla -bmY -boq -boq -brj -bpE -btk -bum -bvq -bzn -bua -bBL -bhh -bBC -bCV -bDN -bFM -btR -bDN -bIa -bIf -bIL -bOq -bLf -bRP -bSW -bMH -bNi -bOr -bWZ -bYd -bYY -bZP -caO -cbN -ccI -cdL -ceI -cfo -bAw -bAw -bAw -cjz -ceJ -clm -cmg -cnc -cnD -bzs -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -ayF -cua -ctF -ctM -ctX -cuf -cum -cuw -cuJ -cuW -cvi -cvq -cvC -cvC -cvC -cvN -cvW -cvX -cvX -cvX -cvX -cva -cva -cva -cva -cva -cva -cva -cva -cvA -cva -cva -cva -cva -cva -cva -ayF -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(155,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -ads -adS -aeG -ayF -ads -adS -aeG -ayF -ads -adS -aeG -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -alO -arj -arj -arj -pBp -gOZ -cVb -cVb -cVb -cVb -cVb -cVb -aGQ -aIk -aIp -aKW -aMG -aIp -aIp -aJI -aJI -aSP -aUh -aJI -aJI -aJI -aJI -aJI -bcq -bcq -bcq -bfL -bhp -biB -biB -cTL -bkU -bmX -bpE -bpE -bpE -bpE -bti -bul -bvp -bzm -bua -bBK -bwz -bBw -bJG -bDI -bFL -bli -bKO -bHY -bNf -bOp -bPr -bQH -bNd -bSV -bSQ -bNh -bWg -bWY -bYc -bNd -bNd -bzs -bzs -bMb -cdK -ceH -cfn -cgd -ceJ -ccM -cjy -ceJ -cll -ccM -cnb -bHd -ceI -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -ayF -cua -ctE -ctL -ctW -cuf -cum -cuw -cuI -cuV -cvh -cvj -cvB -cvE -cvk -cvk -cvk -cvk -cvk -cvk -cvX -cvX -cvX -cvX -cwq -cwq -cva -cva -cva -cva -cva -cva -cva -cva -cva -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(156,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -ads -adT -aeG -ayF -ads -adT -aeG -ayF -ads -adT -aeG -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -crk -alO -arp -alO -anf -anf -anf -anf -anf -cVb -jbf -wrp -fnC -kPd -xiw -aGS -aIm -aIp -aKH -aMI -aIp -aOV -aOX -aOX -aSR -aUi -aVJ -aOX -aiJ -bal -bam -aYV -aYV -aYV -bfL -bhq -bhm -bkb -cTM -bla -bmZ -bpH -bra -bsK -bpE -bpE -buq -bvt -bye -bon -bBN -bEi -bEi -bEi -bDU -bFO -bBN -bKR -bMc -bNd -bNd -bNd -bNd -bNd -bSX -bMI -bNk -bNU -bXb -bWi -bYZ -bZR -caQ -bzs -ccK -ccM -ceJ -ceJ -cgf -ceJ -ccM -ccM -ceJ -clo -cmi -cbQ -cnF -cot -csc -csm -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -ayF -cua -cua -cua -cua -cuf -cuf -cux -cuK -cuX -cuf -cvk -cvk -cvk -cvk -ayF -ayF -ayF -ayF -cvk -cvk -cvk -cvk -cvk -cvk -cvk -cva -cva -cva -cva -cva -cva -cva -cva -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(157,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -ads -adT -aeG -ayF -ads -adT -aeG -ayF -ads -adT -aeG -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -crk -cxW -anf -aqv -ayf -dce -uua -awE -tRB -cVb -vCb -wUY -khb -sxs -tal -aCI -aIj -aJB -aKD -aMs -aNL -aOQ -aQf -aRE -aSQ -aVI -aVI -aVI -aYO -aRJ -bbB -aYV -aYV -aYV -bfL -bfL -bfL -bfL -bfL -blg -bmZ -bpG -bqZ -brk -bsv -bsv -bun -bvr -bzo -bon -aFa -bCY -bEh -bCW -bDS -bFN -bBN -bKQ -bMb -bNd -bOr -bOt -bOr -bRQ -bOr -bSQ -bNj -bNs -bXa -bYa -bNd -bZQ -caP -cbO -ccJ -bLS -bLS -cfp -cge -cbK -ciG -bLS -ckm -cln -cmh -cnd -cnE -bPn -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -cuf -cuf -cuf -cuf -cuf -ayF -ayF -ayF -aCf -ayF -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aCo -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(158,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ads -adT -aeG -ayF -ads -adT -aeG -ayF -ads -adT -aeG -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -crk -alO -anf -alO -mAH -jaF -alP -anf -aCG -cVb -cVb -cVb -cVb -cVb -wBd -aGC -aIl -aIq -aia -aMy -aIp -nGf -aQm -fzd -fFA -fFA -aVK -aRJ -aRJ -aRJ -bbB -aYV -aYV -aYV -bfO -bfS -biD -bkd -bfS -cTO -bmZ -bpJ -brc -bsL -bug -btl -but -bvw -bzq -bon -bBP -bCZ -bEk -bFG -bCY -bFP -bBN -bKQ -bMb -bNd -bOt -bOr -bOr -bRQ -bOr -bSQ -bWj -bOm -bXc -bYe -bNd -bZS -caR -bzs -ccL -ccM -ceL -ceJ -cgh -ceJ -ceJ -ccM -ceJ -cAe -cmj -cne -bHd -bPn -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(159,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayB -ayB -ayF -ayF -ads -adT -aeG -ayF -ads -adT -aeG -ayF -ads -adT -aeG -ayF -ayF -ayF -ayF -ayF -ayF -amw -aof -aof -aof -aof -alP -alP -alP -alP -alP -awF -aCG -alP -nhY -aBE -aCz -vEp -aCJ -aGT -aIn -aIp -aKI -aMt -aIp -aOW -aQm -coI -aSS -aUj -sJx -aRJ -aYQ -cBg -bam -aYV -aYV -aYV -aYV -bhr -biC -bkc -bfS -blo -bmZ -bpI -brb -bsL -buf -bvs -bur -bvp -bzp -bon -bBO -bCY -bEj -bCY -bGZ -bFE -bBN -bKS -bMd -bNd -bOs -bOt -bQJ -bRR -bOr -bSQ -bWj -bWj -bWj -bWj -bNd -bzs -bzs -bzs -bMb -bFr -ceK -ceJ -cgg -ccM -ccM -cjA -ceJ -ccM -cdN -bFr -cnG -bzs -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(160,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -ayF -ayF -ayF -ayF -csZ -ayF -ayF -ayF -csZ -ayF -ayF -ayF -csZ -ayF -ayF -ayF -ayF -ayF -amw -amw -amw -aoh -aoN -apA -aof -arq -itK -atv -auD -alP -aoQ -cqM -ayg -ayg -ayg -aCA -aFn -aFp -aGW -anf -aIp -fGf -aMA -aIp -aOX -aQm -coI -aST -aUk -sJx -aRJ -aYQ -bam -ssB -aYV -aYV -aYV -beE -bfS -biE -bkf -bfS -cTO -bmZ -bpL -bre -bsN -bre -bvv -bur -bvp -bzr -bon -bBQ -bDa -bEl -bFH -bHb -bIw -bBN -bKT -bMb -bNd -bOt -bPu -bOr -bRQ -bOr -bSQ -bWj -bOm -bXc -bYe -bNd -bZU -caS -cbN -ccN -bHd -bzs -bzs -bKT -bAw -bAw -bFr -ceJ -ccM -ccM -cng -bzs -bzs -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(161,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -abX -jIs -jIs -vZA -crk -uDO -jIs -vZA -crk -uDO -jIs -vZA -crk -uDO -jIs -jIs -jIs -jIs -amv -ane -cxN -aog -aoM -apz -aqw -arr -asw -asw -auE -alP -awG -auF -alP -alP -alP -alP -alP -aFo -aGV -aIp -aIp -aKL -aMz -aNQ -aOX -aQm -lva -nUV -nUV -gbd -aRJ -aYR -ban -ikm -aYV -aYV -bez -bfP -bfS -bfS -bfS -bfS -cTO -bmZ -bpK -brd -bpK -bpK -bvu -bux -bvy -bon -bon -bBN -bBN -bBN -bBN -bHa -bBN -bBN -bKB -bMb -bNd -bOr -bPt -bOr -bRQ -bSY -bMJ -bNl -bNW -bXd -bPu -bNd -bZT -bMb -bFr -ccM -cdN -bzs -cfq -bKT -bAw -ciH -bHd -bzs -bAw -cmk -cnf -bzs -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(162,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -ayF -ayF -ayF -ayF -vPs -ayF -ayF -ayF -vPs -ayF -ayF -ayF -vPs -ayF -ayF -ayF -ayF -ayF -amw -amw -amw -aoi -aoO -apB -aqx -art -anf -anf -auF -alP -awH -auF -alP -aAr -aBF -alP -ayF -aus -auu -aIp -sHx -aKU -aME -aNN -aOR -aQh -aRI -aSU -aXo -aXo -aXo -iLJ -bap -ikm -aYV -bci -beB -bfS -bfS -kQk -ipA -gbT -cTO -bmZ -bon -bon -bon -bon -bon -buG -bvA -bon -bAw -bzg -bLS -bLS -bLS -cbQ -bLS -bLS -bKE -caU -bNc -bOj -bPw -bNc -bNc -bNc -bNc -bNc -bNc -bNc -bPw -bNc -bLS -caU -cbQ -cNY -cNY -cNY -cNY -cgj -cNY -cNY -chp -bzs -clp -bzs -bzs -bzs -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(163,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -ayB -anO -ayF -ads -adW -aeG -ayF -ads -adW -aeG -ayF -ads -adW -aeG -ayF -ayF -ayF -ayF -ayF -ayF -amw -aof -aof -aof -aof -vCy -aoP -atw -auF -alP -aoP -auF -azr -jez -atw -alP -alP -aFo -aGV -aIp -aJO -aLd -aMN -aNQ -aOZ -aOX -aOX -rdG -aUz -aVM -aOX -aYT -bam -iuR -baR -bcb -bdl -cTJ -cHD -bgo -cTK -cTK -blq -cTS -cTK -bpQ -cTK -slk -btm -buy -bvz -bdO -bLT -bna -bLT -bLT -bLT -bDV -bLT -bLT -bHq -bMe -bIg -bIM -bLT -bLT -bLT -bLT -bLT -bLT -bLT -bLT -bLT -bLT -bLT -caT -cbP -ccO -cdO -cdO -cdO -cnH -czH -czT -czY -cNW -bAw -bAw -clp -kyT -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(164,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ads -adW -aeG -ayF -ads -adW -aeG -ayF -ads -adW -aeG -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -apC -aqy -anf -anf -aty -auF -alP -aAt -jZT -alP -alP -alP -alP -ayf -aFm -aGF -aIq -aIq -aIq -aIq -aIq -aIq -aIq -aIq -aIq -aIq -aIq -aIq -aXS -aIq -aIq -baZ -bck -bdm -bdP -cHE -bdP -bdP -bdP -bdP -bnc -boC -bpV -boC -boC -bto -buL -bvB -cbK -bxg -bzk -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bIs -bIN -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -bDb -cNW -cNW -cQB -czY -cNW -bPn -bPn -bPn -crk -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(165,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -ads -adW -aeG -ayF -ads -adW -aeG -ayF -ads -adW -aeG -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -apC -anf -jez -alP -atx -auF -alP -auD -auF -apE -aAs -vbi -alP -aCG -aFr -aGE -aIo -aIo -aIo -aIo -aIo -aIo -aIo -aRK -aIo -aIo -aUx -aVL -aXR -aZc -aZc -baT -bcj -beC -bfT -cHF -biG -blw -blu -bnb -bfT -bor -bpS -bsO -bfV -btn -buH -byf -byf -byf -byf -bDb -bEm -bEm -bEm -bDb -bJH -bKW -bMg -bIh -bOx -bPx -bJN -bRT -aad -bEm -bJN -bRT -aad -bEm -bJN -bRT -aad -bEm -bDb -cfr -cho -bDb -ayF -cNW -cQB -czY -cOT -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(166,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -ads -adW -aeG -ayF -ads -adW -aeG -ayF -ads -adW -aeG -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -apC -anf -alP -alP -apE -auG -alP -iWx -auF -apE -anf -anf -noF -aCG -aDZ -aFu -aFu -aFu -aFu -aFu -aFu -aFu -aFu -aFu -aFu -aFu -aFu -aVO -bdp -aYV -aYV -bba -aXq -bfU -bhu -cHG -biI -bkh -biI -cHQ -bfT -boE -bpY -bsQ -box -btx -buU -byf -bzu -bAz -bzu -bDb -bEm -bEm -bEm -bIx -bJJ -bKY -bMi -bNo -bIP -bPA -bJN -bRU -aml -bEm -bJN -bRU -aop -bEm -bJN -bRU -aml -bEm -bDb -cgi -chq -ccQ -ayF -cOT -cQB -czY -cOT -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(167,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -ads -crG -aeG -ayF -ads -crG -aeG -ayF -ads -crG -aeG -ayF -ayB -ayF -ayF -ayF -ayF -ayF -ayF -ayF -apC -arA -anf -asx -anf -auF -alP -alP -auF -alP -alP -alP -aCB -aEB -aFs -bbE -aIr -bav -aLf -aNV -qfD -aRO -aQp -aRN -aIt -aUB -aFu -aVN -bdp -bar -bar -aYV -aXq -bfU -bhu -cHH -biH -cHN -blv -bls -bfT -boD -bpY -bsP -box -btw -buT -byf -bzt -bAy -bBS -bDb -bEm -bEm -cBz -bEm -bJI -bKX -bMh -bIt -bOx -bPz -bJN -bRU -amo -bEm -bJN -bRU -amo -bEm -bJN -bRU -amo -cBz -bDb -cgi -chq -ccQ -ayF -cOT -cQB -czY -cOT -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(168,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -atl -ayF -ayB -ayF -ayF -ayF -ayF -ayF -ayF -ayF -apC -alP -alP -alP -dbU -auH -avF -awI -ayc -gcF -asw -asw -aCD -aEa -aFv -aGG -aIu -aJQ -aIt -aIt -qfD -aRO -aIt -aRN -aIt -aUB -aFu -aVZ -aXT -aFu -aFu -bcv -aXq -bfU -bhu -cHI -biJ -bhM -biJ -blx -bfT -boL -bpY -bsR -box -buo -bxd -byf -bzw -bAB -bBV -bDb -bEn -akK -akP -akP -akV -akW -alf -alm -aln -alr -bJN -bRW -amG -bUe -bJN -bWl -aoq -bYg -bJN -bZV -apw -cbS -bDb -cgl -chs -bDb -ayF -cNW -cQB -czY -cNW -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(169,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -aAM -ayB -ayB -oDb -ayF -ayF -ayF -ayF -ayF -ayF -alO -aqz -aru -alP -anf -anf -avE -anf -anf -awD -anf -aty -aCC -aDZ -anf -aFu -aIs -aJP -vZR -aIt -hGH -aYW -aYW -aYW -aYW -aYW -aYW -aVY -aYY -bas -aFu -aYV -cBk -aYV -bht -cHJ -cHL -blw -bjP -blt -bfT -boG -bqa -cIe -box -buo -bvb -byh -bzv -bAA -bBU -bDb -bEm -bEm -bEm -bIy -bJK -bKZ -bMi -bIu -bIO -alx -bLe -bRV -amH -bUd -bVi -bRV -amH -bYf -bVi -bRV -amH -cbR -bDb -cgk -chr -bDb -ayF -cNW -cBN -czY -cNW -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(170,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -ayF -alO -anf -anf -asy -anf -anf -alP -alP -anf -alP -alP -alP -aCE -aDZ -aFu -aFu -aIw -aJS -pJR -aNP -esZ -aOS -aOS -aOS -aOS -aOS -aOS -aWb -aXU -bau -aFu -aYV -aXq -aYV -bfV -cHK -blA -blA -blA -blD -box -cHU -cHZ -cIf -box -btA -bxd -byf -bzy -bAD -bBX -bDb -bEm -bEm -bEm -bIx -bJM -bLc -bMi -bNo -bOx -alV -bQM -bMi -bOx -bRZ -bVj -bMi -bOx -bRZ -bZa -bMi -bOx -bRZ -cTY -cTZ -chu -ccQ -ayF -cOT -cQB -cAa -cOT -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(171,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -alO -aqA -arz -alP -anf -anf -alP -awJ -anf -alP -aAv -tJS -aCE -aDZ -aFu -aHb -aIv -aJR -aIt -aIt -qfD -aRO -aIt -aPd -aIt -aPb -aIt -aXu -aYW -bat -bbD -aYV -aXq -beE -bfV -bhv -biK -bkk -blz -bly -bos -bpR -bqc -bsS -box -buo -bxd -byf -bzx -bAC -bBW -bDb -bEm -bEm -bEm -bDb -cTX -bLb -bMk -bNn -bIQ -alW -amh -ami -amP -anp -anx -anN -amP -anp -anx -anN -amP -aqG -aqS -aqS -ars -asr -asC -czQ -czU -czZ -cOT -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(172,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -alP -alP -alP -alP -alP -anf -anf -alP -anf -anf -apE -anf -anf -aCE -aDZ -aFu -aHd -aIx -aJF -aQq -aNS -qfD -aRO -aIt -aPd -aIt -aPb -aIt -aXu -aYW -aVQ -aFu -aYV -aXq -bds -bfV -bhx -biL -bkm -cHO -blG -biL -cHV -cIa -biL -box -buo -bvc -byf -byf -byf -byf -bDb -bDb -bDb -bDb -bDb -bJN -bJN -bMm -bNp -bOx -bMi -bQN -bRZ -bOx -bMi -bVk -bRZ -bOx -bMi -bZb -bRZ -bOx -bMi -cfy -cgn -cjB -ccQ -ayF -cOT -cgm -czY -cOT -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(173,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -alP -apD -aEl -anf -arx -anf -anf -alP -alP -atB -alP -alP -alP -aCF -aDZ -alP -aFw -aFw -aFw -aFw -aFw -aFu -aPf -aQq -aRP -pem -aIt -aIt -aWd -aXV -vsT -bbD -aYV -aXq -aYV -bfV -bhw -cHM -wWT -blB -blF -cHS -cHW -cIb -bsT -box -btP -bxd -byi -bzz -bAE -bBY -bDc -bEo -bFI -bHe -bIz -bIz -bJN -bMl -bIv -bIR -bPE -bLe -bRY -amQ -bUg -bVi -bWm -amQ -bUg -bVi -bZW -amQ -bUg -bDb -bDb -bDb -bDb -ayF -cNW -cgm -czY -cNW -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(174,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -alO -anf -anf -arw -nuw -uve -anf -alP -awL -anf -anf -apE -aBF -aCH -aED -aFy -aGO -aIB -aJJ -aKZ -aFw -aFu -aFu -aFu -aFu -aTc -aUD -aVS -aYW -aYW -bax -aFu -aYV -aXq -aYV -bfV -bfV -biO -biL -cHP -cHR -bou -bpT -bqd -biL -box -btS -bxd -byi -bwN -bAG -bCa -bDc -bEo -bIC -bEc -bIB -bIB -bJN -bMo -bNp -bOx -bPH -bJN -bSa -amT -bUh -bJN -bWn -aos -bYh -bJN -bZX -aqB -cbU -bDb -ayF -ayF -ayF -ayF -cNW -cgm -czY -cNW -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(175,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -alO -aoQ -anf -arv -asz -atA -anf -alP -awK -anf -awD -apE -anf -aCk -aEC -aFx -aGM -aIy -aJG -cAz -aFw -gRZ -aPg -aQr -aFu -aTb -aIt -aLg -aYW -aYW -aUD -bbD -aYV -aXq -aYV -bfW -bhy -biN -biL -bni -blM -bou -cHX -cIc -biL -buj -btQ -bve -byj -bwM -bAF -bBZ -bDc -bEp -bCX -bEc -bIA -bIA -bJN -bMn -bNp -bOz -bPG -bJN -bEm -amo -bRU -bJN -bEm -amo -bRU -bJN -bEm -amo -bRU -bDb -ayF -ayF -ayF -ayF -cOT -cgm -czY -cOT -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(176,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -alP -jkx -ayf -xAk -mHU -aFn -aFn -aBB -awM -ayg -ayg -ayg -ayg -aCl -aEe -aFw -aFw -aFw -aLo -aLb -aFw -xEE -aYW -aYW -aRQ -aIt -aUF -aLg -aYW -aYW -aVQ -aFu -aYV -aXq -aYV -bfX -bhz -biQ -biL -blC -bou -cHT -bou -cId -biL -bsw -btU -bxe -bvC -bzD -bxv -bCc -bDc -bEo -bDj -bDY -bIA -bIA -bJN -bMq -bNp -bOx -bPJ -bJN -bEm -ano -bRU -bJN -bEm -apb -bRU -bJN -bEm -ano -bRU -bDb -ayF -ayF -ayF -ayF -cOT -cgm -czY -cOT -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(177,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -nsA -nsA -nsA -nsA -qVP -nsA -nsA -atB -alP -alP -awx -aye -ayd -aAc -ayd -aCI -aEd -aFw -aHf -aIz -aJM -aLa -aFw -hsb -aYW -aQs -aFu -aTd -aUE -aVT -aYW -aYW -aZd -aFu -aYV -aXq -aYV -bfX -bhy -biP -bko -blE -bnj -bov -bpU -brq -bsW -buj -bvE -bxd -byk -bzC -bAH -bCb -bDc -bEo -bDf -bEb -bGY -bGY -bJN -bMp -bNp -bOx -bPI -bJN -bEm -abz -bUi -bJN -bEm -abz -bUi -bJN -bEm -abz -bUi -bDb -ayF -ayF -ayF -ayF -cOT -cgm -czY -cOT -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(178,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -nsA -cQF -ndq -rIA -fBy -hRI -jaH -hHQ -feE -hHQ -kGJ -wHT -asA -apE -dPk -aCG -aEf -aFw -aGU -aIC -aJU -aLe -aFw -aCR -aCR -aCR -aCR -aCR -aCR -aCR -aWe -aWe -aCR -aCR -bcs -aXq -aYV -bfX -bfV -bfV -bfV -bfV -bfV -box -bpW -brs -box -box -buo -bxd -byk -byk -byk -byk -bDc -bDc -bJR -bEg -bDc -bDc -bLe -bMr -bNr -bIT -bJN -bJN -bJN -bJN -bJN -bJN -bJN -bJN -bDb -bDb -bDb -bDb -bDb -bDb -cNW -cNW -cNW -cNW -cNW -czX -cAc -cNW -cNW -cNW -cNW -cNW -cNW -cNW -cOT -cOT -crk -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(179,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -wKe -ndq -ndq -ndq -ndq -oLl -asB -asB -asB -avo -awx -avH -asB -asB -asB -aCK -aEf -aFw -aHg -cBZ -aJT -aLc -aFw -aFz -aFz -aFz -aRR -aTe -aUG -aFz -aRS -aXW -baz -aCR -bcx -aXq -aYV -bfY -bhA -biR -bkq -bjZ -bvx -boz -boM -bzE -bsX -bsz -btW -bxf -bzE -bzE -bzE -bzE -bDd -bEq -bDl -bEf -bFQ -bHc -bHK -bIb -bID -bOA -bPK -bQO -bSb -bOu -bUj -bVl -bWo -bXh -bQZ -bTl -bZY -caX -bTl -bQZ -cdQ -cOe -cNW -czG -czR -czW -cAb -cko -clq -cmq -ciI -cnJ -cri -cOe -cOe -cBT -crk -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(180,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -wKe -ndq -ndq -ndq -ndq -qeb -asB -atD -auJ -asB -awQ -avK -azt -aAy -asB -aCN -aEf -aFw -aGY -aII -aJW -aMX -aNW -aFz -aPl -aQv -aPl -aTg -aUI -aTg -aRS -aZf -aFz -bbF -aYV -aXq -aYV -bfX -bhB -bgp -bhU -bhU -blX -bow -boO -bhU -bsZ -cdX -ceX -bvg -bvD -bvD -cBx -bzB -bAa -bBE -bDm -bEr -bFR -bHf -bHM -bFR -bIE -bJr -bJO -bWr -bWr -bWr -bUk -bVn -bWq -bXj -bYj -bZc -bTl -bTl -bTl -bQZ -bNB -ceM -ccU -cgo -czS -cOb -cAd -cNW -cOx -cBL -cOe -cvO -cNW -cNW -cOT -cOT -crk -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(181,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -nsA -ndq -ndq -ndq -ndq -ndq -asB -atC -auI -auI -awP -avJ -awO -awO -asB -aCM -aEg -aFw -aHi -aHi -aJV -aFw -aFw -aFz -aPk -aQu -aPk -aTf -aUH -aTf -aRS -aZf -baA -bbF -aYV -aXq -aYV -bfZ -bhA -biS -bkr -blH -bnm -boy -bpX -brt -brm -bsA -bvH -bvf -brt -bwO -bxF -bzA -bzZ -bBD -bBD -bBD -bBD -bBD -bHL -bBD -bBD -bJo -bPK -bWr -bWr -bWr -bWr -bWr -bWp -bXi -bYi -bTl -bTl -caY -cbV -bQZ -blQ -cPA -cfs -cgm -cQw -cNW -cNW -cNW -cNW -cNW -cOe -fup -csy -cko -axY -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(182,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -wKe -ndq -ndq -ndq -ndq -ndq -asB -atE -auI -auI -awT -avM -azv -aAA -asB -aCE -aEi -aFw -aHl -aID -aID -aFw -aMM -aFz -aFz -aQw -aRS -aRS -aRS -aRS -aRS -aZf -aRS -bbF -aYV -aXq -aYV -bga -bgc -bgc -bgc -bgc -bgc -boB -boB -boB -btb -buo -bvJ -bvJ -bvJ -bwQ -bxW -bvK -bvK -bEt -bDn -bEz -bFS -bJT -bLh -bMs -bMs -bMs -bPN -bQS -bSf -bWr -bWr -bWr -bWr -bXl -caZ -cba -bTl -cbc -bTl -bQZ -cdR -ceO -cNW -cgm -chw -ciK -cjC -ckp -cls -cmr -cOe -cOe -cou -cNW -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(183,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -wKe -ndq -ndq -ndq -ndq -ndq -asB -asB -asB -avL -awR -hiV -azu -aAz -asB -aCO -aEh -aFz -aHk -aFz -aFz -aTe -aML -aFz -aFz -aQw -cdl -aRS -aRS -aRS -aRS -aZf -aRS -bbF -aYV -aXq -aYV -bfX -bhC -biU -bks -blI -bnn -boA -bpZ -boB -bta -buo -bvJ -bCk -byo -aDH -bxP -bCf -bvK -bEs -bGc -bHm -bGc -bEs -bEs -wWu -wWu -wWu -bPN -bQR -bSe -bMf -bNe -bNm -bNX -bTf -bQZ -bTl -bTl -cbb -bTl -bQZ -cdR -ceN -cNW -cgp -chv -ciJ -cbf -diq -clr -bnt -cOe -cOe -bMB -cOT -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(184,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -nsA -lGV -ndq -pou -ndq -srG -asB -atG -auL -avN -axa -auI -azw -aAA -asB -aCQ -aEk -aFB -aHn -aFB -csT -aFB -aLr -aFB -aPn -aQy -aPn -aTi -aUK -aVU -aWg -aZf -baA -bbF -aYV -aXq -aYV -bfX -bhD -biV -biW -blK -bnp -bng -boQ -brx -bro -buo -bvJ -bxj -byq -bwR -bxY -bCh -bvK -bEv -bFU -bFU -bFU -bJV -bEC -bMu -bMu -bMu -bEC -bQU -bQU -bTl -bQU -bXr -bWr -bOw -bQZ -bQZ -bQZ -cka -bQZ -bQZ -bQZ -bQZ -bQZ -cgr -chx -cNW -cNW -cNW -clt -cQw -cOe -cOe -bNA -cOT -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(185,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -nsA -nsA -nsA -nsA -nsA -nsA -asB -atF -auK -auJ -awS -auI -awO -awO -asB -aCP -aEj -aFA -aHm -aEj -aEj -aEj -aEj -aEj -aPm -aQx -aPm -aTh -aUJ -aTh -aXz -aZg -aFz -bbF -aYV -bdv -aYV -bgb -bhC -biU -biW -blJ -bno -bnf -boP -bqf -brn -bsC -bvK -bxi -byp -bzJ -bxY -bCg -bvK -bEu -bFU -bFU -bFU -bJU -bEC -bMt -bNt -bNt -bEC -bQT -bSg -bTk -bSh -bXr -bWr -bOv -bYk -bYk -bZZ -cjW -bZZ -ccR -cdS -ceP -bQZ -cgq -chx -cNW -ayF -cNW -clt -cQw -cNW -mJo -cNW -cNW -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(186,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -asB -atH -auM -avO -awU -ayj -azx -aAB -asB -aCR -aEm -aCR -aPl -aQv -aPl -aQv -aCR -aNY -aCR -aQA -aCR -aTj -aFz -aVV -aXB -aZh -baB -aCR -kYk -bdx -vHT -bgc -bgc -biX -bhV -bka -blZ -bnk -bpo -bqk -brp -bsD -bvK -bxl -bys -bzM -bya -bCj -bvK -bEx -bFU -bFU -bGl -bJX -bEC -bMw -cBE -bOE -bEC -bQV -coT -bTm -bUn -bXr -bWr -bOv -bYm -bYm -bZZ -ckN -bZZ -ccR -cdS -ceP -bQZ -cgt -chx -cOT -ayF -cOT -clt -cQw -oEZ -cOe -cOe -cNW -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(187,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -asB -asB -asB -asB -asB -asB -asB -asB -asB -aCR -bfb -aCR -aHo -aIE -aKe -aIE -aCR -aNX -aPo -aQz -aCR -aCR -aCR -aCR -aXy -aZe -aCR -aCR -bcy -bdw -beG -bgc -bhE -biW -bkv -blL -biW -bnh -biW -brx -bte -bup -bvK -cBu -byr -bzL -bxZ -bCi -bvK -bEw -bFU -bEL -bGk -bJW -bEC -bMv -bNu -bMv -bEC -bQT -bSi -bUn -bTl -bXr -bNZ -bOy -bZd -bYl -caa -ckM -cbW -ceQ -ceQ -ceQ -cft -cgs -chy -cOT -ayF -cOT -clt -cQw -ttL -cOe -cOe -cNW -oDb -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayF -ayB -ayB -ayB -ayB -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(188,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -atz -ayF -aBM -aBM -atz -wWu -wWu -wWu -atz -aCR -aEn -aCR -aHq -aHq -aHq -aHq -aCR -aCR -aCR -aCR -aCR -aTl -aUL -aVW -aXD -aZj -baD -bbG -aTk -bdy -beI -bgc -bhF -biW -bib -bki -bma -bnl -bpq -boB -bth -bus -bvK -bxm -byu -bzN -byb -aGs -bvK -bBF -bFU -oce -bGz -bJZ -kzT -bMx -bNw -bOF -fcG -bQW -bSj -bTn -bUo -bNq -bOk -bOB -bPs -bYo -bSc -bSc -cbd -ccT -bSc -bSc -cfu -cgu -chA -cNW -ayF -cNW -clt -cQw -ajM -cOe -cOe -cNW -ayF -ayB -ayF -ayF -ayF -anO -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(189,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -atz -aBM -aBM -aBM -atz -wWu -wWu -wWu -atz -wWu -wWu -wWu -wWu -wWu -wWu -wWu -aMZ -aNZ -aPp -aQB -aNa -aTk -aPq -aPq -aXC -aZi -baC -aPq -aPq -bdy -beH -bgc -bgc -bgc -bgc -bgc -bgc -bgc -bpp -bgc -brr -bsE -bvK -bvK -byt -byt -byt -byt -byt -bEy -bFU -bFT -bFU -bJY -bEC -bMv -bNv -bMv -rcD -wkN -wkN -wkN -wkN -wkN -lAB -lQG -bPb -bQG -lAB -wkN -wkN -bSl -bQZ -bQZ -bQZ -cNW -chz -cNW -cNW -cNW -clt -cQw -cCt -cOe -cOe -cNW -ayF -ayB -ayF -cMQ -crB -cNa -ayF -cMQ -crB -cNa -ayF -cMQ -adS -cNa -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(190,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -atz -aBM -aBM -aBM -crk -wWu -wWu -wWu -atz -wWu -wWu -wWu -wWu -wWu -wWu -wWu -aMZ -aOb -aPr -aQC -aRU -aQC -aQC -aQC -czO -aZl -baE -bbH -bcA -bdz -beJ -bge -bhH -biY -biY -biY -bmd -bnr -bpr -bgc -btj -buu -bvM -bxo -bqe -bzO -bzO -bzO -bqe -bEB -bFW -bFT -tOq -bFU -bLi -bMz -bNy -bOH -dvO -bQY -vzp -hRa -bUp -mNi -mRe -olr -bPL -cVK -bTo -eaI -cbZ -bSl -cmo -cNW -lZl -cNW -chC -ciL -cOe -cOe -clv -cQw -cNW -cNW -cNW -cNW -ayF -ayF -ayF -cMQ -crC -cNa -ayF -cMQ -crC -cNa -ayF -cMQ -adu -cNa -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(191,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -atz -aBM -aBM -aBM -crk -wWu -wWu -wWu -atz -wWu -wWu -wWu -wWu -wWu -wWu -wWu -aMZ -aOa -aVX -aTm -aRL -aTm -aTm -aTm -aWh -aZk -aTm -aTm -bcz -aTm -aTm -bgd -bhG -bhG -bhG -blO -bmc -bnq -bgc -bgc -bru -bsF -btY -bxn -bqe -bzO -bzO -bzO -bqe -bEA -bFV -bFT -bGA -bFU -bFU -bMy -bNx -bOG -wkN -uoB -bSk -bXs -bXs -lMg -qeQ -qeQ -bPF -bQI -bXs -sSW -cbY -bSl -cOe -cNW -cNW -cNW -ccp -cbf -cbf -cbf -clu -cmt -ayF -ayF -ayF -ayF -ayF -ayF -ayF -cMQ -crC -cNa -ayF -cMQ -crC -cNa -ayF -cMQ -adu -cNa -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(192,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -crk -aBM -aBM -aBM -atz -wWu -wWu -wWu -atz -wWu -wWu -wWu -wWu -wWu -wWu -wWu -aNa -aOd -aOU -aPq -aNa -aPq -aPq -aPq -aOU -aPq -aPq -aPq -bcC -cBl -aPq -bgg -aNa -ayF -bky -bqh -bme -bnx -bqe -brA -brw -buw -bvO -bxq -byv -bzO -bAR -bzO -bqe -bED -bFX -bFT -bGF -bKa -bFU -bMA -bNz -bOI -wkN -bRa -cbe -bTp -vCt -bVs -fKl -bXt -bPM -bZh -itG -cbe -wvX -bSl -cOe -ceS -cae -cNW -ccq -cdq -cjE -ckr -clw -cmu -ayF -ayF -ayF -ayF -ayF -ayF -ayF -cMQ -crC -cNa -ayF -cMQ -crC -cNa -ayF -cMQ -adu -cNa -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(193,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -atz -aBM -aBM -aBM -atz -wWu -wWu -wWu -wWu -wWu -wWu -wWu -wWu -wWu -wWu -wWu -aNa -aOc -aPs -aPq -aNa -aPq -aPs -aPs -aXG -aZm -aPs -aPq -bcB -aPq -aPs -bgf -aNa -ayF -bky -blP -bns -boF -bqe -brz -brv -cBt -bvN -bxp -byv -bzO -bAQ -bCl -bqe -bEC -bEC -bEM -bGC -bEC -bEC -bEC -bEC -bEC -bSl -dMZ -bXs -bXs -bXs -gwd -ycu -oHU -uNu -bXs -bXs -bXs -bXs -bSl -cOe -ceR -cbf -cbv -uVS -cQw -cjD -cjD -cjD -cjD -cnj -ayF -ayF -ayF -ayF -ayF -ayF -cMQ -crC -cNa -ayF -cMQ -crC -cNa -ayF -cMQ -adu -cNa -ayF -ayF -ayB -ayB -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(194,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -atz -aBM -aBM -aBM -atz -wWu -wWu -wWu -wWu -wWu -wWu -wWu -wWu -wWu -wWu -wWu -aNa -aNa -aNa -aQF -aNa -aTn -aNa -aNa -aNa -aNa -aNa -cyp -aNa -bdA -aNa -aNa -aNa -ayF -bky -blR -bns -boF -bqe -brC -brv -buv -bvO -bxr -byv -bzO -bzO -bzO -bqe -bEF -bky -bEO -bGK -bKc -cNW -bMB -bNA -cOe -bSl -bUq -flc -vPE -bXs -bVt -dfh -jSO -jgm -oUh -vPE -jrE -saK -bSl -cOx -sLv -ckS -cNW -jVl -cds -cjD -ckt -cly -cmw -cnj -cnj -cnj -ayF -ayF -ayF -ayF -ayF -csZ -ayF -ayF -ayF -csZ -ayF -ayF -ayF -csZ -ayF -ayF -ayF -ayF -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(195,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aBM -aBM -aBM -atz -wWu -wWu -wWu -wWu -wWu -wWu -wWu -wWu -wWu -wWu -wWu -aBM -aBM -aNa -aQE -aNa -aQE -aNa -ayF -ayF -ayF -aNa -aQE -aNa -aQE -aNa -ayF -ayF -ayF -bky -cyC -bns -boF -bqe -brB -brv -bsG -bvP -bxn -bqe -bzO -bzO -bzO -bqe -bEE -bFY -bEN -bGG -bKb -cNX -cNZ -cNZ -jCq -bSl -bSl -bSl -bSl -bSl -bSl -bSl -bSl -bSl -bSl -bSl -bSl -bSl -bSl -cNW -cgr -cNW -cNW -ccr -cdr -cjF -cks -clx -cmv -cnk -cnK -cyU -jIs -jIs -jIs -jIs -vZA -crk -crk -crk -crk -crk -uDO -jIs -vZA -crk -uDO -jIs -jIs -ctB -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(196,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aBM -aBM -aBM -aBM -wWu -wWu -wWu -wWu -wWu -wWu -wWu -wWu -wWu -wWu -aBM -aBM -aBM -aNa -aQE -aNa -aQE -aNa -ayF -ayF -ayF -aNa -aQE -aNa -aQE -aNa -ayF -ayF -ayF -crk -crk -bns -boF -bqe -brD -brP -bsI -bvO -bxs -byw -bzO -bzO -bzO -bqe -bEG -bGa -bHs -bGL -bKd -cNY -bMC -cOb -jHt -bPO -kob -bSm -bTr -bTr -bTr -bTr -bTr -bTr -bTr -bTr -cbg -bTr -bTr -bTr -nGt -cbg -bTr -cct -cdu -cjG -cku -clz -cmx -cnj -cnj -cnj -ayF -ayF -ayF -ayF -ayF -vPs -ayF -ayF -ayF -vPs -ayF -ayF -ayF -vPs -ayF -ayF -ayF -ayF -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(197,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -wWu -wWu -wWu -aBM -aBM -aBM -wWu -wWu -aBM -aBM -aBM -aBM -aNa -aeR -aNa -aQE -aNa -ayF -ayF -ayF -aNa -aQE -aNa -afE -aNa -ayF -ayF -ayF -ayF -ayF -bns -boF -bqe -bqe -bry -bsH -bqe -bqe -bqe -bqe -bqe -bqe -bqe -bEG -bFZ -bHr -bIS -bEs -bEs -bEs -cNW -sOs -cNW -cNW -cNW -cNW -cNW -cNW -cNW -cNW -cNW -cNW -cNW -cNW -cNW -cNW -cNW -clt -cNW -cNW -cNW -cNW -cjD -cjD -cjD -cjD -cnj -ayF -ayF -ayF -ayF -ayF -ayF -cMQ -crE -cNa -ayF -cMQ -crE -cNa -ayF -cMQ -adW -cNa -ayF -ayF -ayB -ayB -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(198,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aNa -aQE -aNa -aQE -aNa -ayF -ayF -ayF -aNa -aQE -aNa -aQE -aNa -ayF -ayF -ayF -ayF -aBM -bns -boH -biY -brF -brQ -bsM -buz -buz -buz -buz -buz -cNU -buz -bEI -bFZ -bHu -bIV -bKf -bLk -bEs -bNC -nRG -cbf -cbf -cbf -cbf -cbf -cbf -cbf -bYr -cbf -clr -cad -cbi -cNW -ccW -cdV -clt -cNW -cgy -ccV -cNW -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -cMQ -crE -cNa -ayF -cMQ -crE -cNa -ayF -cMQ -adW -cNa -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(199,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aaf -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aNa -cyh -aRW -aTo -aNa -ayF -ayF -ayF -aNa -aTo -aRW -cyr -aNa -aBM -ayF -ayF -ayF -aBM -bnu -bhG -bhG -bhG -bhG -bsJ -brE -bhG -bhG -bhG -bhG -cNV -bhG -bEH -bGb -cBA -bIU -bKe -bLj -bEs -bNB -cac -bPP -cNW -cNW -cNW -cNW -cNW -cNW -cNW -kAJ -clt -cac -cbh -cNW -ccV -cOe -clt -cfv -cBL -cOe -cNW -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -cMQ -crE -cNa -ayF -cMQ -crE -cNa -ayF -cMQ -adW -cNa -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(200,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aBM -aBM -aBM -crk -crk -crk -auN -crk -ayF -ayF -ayF -crk -crk -crk -crk -crk -aBM -aBM -aBM -ayF -aBM -aBM -aBM -aBM -aBM -aBM -bky -btp -brH -bvQ -bxt -cNT -bCm -bDh -bEs -ydD -bHv -bIW -bKe -vHY -bEs -rmX -xIa -vxh -cNW -aBM -aBM -ayF -aBM -aBM -cNW -bYs -nRG -ciJ -cbf -cbf -cbf -cbf -ceT -cNW -dBm -chH -cNW -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -cMQ -crE -cNa -ayF -cMQ -crE -cNa -ayF -cMQ -adW -cNa -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(201,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -ayF -aBM -aBM -aBM -aBM -aBM -aBM -bZi -bqg -brG -brG -cNR -brG -brG -bDg -bEs -bGd -poc -rNc -bEs -bLm -bEs -cOT -cOT -cOT -cNW -aBM -aBM -ayF -aBM -aBM -cNW -cNW -cOT -cOT -cOT -cNW -cNW -cNW -cPH -cNW -cNW -cNW -cNW -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -cMQ -crG -cNa -ayF -cMQ -crG -cNa -ayF -cMQ -crG -cNa -ayF -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(202,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -ayF -ayF -ayF -ayF -aBM -aBM -ayF -ayF -aBM -aBM -aBM -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -bZi -btq -brI -bvR -cNS -byx -brI -bky -bky -bEs -bGc -bGc -bEs -bLl -bEs -ayF -ayF -ayF -ayF -aBM -aBM -ayF -aBM -aBM -ayF -ayF -ayF -aBM -aBM -ayF -ayF -cNW -ceU -cNW -ayF -ayF -ayF -ayF -ayF -ayF -ayF -oDb -ayF -ayF -ayF -ayF -ayB -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(203,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -oDb -ayF -ayF -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -ayF -aBM -ayF -ayF -ayF -aBM -aBM -ayF -aBM -aBM -aBM -aBM -aBM -aBM -bky -bky -bky -bky -bky -bky -bky -bky -ayF -aBM -aBM -aBM -crk -crk -crk -ayF -ayF -ayF -ayF -aBM -aBM -ayF -aBM -aBM -ayF -oDb -ayF -aBM -aBM -ayF -ayF -cNW -cPI -cNW -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayF -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -ayB -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(204,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aBM -aBM -aBM -aBM -aBM -ayF -aBM -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aBM -ayF -ayF -aBM -ayF -aBM -aBM -ayF -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -ayF -aBM -aBM -ayF -aBM -aBM -aBM -aBM -aBM -ayF -crk -crk -crk -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(205,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -aBM -aBM -ayF -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aBM -ayF -ayF -aBM -ayF -aBM -aBM -ayF -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aBM -aBM -ayF -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(206,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -aBM -aBM -ayF -aBM -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aBM -ayF -ayF -aBM -ayF -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(207,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aBM -aBM -aBM -aBM -ayF -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(208,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aBM -aBM -aBM -aBM -ayF -aBM -aBM -aBM -aBM -aBM -aBM -ayF -oDb -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(209,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -aBM -ayF -aBM -aBM -aBM -aBM -ayF -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(210,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aBM -ayF -aBM -aBM -aBM -aBM -ayF -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(211,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(212,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(213,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(214,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(215,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(216,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(217,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(218,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(219,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(220,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(221,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(222,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(223,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(224,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(225,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -bGf -bLo -bGf -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(226,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -bIX -bGf -bLn -bGf -bIX -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(227,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -bGf -bGf -bKh -bLo -bMD -bGf -bGf -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(228,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -bGe -bGe -bIY -bKg -bKg -bKg -bND -bGe -bGe -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(229,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -bGf -bHw -bJa -bKg -bLp -bKg -bNF -bOJ -bGf -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(230,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -bGe -bGe -bIZ -bKg -bKg -bKg -bNE -bGe -bGe -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(231,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -bGf -bGf -bKi -bLr -bME -bNG -bNG -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(232,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -bIX -bGf -bLq -bGf -bIX -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(233,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -bGf -bGe -bGf -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(234,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(235,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -ayF -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(236,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(237,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -ayF -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(238,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(239,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aBM -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(240,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(241,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(242,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(243,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(244,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(245,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(246,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(247,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(248,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(249,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(250,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(251,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(252,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(253,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(254,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} -(255,1,1) = {" -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -aCx -"} diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index e3f4b18103..b4c6b0c12d 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -3429,7 +3429,7 @@ /obj/structure/cable{ icon_state = "0-8" }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/plasteel/showroomfloor, @@ -8802,7 +8802,7 @@ /turf/open/floor/plating, /area/medical/virology) "aoR" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ @@ -8959,7 +8959,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /turf/open/floor/plasteel/dark, /area/security/courtroom) "apj" = ( @@ -9122,7 +9122,7 @@ /turf/open/floor/plasteel/dark, /area/teleporter) "apw" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, @@ -10947,7 +10947,7 @@ /turf/open/floor/engine, /area/space) "asg" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel/dark, @@ -11992,7 +11992,7 @@ /turf/open/floor/circuit/green/telecomms/mainframe, /area/tcommsat/server) "atV" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/effect/turf_decal/tile/neutral, @@ -14194,7 +14194,7 @@ /obj/machinery/cell_charger, /obj/item/stock_parts/cell/hyper, /obj/item/stack/cable_coil, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, @@ -14307,8 +14307,8 @@ /obj/item/stack/cable_coil, /obj/item/electronics/apc, /obj/item/electronics/apc, -/obj/item/twohanded/rcl/pre_loaded, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /turf/open/floor/plasteel/dark, /area/engine/engineering) "axR" = ( @@ -17393,7 +17393,7 @@ dir = 4 }, /obj/effect/turf_decal/tile/blue, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ @@ -19751,7 +19751,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel, @@ -19770,7 +19770,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ desc = "After his promotion, he was transferred to Kilo Station to serve as the gateway's protector."; icon_state = "plant-21"; name = "rodger" @@ -20601,7 +20601,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/blue, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/plasteel/showroomfloor, @@ -20638,7 +20638,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/dark, @@ -21015,7 +21015,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/light{ @@ -22183,7 +22183,7 @@ /area/hallway/primary/aft) "aKO" = ( /obj/effect/decal/cleanable/cobweb, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /obj/effect/decal/cleanable/blood/old, @@ -22217,7 +22217,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aKR" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /turf/open/floor/wood, @@ -22678,7 +22678,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/airalarm{ @@ -24453,7 +24453,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/plasteel/showroomfloor, @@ -24742,7 +24742,7 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -24875,7 +24875,7 @@ dir = 1 }, /obj/effect/turf_decal/tile/purple, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/machinery/button/door{ @@ -25243,7 +25243,7 @@ pixel_y = 4 }, /obj/item/lighter, -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/suture, /turf/open/floor/plasteel/dark, /area/maintenance/port) "aPO" = ( @@ -27105,8 +27105,8 @@ "aSy" = ( /obj/structure/table, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/ointment, -/obj/item/stack/medical/bruise_pack{ +/obj/item/stack/medical/mesh, +/obj/item/stack/medical/suture{ pixel_x = 4 }, /obj/item/storage/firstaid/regular, @@ -28508,7 +28508,7 @@ dir = 1 }, /obj/effect/turf_decal/tile/blue, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18" }, /obj/machinery/camera{ @@ -28850,7 +28850,7 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/structure/disposalpipe/segment{ @@ -28949,7 +28949,7 @@ dir = 1 }, /obj/effect/decal/cleanable/cobweb, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -29538,6 +29538,14 @@ /obj/machinery/light/small{ dir = 8 }, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the test chamber."; + dir = 4; + layer = 4; + name = "Test Chamber Telescreen"; + network = list("toxins"); + pixel_x = -32 + }, /turf/open/floor/plasteel/dark, /area/science/mixing) "aVT" = ( @@ -30049,7 +30057,7 @@ dir = 1 }, /obj/effect/turf_decal/tile/yellow, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18" }, /turf/open/floor/plasteel/showroomfloor, @@ -30469,9 +30477,8 @@ dir = 4 }, /obj/machinery/light{ - dir = 4 + dir = 1 }, -/obj/machinery/computer/nanite_cloud_controller, /turf/open/floor/plasteel/dark, /area/science/research) "aXx" = ( @@ -30583,7 +30590,8 @@ name = "science camera"; network = list("ss13","rd") }, -/obj/machinery/computer/nanite_chamber_control, +/obj/structure/table/reinforced, +/obj/item/storage/bag/money, /turf/open/floor/plasteel/dark, /area/science/research) "aXG" = ( @@ -31251,8 +31259,6 @@ dir = 1 }, /obj/structure/table/reinforced, -/obj/item/nanite_scanner, -/obj/item/nanite_remote, /turf/open/floor/plasteel/dark, /area/science/research) "aYO" = ( @@ -33284,14 +33290,6 @@ /obj/structure/chair{ dir = 4 }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the test chamber."; - dir = 8; - layer = 4; - name = "Test Chamber Telescreen"; - network = list("toxins"); - pixel_x = 30 - }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -33793,14 +33791,6 @@ pixel_x = 24; pixel_y = -24 }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the test chamber."; - dir = 8; - layer = 4; - name = "Test Chamber Telescreen"; - network = list("toxins"); - pixel_x = 30 - }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -33879,7 +33869,7 @@ }, /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/plasteel, @@ -35128,7 +35118,6 @@ dir = 4 }, /obj/effect/landmark/event_spawn, -/obj/machinery/nanite_program_hub, /turf/open/floor/plasteel/dark, /area/science/research) "beE" = ( @@ -39003,7 +38992,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /turf/open/floor/plasteel, @@ -39337,7 +39326,7 @@ /obj/effect/turf_decal/tile/green{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -39578,7 +39567,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/structure/cable{ icon_state = "4-8" }, @@ -39617,7 +39606,7 @@ /area/quartermaster/sorting) "blR" = ( /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/structure/cable{ icon_state = "4-8" }, @@ -39934,7 +39923,7 @@ /turf/open/floor/plasteel/dark, /area/quartermaster/storage) "bmo" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/machinery/firealarm{ @@ -40120,7 +40109,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/dark, @@ -40971,7 +40960,7 @@ dir = 4 }, /obj/effect/turf_decal/tile/yellow, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /turf/open/floor/plasteel, @@ -41003,7 +40992,7 @@ /turf/open/floor/plasteel/dark, /area/quartermaster/office) "bnZ" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, @@ -42312,7 +42301,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/machinery/power/apc/highcap/ten_k{ areastring = "/area/bridge"; dir = 8; @@ -42963,7 +42952,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /obj/machinery/light{ @@ -43029,7 +43018,7 @@ dir = 1 }, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel/dark, @@ -43227,7 +43216,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/structure/spider/stickyweb, @@ -43867,7 +43856,7 @@ /turf/open/floor/plasteel/dark, /area/quartermaster/office) "bsA" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -44018,7 +44007,7 @@ /turf/open/floor/plasteel, /area/hydroponics) "bsM" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/light_switch{ @@ -44147,7 +44136,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /turf/open/floor/plasteel, @@ -44755,7 +44744,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/bar) "btZ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/neutral{ @@ -45157,7 +45146,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -45883,7 +45872,7 @@ /turf/open/floor/plasteel/showroomfloor, /area/crew_quarters/toilet/restrooms) "bvP" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /turf/open/floor/plasteel/showroomfloor, @@ -45937,7 +45926,7 @@ /turf/open/floor/plasteel/dark, /area/library) "bvV" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -45980,7 +45969,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -46011,7 +46000,7 @@ /obj/structure/noticeboard{ pixel_y = 30 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-17"; pixel_x = -8; pixel_y = 3 @@ -46135,7 +46124,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/structure/extinguisher_cabinet{ pixel_x = 24 }, @@ -46875,7 +46864,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/fitness/recreation) "bxF" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -46981,14 +46970,14 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "bxO" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel/showroomfloor, @@ -47276,7 +47265,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -48707,7 +48696,7 @@ dir = 4 }, /obj/effect/turf_decal/tile/blue, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/structure/disposalpipe/segment, @@ -49053,7 +49042,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -49734,7 +49723,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 6 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel, @@ -51820,7 +51809,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/dark, @@ -51948,7 +51937,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 9 }, -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/structure/cable{ icon_state = "1-8" }, @@ -52045,7 +52034,7 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/machinery/airalarm{ @@ -53292,7 +53281,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 10 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel, @@ -53316,7 +53305,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 6 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel/dark/corner{ @@ -54416,7 +54405,7 @@ }, /obj/effect/turf_decal/tile/neutral, /obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/structure/extinguisher_cabinet{ @@ -54439,7 +54428,7 @@ dir = 4 }, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/structure/extinguisher_cabinet{ @@ -54791,7 +54780,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/item/radio/intercom{ @@ -55565,10 +55554,10 @@ /obj/structure/table, /obj/item/storage/firstaid/regular, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/ointment{ +/obj/item/stack/medical/mesh{ pixel_y = 4 }, -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/suture, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -55603,7 +55592,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /obj/structure/cable{ @@ -55793,7 +55782,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/machinery/firealarm{ @@ -56190,7 +56179,7 @@ /obj/item/radio/intercom{ pixel_x = -28 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02"; pixel_y = 3 }, @@ -57861,7 +57850,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/machinery/power/apc/highcap/five_k{ @@ -58159,7 +58148,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02"; pixel_y = 3 }, @@ -58253,7 +58242,7 @@ }, /obj/effect/turf_decal/tile/neutral, /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-11" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -58412,7 +58401,7 @@ /obj/machinery/status_display/ai{ pixel_x = 32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -58495,7 +58484,7 @@ /area/hallway/primary/central) "bPT" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02"; pixel_y = 3 }, @@ -58636,7 +58625,7 @@ dir = 4 }, /obj/effect/turf_decal/tile/red, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -59293,7 +59282,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/decal/cleanable/dirt, @@ -60383,7 +60372,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /turf/open/floor/plasteel, @@ -60738,7 +60727,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /turf/open/floor/plasteel, @@ -60986,7 +60975,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02"; pixel_y = 3 }, @@ -62463,7 +62452,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/dark, @@ -62906,6 +62895,11 @@ /obj/structure/extinguisher_cabinet{ pixel_x = 24 }, +/obj/machinery/button/electrochromatic{ + pixel_x = 38; + pixel_y = -5; + id = "!interrogation_room" + }, /turf/open/floor/plasteel, /area/security/warden) "bWO" = ( @@ -63059,7 +63053,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -63300,7 +63294,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/yellow, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/machinery/light, @@ -63581,7 +63575,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02"; pixel_y = 3 }, @@ -64077,7 +64071,7 @@ dir = 1 }, /obj/effect/turf_decal/tile/red, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/structure/noticeboard{ @@ -64691,7 +64685,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bZx" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral, @@ -64974,7 +64968,7 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/light_switch{ @@ -65996,7 +65990,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/yellow, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/decal/cleanable/dirt, @@ -66546,7 +66540,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/structure/cable{ @@ -67266,7 +67260,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/showroomfloor, @@ -67364,7 +67358,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02"; pixel_y = 3 }, @@ -67615,7 +67609,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{ @@ -68134,7 +68128,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/showroomfloor, @@ -68163,7 +68157,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 9 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02"; pixel_y = 3 }, @@ -68232,7 +68226,7 @@ dir = 4 }, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -68256,7 +68250,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/effect/turf_decal/tile/neutral{ @@ -71556,7 +71550,7 @@ /turf/open/floor/plasteel, /area/security/processing) "cld" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02"; pixel_y = 3 }, @@ -72408,7 +72402,7 @@ /obj/structure/noticeboard{ pixel_y = 28 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /turf/open/floor/plasteel, @@ -72428,7 +72422,7 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /turf/open/floor/plasteel, @@ -73512,7 +73506,7 @@ }, /mob/living/simple_animal/bot/cleanbot{ auto_patrol = 1; - name = "\imprper Cleaner Bot" + name = "\improper Cleaner Bot" }, /turf/open/floor/plasteel/showroomfloor, /area/security/prison) @@ -80549,7 +80543,7 @@ /turf/open/floor/plasteel/dark, /area/maintenance/fore) "cDr" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02"; pixel_y = 3 }, @@ -80831,7 +80825,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "cDT" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/effect/turf_decal/tile/neutral, @@ -84622,7 +84616,7 @@ icon_state = "1-4" }, /obj/machinery/airalarm/directional/west, -/obj/item/twohanded/required/kirbyplants/dead, +/obj/item/kirbyplants/dead, /turf/open/floor/wood, /area/security/vacantoffice) "esR" = ( @@ -85144,7 +85138,7 @@ dir = 8 }, /obj/effect/turf_decal/bot, -/obj/machinery/nanite_chamber, +/obj/machinery/rnd/bepis, /turf/open/floor/plasteel/dark, /area/science/research) "kSc" = ( @@ -85411,14 +85405,6 @@ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, /area/hallway/secondary/entry) -"sfp" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/machinery/nanite_programmer, -/turf/open/floor/plasteel/dark, -/area/science/research) "swG" = ( /obj/item/reagent_containers/food/drinks/drinkingglass{ pixel_x = 4; @@ -85477,7 +85463,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -85513,6 +85499,12 @@ "uRM" = ( /turf/open/floor/wood, /area/security/vacantoffice) +"vjT" = ( +/obj/effect/spawner/structure/window/reinforced/tinted/electrochromatic{ + electrochromatic_id = "!interrogation_room" + }, +/turf/open/floor/plating, +/area/security/warden) "vle" = ( /obj/structure/festivus, /turf/open/floor/wood, @@ -107879,7 +107871,7 @@ agX agX agX aef -acH +vjT aBH aef aef @@ -123517,7 +123509,7 @@ aZv aXw kRh aXI -sfp +aXI beD bbj aNF @@ -126371,7 +126363,7 @@ bki bhQ bkN bIG -bki +bhQ bMB blH bhQ diff --git a/_maps/map_files/LambdaStation/lambda.dmm b/_maps/map_files/LambdaStation/lambda.dmm index 6bb3807ea4..c6553c728e 100644 --- a/_maps/map_files/LambdaStation/lambda.dmm +++ b/_maps/map_files/LambdaStation/lambda.dmm @@ -707,27 +707,11 @@ /turf/open/floor/plasteel, /area/science/mixing) "acc" = ( -/obj/machinery/computer/security/telescreen/toxins{ - layer = 4; - network = list("toxins"); - pixel_y = 30 - }, /obj/effect/turf_decal/stripes/line{ dir = 9 }, /turf/open/floor/plasteel, /area/science/mixing) -"acd" = ( -/obj/machinery/computer/security/telescreen/toxins{ - layer = 4; - network = list("toxins"); - pixel_y = 30 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/science/mixing) "ace" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -1183,6 +1167,10 @@ name = "Mass Driver Door"; req_access_txt = "7" }, +/obj/machinery/computer/security/telescreen/toxins{ + dir = 1; + pixel_y = -32 + }, /turf/open/floor/plasteel, /area/science/mixing) "adg" = ( @@ -15621,7 +15609,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/newscaster{ pixel_x = -30 }, @@ -15997,7 +15985,7 @@ /turf/closed/wall/r_wall, /area/crew_quarters/heads/hor/private) "aDh" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/hor/private) "aDi" = ( @@ -16020,7 +16008,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/white, /area/science/explab) "aDl" = ( @@ -16085,11 +16073,11 @@ pixel_y = -1 }, /obj/item/reagent_containers/dropper, -/obj/item/stack/medical/bruise_pack{ +/obj/item/stack/medical/suture{ pixel_x = -2; pixel_y = 6 }, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/mesh, /obj/item/healthanalyzer, /turf/open/floor/plasteel/white, /area/science/explab) @@ -21701,7 +21689,7 @@ /turf/open/floor/plasteel, /area/security/brig) "aNv" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/trimline/neutral/filled/corner, /turf/open/floor/plasteel/dark, /area/security/brig) @@ -21769,7 +21757,7 @@ /turf/open/floor/plasteel/grimy, /area/lawoffice) "aNA" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-08" }, /obj/structure/disposalpipe/segment{ @@ -23482,9 +23470,7 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/closet/l3closet/scientist{ - pixel_x = -2 - }, +/obj/structure/closet/l3closet/scientist, /turf/open/floor/plasteel/white, /area/science/explab) "aQI" = ( @@ -23818,7 +23804,7 @@ /turf/open/floor/plasteel, /area/security/range) "aRr" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "aRs" = ( @@ -23848,7 +23834,7 @@ dir = 8; light_color = "#e8eaff" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/hop/private) "aRw" = ( @@ -25019,7 +25005,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/command) "aTI" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/hallway/secondary/command) "aTJ" = ( @@ -25244,7 +25230,7 @@ /turf/open/floor/plating, /area/maintenance/fore/secondary) "aUi" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/camera/autoname{ dir = 1 }, @@ -27595,7 +27581,7 @@ /turf/open/floor/plating, /area/crew_quarters/heads/captain) "aYV" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/captain) "aYX" = ( @@ -34531,8 +34517,8 @@ /area/gateway) "bmm" = ( /obj/structure/rack, -/obj/item/stack/medical/ointment, -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/mesh, +/obj/item/stack/medical/suture, /obj/item/reagent_containers/syringe/charcoal, /obj/item/reagent_containers/syringe/epinephrine{ pixel_x = -1; @@ -34844,7 +34830,7 @@ /obj/effect/turf_decal/tile{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bmX" = ( @@ -36574,7 +36560,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/crew_quarters/cafeteria) "bqv" = ( @@ -38272,12 +38258,10 @@ /turf/open/floor/plasteel/white, /area/medical/chemistry) "btD" = ( -/obj/machinery/chem_dispenser{ - layer = 2.7 - }, /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 }, +/obj/machinery/chem_dispenser/apothecary, /turf/open/floor/plasteel/white, /area/medical/chemistry) "btE" = ( @@ -38515,7 +38499,7 @@ dir = 8 }, /obj/effect/turf_decal/tile/red, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "buh" = ( @@ -42131,7 +42115,7 @@ /turf/open/floor/plasteel/white, /area/medical/cryo) "bBv" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ dir = 1 @@ -45643,7 +45627,7 @@ /turf/open/floor/carpet/blue, /area/crew_quarters/heads/cmo/private) "bHP" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/cmo/private) "bHQ" = ( @@ -48293,7 +48277,7 @@ /obj/structure/cable{ icon_state = "1-4" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/trimline/blue/filled/line, /obj/structure/cable{ icon_state = "0-4" @@ -50315,7 +50299,7 @@ /turf/open/floor/wood, /area/maintenance/bar) "bPX" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/crew_quarters/cafeteria) "bPY" = ( @@ -50992,7 +50976,7 @@ /turf/open/floor/plasteel/dark, /area/bridge/showroom/corporate) "bRs" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "bRu" = ( @@ -51432,7 +51416,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "bSx" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, @@ -52126,7 +52110,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bTR" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/grimy, @@ -55507,7 +55491,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable{ icon_state = "1-2" }, @@ -56295,7 +56279,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/chief) "cbt" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/light_switch{ pixel_x = 26; pixel_y = -26 @@ -60365,8 +60349,8 @@ }, /obj/item/stack/cable_coil, /obj/item/stack/cable_coil, -/obj/item/twohanded/rcl/pre_loaded, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /turf/open/floor/plasteel, /area/engine/break_room) "ckz" = ( @@ -61205,7 +61189,7 @@ /turf/open/floor/plasteel/dark, /area/storage/tcom) "cml" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable{ icon_state = "1-8" }, @@ -63326,7 +63310,7 @@ /area/engine/break_room) "cqz" = ( /obj/machinery/light, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/cable{ icon_state = "1-4" }, @@ -64202,8 +64186,8 @@ pixel_y = -32 }, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /obj/structure/table/glass, /turf/open/floor/plating, /area/medical/abandoned) @@ -64553,7 +64537,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "ctc" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile{ dir = 1 }, @@ -64563,7 +64547,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "ctd" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile{ dir = 4 }, @@ -64824,7 +64808,7 @@ /obj/structure/cable{ icon_state = "1-8" }, -/obj/item/twohanded/required/kirbyplants/photosynthetic, +/obj/item/kirbyplants/photosynthetic, /obj/structure/disposalpipe/segment{ dir = 9 }, @@ -66755,7 +66739,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "cyc" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 6 }, @@ -66858,8 +66842,8 @@ }, /obj/item/electronics/airlock, /obj/item/electronics/airlock, -/obj/item/twohanded/rcl/pre_loaded, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /turf/open/floor/plasteel, /area/engine/storage_shared) "cyq" = ( @@ -67750,7 +67734,7 @@ /turf/open/floor/plasteel/dark, /area/bridge) "cAd" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 4 }, @@ -70430,7 +70414,7 @@ /area/crew_quarters/locker) "cFb" = ( /obj/machinery/light, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18" }, /obj/item/radio/intercom{ @@ -75066,7 +75050,7 @@ /turf/open/floor/plasteel, /area/engine/atmos) "cNx" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/machinery/camera{ c_tag = "Atmospherics - Control Room"; dir = 4 @@ -75838,11 +75822,11 @@ /obj/item/folder, /obj/item/folder, /obj/structure/table/reinforced, -/obj/item/stack/medical/ointment{ +/obj/item/stack/medical/mesh{ pixel_x = 3; pixel_y = -2 }, -/obj/item/stack/medical/bruise_pack{ +/obj/item/stack/medical/suture{ pixel_x = -3; pixel_y = 2 }, @@ -78144,7 +78128,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "cUc" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, @@ -78154,7 +78138,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "cUd" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/sign/departments/holy{ pixel_x = -32 }, @@ -78421,7 +78405,7 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "cUN" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/chief/private) "cUO" = ( @@ -80620,7 +80604,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel/dark, /area/science/circuit) "gIA" = ( @@ -80961,7 +80945,7 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "kNb" = ( @@ -81505,6 +81489,10 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"sZf" = ( +/obj/machinery/rnd/bepis, +/turf/open/floor/engine, +/area/science/explab) "tbT" = ( /obj/machinery/power/emitter/anchored{ dir = 1; @@ -112984,7 +112972,7 @@ aAY aAY aAY abK -acd +ace acH ajC abJ @@ -113791,7 +113779,7 @@ aFb aFO aGD aHo -aGD +aHp aDr aaA aaA @@ -114047,7 +114035,7 @@ aEj aFc aFO aGD -aHp +aGD aGD aDr apk @@ -114560,9 +114548,9 @@ aJP aKA aFe aDr -aGD aHq aGD +sZf aDr aJI aKB @@ -134611,7 +134599,7 @@ aab aab aJw aKk -aKk +aPB aLY aMU aNT diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 40a9cd9842..a143bf9bdf 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -226,7 +226,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /turf/open/floor/plasteel, @@ -245,7 +245,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /turf/open/floor/plasteel, /area/security/prison) "aaE" = ( @@ -1224,7 +1224,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-13" }, /turf/open/floor/plasteel, @@ -2668,7 +2668,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /obj/structure/sign/warning/securearea{ @@ -2992,7 +2992,7 @@ /turf/open/floor/plating, /area/maintenance/solars/port/fore) "afF" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -3807,7 +3807,8 @@ movement_type = 1; name = "Sergeant Araneus"; real_name = "Sergeant Araneus"; - response_help = "pets"; + response_help_continuous = "pets"; + response_help_simple = "pet"; turns_per_move = 10 }, /turf/open/floor/carpet, @@ -4918,11 +4919,11 @@ /area/maintenance/solars/port/fore) "ajj" = ( /obj/structure/table, -/obj/item/stack/medical/ointment{ +/obj/item/stack/medical/mesh{ pixel_x = 3; pixel_y = -2 }, -/obj/item/stack/medical/bruise_pack{ +/obj/item/stack/medical/suture{ pixel_x = -3; pixel_y = 2 }, @@ -6660,9 +6661,7 @@ /obj/structure/cable/yellow{ icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "amc" = ( @@ -7778,9 +7777,6 @@ "aop" = ( /obj/structure/bed, /obj/item/bedsheet, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -7792,6 +7788,9 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/security/brig) "aoq" = ( @@ -9147,6 +9146,7 @@ /area/maintenance/port/fore) "aqY" = ( /obj/machinery/computer/security/labor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/security/brig) "aqZ" = ( @@ -10144,14 +10144,6 @@ /obj/structure/chair, /turf/open/floor/plasteel/grimy, /area/security/main) -"asN" = ( -/obj/structure/chair, -/obj/machinery/computer/security/telescreen/interrogation{ - dir = 1; - pixel_y = -30 - }, -/turf/open/floor/plasteel/grimy, -/area/security/main) "asO" = ( /obj/item/paper_bin{ pixel_x = -3; @@ -10708,7 +10700,9 @@ /turf/open/floor/plating, /area/security/main) "atZ" = ( -/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/effect/spawner/structure/window/reinforced/tinted/electrochromatic{ + electrochromatic_id = "!interrogation_room" + }, /turf/open/floor/plating, /area/security/main) "aua" = ( @@ -11924,9 +11918,6 @@ /turf/open/floor/plating, /area/maintenance/fore) "awC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, /obj/machinery/light/small{ dir = 1 }, @@ -13105,7 +13096,7 @@ /turf/open/space, /area/space/nearstation) "aze" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/decal/cleanable/cobweb/cobweb2, @@ -14400,7 +14391,7 @@ /area/maintenance/starboard/fore) "aBD" = ( /obj/effect/decal/cleanable/cobweb, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-20"; pixel_y = 3 }, @@ -14823,6 +14814,9 @@ /obj/structure/cable/yellow{ icon_state = "2-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/security/brig) "aCr" = ( @@ -14830,6 +14824,9 @@ name = "Court Cell"; req_access_txt = "63" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/security/brig) "aCs" = ( @@ -17090,8 +17087,8 @@ /obj/effect/turf_decal/bot{ dir = 1 }, -/obj/item/twohanded/rcl/pre_loaded, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /turf/open/floor/plasteel{ dir = 1 }, @@ -18155,7 +18152,7 @@ name = "Law Office APC"; pixel_y = 24 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/wood, @@ -19171,7 +19168,7 @@ c_tag = "AI Upload Chamber - Fore"; network = list("aiupload") }, -/obj/item/twohanded/required/kirbyplants/photosynthetic{ +/obj/item/kirbyplants/photosynthetic{ pixel_y = 10 }, /turf/open/floor/plasteel/dark, @@ -21680,7 +21677,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /obj/effect/turf_decal/tile/neutral{ @@ -23963,7 +23960,7 @@ /turf/open/floor/plating, /area/hallway/secondary/entry) "aVt" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-13" }, /obj/effect/turf_decal/stripes/line{ @@ -24311,7 +24308,7 @@ /obj/machinery/airalarm{ pixel_y = 23 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /obj/effect/turf_decal/tile/neutral{ @@ -24422,7 +24419,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = 27 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /obj/item/radio/intercom{ @@ -25671,7 +25668,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aYF" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/effect/turf_decal/stripes/line{ @@ -26201,7 +26198,7 @@ charge = 100; maxcharge = 15000 }, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, @@ -36997,7 +36994,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "btR" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18" }, /obj/effect/turf_decal/stripes/line{ @@ -37781,7 +37778,7 @@ /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) "bvB" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-20" }, /obj/effect/turf_decal/stripes/line{ @@ -40427,7 +40424,7 @@ /turf/open/floor/wood, /area/library) "bBx" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/wood, @@ -43963,7 +43960,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/yellow, @@ -44135,7 +44132,7 @@ /turf/open/floor/circuit/telecomms/mainframe, /area/tcommsat/server) "bJh" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/grimy, @@ -44943,7 +44940,7 @@ /turf/open/floor/plasteel/dark, /area/aisat) "bKS" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-06" }, /obj/effect/turf_decal/stripes/line{ @@ -45773,7 +45770,7 @@ icon_state = "map-right-MS"; pixel_y = -32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /obj/effect/turf_decal/tile/blue{ @@ -46092,7 +46089,7 @@ /area/bridge/showroom/corporate) "bNg" = ( /obj/machinery/light_switch{ - pixel_y = 24 + pixel_y = 25 }, /obj/machinery/light/small{ dir = 1 @@ -46807,8 +46804,8 @@ /area/bridge/showroom/corporate) "bOG" = ( /obj/structure/rack, -/obj/item/stack/medical/ointment, -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/mesh, +/obj/item/stack/medical/suture, /obj/item/reagent_containers/syringe/charcoal, /obj/item/reagent_containers/syringe/epinephrine{ pixel_x = -1; @@ -51029,7 +51026,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /obj/effect/turf_decal/tile/blue{ @@ -51125,7 +51122,7 @@ dir = 8; pixel_x = 24 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/purple, @@ -52254,8 +52251,8 @@ "cap" = ( /obj/structure/table, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/ointment, -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/mesh, +/obj/item/stack/medical/suture, /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -52691,7 +52688,9 @@ /area/maintenance/starboard) "caX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light_switch, +/obj/machinery/light_switch{ + pixel_y = 25 + }, /turf/closed/wall, /area/maintenance/disposal/incinerator) "caY" = ( @@ -54629,7 +54628,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "ceI" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-11" }, /obj/effect/turf_decal/tile/yellow, @@ -54724,7 +54723,7 @@ name = "Station Intercom (General)"; pixel_y = -30 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-08" }, /obj/effect/turf_decal/tile/purple, @@ -56944,21 +56943,12 @@ }, /area/science/research) "ciS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/mob/living/simple_animal/pet/dog/pug{ - desc = "It's Pugley IV, the research department's lovable pug clone. Hopefully nothing happens to this one - fourth time lucky!"; - name = "Pugley IV"; - real_name = "Pugley IV" - }, +/obj/machinery/rnd/bepis, /turf/open/floor/engine, /area/science/explab) "ciT" = ( /obj/item/beacon, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/engine, /area/science/explab) "ciU" = ( @@ -58839,11 +58829,11 @@ pixel_y = -1 }, /obj/item/reagent_containers/dropper, -/obj/item/stack/medical/bruise_pack{ +/obj/item/stack/medical/suture{ pixel_x = -2; pixel_y = 6 }, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/mesh, /obj/item/healthanalyzer, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, @@ -59536,7 +59526,7 @@ /turf/open/floor/plasteel/white, /area/science/research) "coj" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/purple, @@ -59557,6 +59547,11 @@ /obj/structure/chair/office/light{ dir = 4 }, +/mob/living/simple_animal/pet/dog/pug{ + desc = "It's Pugley IV, the research department's lovable pug clone. Hopefully nothing happens to this one - fourth time lucky!"; + name = "Pugley IV"; + real_name = "Pugley IV" + }, /turf/open/floor/plasteel/white, /area/science/explab) "com" = ( @@ -60424,9 +60419,9 @@ /obj/effect/decal/cleanable/blood/gibs/limb, /obj/structure/rack, /obj/item/storage/firstaid/regular, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /obj/item/clothing/glasses/hud/health, /turf/open/floor/plating, /area/maintenance/starboard/aft) @@ -62405,7 +62400,7 @@ dir = 10 }, /obj/machinery/light_switch{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -63920,7 +63915,7 @@ dir = 8 }, /obj/machinery/light_switch{ - pixel_y = 24 + pixel_y = 25 }, /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -63928,9 +63923,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/machinery/chem_dispenser{ - layer = 2.7 - }, +/obj/machinery/chem_dispenser/apothecary, /turf/open/floor/plasteel/white, /area/medical/medbay/aft) "cwp" = ( @@ -64242,7 +64235,7 @@ /obj/machinery/light_switch{ pixel_x = -23 }, -/obj/item/twohanded/required/kirbyplants/dead, +/obj/item/kirbyplants/dead, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -66312,6 +66305,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/structure/sign/warning/biohazard, /turf/closed/wall, /area/science/mixing) "cAM" = ( @@ -66337,14 +66331,6 @@ /obj/structure/chair{ dir = 4 }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the test chamber."; - dir = 8; - layer = 4; - name = "Test Chamber Telescreen"; - network = list("toxins"); - pixel_x = 30 - }, /obj/effect/turf_decal/stripes/line{ dir = 5 }, @@ -66768,14 +66754,6 @@ pixel_x = 24; pixel_y = -24 }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching the test chamber."; - dir = 8; - layer = 4; - name = "Test Chamber Telescreen"; - network = list("toxins"); - pixel_x = 30 - }, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -67188,6 +67166,15 @@ req_access_txt = "7" }, /obj/effect/turf_decal/loading_area, +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching the test chamber."; + dir = 4; + layer = 4; + name = "Test Chamber Telescreen"; + network = list("toxins"); + pixel_x = -32; + pixel_y = 0 + }, /turf/open/floor/plasteel, /area/science/mixing) "cCH" = ( @@ -68841,7 +68828,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/aft) "cFQ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -71173,7 +71160,7 @@ /turf/open/floor/plasteel/white, /area/science/research) "cJQ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/purple{ @@ -72353,7 +72340,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = 27 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /obj/effect/turf_decal/stripes/line{ @@ -74194,7 +74181,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-04" }, /obj/effect/turf_decal/stripes/line{ @@ -74260,7 +74247,7 @@ name = "Station Intercom (General)"; pixel_x = 29 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /obj/effect/turf_decal/stripes/line{ @@ -74543,7 +74530,7 @@ dir = 8 }, /obj/machinery/light_switch{ - pixel_x = -23 + pixel_y = 25 }, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -79811,7 +79798,7 @@ c_tag = "Departure Lounge - Port Fore"; dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-24" }, /obj/effect/turf_decal/stripes/line{ @@ -79861,13 +79848,13 @@ c_tag = "Chapel - Funeral Parlour"; dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/chapel/main) "djk" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/closed/wall, /area/chapel/main) "djr" = ( @@ -80610,10 +80597,12 @@ /area/security/brig) "dBH" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/yellow{ icon_state = "0-4" }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, /turf/open/floor/plating, /area/security/brig) "dBI" = ( @@ -81872,6 +81861,14 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/port) +"kRi" = ( +/obj/structure/chair, +/obj/machinery/button/electrochromatic{ + id = "!interrogation_room"; + pixel_x = -25 + }, +/turf/open/floor/plasteel/grimy, +/area/security/main) "kVo" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -82162,6 +82159,12 @@ /obj/item/storage/fancy/candle_box, /turf/open/floor/engine/cult, /area/library) +"oaM" = ( +/obj/machinery/computer/security/telescreen/interrogation{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/grimy, +/area/security/main) "obb" = ( /obj/structure/target_stake, /obj/effect/turf_decal/stripes/line{ @@ -82215,6 +82218,10 @@ /obj/machinery/status_display/supply, /turf/closed/wall, /area/quartermaster/sorting) +"orJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/security/brig) "oub" = ( /obj/structure/sign/poster/official/random, /turf/closed/wall, @@ -82299,6 +82306,12 @@ }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) +"pvk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/detectives_office) "pvA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -82819,7 +82832,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/plasteel/white, @@ -99936,7 +99949,7 @@ aIg aIg aKN dIs -aIg +aUe dIs aQg aIg @@ -104390,7 +104403,7 @@ cLa cPF cQb djj -djr +cQb cRq cPA aaa @@ -107370,7 +107383,7 @@ akv alO anf aop -ahx +orJ aqY asn atK @@ -112777,7 +112790,7 @@ axp dBF azO aBi -ajm +axw ajm ajm ajm @@ -113291,7 +113304,7 @@ axr ayF ayF ayF -ayF +pvk ayJ ayJ aGt @@ -115339,7 +115352,7 @@ aiJ aoK aqa arv -asM +kRi atZ avk aww @@ -115595,8 +115608,8 @@ amr anD aoL ajD -arv -asN +oaM +asM atZ avk awx @@ -118507,7 +118520,7 @@ krD czD cAL cBG -cyy +czD czD czD cFu diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm index 97984fa656..a772122491 100644 --- a/_maps/map_files/Mining/Lavaland.dmm +++ b/_maps/map_files/Mining/Lavaland.dmm @@ -192,14 +192,14 @@ /area/ruin/unpowered/ash_walkers) "ft" = ( /obj/structure/stone_tile/block, -/obj/item/twohanded/bonespear, +/obj/item/spear/bonespear, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "fN" = ( /obj/structure/stone_tile{ dir = 4 }, -/obj/item/twohanded/bonespear, +/obj/item/spear/bonespear, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "fQ" = ( @@ -529,7 +529,7 @@ }, /obj/structure/table/wood, /obj/item/clothing/head/helmet/roman/legionnaire, -/obj/item/twohanded/bonespear, +/obj/item/spear/bonespear, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) "iK" = ( @@ -1486,9 +1486,7 @@ /obj/structure/stone_tile/cracked{ dir = 8 }, -/obj/item/malf_upgrade, -/obj/item/disk/tech_disk/illegal, -/obj/structure/safe, +/obj/item/storage/firstaid/ancient, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "pc" = ( @@ -1831,8 +1829,8 @@ "An" = ( /obj/structure/stone_tile/slab, /obj/structure/table/wood, -/obj/item/twohanded/bonespear, -/obj/item/twohanded/bonespear, +/obj/item/spear/bonespear, +/obj/item/spear/bonespear, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) "AH" = ( @@ -1842,7 +1840,7 @@ /obj/structure/stone_tile/cracked{ dir = 8 }, -/obj/item/twohanded/bonespear, +/obj/item/spear/bonespear, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "AU" = ( @@ -2071,7 +2069,7 @@ }, /obj/structure/table/wood, /obj/item/scythe, -/obj/item/twohanded/bonespear, +/obj/item/spear/bonespear, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) "HX" = ( @@ -2200,7 +2198,7 @@ }, /obj/structure/table/wood, /obj/item/storage/belt, -/obj/item/twohanded/bonespear, +/obj/item/spear/bonespear, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) "Qk" = ( @@ -2367,9 +2365,7 @@ /obj/item/seeds/cotton{ yield = 5 }, -/obj/item/seeds/cotton{ - yield = 5 - }, +/obj/item/seeds/cotton/durathread, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) "Vj" = ( @@ -2429,7 +2425,7 @@ /obj/structure/stone_tile/cracked{ dir = 1 }, -/obj/item/twohanded/bonespear, +/obj/item/spear/bonespear, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "WT" = ( diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 8a951881f9..a4315eb699 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -545,7 +545,7 @@ dir = 4 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -601,7 +601,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/neutral{ @@ -1240,20 +1240,19 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/heads/hop) "abL" = ( -/obj/structure/rack, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 2; - name = "2maintenance loot spawner" - }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, +/obj/structure/sign/warning/securearea, +/turf/closed/wall, /area/maintenance/starboard/fore) "abM" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line, +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, /area/maintenance/starboard/fore) "abN" = ( @@ -1289,40 +1288,45 @@ /turf/open/floor/plating, /area/engine/gravity_generator) "abR" = ( -/obj/structure/lattice, -/turf/open/space, -/area/asteroid/nearstation) +/obj/machinery/vr_sleeper{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) "abS" = ( /obj/item/stack/ore/glass, /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, /area/asteroid/nearstation) "abT" = ( -/turf/closed/wall, -/area/asteroid/nearstation) +/obj/machinery/door/airlock{ + name = "Unisex Restroom" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) "abU" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/hos) +"abV" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ id = "detectivewindows"; - name = "Detective Privacy Blast door" + name = "HoS Privacy Blast door" + }, +/obj/structure/cable/white{ + icon_state = "0-2" }, /turf/open/floor/plating, -/area/security/detectives_office) -"abV" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/shower{ - pixel_y = 16 - }, -/obj/structure/curtain, -/obj/machinery/door/window/brigdoor/southleft{ - name = "Shower" - }, -/obj/item/soap/deluxe, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/white, -/area/security/detectives_office) +/area/crew_quarters/heads/hos) "abW" = ( /obj/structure/closet/firecloset, /obj/machinery/light/small{ @@ -1606,10 +1610,14 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/heads/hop) "acu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 +/obj/structure/sign/warning/vacuum{ + pixel_x = 32; + pixel_y = 32 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel, /area/maintenance/starboard/fore) "acv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -1722,35 +1730,57 @@ /turf/open/floor/plating/asteroid, /area/asteroid/nearstation) "acE" = ( -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating{ - icon_state = "platingdmg1" +/obj/structure/sink{ + dir = 4; + pixel_x = 12 }, -/area/asteroid/nearstation) +/obj/machinery/shower{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) "acF" = ( /turf/open/floor/plating, /area/asteroid/nearstation) "acG" = ( -/obj/structure/door_assembly/door_assembly_mhatch, -/obj/effect/turf_decal/stripes/line{ +/obj/structure/bed, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/item/bedsheet/hos, +/obj/effect/landmark/start/head_of_security, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hos) +"acH" = ( +/turf/closed/wall/r_wall, +/area/security/prison) +"acI" = ( +/obj/structure/window/reinforced{ dir = 8 }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/shower{ + pixel_y = 16 }, -/turf/open/floor/plasteel, -/area/asteroid/nearstation) -"acH" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/curtain, +/obj/machinery/door/window/brigdoor/southleft{ + name = "Shower" + }, +/obj/item/soap/deluxe, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/hos) +"acJ" = ( +/obj/structure/girder, /turf/open/floor/plating, -/area/asteroid/nearstation) -"acI" = ( +/area/security/prison) +"acK" = ( /obj/structure/dresser, /obj/structure/sign/warning/vacuum{ pixel_y = 32 }, /obj/machinery/camera{ - c_tag = "Detective's Office - Quarters" + c_tag = "Head of Security's Office - Quarters" }, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -1763,15 +1793,17 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/security/detectives_office) -"acJ" = ( -/obj/structure/bed, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/landmark/start/detective, -/obj/item/bedsheet/brown, +/area/crew_quarters/heads/hos) +"acL" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable/white{ + icon_state = "1-2" + }, /turf/open/floor/wood, -/area/security/detectives_office) -"acK" = ( +/area/crew_quarters/heads/hos) +"acM" = ( /obj/structure/closet/crate/bin, /obj/machinery/light{ dir = 4 @@ -1781,25 +1813,7 @@ }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/wood, -/area/security/detectives_office) -"acL" = ( -/obj/machinery/status_display, -/turf/closed/wall, -/area/security/detectives_office) -"acM" = ( -/obj/structure/toilet{ - dir = 4 - }, -/obj/machinery/newscaster{ - pixel_x = 32 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/start/detective, -/turf/open/floor/plasteel/white, -/area/security/detectives_office) +/area/crew_quarters/heads/hos) "acN" = ( /obj/effect/landmark/blobstart, /turf/open/floor/plating, @@ -2151,10 +2165,15 @@ /turf/closed/wall, /area/quartermaster/storage) "adq" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/vacuum, -/turf/open/floor/plating, -/area/quartermaster/storage) +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/closet/emcloset/anchored, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/starboard/fore) "adr" = ( /obj/structure/cable{ icon_state = "4-8" @@ -2182,6 +2201,24 @@ }, /turf/open/floor/plating, /area/engine/supermatter) +"adt" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/maintenance/starboard/fore) +"adu" = ( +/turf/closed/wall, +/area/quartermaster/qm) "adv" = ( /obj/structure/closet/crate{ icon_state = "crateopen" @@ -2191,21 +2228,51 @@ /turf/open/floor/plating, /area/asteroid/nearstation) "adw" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" +/obj/machinery/camera{ + c_tag = "Prison - VR Sleepers" }, -/area/asteroid/nearstation) +/turf/open/floor/plasteel, +/area/security/prison) "adx" = ( -/obj/item/clothing/suit/space/orange, -/obj/item/clothing/head/helmet/space/orange, -/turf/open/floor/plating, +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, /area/asteroid/nearstation) +"ady" = ( +/turf/closed/wall/rust, +/area/quartermaster/qm) "adz" = ( -/obj/structure/sign/warning/vacuum, -/turf/closed/wall, +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/asteroid/airless, /area/asteroid/nearstation) "adA" = ( -/obj/structure/closet/secure_closet/detective, +/obj/machinery/status_display, +/turf/closed/wall, +/area/crew_quarters/heads/hos) +"adB" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/start/head_of_security, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/hos) +"adC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/obj/structure/cable/white{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"adD" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -2216,43 +2283,31 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/closet/secure_closet/hos, /turf/open/floor/plasteel/dark, -/area/security/detectives_office) -"adB" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/wood, -/area/security/detectives_office) -"adC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/wood, -/area/security/detectives_office) -"adD" = ( -/obj/machinery/door/airlock/silver{ - name = "Bathroom" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/security/detectives_office) +/area/crew_quarters/heads/hos) "adE" = ( -/obj/structure/mirror{ - pixel_x = 26 +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/obj/structure/sink{ - dir = 4; - pixel_x = 12 +/obj/structure/cable/white{ + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 +/obj/structure/cable/white{ + icon_state = "2-4" }, -/turf/open/floor/plasteel/white, -/area/security/detectives_office) +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/machinery/door/airlock/command{ + name = "Head of Security's Office"; + req_access_txt = "58" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hos) "adF" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/landmark/xeno_spawn, @@ -2304,7 +2359,7 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -2345,6 +2400,14 @@ /obj/structure/closet/crate/bin, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) +"adM" = ( +/obj/structure/sign/warning/vacuum{ + pixel_x = 32; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) "adN" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/item/radio/intercom{ @@ -2444,32 +2507,67 @@ "adX" = ( /turf/closed/wall, /area/crew_quarters/heads/hop) +"adY" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/sign/poster/ripped{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/maintenance/starboard/fore) "adZ" = ( -/obj/item/radio/intercom{ - name = "Station Intercom"; - pixel_x = -28 +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/secure_closet/quartermaster, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 }, /obj/machinery/camera{ - c_tag = "Cargo Bay North" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/conveyor/inverted{ - dir = 5; - id = "cargounload" + c_tag = "Quartermaster's Office"; + dir = 4 }, /turf/open/floor/plasteel, -/area/quartermaster/storage) +/area/quartermaster/qm) "aea" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "cargounload" +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/item/stamp/qm, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_y = 24 }, -/obj/structure/sign/nanotrasen{ - pixel_y = 32 +/obj/effect/turf_decal/tile/brown{ + dir = 4 }, -/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, -/area/quartermaster/storage) +/area/quartermaster/qm) +"aeb" = ( +/obj/structure/filingcabinet, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) "aec" = ( /obj/machinery/conveyor{ dir = 8; @@ -2506,6 +2604,12 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/quartermaster/storage) +"aef" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) "aeg" = ( /obj/machinery/conveyor{ dir = 8; @@ -2527,6 +2631,40 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/quartermaster/storage) +"aei" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/rack, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel, +/area/maintenance/starboard/fore) +"aej" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/qm) +"aek" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) "ael" = ( /obj/structure/closet/crate, /obj/effect/spawner/lootdrop/maintenance{ @@ -2536,50 +2674,65 @@ /turf/open/floor/plating, /area/asteroid/nearstation) "aem" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" +/obj/structure/lattice/catwalk, +/obj/structure/sign/warning/securearea{ + pixel_x = 32 }, +/turf/open/floor/plating/asteroid/airless, /area/asteroid/nearstation) -"aeo" = ( -/obj/structure/table, -/obj/item/extinguisher/mini, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/clothing/mask/breath, -/obj/effect/turf_decal/stripes/line{ - dir = 9 +"aen" = ( +/obj/structure/cable/white{ + icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/asteroid/nearstation) -"aep" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/asteroid/nearstation) -"aeq" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/nanotrasen{ - pixel_x = -32 - }, -/turf/open/floor/plating, -/area/security/detectives_office) -"aer" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - name = "Detective's Office"; - req_access_txt = "4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ +/obj/structure/chair/office/dark{ dir = 1 }, +/obj/effect/landmark/start/quartermaster, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel, -/area/security/detectives_office) +/area/quartermaster/qm) +"aeo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads/hos) +"aep" = ( +/turf/open/floor/plasteel, +/area/security/prison) +"aeq" = ( +/obj/machinery/door/airlock/silver{ + name = "Bathroom" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/hos) +"aer" = ( +/obj/structure/mirror{ + pixel_x = 26 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 12 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/hos) "aes" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + icon_state = "0-8" + }, /turf/open/floor/plating, -/area/security/detectives_office) +/area/crew_quarters/heads/hos) "aet" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/power/apc{ @@ -2908,16 +3061,49 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hop) "aeP" = ( -/obj/machinery/status_display/supply{ - pixel_x = -32 +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/qm"; + dir = 4; + name = "Quartermaster's Office APC"; + pixel_x = 26 + }, +/obj/machinery/computer/card/minor/qm{ + icon_state = "computer"; + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/machinery/keycard_auth{ + pixel_x = 24; + pixel_y = 24 }, -/obj/effect/turf_decal/loading_area, /turf/open/floor/plasteel, -/area/quartermaster/storage) +/area/quartermaster/qm) "aeQ" = ( -/obj/effect/turf_decal/loading_area, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining/glass{ + name = "Quartermaster"; + req_access_txt = "41" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/plasteel, -/area/quartermaster/storage) +/area/quartermaster/qm) +"aeR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/quartermaster/qm) "aeS" = ( /obj/structure/closet/crate, /obj/effect/turf_decal/delivery, @@ -2935,11 +3121,57 @@ }, /turf/open/floor/plasteel, /area/quartermaster/storage) +"aeV" = ( +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_x = -28 + }, +/obj/machinery/camera{ + c_tag = "Cargo Bay North" + }, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aeW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) "aeX" = ( /obj/machinery/light/small, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/quartermaster/storage) +"aeY" = ( +/obj/machinery/conveyor/inverted{ + dir = 5; + id = "cargounload" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) "aeZ" = ( /obj/docking_port/stationary{ dir = 4; @@ -2951,80 +3183,101 @@ }, /turf/open/space/basic, /area/space) -"afb" = ( -/obj/structure/door_assembly/door_assembly_mhatch, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ +"afa" = ( +/obj/machinery/status_display/supply{ + pixel_x = -32 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ dir = 1 }, -/turf/open/floor/plating, -/area/asteroid/nearstation) -"afd" = ( -/obj/structure/table/wood, -/obj/item/taperecorder, -/obj/item/restraints/handcuffs, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"afb" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/machinery/suit_storage_unit/hos, /turf/open/floor/plasteel/dark, -/area/security/detectives_office) -"afe" = ( +/area/crew_quarters/heads/hos) +"afc" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"afd" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, /obj/structure/cable/white{ icon_state = "2-4" }, +/obj/structure/cable/white{ + icon_state = "1-2" + }, /turf/open/floor/wood, -/area/security/detectives_office) -"aff" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/area/crew_quarters/heads/hos) +"afe" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/white{ - icon_state = "4-8" +/obj/machinery/door/firedoor, +/obj/machinery/turnstile{ + name = "Genpop Exit Turnstile"; + req_access_txt = "70"; + dir = 8 }, -/turf/open/floor/wood, -/area/security/detectives_office) +/turf/open/floor/plasteel, +/area/security/prison) +"aff" = ( +/turf/closed/wall, +/area/crew_quarters/heads/hos) "afg" = ( -/obj/machinery/newscaster{ - pixel_y = 32 +/obj/item/stack/ore/glass, +/turf/open/floor/plating/asteroid/airless, +/area/asteroid/nearstation) +"afh" = ( +/obj/machinery/vr_sleeper{ + dir = 4 }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"afi" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/turf/open/floor/wood, -/area/security/detectives_office) -"afh" = ( -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/security/detectives_office"; - dir = 1; - name = "Detective's Office APC"; - pixel_y = 25 - }, -/obj/structure/cable/white{ - icon_state = "0-8" +/obj/machinery/newscaster/security_unit{ + pixel_y = 32 }, /turf/open/floor/wood, -/area/security/detectives_office) -"afi" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Detective's Office Maintenance"; - req_access_txt = "4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore) +/area/crew_quarters/heads/hos) "afj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ @@ -3045,7 +3298,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/captain/private) "afl" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/crew_quarters/heads/captain/private) "afm" = ( @@ -3082,7 +3335,7 @@ /obj/machinery/recharger{ pixel_x = 5 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-15"; pixel_x = -6; pixel_y = 12 @@ -3335,7 +3588,9 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "afD" = ( -/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -3346,6 +3601,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/cable/white{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/quartermaster/storage) "afE" = ( @@ -3421,10 +3679,37 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/quartermaster/storage) +"afJ" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"afK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Cargo Bay"; + req_one_access_txt = "48;50" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) "afL" = ( -/obj/structure/girder/reinforced, -/turf/open/floor/plating, -/area/asteroid/nearstation) +/obj/machinery/hydroponics/soil, +/obj/item/seeds/carrot, +/obj/machinery/camera{ + c_tag = "Prison - Main Room"; + dir = 4 + }, +/turf/open/floor/plating/asteroid, +/area/security/prison) "afM" = ( /obj/item/stack/ore/iron, /obj/structure/barricade/wooden, @@ -3432,65 +3717,79 @@ /turf/open/floor/plating, /area/asteroid/nearstation) "afN" = ( -/obj/effect/decal/cleanable/blood/old, -/obj/effect/turf_decal/sand/plating, -/turf/open/floor/plating, -/area/asteroid/nearstation) -"afP" = ( /obj/structure/table/wood, -/obj/item/book/manual/wiki/security_space_law, -/obj/item/camera/detective, -/obj/item/radio/intercom{ - name = "Station Intercom"; - pixel_x = -26 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/taperecorder, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"afO" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/brown{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/security/detectives_office) -"afQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"afR" = ( -/obj/structure/table/wood, -/obj/item/clothing/mask/cigarette/cigar/cohiba{ - pixel_x = 3 +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"afP" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/grass, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"afQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/obj/item/clothing/mask/cigarette/cigar/havana{ - pixel_x = -3 - }, -/obj/item/clothing/mask/cigarette/cigar, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/clothing/glasses/sunglasses, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hos) +"afR" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Head of Security's Office Maintenance"; + req_access_txt = "4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) "afS" = ( -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/crew_quarters/heads/hos"; + dir = 1; + name = "Head of Security's Office APC"; + pixel_y = 25 + }, +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/hos) "afT" = ( -/obj/machinery/computer/med_data{ +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/requests_console{ - department = "Detective's Office"; - name = "Detective RC"; - pixel_x = 30 +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/obj/machinery/camera{ - c_tag = "Detective's Office - Desk"; - dir = 8 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Maintenance"; + req_access_txt = "63" }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) +/turf/open/floor/plasteel, +/area/security/brig) "afU" = ( -/turf/closed/wall/r_wall, -/area/security/detectives_office) +/turf/open/floor/plasteel/dark, +/area/security/brig) "afV" = ( /obj/structure/cable/white{ icon_state = "2-4" @@ -3705,6 +4004,26 @@ }, /turf/open/floor/plasteel/dark, /area/bridge) +"agm" = ( +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel, +/area/security/brig) "agn" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/white, @@ -3820,9 +4139,6 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "agw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -3833,6 +4149,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/cable/white{ + icon_state = "1-4" + }, /turf/open/floor/plasteel, /area/quartermaster/storage) "agx" = ( @@ -3851,6 +4170,23 @@ }, /turf/open/floor/plasteel, /area/quartermaster/storage) +"agy" = ( +/obj/effect/landmark/start/cargo_technician, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) "agz" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -3901,6 +4237,16 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/quartermaster/storage) +"agD" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) "agE" = ( /obj/item/stack/ore/silver, /obj/item/stack/ore/iron, @@ -3911,75 +4257,78 @@ /turf/closed/wall/r_wall, /area/security/brig) "agG" = ( -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plating, -/area/asteroid/nearstation) -"agH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 +/obj/machinery/newscaster{ + pixel_y = 32 }, /turf/open/floor/plasteel, -/area/asteroid/nearstation) +/area/security/prison) +"agH" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) "agI" = ( -/obj/structure/rack, -/obj/item/storage/briefcase{ - pixel_x = -3; - pixel_y = 3 +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + icon_state = "2-8" }, -/obj/item/storage/secure/briefcase, -/obj/machinery/airalarm/unlocked{ - dir = 4; - pixel_x = -23 +/obj/structure/cable/white{ + icon_state = "4-8" }, -/obj/machinery/light{ +/obj/item/pen/fountain, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"agJ" = ( +/obj/machinery/camera{ + c_tag = "Head of Security's Office - Desk"; dir = 8 }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Security's Desk"; + departmentType = 5; + name = "Head of Security RC"; + pixel_x = 30; + pixel_y = 0 + }, +/obj/machinery/computer/security/hos{ + icon_state = "computer"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"agK" = ( +/obj/effect/turf_decal/sand/plating, +/obj/item/stack/ore/iron, +/turf/open/floor/plating, +/area/asteroid/nearstation) +"agL" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/camera/detective, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26 + }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/security/detectives_office) -"agJ" = ( -/obj/machinery/holopad, +/area/crew_quarters/heads/hos) +"agM" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"agK" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/machinery/computer/security/wooden_tv{ - pixel_x = 2 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"agL" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/effect/landmark/start/detective, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) -"agM" = ( -/obj/machinery/computer/secure_data{ - dir = 8 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/status_display{ - pixel_x = 32 - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) +/area/crew_quarters/heads/hos) "agN" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -4336,31 +4685,41 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "ahl" = ( +/obj/structure/closet/crate, /obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/quartermaster/storage) "ahm" = ( -/obj/machinery/light, -/obj/machinery/camera{ - c_tag = "Cargo Bay South"; +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/loading_area{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/quartermaster/storage) "ahn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/conveyor{ - dir = 5; - id = "cargoload" - }, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/quartermaster/storage) "aho" = ( /obj/machinery/conveyor{ @@ -4412,168 +4771,157 @@ }, /turf/open/floor/plating, /area/quartermaster/storage) -"ahu" = ( -/turf/closed/wall/r_wall, -/area/asteroid/nearstation) -"ahv" = ( -/obj/machinery/suit_storage_unit/security, -/obj/structure/extinguisher_cabinet{ - pixel_x = -26 +"ahs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/brown{ + dir = 1 }, -/obj/structure/sign/nanotrasen{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/effect/turf_decal/tile/brown{ dir = 4 }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aht" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ahu" = ( +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ - dir = 6 + dir = 1 + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Maintenance"; + req_access_txt = "63" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/security/prison) +"ahv" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"ahw" = ( +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"ahx" = ( +/obj/machinery/airalarm/unlocked{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/light{ + dir = 8 }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ - dir = 8 + dir = 4 + }, +/obj/machinery/computer/card/minor/hos{ + icon_state = "computer"; + dir = 4 }, /turf/open/floor/plasteel/dark, -/area/security/brig) -"ahw" = ( +/area/crew_quarters/heads/hos) +"ahy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/airlock/command{ + name = "Head of Security's Office"; + req_access_txt = "58" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hos) +"ahz" = ( /obj/structure/reagent_dispensers/peppertank{ pixel_y = 32 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"ahx" = ( -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/security/brig) -"ahy" = ( -/obj/machinery/suit_storage_unit/security, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"ahz" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/asteroid/nearstation) "ahA" = ( -/obj/structure/rack, -/obj/item/clothing/suit/fire/firefighter, -/obj/item/clothing/mask/gas, -/obj/item/clothing/head/hardhat/red, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/asteroid/nearstation) -"ahB" = ( -/obj/machinery/photocopier, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/obj/structure/cable/white{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/security/detectives_office) +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"ahB" = ( +/obj/effect/turf_decal/sand/plating, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/iron, +/turf/open/floor/plating, +/area/asteroid/nearstation) "ahC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/white{ - icon_state = "4-8" +/obj/structure/sign/nanotrasen{ + pixel_x = -32 }, -/obj/structure/cable/white{ - icon_state = "2-4" +/obj/machinery/light{ + dir = 8 }, -/obj/structure/cable/white{ - icon_state = "1-8" +/obj/structure/closet{ + name = "Evidence Closet" }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) +/obj/item/poster/random_contraband{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/poster/random_contraband{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/poster/random_contraband, +/turf/open/floor/plasteel/dark, +/area/security/brig) "ahD" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/pen, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/white{ - icon_state = "2-8" +/obj/machinery/light/small{ + brightness = 3; + dir = 8 }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/grimy, -/area/security/detectives_office) +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plating/asteroid, +/area/security/prison) "ahE" = ( /obj/structure/table/wood, -/obj/machinery/button/door{ - id = "detectivewindows"; - name = "Privacy Shutters"; - pixel_x = 26; - pixel_y = -26; - req_access_txt = "4" - }, -/obj/machinery/light_switch{ - pixel_x = 38; - pixel_y = -26 - }, -/obj/structure/cable/white{ - icon_state = "2-8" +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 }, /obj/item/folder/red, -/obj/item/hand_labeler, +/obj/item/stamp/hos, /turf/open/floor/plasteel/grimy, -/area/security/detectives_office) +/area/crew_quarters/heads/hos) "ahF" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp, -/obj/item/storage/secure/safe{ - pixel_x = 32 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 24; - pixel_y = -26 +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" }, /turf/open/floor/plasteel/grimy, -/area/security/detectives_office) +/area/crew_quarters/heads/hos) "ahG" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -4749,6 +5097,26 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/nuke_storage) +"ahW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) "ahX" = ( /obj/machinery/airalarm{ dir = 8; @@ -4802,17 +5170,24 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/starboard/fore) "aid" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/mining{ - name = "Cargo Bay"; - req_one_access_txt = "48;50" +/obj/structure/table/wood, +/obj/machinery/button/door{ + id = "detectivewindows"; + name = "Privacy Shutters"; + pixel_x = 26; + pixel_y = -26; + req_access_txt = "4" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/light_switch{ + pixel_x = 38; + pixel_y = -26 }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/machinery/recharger, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) "aie" = ( /obj/machinery/conveyor{ dir = 1; @@ -4833,29 +5208,100 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/quartermaster/storage) +"aig" = ( +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "secexterior"; + name = "Security Exterior Doors Control"; + normaldoorcontrol = 1; + pixel_x = 38; + pixel_y = 24 + }, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "secinterior"; + name = "Security Interior Doors Control"; + normaldoorcontrol = 1; + pixel_x = 24; + pixel_y = 24 + }, +/obj/machinery/button/door{ + id = "brigfront"; + name = "Brig Access Control"; + pixel_x = 24; + pixel_y = 38; + req_access_txt = "63" + }, +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_x = 38; + pixel_y = 38 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/landmark/start/warden, +/turf/open/floor/plasteel, +/area/security/brig) +"aih" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aii" = ( +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Cargo Bay South"; + dir = 1 + }, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aij" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/effect/landmark/start/chemist, +/turf/open/floor/plasteel, +/area/medical/chemistry) "aik" = ( /obj/structure/barricade/wooden, /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, /area/asteroid/nearstation) -"aim" = ( -/obj/structure/rack, -/obj/item/storage/box/rubbershot, -/obj/item/storage/box/rubbershot, -/obj/item/storage/box/rubbershot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/gun/ballistic/shotgun/riot, -/obj/structure/extinguisher_cabinet{ - pixel_x = -26 - }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/red{ +"ail" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/landmark/start/chief_medical_officer, /turf/open/floor/plasteel/dark, -/area/security/brig) +/area/medical/morgue) +"aim" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/landmark/start/head_of_security, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) "ain" = ( /obj/machinery/firealarm{ pixel_y = 26 @@ -4921,24 +5367,17 @@ /turf/open/floor/plasteel, /area/security/brig) "ais" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable/white{ - icon_state = "2-8" +/obj/machinery/computer/secure_data{ + dir = 8 }, -/obj/structure/cable/white{ - icon_state = "2-4" +/obj/machinery/light{ + dir = 4 }, -/obj/machinery/door/airlock/security/glass{ - name = "Security E.V.A. Storage"; - req_access_txt = "63" +/obj/machinery/status_display{ + pixel_x = 32 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) "ait" = ( /obj/structure/cable/white{ icon_state = "0-8" @@ -4947,40 +5386,37 @@ /turf/open/floor/plating, /area/security/brig) "aiu" = ( -/obj/structure/cable/white, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "detectivewindows"; - name = "Detective Privacy Blast door" +/obj/machinery/suit_storage_unit/security, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 }, -/turf/open/floor/plating, -/area/security/detectives_office) +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "aiv" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - name = "Detective's Office"; - req_access_txt = "4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/detectives_office) +/obj/item/cultivator, +/turf/open/floor/plating/asteroid, +/area/security/prison) "aiw" = ( -/obj/structure/cable/white, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "detectivewindows"; - name = "Detective Privacy Blast door" +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/item/stack/cable_coil/white, +/obj/item/stack/cable_coil/white, +/obj/item/stack/sheet/glass, +/obj/item/stack/sheet/glass, +/obj/item/circuitboard/machine/microwave, +/turf/open/floor/plating{ + icon_state = "panelscorched" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/detectives_office) +/area/maintenance/starboard/central) "aix" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "Maintenance Hatch"; @@ -5124,14 +5560,22 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "aiJ" = ( -/obj/effect/turf_decal/tile/brown{ +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/yellow{ dir = 1 }, -/obj/effect/turf_decal/tile/brown{ +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/landmark/start/chemist, /turf/open/floor/plasteel, -/area/quartermaster/storage) +/area/medical/chemistry) "aiK" = ( /obj/structure/closet/crate/bin, /obj/effect/turf_decal/tile/brown{ @@ -5198,35 +5642,68 @@ }, /turf/open/floor/plasteel, /area/quartermaster/storage) -"aiR" = ( -/obj/structure/rack, -/obj/item/gun/energy/e_gun/advtaser{ - pixel_x = -3; - pixel_y = 3 +"aiP" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" }, -/obj/item/gun/energy/e_gun/advtaser, -/obj/machinery/light{ +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/landmark/start/research_director, +/turf/open/floor/plasteel/white, +/area/science/research) +"aiQ" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/obj/machinery/status_display{ - pixel_x = -32 +/obj/effect/landmark/start/paramedic, +/turf/open/floor/plasteel, +/area/medical/medbay/zone3) +"aiR" = ( +/obj/machinery/suit_storage_unit/security, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 8 }, /turf/open/floor/plasteel/dark, /area/security/brig) "aiS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/structure/sign/poster/official/do_not_question{ + pixel_y = -32 }, -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, /turf/open/floor/plasteel, -/area/security/brig) +/area/security/prison) "aiT" = ( /obj/structure/rack, /obj/item/gun/energy/ionrifle, @@ -5306,51 +5783,24 @@ /turf/open/floor/plating, /area/security/brig) "aja" = ( -/obj/structure/closet/secure_closet/brig{ - id = "brig1"; - name = "Cell 1 Locker" +/obj/machinery/status_display/ai{ + pixel_x = 32 }, -/obj/machinery/light/small{ - dir = 1 +/obj/structure/closet{ + name = "Evidence Closet" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/security/brig) "ajb" = ( -/obj/machinery/flasher{ - id = "brig1"; - pixel_y = 26 +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_y = -26 }, -/obj/structure/chair, -/obj/structure/cable/white{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Security - Cell 1" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /turf/open/floor/plasteel, -/area/security/brig) +/area/security/prison) "ajc" = ( /obj/structure/cable/white{ icon_state = "0-8" @@ -5363,7 +5813,7 @@ /turf/open/floor/plating, /area/security/brig) "ajd" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -5707,7 +6157,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/camera{ @@ -5718,6 +6168,22 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) +"ajG" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/landmark/start/chief_medical_officer, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) "ajH" = ( /obj/structure/plasticflaps/opaque, /obj/effect/turf_decal/delivery, @@ -5780,28 +6246,78 @@ }, /turf/open/floor/plasteel, /area/quartermaster/storage) -"ajQ" = ( -/obj/item/stack/ore/iron, -/obj/effect/turf_decal/sand/plating, -/turf/open/floor/plating, -/area/asteroid/nearstation) -"ajR" = ( -/obj/structure/rack, -/obj/item/gun/energy/e_gun{ - pixel_x = -3; - pixel_y = 3 +"ajN" = ( +/obj/structure/cable/white{ + icon_state = "4-8" }, -/obj/item/gun/energy/e_gun, -/obj/item/radio/intercom{ - name = "Station Intercom"; - pixel_x = -26 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/red{ +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/blue{ dir = 1 }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/landmark/start/paramedic, +/turf/open/floor/plasteel, +/area/medical/medbay/zone3) +"ajO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/landmark/start/paramedic, +/turf/open/floor/plasteel, +/area/medical/medbay/zone3) +"ajP" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/research_director, +/turf/open/floor/plasteel, +/area/science/mixing) +"ajQ" = ( +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"ajR" = ( +/obj/machinery/photocopier, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /turf/open/floor/plasteel/dark, -/area/security/brig) +/area/crew_quarters/heads/hos) "ajS" = ( /obj/structure/cable/white{ icon_state = "2-4" @@ -5876,24 +6392,10 @@ /turf/open/floor/plasteel, /area/security/brig) "ajX" = ( -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, +/area/asteroid/nearstation) "ajY" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5908,27 +6410,23 @@ /turf/open/floor/plasteel, /area/security/brig) "ajZ" = ( -/obj/structure/cable/white{ - icon_state = "1-4" +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/obj/structure/cable/white{ - icon_state = "4-8" +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/obj/machinery/door/window/brigdoor/security/cell/westright{ - id = "brig1"; - name = "Cell 1" +/obj/machinery/door/firedoor, +/obj/machinery/turnstile{ + name = "Genpop Entrance Turnstile"; + req_access_txt = "69"; + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, /turf/open/floor/plasteel, -/area/security/brig) +/area/security/prison) "aka" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -5940,21 +6438,15 @@ /turf/open/floor/plasteel, /area/security/brig) "akb" = ( -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 +/obj/effect/turf_decal/stripes/line{ + dir = 9 }, +/obj/structure/rack, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/mask/gas, +/obj/item/clothing/head/hardhat/red, /turf/open/floor/plasteel, -/area/security/brig) +/area/maintenance/port/fore) "akc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/red{ @@ -6487,32 +6979,20 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "akM" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) +/obj/item/stack/ore/silver, +/obj/item/stack/ore/iron, +/turf/open/floor/plating/asteroid, +/area/asteroid/nearstation) "akN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/brown{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 8 }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/chief) "akO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) "akP" = ( /obj/machinery/photocopier, /obj/effect/turf_decal/tile/brown{ @@ -6524,6 +7004,42 @@ }, /turf/open/floor/plasteel, /area/quartermaster/storage) +"akQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/conveyor{ + dir = 5; + id = "cargoload" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"akR" = ( +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"akS" = ( +/turf/closed/wall/r_wall/rust, +/area/crew_quarters/heads/chief) "akT" = ( /obj/structure/sign/warning/electricshock{ pixel_x = -32 @@ -6617,11 +7133,6 @@ /turf/open/floor/plasteel, /area/security/brig) "akZ" = ( -/obj/machinery/door_timer{ - id = "brig1"; - name = "Cell 1"; - pixel_x = 32 - }, /obj/structure/chair{ dir = 8 }, @@ -6629,6 +7140,10 @@ dir = 4 }, /obj/effect/turf_decal/tile/red, +/obj/machinery/status_display{ + pixel_x = 32; + pixel_y = 0 + }, /turf/open/floor/plasteel, /area/security/brig) "ala" = ( @@ -6732,7 +7247,7 @@ /turf/closed/wall, /area/hallway/primary/central) "alm" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/light{ @@ -6788,7 +7303,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "als" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/light{ @@ -6932,9 +7447,9 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "alE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/white{ - icon_state = "2-4" +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -6943,11 +7458,12 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/camera{ + c_tag = "Chief Engineer's Office" }, -/turf/open/floor/plasteel, -/area/quartermaster/storage) +/mob/living/simple_animal/parrot/Poly, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) "alF" = ( /obj/machinery/power/apc{ areastring = "/area/quartermaster/storage"; @@ -6970,47 +7486,21 @@ /turf/open/floor/plating, /area/asteroid/nearstation) "alH" = ( -/obj/item/grenade/barrier{ - pixel_x = -3; - pixel_y = 1 - }, -/obj/item/grenade/barrier, -/obj/item/grenade/barrier{ - pixel_x = 3; - pixel_y = -1 - }, -/obj/item/grenade/barrier{ - pixel_x = 6; - pixel_y = -2 - }, -/obj/structure/table/reinforced, -/obj/machinery/newscaster/security_unit{ - pixel_x = -32 - }, -/obj/machinery/camera{ - c_tag = "Brig Control Room"; - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"alI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 +/obj/structure/cable/white{ + icon_state = "2-4" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/structure/cable/white{ + icon_state = "1-8" }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"alI" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/chief) "alJ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 @@ -7503,7 +7993,7 @@ pixel_y = -24 }, /obj/machinery/light, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/brown, @@ -7560,6 +8050,32 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/quartermaster/miningdock) +"amE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/chief) +"amF" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/stamp/ce, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) "amG" = ( /obj/structure/table, /obj/item/clothing/mask/gas, @@ -7576,27 +8092,11 @@ /turf/open/floor/plating, /area/asteroid/nearstation) "amH" = ( -/obj/item/storage/box/chemimp{ - pixel_x = 6 +/obj/structure/sign/warning/nosmoking{ + pixel_y = 32 }, -/obj/item/storage/box/trackimp{ - pixel_x = -3 - }, -/obj/item/storage/lockbox/loyalty, -/obj/structure/table/reinforced, -/obj/machinery/airalarm/unlocked{ - dir = 4; - pixel_x = -23 - }, -/obj/machinery/camera{ - c_tag = "Security - Office"; - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) +/turf/open/floor/plasteel/dark, +/area/library) "amI" = ( /obj/machinery/holopad, /obj/structure/cable/white{ @@ -7753,6 +8253,24 @@ }, /turf/open/floor/plasteel/dark, /area/teleporter) +"amU" = ( +/obj/machinery/computer/card/minor/ce, +/obj/machinery/keycard_auth{ + pixel_x = 24; + pixel_y = -8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) "amV" = ( /obj/structure/table/reinforced, /obj/item/storage/belt/utility, @@ -7992,29 +8510,58 @@ /obj/structure/sign/warning/vacuum, /turf/open/floor/plating, /area/quartermaster/miningdock) +"anu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Chief Engineer"; + req_access_txt = "56" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"anv" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"anw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) "anx" = ( /obj/structure/grille, /turf/closed/wall/r_wall, /area/engine/atmos) "any" = ( -/obj/item/storage/box/firingpins, -/obj/item/storage/box/firingpins, -/obj/structure/table/reinforced, -/obj/machinery/light{ - dir = 8 +/obj/structure/table/wood, +/obj/machinery/newscaster{ + pixel_y = 32 }, -/obj/machinery/requests_console{ - department = "Security"; - name = "Security RC"; - pixel_x = -32 - }, -/obj/item/gun/energy/e_gun/dragnet, -/obj/item/gun/energy/e_gun/dragnet, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) +/obj/item/clipboard, +/obj/item/folder/red, +/obj/item/hand_labeler, +/turf/open/floor/wood, +/area/security/detectives_office) "anz" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -8033,44 +8580,26 @@ /turf/open/floor/plasteel, /area/security/brig) "anA" = ( -/obj/machinery/button/door{ - desc = "A remote control switch for the medbay foyer."; - id = "secexterior"; - name = "Security Exterior Doors Control"; - normaldoorcontrol = 1; - pixel_x = 38; - pixel_y = 24 - }, -/obj/machinery/button/door{ - desc = "A remote control switch for the medbay foyer."; - id = "secinterior"; - name = "Security Interior Doors Control"; - normaldoorcontrol = 1; - pixel_x = 24; - pixel_y = 24 - }, -/obj/machinery/button/door{ - id = "brigfront"; - name = "Brig Access Control"; - pixel_x = 24; - pixel_y = 38; - req_access_txt = "63" - }, /obj/structure/chair/office/dark{ - dir = 4 + dir = 1 }, -/obj/machinery/light_switch{ - pixel_x = 38; - pixel_y = 38 +/obj/effect/landmark/start/chief_engineer, +/obj/effect/turf_decal/stripes/line{ + dir = 5 }, -/obj/effect/landmark/start/security_officer, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Engineer's Desk"; + departmentType = 3; + name = "Chief Engineer RC"; + pixel_x = 32 }, /turf/open/floor/plasteel, -/area/security/brig) +/area/crew_quarters/heads/chief) "anB" = ( /obj/machinery/door/firedoor, /obj/structure/table/reinforced, @@ -8126,7 +8655,7 @@ /turf/open/floor/plasteel, /area/security/brig) "anF" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/door_timer{ @@ -8181,6 +8710,25 @@ }, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet/restrooms) +"anK" = ( +/obj/structure/closet/secure_closet/engineering_chief, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26 + }, +/obj/item/rcl/pre_loaded, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) "anL" = ( /obj/machinery/door/window/northleft{ dir = 4; @@ -8213,6 +8761,18 @@ /obj/item/beacon, /turf/open/floor/plasteel, /area/teleporter) +"anO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) "anP" = ( /obj/machinery/teleport/station, /obj/machinery/light{ @@ -8510,6 +9070,68 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/quartermaster/miningdock) +"aon" = ( +/obj/item/kirbyplants{ + icon_state = "plant-21" + }, +/obj/structure/cable/white{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/chief"; + dir = 4; + name = "Chief Engineer's Office APC"; + pixel_x = 26 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"aoo" = ( +/obj/machinery/suit_storage_unit/ce, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"aop" = ( +/obj/effect/landmark/start/chief_engineer, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = -32; + pixel_y = -26 + }, +/obj/machinery/computer/security/telescreen/ce{ + dir = 1; + icon_state = "telescreen"; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) "aoq" = ( /turf/open/floor/engine/vacuum, /area/engine/atmos) @@ -8520,25 +9142,18 @@ /turf/open/floor/engine/vacuum, /area/engine/atmos) "aos" = ( -/obj/item/storage/box/teargas{ - pixel_x = 3; - pixel_y = 3 +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/obj/item/storage/secure/safe{ + pixel_x = 32 }, -/obj/item/storage/box/handcuffs, -/obj/item/storage/box/flashbangs{ - pixel_x = -3; - pixel_y = -3 +/obj/structure/extinguisher_cabinet{ + pixel_x = 24; + pixel_y = -26 }, -/obj/structure/table/reinforced, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) +/obj/item/toy/figure/hos, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) "aot" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -9142,6 +9757,22 @@ }, /turf/open/floor/plasteel, /area/quartermaster/miningdock) +"apo" = ( +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) "app" = ( /obj/docking_port/stationary{ dir = 4; @@ -9154,10 +9785,127 @@ }, /turf/open/space/basic, /area/space) +"apq" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 8; + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/chief) +"apr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/command/glass{ + name = "Chief Engineer"; + req_access_txt = "56" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"aps" = ( +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/machinery/button/door{ + id = "engstorage"; + name = "Engineering Secure Storage Control"; + pixel_y = 24; + req_access_txt = "10" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"apt" = ( +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"apu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sign/departments/custodian{ + pixel_x = 32; + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/aft) "apv" = ( /obj/machinery/air_sensor/atmos/mix_tank, /turf/open/floor/engine/vacuum, /area/engine/atmos) +"apw" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/rack, +/obj/item/storage/box/firingpins, +/obj/item/storage/box/firingpins, +/obj/item/gun/energy/e_gun/dragnet, +/obj/item/gun/energy/e_gun/dragnet, +/turf/open/floor/plasteel/dark, +/area/security/brig) "apx" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ @@ -9442,6 +10190,21 @@ /obj/item/storage/box/lights/mixed, /turf/open/floor/plating, /area/maintenance/port/central) +"apR" = ( +/obj/structure/rack, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/gun/ballistic/shotgun/riot, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "apS" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "Maintenance Hatch"; @@ -9723,6 +10486,22 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) +"aqo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/port) "aqp" = ( /obj/machinery/autolathe, /obj/structure/extinguisher_cabinet{ @@ -9800,6 +10579,37 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/quartermaster/miningdock) +"aqw" = ( +/obj/structure/cable/white, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "detectivewindows"; + name = "HoS Privacy Blast door" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"aqx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/landmark/xeno_spawn, +/obj/structure/sign/warning/vacuum{ + pixel_x = -32; + pixel_y = 32 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/maintenance/port) +"aqy" = ( +/obj/structure/cable/white, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "detectivewindows"; + name = "HoS Privacy Blast door" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) "aqz" = ( /turf/closed/wall/r_wall, /area/engine/atmos) @@ -9807,6 +10617,19 @@ /obj/effect/spawner/structure/window/plasma/reinforced, /turf/open/floor/plating, /area/engine/atmos) +"aqB" = ( +/obj/machinery/status_display{ + pixel_x = -32 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/security/brig) "aqC" = ( /obj/machinery/meter, /obj/structure/grille, @@ -9815,6 +10638,13 @@ }, /turf/closed/wall/r_wall, /area/engine/atmos) +"aqD" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) "aqE" = ( /obj/machinery/meter, /obj/structure/grille, @@ -9831,10 +10661,35 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "aqG" = ( -/obj/structure/door_assembly/door_assembly_mhatch, -/obj/effect/turf_decal/sand/plating, -/turf/open/floor/plating, -/area/maintenance/port/fore) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aqH" = ( +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_x = -26 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/gun/energy/e_gun/advtaser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/energy/e_gun/advtaser, +/turf/open/floor/plasteel/dark, +/area/security/brig) "aqI" = ( /obj/structure/closet/secure_closet/security/sec, /obj/item/radio/intercom{ @@ -9932,7 +10787,7 @@ /turf/open/floor/plasteel, /area/security/brig) "aqP" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/firealarm{ @@ -9952,22 +10807,15 @@ /turf/open/floor/plasteel, /area/security/brig) "aqQ" = ( -/obj/machinery/door/firedoor, -/obj/structure/table/reinforced, -/obj/item/clipboard, -/obj/item/folder/red, -/obj/item/toy/figure/hos, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 }, /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/structure/closet/secure_closet/warden, +/obj/item/toy/figure/warden, /turf/open/floor/plasteel, /area/security/brig) "aqR" = ( @@ -10226,6 +11074,36 @@ }, /turf/open/floor/plasteel, /area/quartermaster/miningdock) +"arn" = ( +/obj/structure/rack, +/obj/item/gun/energy/e_gun{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/energy/e_gun, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aro" = ( +/turf/closed/wall, +/area/maintenance/port/fore) +"arp" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"arq" = ( +/turf/closed/wall/r_wall, +/area/maintenance/port/fore) "arr" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2o{ dir = 8 @@ -10243,6 +11121,52 @@ }, /turf/open/floor/plasteel/dark, /area/engine/atmos) +"ars" = ( +/turf/open/floor/plating, +/area/maintenance/port/fore) +"art" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aru" = ( +/obj/machinery/newscaster/security_unit{ + pixel_x = -32 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/grenade/barrier{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/grenade/barrier, +/obj/item/grenade/barrier{ + pixel_x = 3; + pixel_y = -1 + }, +/obj/item/grenade/barrier{ + pixel_x = 6; + pixel_y = -2 + }, +/obj/machinery/camera{ + c_tag = "Brig Control Room"; + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "arv" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 9 @@ -10344,9 +11268,11 @@ /turf/open/floor/plasteel, /area/engine/atmos) "arB" = ( -/obj/effect/turf_decal/sand/plating, -/turf/open/floor/plating, -/area/maintenance/port/fore) +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) "arC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, @@ -10739,6 +11665,21 @@ icon_state = "platingdmg3" }, /area/maintenance/port/central) +"asa" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) "asb" = ( /obj/structure/cable/white{ icon_state = "2-8" @@ -10780,7 +11721,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/bar/atrium) "ase" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/red{ @@ -10840,7 +11781,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/bar/atrium) "asi" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/red{ @@ -10884,6 +11825,47 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/central) +"asm" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"asn" = ( +/obj/machinery/airalarm/unlocked{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/camera{ + c_tag = "Security - Office"; + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/storage/box/chemimp{ + pixel_x = 6 + }, +/obj/item/storage/box/trackimp{ + pixel_x = -3 + }, +/obj/item/storage/lockbox/loyalty, +/turf/open/floor/plasteel/dark, +/area/security/brig) "aso" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -10904,6 +11886,13 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/central) +"asq" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/landmark/start/warden, +/turf/open/floor/plasteel, +/area/security/brig) "asr" = ( /obj/effect/turf_decal/loading_area{ dir = 4 @@ -10940,6 +11929,10 @@ }, /turf/open/floor/plasteel, /area/maintenance/starboard) +"asu" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/port/fore) "asv" = ( /turf/open/floor/engine/n2, /area/engine/atmos) @@ -10959,6 +11952,60 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) +"asy" = ( +/obj/item/cigbutt, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"asz" = ( +/obj/machinery/requests_console{ + department = "Security"; + name = "Security RC"; + pixel_x = -32 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/storage/box/teargas{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/handcuffs, +/obj/item/storage/box/flashbangs{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"asA" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"asB" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/item/clipboard, +/obj/item/folder/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/item/toy/figure/secofficer, +/turf/open/floor/plasteel, +/area/security/brig) "asC" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ dir = 10 @@ -10972,6 +12019,26 @@ dir = 1 }, /area/engine/atmos) +"asD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"asE" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) "asF" = ( /obj/machinery/atmospherics/pipe/simple/supply/visible{ dir = 5 @@ -11327,6 +12394,11 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/storage/primary) +"ata" = ( +/obj/structure/window/reinforced/tinted/fulltile, +/obj/structure/grille, +/turf/open/floor/plating, +/area/security/detectives_office) "atb" = ( /obj/structure/cable/white{ icon_state = "1-8" @@ -11419,6 +12491,10 @@ }, /turf/open/floor/plasteel/dark, /area/crew_quarters/bar/atrium) +"atk" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/security/detectives_office) "atl" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -11475,6 +12551,89 @@ }, /turf/open/floor/plasteel, /area/maintenance/starboard) +"atr" = ( +/obj/structure/table/wood, +/obj/item/storage/secure/briefcase, +/obj/item/restraints/handcuffs, +/obj/item/grenade/smokebomb, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/detectives_office) +"ats" = ( +/obj/item/clothing/suit/jacket{ + desc = "All the class of a trenchcoat without the security fibers."; + icon_state = "greydet"; + name = "trenchcoat" + }, +/obj/item/clothing/suit/jacket{ + desc = "All the class of a trenchcoat without the security fibers."; + icon_state = "detective"; + name = "trenchcoat" + }, +/obj/item/clothing/head/fedora, +/obj/item/clothing/head/fedora{ + icon_state = "detective" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/secure_closet/detective, +/turf/open/floor/wood, +/area/security/detectives_office) +"att" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/security/detectives_office) +"atu" = ( +/obj/structure/table/wood, +/obj/item/crowbar/red, +/obj/item/book/manual/wiki/security_space_law{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/book/manual/wiki/detective, +/obj/item/camera/detective, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/detectives_office) +"atv" = ( +/obj/effect/landmark/start/detective, +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/light_switch{ + pixel_x = 8; + pixel_y = -24 + }, +/obj/machinery/camera{ + c_tag = "Detective's Office - Quarters"; + dir = 1 + }, +/turf/open/floor/wood, +/area/security/detectives_office) +"atw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/wood, +/area/security/detectives_office) "atx" = ( /obj/machinery/air_sensor/atmos/nitrogen_tank, /turf/open/floor/engine/n2, @@ -11489,6 +12648,109 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) +"atz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/detectives_office) +"atA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/airlock/security{ + name = "Detective's Office"; + req_access_txt = "4" + }, +/turf/open/floor/plasteel, +/area/security/detectives_office) +"atB" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/sign/poster/ripped{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/maintenance/starboard/aft) +"atC" = ( +/obj/machinery/photocopier, +/obj/item/newspaper{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/newspaper, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/sign/poster/official/cohiba_robusto_ad{ + pixel_x = -32 + }, +/obj/machinery/light_switch{ + pixel_x = 8; + pixel_y = 24 + }, +/obj/machinery/camera{ + c_tag = "Detective's Office - Desk" + }, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_x = -6; + pixel_y = 22 + }, +/turf/open/floor/wood, +/area/security/detectives_office) +"atD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/security/detectives_office) +"atE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "External Airlock"; + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/port) +"atF" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/detectives_office) +"atG" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/machinery/computer/med_data/laptop{ + icon_state = "laptop"; + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Detective's Office"; + name = "Detective RC"; + pixel_x = -30 + }, +/turf/open/floor/wood, +/area/security/detectives_office) +"atH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair/office/dark, +/obj/effect/landmark/start/detective, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/detectives_office) "atI" = ( /obj/structure/cable/white{ icon_state = "0-2" @@ -11516,6 +12778,9 @@ }, /turf/open/floor/plasteel/dark/corner, /area/engine/atmos) +"atJ" = ( +/turf/open/floor/wood, +/area/security/detectives_office) "atK" = ( /obj/structure/sign/poster/contraband/random{ pixel_x = 32 @@ -11789,7 +13054,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -11885,6 +13150,12 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/dark, /area/crew_quarters/bar/atrium) +"auh" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/science/research) "aui" = ( /obj/machinery/status_display, /turf/closed/wall, @@ -11999,6 +13270,51 @@ /obj/machinery/atmospherics/pipe/manifold/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) +"aur" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/structure/sign/departments/security{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"aus" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/detectives_office) +"aut" = ( +/obj/structure/table/wood, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/machinery/computer/security/wooden_tv{ + pixel_x = 0; + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/security/detectives_office) +"auu" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/machinery/computer/secure_data/laptop{ + dir = 1; + icon_state = "laptop"; + pixel_y = 4 + }, +/turf/open/floor/wood, +/area/security/detectives_office) "auv" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 10 @@ -12017,6 +13333,44 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) +"aux" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/detectives_office) +"auy" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"auz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/door/airlock/security{ + name = "Detective's Office"; + req_access_txt = "4" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/detectives_office) "auA" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -12339,7 +13693,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -12480,6 +13834,15 @@ }, /turf/open/floor/plasteel/dark, /area/crew_quarters/bar/atrium) +"avm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/security/detectives_office) "avn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -12626,12 +13989,66 @@ }, /turf/open/floor/plasteel/dark, /area/engine/atmos) +"avz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/security/detectives_office) +"avA" = ( +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/turf/open/floor/wood, +/area/security/detectives_office) +"avB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/warning/vacuum{ + pixel_x = -32; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/port) +"avC" = ( +/obj/structure/sign/poster/ripped, +/turf/closed/wall/rust, +/area/security/detectives_office) +"avD" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/wood, +/area/security/detectives_office) "avE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 10 }, /turf/open/floor/plasteel, /area/engine/atmos) +"avF" = ( +/obj/structure/table/wood, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/item/clothing/mask/cigarette/cigar/cohiba{ + pixel_x = 3 + }, +/obj/item/clothing/mask/cigarette/cigar/havana{ + pixel_x = -3 + }, +/obj/item/clothing/mask/cigarette/cigar, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/wood, +/area/security/detectives_office) "avG" = ( /obj/machinery/light{ dir = 4 @@ -12650,6 +14067,22 @@ }, /turf/open/floor/plasteel/dark/corner, /area/engine/atmos) +"avH" = ( +/obj/structure/table/wood, +/obj/structure/cable/white, +/obj/machinery/power/apc{ + areastring = "/area/security/detectives_office"; + name = "Detective's Office APC"; + pixel_y = -26 + }, +/obj/item/storage/briefcase{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/storage/secure/briefcase, +/obj/item/taperecorder, +/turf/open/floor/wood, +/area/security/detectives_office) "avI" = ( /obj/structure/cable/white{ icon_state = "2-4" @@ -12845,7 +14278,7 @@ dir = 8; pixel_x = 24 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral, @@ -13237,6 +14670,12 @@ "awA" = ( /turf/open/floor/engine/o2, /area/engine/atmos) +"awB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port) "awC" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 @@ -13260,11 +14699,39 @@ }, /turf/open/floor/plasteel/dark, /area/engine/atmos) +"awD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/item/cigbutt, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/starboard/aft) +"awE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/port) "awF" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engine/atmos) +"awG" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/port) +"awH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light/small, +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plasteel, +/area/maintenance/port) "awI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 5 @@ -13291,6 +14758,12 @@ }, /turf/open/floor/plasteel/dark/corner, /area/engine/atmos) +"awL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/port) "awM" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -13552,14 +15025,70 @@ /obj/item/wirecutters, /turf/open/floor/plasteel, /area/maintenance/starboard) +"axh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/maintenance/port) "axi" = ( /obj/machinery/air_sensor/atmos/oxygen_tank, /turf/open/floor/engine/o2, /area/engine/atmos) +"axj" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/port) +"axk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/closet/crate, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/pickaxe/emergency, +/turf/open/floor/plasteel, +/area/maintenance/port) +"axl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/port) "axm" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer, /turf/open/floor/plasteel, /area/engine/atmos) +"axn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) "axo" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/turf_decal/stripes/line{ @@ -13584,7 +15113,7 @@ /obj/machinery/status_display/ai{ pixel_y = 32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/bot, @@ -13835,6 +15364,23 @@ }, /turf/open/floor/carpet, /area/crew_quarters/dorms) +"axL" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/port) "axM" = ( /obj/structure/table/wood, /obj/item/lipstick/random{ @@ -13983,6 +15529,13 @@ }, /turf/open/floor/plasteel/dark, /area/crew_quarters/bar/atrium) +"axU" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/maintenance/port) "axV" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/newscaster{ @@ -13998,6 +15551,85 @@ "axW" = ( /turf/closed/wall, /area/hallway/secondary/exit) +"axX" = ( +/obj/effect/landmark/xeno_spawn, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/wood, +/area/maintenance/port) +"axY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/cigbutt, +/turf/open/floor/plating, +/area/maintenance/port) +"axZ" = ( +/turf/closed/wall/r_wall/rust, +/area/security/prison) +"aya" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/machinery/door/airlock/security/glass{ + name = "Security E.V.A. Storage"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ayb" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"ayc" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"ayd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"aye" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/ambrosia, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"ayf" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/potato, +/turf/open/floor/plating/asteroid, +/area/security/prison) +"ayg" = ( +/obj/item/stack/ore/glass, +/turf/open/floor/plating/asteroid, +/area/asteroid/nearstation) "ayh" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 8 @@ -14160,6 +15792,16 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) +"ayy" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) "ayz" = ( /turf/open/floor/plasteel/grimy, /area/crew_quarters/dorms) @@ -14182,6 +15824,30 @@ /obj/item/bedsheet/red, /turf/open/floor/carpet, /area/crew_quarters/dorms) +"ayD" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + id_tag = "secinterior"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) "ayE" = ( /obj/structure/table/wood, /obj/item/instrument/violin, @@ -14509,6 +16175,95 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/hallway/secondary/exit) +"azc" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/security/brig) +"azd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aze" = ( +/obj/machinery/door/poddoor/preopen{ + id = "brigfront"; + name = "Brig Blast door" + }, +/obj/machinery/turnstile{ + name = "Genpop Exit Turnstile"; + req_access_txt = "70"; + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/brig) +"azf" = ( +/obj/item/clothing/suit/space/orange, +/obj/item/clothing/head/helmet/space/orange, +/turf/open/floor/plating/asteroid, +/area/asteroid/nearstation) +"azg" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"azh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/table, +/obj/item/extinguisher/mini, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/mask/breath, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"azi" = ( +/turf/closed/wall, +/area/security/prison) +"azj" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/structure/toilet{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"azk" = ( +/obj/item/stack/ore/silver, +/obj/item/stack/ore/iron, +/turf/open/floor/plating/asteroid/airless, +/area/asteroid/nearstation) "azl" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2{ dir = 4 @@ -14537,6 +16292,15 @@ dir = 1 }, /area/engine/atmos) +"azn" = ( +/obj/machinery/door/airlock/public/glass, +/turf/open/floor/plasteel, +/area/security/prison) +"azo" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/security/prison) "azp" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -14861,11 +16625,12 @@ }, /area/maintenance/starboard/central) "azQ" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/area/maintenance/starboard/central) +/obj/machinery/vending/sustenance, +/turf/open/floor/plasteel, +/area/security/prison) "azR" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -14978,6 +16743,43 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) +"aAa" = ( +/obj/machinery/cryopod, +/obj/machinery/computer/cryopod{ + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aAb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"aAc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aAd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aAe" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aAf" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel, +/area/security/prison) "aAg" = ( /turf/open/floor/engine/air, /area/engine/atmos) @@ -15002,6 +16804,31 @@ /obj/structure/grille, /turf/closed/wall/r_wall, /area/engine/atmos) +"aAk" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/plasteel, +/area/security/prison) +"aAl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aAm" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/item/plant_analyzer, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) "aAn" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 6 @@ -15009,6 +16836,12 @@ /obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/atmos) +"aAo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) "aAp" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 @@ -15097,24 +16930,22 @@ /turf/open/floor/plasteel, /area/engine/atmos) "aAw" = ( -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Maintenance"; + req_access_txt = "63" + }, /turf/open/floor/plasteel, -/area/engine/atmos) +/area/security/prison) "aAx" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/turf_decal/tile/neutral{ @@ -15456,6 +17287,12 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/central) +"aAU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison) "aAV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -15605,29 +17442,144 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) +"aBi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/security/prison) +"aBj" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/cable/white{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/security/prison"; + dir = 8; + name = "Prison Wing APC"; + pixel_x = -26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"aBk" = ( +/obj/structure/closet/secure_closet/genpop, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aBl" = ( +/obj/machinery/airalarm/unlocked{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"aBm" = ( +/obj/structure/closet/secure_closet/genpop, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aBo" = ( +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "aBp" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{ dir = 1 }, /turf/open/floor/engine/o2, /area/engine/atmos) +"aBq" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "aBr" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output{ dir = 1 }, /turf/open/floor/engine/n2, /area/engine/atmos) +"aBs" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison) "aBt" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input{ dir = 1 }, /turf/open/floor/engine/n2, /area/engine/atmos) +"aBu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aBv" = ( +/obj/structure/closet/secure_closet/genpop, +/obj/machinery/camera{ + c_tag = "Prison - Entryway"; + dir = 8 + }, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aBw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aBx" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/brig) "aBy" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/open/floor/plasteel, /area/engine/atmos) +"aBz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison) "aBA" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -15987,7 +17939,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/red{ @@ -16131,12 +18083,102 @@ /obj/structure/sign/warning/vacuum, /turf/open/floor/plating, /area/hallway/secondary/exit) +"aCo" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aCp" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aCq" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aCr" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/security/glass{ + name = "Gen-Pop Access"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/security/prison) "aCs" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/machinery/light/small, /obj/machinery/atmospherics/miner/oxygen, /turf/open/floor/engine/o2, /area/engine/atmos) +"aCt" = ( +/obj/machinery/door/firedoor, +/obj/machinery/turnstile{ + name = "Genpop Exit Turnstile"; + icon_state = "turnstile_map"; + dir = 1; + req_access_txt = "70" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/security/prison) +"aCu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aCv" = ( +/obj/structure/cable/white{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/brig) "aCw" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, /obj/machinery/light/small, @@ -16717,7 +18759,7 @@ }, /area/engine/break_room) "aDB" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/yellow{ @@ -17404,7 +19446,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/dorms) "aEL" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/status_display{ @@ -18157,7 +20199,7 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -26 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/camera{ @@ -18344,12 +20386,6 @@ "aGe" = ( /turf/closed/wall/r_wall, /area/engine/gravity_generator) -"aGf" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/engine/engineering) "aGg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -18496,7 +20532,7 @@ /turf/open/floor/plasteel, /area/engine/break_room) "aGu" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/yellow, @@ -18912,27 +20948,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, /area/engine/engineering) -"aHi" = ( -/obj/structure/cable/white{ - icon_state = "2-4" - }, -/obj/machinery/button/door{ - id = "engstorage"; - name = "Engineering Secure Storage Control"; - pixel_y = 24; - req_access_txt = "10" - }, -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-21" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/engine, -/area/engine/engineering) "aHj" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -19085,7 +21100,7 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -19393,7 +21408,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/bar/atrium) "aHU" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/structure/sign/poster/random{ @@ -19446,7 +21461,7 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/starboard) "aHZ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/bot, @@ -20950,25 +22965,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"aKJ" = ( -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engine/engineering) "aKK" = ( /obj/structure/table/reinforced, /obj/structure/cable/white{ @@ -21009,8 +23005,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/twohanded/rcl/pre_loaded, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -21900,7 +23896,7 @@ /turf/open/floor/grass, /area/hydroponics) "aMt" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/light{ @@ -21948,7 +23944,7 @@ /turf/open/floor/plating, /area/maintenance/starboard/central) "aMy" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/bot, @@ -21961,7 +23957,7 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/starboard) "aMz" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/brown{ @@ -22626,10 +24622,6 @@ }, /turf/open/floor/engine, /area/engine/engineering) -"aOe" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/wall, -/area/janitor) "aOf" = ( /obj/machinery/door/airlock{ name = "Custodial Closet"; @@ -22672,7 +24664,7 @@ /turf/closed/wall, /area/hydroponics) "aOm" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/red{ @@ -22719,7 +24711,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "aOq" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/red{ @@ -22973,19 +24965,6 @@ heat_capacity = 1e+006 }, /area/hallway/primary/port/aft) -"aOQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port/aft) "aOR" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -23456,43 +25435,6 @@ }, /turf/open/floor/plasteel/dark, /area/hallway/primary/starboard) -"aPz" = ( -/obj/effect/spawner/structure/window/reinforced/tinted, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"aPA" = ( -/obj/structure/table/wood, -/obj/item/storage/secure/briefcase, -/obj/item/restraints/handcuffs, -/obj/item/grenade/smokebomb, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"aPB" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/obj/item/clothing/suit/jacket{ - desc = "All the class of a trenchcoat without the security fibers."; - icon_state = "greydet"; - name = "trenchcoat" - }, -/obj/item/clothing/suit/jacket{ - desc = "All the class of a trenchcoat without the security fibers."; - icon_state = "detective"; - name = "trenchcoat" - }, -/obj/item/clothing/head/fedora, -/obj/item/clothing/head/fedora{ - icon_state = "detective" - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"aPC" = ( -/obj/structure/dresser, -/turf/open/floor/wood, -/area/maintenance/starboard/aft) "aPG" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -23664,7 +25606,7 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/port/aft) "aPX" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -23954,7 +25896,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "aQA" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/newscaster{ @@ -23973,41 +25915,6 @@ }, /turf/open/floor/plasteel/dark, /area/hallway/primary/starboard) -"aQB" = ( -/obj/structure/table/wood, -/obj/item/crowbar/red, -/obj/item/book/manual/wiki/security_space_law{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/book/manual/wiki/detective, -/obj/item/camera/detective, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/maintenance/starboard/aft) -"aQC" = ( -/obj/structure/chair/office/dark{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/wood, -/area/maintenance/starboard/aft) -"aQD" = ( -/obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/starboard/aft) "aQG" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 6 @@ -24332,19 +26239,6 @@ "aRz" = ( /turf/closed/wall, /area/maintenance/starboard) -"aRA" = ( -/obj/structure/barricade/wooden, -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/starboard/aft) "aRB" = ( /obj/effect/turf_decal/bot, /obj/structure/table, @@ -24536,13 +26430,6 @@ }, /turf/open/floor/plasteel/dark, /area/library) -"aRV" = ( -/obj/structure/sign/warning/nosmoking{ - pixel_y = 32 - }, -/obj/machinery/vending/games, -/turf/open/floor/plasteel/dark, -/area/library) "aRW" = ( /obj/structure/chair/office/dark{ dir = 4 @@ -24710,7 +26597,7 @@ /obj/structure/cable/white{ icon_state = "0-2" }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/camera{ @@ -24731,13 +26618,6 @@ /obj/item/storage/pill_bottle/mutadone, /turf/open/floor/plasteel, /area/medical/chemistry) -"aSm" = ( -/obj/structure/chair/office/light{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/medical/chemistry) "aSn" = ( /obj/machinery/chem_dispenser, /obj/machinery/button/door{ @@ -24884,44 +26764,10 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/maintenance/starboard/aft) -"aSG" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/maintenance/starboard/aft) "aSH" = ( /obj/structure/sign/poster/contraband/random, /turf/closed/wall, /area/maintenance/starboard) -"aSI" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/machinery/photocopier, -/obj/item/newspaper{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/newspaper, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"aSJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood{ - icon_state = "wood-broken2" - }, -/area/maintenance/starboard/aft) -"aSK" = ( -/obj/structure/table/wood, -/obj/item/storage/fancy/cigarettes/cigpack_uplift{ - pixel_x = 6 - }, -/obj/item/storage/fancy/cigarettes/cigpack_carp{ - pixel_x = -3 - }, -/obj/item/lighter, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) "aSM" = ( /obj/machinery/door/airlock/command{ name = "Telecomms Server Room"; @@ -25308,7 +27154,7 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/lounge) "aTA" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18" }, /obj/machinery/camera{ @@ -25516,31 +27362,6 @@ icon_state = "panelscorched" }, /area/maintenance/starboard/aft) -"aTU" = ( -/obj/structure/table/wood, -/obj/item/poster/random_contraband{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/poster/random_contraband{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/item/poster/random_contraband, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"aTV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/starboard/aft) -"aTW" = ( -/obj/structure/chair/comfy/black{ - dir = 4 - }, -/turf/open/floor/wood, -/area/maintenance/starboard/aft) "aTX" = ( /obj/machinery/light{ dir = 8 @@ -25691,16 +27512,6 @@ }, /turf/open/floor/plasteel/dark, /area/medical/morgue) -"aUm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) "aUn" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, @@ -25763,22 +27574,6 @@ }, /turf/open/floor/plasteel/white, /area/medical/chemistry) -"aUu" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/medical/chemistry) "aUv" = ( /obj/machinery/holopad, /obj/structure/cable/white{ @@ -25930,48 +27725,6 @@ }, /turf/closed/wall/r_wall, /area/science/research) -"aUJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/science/research) -"aUK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/starboard/aft) -"aUL" = ( -/obj/structure/table/wood, -/obj/item/electronics/firelock, -/obj/item/electronics/airlock, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/wood, -/area/maintenance/starboard/aft) -"aUM" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/wood, -/area/maintenance/starboard/aft) -"aUN" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/effect/landmark/xeno_spawn, -/turf/open/floor/wood{ - icon_state = "wood-broken5" - }, -/area/maintenance/starboard/aft) "aUO" = ( /obj/structure/cable{ icon_state = "4-8" @@ -26429,50 +28182,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, /area/science/research) -"aVF" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"aVG" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, -/obj/structure/barricade/wooden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) -"aVH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood{ - icon_state = "wood-broken" - }, -/area/maintenance/starboard/aft) -"aVI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/wood, -/area/maintenance/starboard/aft) -"aVJ" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) "aVK" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 6 @@ -26921,28 +28630,6 @@ }, /turf/open/floor/circuit/green/telecomms/mainframe, /area/science/research) -"aWw" = ( -/obj/structure/table/wood, -/obj/item/clipboard, -/obj/item/electronics/airalarm, -/obj/item/electronics/airlock, -/turf/open/floor/wood, -/area/maintenance/starboard/aft) -"aWx" = ( -/obj/structure/table/wood, -/obj/item/stack/cable_coil/white, -/obj/item/stack/cable_coil/white, -/obj/item/stack/sheet/glass, -/obj/item/stack/sheet/glass, -/obj/item/circuitboard/machine/microwave, -/turf/open/floor/wood, -/area/maintenance/starboard/aft) -"aWy" = ( -/obj/structure/table/wood, -/obj/item/storage/briefcase, -/obj/item/taperecorder, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) "aWz" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple, /obj/structure/lattice, @@ -27133,7 +28820,7 @@ /turf/open/floor/plasteel/grimy, /area/crew_quarters/lounge) "aWR" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -27396,7 +29083,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/zone3) "aXu" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/button/door{ @@ -27503,22 +29190,6 @@ }, /turf/open/floor/plasteel/white, /area/science/research) -"aXD" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/structure/cable/white{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/science/research) "aXE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -27788,23 +29459,6 @@ }, /turf/open/floor/plasteel, /area/medical/medbay/zone3) -"aXY" = ( -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/medical/medbay/zone3) "aXZ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/closet/crate/bin, @@ -28715,21 +30369,6 @@ }, /turf/open/floor/plasteel/white, /area/medical/medbay/zone3) -"aZE" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/zone3) "aZF" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ @@ -28790,31 +30429,6 @@ }, /turf/open/floor/plasteel, /area/medical/medbay/zone3) -"aZJ" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/obj/structure/cable/white{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/medical/medbay/zone3) "aZK" = ( /obj/machinery/holopad, /obj/structure/cable/white{ @@ -29166,50 +30780,12 @@ "baj" = ( /turf/closed/wall, /area/maintenance/port) -"bak" = ( -/turf/open/floor/plasteel/dark, -/area/maintenance/port) -"bal" = ( -/obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/maintenance/port) "bam" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /turf/open/floor/plasteel/dark, /area/maintenance/port) -"ban" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, -/obj/structure/barricade/wooden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/port) "bao" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -29428,20 +31004,6 @@ }, /turf/open/floor/plasteel, /area/medical/medbay/zone3) -"baE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/medical/medbay/zone3) "baF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/blue, @@ -29724,12 +31286,6 @@ /obj/item/flashlight/lamp, /turf/open/floor/plating, /area/maintenance/port) -"bbd" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/plasteel/dark, -/area/maintenance/port) "bbe" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -29839,7 +31395,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/zone3) "bbr" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/blue, @@ -32738,7 +34294,7 @@ /turf/open/floor/plasteel/dark, /area/maintenance/starboard/aft) "bgw" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/airalarm{ @@ -32761,7 +34317,7 @@ /turf/open/floor/plasteel/dark, /area/maintenance/starboard/aft) "bgy" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -33457,7 +35013,7 @@ /turf/open/floor/plasteel/white/corner, /area/hallway/secondary/entry) "bhL" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -33568,7 +35124,7 @@ /turf/open/floor/plasteel/dark, /area/maintenance/starboard/aft) "bhU" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -34864,7 +36420,7 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "bkt" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/light{ @@ -34907,7 +36463,7 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bkE" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -35801,11 +37357,6 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) -"bte" = ( -/obj/structure/window/reinforced/tinted/fulltile, -/obj/structure/grille, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) "btk" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -36084,12 +37635,6 @@ }, /turf/closed/wall/r_wall/rust, /area/tcommsat/server) -"bwX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) "bwY" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -36443,70 +37988,6 @@ "bye" = ( /turf/closed/wall/rust, /area/maintenance/fore) -"byf" = ( -/obj/structure/sign/warning/vacuum, -/turf/closed/wall, -/area/maintenance/starboard/fore) -"byg" = ( -/obj/structure/closet/emcloset/anchored, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/maintenance/starboard/fore) -"byi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/starboard/fore) -"byj" = ( -/obj/machinery/door/airlock/external{ - name = "External Airlock"; - req_access_txt = "13" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/starboard/fore) -"byk" = ( -/obj/effect/decal/cleanable/blood/old, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/effect/landmark/xeno_spawn, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/maintenance/starboard/fore) -"byl" = ( -/obj/machinery/door/airlock/external{ - name = "External Airlock"; - req_access_txt = "13" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/maintenance/starboard/fore) "bym" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ @@ -36739,17 +38220,6 @@ }, /turf/open/floor/plasteel, /area/engine/atmos) -"cKy" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/white{ - icon_state = "0-2" - }, -/obj/structure/cable/white, -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/ai_monitored/nuke_storage) "cRz" = ( /obj/machinery/button/door{ id = "supplybridge"; @@ -37688,6 +39158,10 @@ /obj/machinery/atmospherics/miner/carbon_dioxide, /turf/open/floor/engine/co2, /area/engine/atmos) +"hQH" = ( +/obj/structure/sign/warning/vacuum, +/turf/closed/wall, +/area/quartermaster/storage) "hTn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock/research/glass{ @@ -38292,14 +39766,6 @@ /obj/structure/flora/ausbushes/ywflowers, /turf/open/floor/grass, /area/hallway/secondary/entry) -"lvt" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/vacuum, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plating, -/area/quartermaster/storage) "lvw" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible, /obj/effect/decal/cleanable/dirt, @@ -39045,10 +40511,6 @@ /obj/structure/flora/ausbushes/grassybush, /turf/open/floor/grass, /area/hallway/secondary/entry) -"pEH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/asteroid/nearstation) "pHH" = ( /obj/machinery/light, /obj/machinery/atmospherics/components/binary/valve{ @@ -39472,16 +40934,9 @@ "swz" = ( /turf/closed/wall/r_wall/rust, /area/crew_quarters/heads/hop) -"swA" = ( -/turf/closed/wall/rust, -/area/maintenance/starboard/fore) "swC" = ( /turf/closed/wall/r_wall/rust, /area/crew_quarters/heads/captain/private) -"swF" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/wall/rust, -/area/asteroid/nearstation) "swG" = ( /turf/closed/wall/rust, /area/security/detectives_office) @@ -39520,15 +40975,9 @@ /obj/machinery/status_display/supply, /turf/closed/wall/rust, /area/quartermaster/storage) -"swN" = ( -/turf/closed/wall/rust, -/area/asteroid/nearstation) "swZ" = ( /turf/closed/wall/r_wall/rust, /area/security/brig) -"sxc" = ( -/turf/closed/wall/r_wall/rust, -/area/asteroid/nearstation) "sxC" = ( /turf/closed/wall/r_wall/rust, /area/ai_monitored/turret_protected/ai) @@ -40221,12 +41670,6 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) -"sIA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/barricade/wooden, -/obj/effect/turf_decal/sand/plating, -/turf/open/floor/plating, -/area/engine/engineering) "sIB" = ( /turf/closed/wall/rust, /area/hydroponics) @@ -40517,10 +41960,6 @@ }, /turf/open/floor/plasteel/dark, /area/tcommsat/server) -"sJR" = ( -/obj/structure/sign/poster/contraband/random, -/turf/closed/wall/rust, -/area/maintenance/starboard/aft) "sJS" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ @@ -40661,7 +42100,7 @@ /turf/closed/wall/rust, /area/chapel/main) "sLg" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/delivery, @@ -70948,8 +72387,8 @@ tgp dgV fYx aCG -pEH -pEH +ajX +ajX qpG uBJ aIb @@ -70969,7 +72408,7 @@ aac aad aad aad -aac +bvg aac aaa aaa @@ -71205,8 +72644,8 @@ oCy orI xyo hNO -aad -acF +aaW +abu aGe aId aIc @@ -71225,10 +72664,10 @@ aad aad aad aad -aad -aad -aac -aac +baj +aqo +baj +baj aaa aaa aaa @@ -71462,8 +72901,8 @@ anx anx anx uok -aad -aad +akM +abu aGe aHg aId @@ -71483,9 +72922,9 @@ aMJ aMJ sJV aMJ -abu -aad -aad +aqx +awH +baj aaa aaa aaa @@ -71718,9 +73157,9 @@ uSs xIm rVj aAg -uok -aad -aad +akN +akO +anu aGe aGe sIu @@ -71740,9 +73179,9 @@ buJ buO sKn aMJ -acG -sxc -aad +atE +sKx +baj aac aaa aaa @@ -71975,11 +73414,11 @@ eva aqA qsc lUu -uok -aad -aad -afL -afM +akN +alE +anv +anK +aoo aGe aJk aKt @@ -71997,8 +73436,8 @@ buK sKj buR aMJ -afM -afL +avB +aOH aad aac aaa @@ -72232,12 +73671,12 @@ uSs xIm mgs aAg -uok -abi -aad -abT -agE -bwX +akN +amF +anw +anO +aop +aGe aJl aKu aLI @@ -72254,8 +73693,8 @@ buL buP buS aMJ -afM -aad +awB +baj aad aad aaa @@ -72489,11 +73928,11 @@ vVA anx anx anx -uok -aad -aad -abu -afL +akN +amU +anA +aon +apo sII aJm aKv @@ -72511,8 +73950,8 @@ buK sKj buR aMJ -aad -aad +awB +baj aad aad aaa @@ -72746,11 +74185,11 @@ dFV aAh aBp awA -uok -sHV -aEt -aEt -abu +akN +akS +alI +alI +apq bwY aJn aKw @@ -72768,8 +74207,8 @@ buN buQ buU sJV -agE -afL +awB +aOH aad aaa aaa @@ -73006,8 +74445,8 @@ aCs uok aEn aFq -aGf -sIA +amE +apr aIe abQ aKx @@ -73025,9 +74464,9 @@ sJV aMJ aMJ sJV -abi -ahu -sxc +awB +aOH +sKx aac aaa aaa @@ -73264,7 +74703,7 @@ uok aEo aFr aGg -aHi +aps aIf aJp aKy @@ -73281,10 +74720,10 @@ bvo aad bvo aad -abi -aad -aad -aac +baj +awE +awL +baj aac aac aac @@ -73499,7 +74938,7 @@ aik aaW abj abj -abu +ahB abu pNE gap @@ -73538,10 +74977,10 @@ aUQ aVK aUQ aXc -aad -ahu -aad -aad +baj +aOH +axY +awG aac aac aac @@ -73796,10 +75235,10 @@ aVL aUR aUQ bvo -sxc -aad +sKx +awB +baj aac -bvI aad aac aad @@ -74001,7 +75440,7 @@ aaa aac aac aad -aah +adx aad aac aac @@ -74053,9 +75492,9 @@ aUU aWz aVL bvo -ahu -bvg -bvg +aOH +axh +baj aad aad aad @@ -74258,7 +75697,7 @@ aaa aaa aaa aac -aac +adz aad aad aad @@ -74266,11 +75705,11 @@ aad aad aad abi -abu +agK abu aad aad -abj +azf abi pNE aoq @@ -74310,10 +75749,10 @@ aUU aWz aUQ bvg -bvo -aad -aad -aad +baj +awB +baj +baj aad aad aad @@ -74515,7 +75954,7 @@ aaa aaa aaa aac -aac +adz aac aac aad @@ -74567,10 +76006,10 @@ aUU aWz aVL bvg -bvg -aad -aad -aad +awG +awB +axj +baj aad aad aad @@ -74772,7 +76211,7 @@ aaa aaa aaa aaa -aac +adz aac aac aac @@ -74781,9 +76220,9 @@ aad aad aad adv -abj -abj -abu +aaW +ayg +ahB abu acF pNE @@ -74824,10 +76263,10 @@ aUU aUU aUQ bvg -bvo -aad -aad -aad +baj +awB +axk +baj aad aad aad @@ -75029,7 +76468,7 @@ aaa aaa aaa aaa -abR +aXc aac aac aad @@ -75038,7 +76477,7 @@ aad aad abi ael -abj +abu abu abu alG @@ -75081,10 +76520,10 @@ aUU aWz aVL bvg -aad -aad -aad -aad +baj +awB +aZo +baj aad aad aad @@ -75286,20 +76725,20 @@ aaa aaa aaa aaa -abR +aXc aac aac aad aad -aad -aad -abT -abi -aaV -ajQ -abi -abT -acG +aro +aro +aro +aro +azg +aro +aro +aro +asm bko cWv cWv @@ -75338,10 +76777,10 @@ aUU aWz aUQ bvo -aad -aad -aad -aad +baj +awE +awL +baj aad aad aad @@ -75543,23 +76982,23 @@ aaa aaa aac aac -aac +adz aac aac aad aad -aad -aad -aad -aad -aad -aad -aad -aad -agE -abi -aad -abi +aro +ars +ars +ars +ars +ars +arp +ars +ars +asu +asA +asD sAx arA asH @@ -75596,8 +77035,8 @@ aWz aVL bvo aOH -aZo baj +axl sKE baj aZo @@ -75800,23 +77239,23 @@ aac aac aad aac -aac +aem aad aad aad aad -abi -agE -aad -aad -aad -aad -afL -aad -abi -aad -aad -aaV +aro +ars +akb +asu +ayd +ayy +arq +azh +ars +asy +ars +ars aqz aqz aqz @@ -75854,7 +77293,7 @@ aUQ aad sKx aZp -bak +bam bbc bbQ dEa @@ -76056,26 +77495,26 @@ aaa aac aad aad -aad -swF -aad -aad -aad -aad -aad -aad -aad -afL -aaV -ajQ -aik -afL -aad -aad -abi -afM -aqG -arB +acH +acH +acH +acH +acH +acH +acH +ars +agF +agF +agF +agF +agF +agF +agF +agF +agF +ars +asE +ars asI atK auD @@ -76111,9 +77550,9 @@ aVL aad aOH aZq -bal -bbd -bbR +axn +axU +axX bcG bdE bev @@ -76313,22 +77752,22 @@ aac aac aad aad -aad -aad -aad -aad -aad -aad -aad +acH afL -ahu +ahD +aye +aAl +aAf +acH +ars agF +apw +aqB +aqH agF -swZ -agF -agF -agF -swZ +aru +asn +asz agF agF agF @@ -76570,23 +78009,23 @@ aac aac aad aad -aad -aad -aad -aad -aad -aad -abT -agE -sxc -aim -aiR -ajR +acH +afP +aiv +ayf +aAd +aAk +acH +ars +swZ +apR +aqD +arn akT -alH -amH -any -aos +arB +asq +anC +aqQ akT aqI arD @@ -76625,7 +78064,7 @@ sJH aQU aQU aZs -ban +axL bap bbT bcI @@ -76827,20 +78266,20 @@ aad aad aad aad -aad -aad -aad -aad -aad -aad -afL -abj -sxc +acH +azQ +aAc +aAc +aAm +acH +acH +ars +swZ ain -aiS +aqG ajS akU -alI +asa amI anz aot @@ -77081,25 +78520,25 @@ aaa aad aad aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -afM -aaV -ahu +acH +acH +acH +acH +aAa +aep +azo +aAo +acH +ars +ars +agF aio aiT ajT akV alJ amJ -anA +aig aou akV aqK @@ -77112,7 +78551,7 @@ aqz axv ayn azu -aAw +akR aBE aCI aDx @@ -77122,7 +78561,7 @@ aGq aHx aIt aJC -aKJ +apt aLZ aNb aEt @@ -77338,16 +78777,16 @@ aac aad aad aad -aad -aad -aad -aad -abi -abi -swN -abi -abT -acG +acH +abR +afh +azi +agG +aiS +acH +aAw +acH +afT agF agF aip @@ -77595,18 +79034,18 @@ aac aad aad aad -aad -aad -aad -aaV -aaW -abj -adv -ael -swN -abu -agF -ahv +acH +adw +aep +azn +aep +ajb +acH +aAU +acH +afU +ahC +aiu aiq aiV ajV @@ -77852,18 +79291,18 @@ aad aad aad aad -aad -aaV -abi -abj -abj -abS -abu -acF -abi -afN -swZ -ahw +acH +abT +azi +azi +aep +ajQ +acH +aAU +acH +ahz +aBw +aCp air aiW ajW @@ -77900,7 +79339,7 @@ aEt aYA aPT aQW -aRV +amH aTd aUe aUW @@ -78109,21 +79548,21 @@ aad aad aad aad -aad -aaW -abj -abj -abS -acD -acF -aem -afb -adw -agF -ahx -ais +acH +acE +azj +acH +afe +ajZ +acH +aBi +ahu +aBo +aBx +aCq +aya aiX -ajX +agm akY alN amM @@ -78366,18 +79805,18 @@ aad aad aad aad -aad -aad -abi -abj -abu -acE -adx -acF -adz -adw -agF -ahy +acH +acH +acH +acH +agH +art +acH +acJ +acH +aBq +aja +aiR ait aiY ajY @@ -78434,11 +79873,11 @@ baj aad aad aad -abT -abT -swN -abT -abT +bfu +bfu +sLf +bfu +bfu aad aad aad @@ -78624,20 +80063,20 @@ aad aad aad aad -aad -aad -aaW -abu -acF -acF -aeo -abi -acF -agF -swZ -agF -aiZ +aac +azk +acH +afe ajZ +acH +acH +acH +aBs +acH +axZ +acH +aiZ +ayD ala aiZ amN @@ -78881,27 +80320,27 @@ aad aad aad aad -aad -aad -abi -abi -acG -adz -swN -abi -acF -agG -ahz -agF -aja -aka +afg +aac +acH +ahv +ayb +aAb +aBj +aBl +aBu +aBz +aBz +aCr +aCu +azc ala alP aka ala aoy apD -aqQ +asB arM asR agF @@ -79139,19 +80578,19 @@ aad aad aad aad -aad -aad -abT +bvI acH -adw -aep -acF -aem -agH ahA -swZ -ajb -akb +ayc +aAe +aBk +aBm +aBv +aCo +aCo +aCt +aCv +azd ala alQ bxA @@ -79182,7 +80621,7 @@ bxP geZ aNi anH -aOQ +apu aPY aQY aSa @@ -79397,18 +80836,18 @@ aad aad aad aad -aad -abT -abT -abT -swN -swN -abT -abT -swN -agF -ajc +acH +abU +abU +abU +abU +abU +abU +abU +abU +abU ajc +aze aip ajc ajc @@ -79438,7 +80877,7 @@ aIB aIB aIB aIB -aOe +aIB aOR aPZ aQZ @@ -79655,15 +81094,15 @@ aac aac aac aad -abv -acI -adA -aeq -afd -afP -agI -ahB -aiu +abU +acK +adD +adC +afb +agL +ahx +ajR +aqw ajd iaa alb @@ -79912,15 +81351,15 @@ aaa aaa aaa aaa -abU -acJ -adB -aer -afe -afQ -agJ -ahC -aiv +abV +acG +acL +adE +afd +agM +ahF +alH +ahy aje akd alc @@ -80169,15 +81608,15 @@ aac aac aad aad -swG -acK -adC +abU +acM +aeo aes -aff -afR -agK -ahD -aiw +afQ +afN +ahE +agI +aqy ajf ake ald @@ -80425,16 +81864,16 @@ aad aad aad aad -abv -abv -acL -adD -abv -afg -afS -agL -ahE -aiu +abU +abU +adA +aeq +aff +afi +ahw +aim +aid +aqw ajg akf oyD @@ -80682,16 +82121,16 @@ aad aad aad aad -abv -abV -acM -adE -abv -afh -afT -agM -ahF -afU +abU +acI +adB +aer +aff +afS +agJ +ais +aos +abU ajh akg ale @@ -80939,16 +82378,16 @@ aad aad aad aad -abv -abv -abv -abv -swG -afi -afU -afU -afU -afU +abU +abU +abU +abU +abU +afR +abU +abU +abU +abU aji akh alf @@ -80986,14 +82425,14 @@ aQe aRe aSg aTl -aUm +ail aVe aWa aWJ aSh aXQ aYI -aZE +ajG bav aSh bce @@ -82278,7 +83717,7 @@ aRf aXp aXU aYN -aZJ +ajN baA bbq bbq @@ -83042,7 +84481,7 @@ aQg aRh aSl aTs -aUu +aiJ aVl aWh aRh @@ -83297,17 +84736,17 @@ aOj aPf aQj aRi -aSm +aij aTt aUv aVm aWi aWN aXt -aXY +aiQ aYR aZN -baE +ajO bbt bcj bdb @@ -85568,7 +87007,7 @@ swy abF ack adc -cKy +adP aeE afr afr @@ -87905,7 +89344,7 @@ aww aum sDM ayT -azQ +aiw aAW aCf aCf @@ -88186,7 +89625,7 @@ aUF aVy aWq aWq -aXD +aiP aYo aZg aZZ @@ -88645,9 +90084,9 @@ aaa aae aaa aaa -aad -aah -aad +aac +abL +bxZ swz abs abs @@ -88901,13 +90340,13 @@ aaa aaa aae aad -aad -aad -aad -aad -swA -abL +aac +bvg +abM acu +adt +adM +aef adm bxw bym @@ -89160,11 +90599,11 @@ aah aad aad aad -aad -aad bxZ -abM -byi +adq +bxZ +adY +aei adn adn adn @@ -89417,14 +90856,14 @@ aad aad aad aad -aad -aad bxZ -byf -byj -adn -adZ -aeP +bxZ +adu +adu +aej +adu +aeV +afa afC agv ahk @@ -89676,19 +91115,19 @@ aac aad aad aad -swA -byg -byk -adn -aea +ady +adZ +aek aeQ +aeW +aeW +afc +afD +afJ +afK +afO afD agw -ajI -aid -aiJ -agw -afE afE amw anm @@ -89724,7 +91163,7 @@ aae aRy aSF aTS -aUJ +auh aVE sKh aVE @@ -89933,19 +91372,19 @@ aad aad aad aad -bxZ -byf -byl -swL -aed -aeT -afE -agx +adu +aea +aen +aeR +aeY ahl +ahm +ahn +aih ado aiK agx -afF +agy alB amx ado @@ -89975,16 +91414,16 @@ aRz sJd sJq aaa -bte -aPz -aPz -sOM -aSG +ata +atk +atk +abv +atB aTT -aUK -aVF +aur +auy sOZ -sPa +awD sOT sPk aZl @@ -90190,19 +91629,19 @@ aaa aad aad aad -bvg -bvg -bvg -adn +adu +aeb +aeP +adu aec aeS afF agx -ahm +aii adp aiL ajJ -akM +agD alC amy adn @@ -90232,16 +91671,16 @@ sIU sJe sIU aae -bte -aPA -aQB -sOM -sJR -sON -sOY -aVG -sJR -sOM +ata +atr +atu +abv +swG +swG +aus +auz +avC +abv sOY sOV aZm @@ -90447,19 +91886,19 @@ aaa aaa aac aac -aac -bvg -aad -adn +adu +adu +adu +adu aed aeT afG agz -ahn +akQ aie aiM ajK -akN +ahs alD amz ann @@ -90489,16 +91928,16 @@ sIU sJe sIU aaa -bte -aPB -aQC -sOM -aSI -aTU -aUL -aVH -aWw -sOM +ata +ats +atv +atz +atC +atG +aut +avm +avD +abv sPi aYv die @@ -90716,8 +92155,8 @@ aho aif aiN ajL -akO -alE +aht +ahW amA ano aog @@ -90746,16 +92185,16 @@ sIU sJg sIU aae -bte -aPC -aQD -aRA -aSJ -aTV -aUM -aVI -aWx -sOM +ata +att +atw +atA +atD +atH +auu +avz +avF +abv sON tms hXc @@ -91003,16 +92442,16 @@ sJN cRz abN aaa -bte -aPz -aPz -sOM -aSK -aTW -aUN -aVJ -aWy -sOM +ata +atk +atk +abv +any +atJ +aux +avA +avH +abv aad orV iio @@ -91224,7 +92663,7 @@ aac swM aeh agB -ado +adn agB ahq adp @@ -91263,13 +92702,13 @@ aae aae aae aae -sON -aRy -aRy -aRy -aRy -aRy -sON +swG +atF +atF +atF +atF +atF +swG aad hns iXB @@ -91478,13 +92917,13 @@ aaa aaa aaa aaa -adq +ado aeg aeX -adp +hQH agC ahr -lvt +ado aae aae aae @@ -91531,7 +92970,7 @@ aad hns xLe hVE -sPq +ajP hVE pXH sVt diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 5232c94686..eda78e4206 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -1537,7 +1537,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "afe" = ( -/obj/item/twohanded/required/kirbyplants/photosynthetic{ +/obj/item/kirbyplants/photosynthetic{ pixel_y = 10 }, /obj/structure/cable/yellow{ @@ -1567,7 +1567,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "afg" = ( -/obj/item/twohanded/required/kirbyplants/photosynthetic{ +/obj/item/kirbyplants/photosynthetic{ pixel_y = 10 }, /obj/structure/cable/yellow{ @@ -4058,6 +4058,7 @@ pixel_y = -3 }, /obj/item/gun/energy/e_gun/advtaser, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/dark, /area/security/armory) "akM" = ( @@ -5478,7 +5479,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel/dark, @@ -9399,7 +9400,7 @@ /area/hallway/primary/central) "awe" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, /area/hallway/primary/central) "awf" = ( @@ -9480,7 +9481,7 @@ /obj/machinery/light{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, @@ -9624,7 +9625,7 @@ }, /area/crew_quarters/fitness/recreation) "awC" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/machinery/power/apc{ @@ -10070,7 +10071,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "axF" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/plasteel, @@ -10162,7 +10163,7 @@ /obj/structure/cable{ icon_state = "0-2" }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/carpet, /area/crew_quarters/heads/captain) "axT" = ( @@ -11160,7 +11161,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "aAo" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /obj/effect/turf_decal/tile/red, @@ -11856,7 +11857,7 @@ /turf/open/floor/plasteel/white/corner, /area/crew_quarters/fitness/recreation) "aBY" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /turf/open/floor/plasteel, @@ -11923,7 +11924,7 @@ /area/maintenance/department/security/brig) "aCi" = ( /obj/structure/table/wood, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18"; pixel_y = 12 }, @@ -12010,7 +12011,7 @@ /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -13233,7 +13234,7 @@ /turf/open/floor/wood, /area/crew_quarters/heads/hop) "aEM" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-24" }, /obj/structure/cable{ @@ -13915,7 +13916,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/captain) "aGn" = ( -/obj/item/twohanded/required/kirbyplants/photosynthetic{ +/obj/item/kirbyplants/photosynthetic{ layer = 3.1 }, /obj/structure/window/reinforced/fulltile, @@ -15467,7 +15468,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "aKg" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-04" }, /turf/open/floor/plasteel/white/corner{ @@ -16030,7 +16031,7 @@ /obj/machinery/airalarm{ pixel_y = 22 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /turf/open/floor/plasteel, @@ -17479,13 +17480,13 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/bar) "aPy" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plating{ @@ -20115,20 +20116,6 @@ /obj/machinery/conveyor_switch/oneway{ id = "QMLoad" }, -/obj/machinery/button/door{ - id = "QMLoaddoor2"; - layer = 4; - name = "Loading Doors"; - pixel_x = 24; - pixel_y = -8 - }, -/obj/machinery/button/door{ - id = "QMLoaddoor"; - layer = 4; - name = "Loading Doors"; - pixel_x = 24; - pixel_y = 8 - }, /obj/machinery/camera{ c_tag = "Cargo Supply Dock"; dir = 8 @@ -21290,7 +21277,7 @@ /area/crew_quarters/bar) "aYe" = ( /obj/structure/table/reinforced, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18"; pixel_y = 10 }, @@ -21339,7 +21326,7 @@ "aYi" = ( /obj/structure/table/reinforced, /obj/structure/disposalpipe/segment, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18"; pixel_y = 10 }, @@ -21567,6 +21554,20 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/button/door{ + id = "QMLoaddoor2"; + layer = 4; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = -8 + }, +/obj/machinery/button/door{ + id = "QMLoaddoor"; + layer = 4; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = 8 + }, /turf/open/floor/plasteel, /area/quartermaster/storage) "aYC" = ( @@ -21776,7 +21777,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/kitchen) "aYY" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /turf/open/floor/plasteel/dark, @@ -22807,7 +22808,7 @@ /turf/open/floor/plasteel, /area/hydroponics) "bbd" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/green, @@ -24507,7 +24508,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bfp" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/button/door{ @@ -24948,7 +24949,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/bar) "bgv" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-14" }, /obj/effect/turf_decal/tile/neutral{ @@ -25910,7 +25911,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "biP" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/structure/disposalpipe/segment{ @@ -26029,7 +26030,7 @@ /turf/open/floor/plasteel, /area/medical/medbay/central) "bji" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/blue, @@ -26082,7 +26083,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "bjn" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/purple, @@ -27331,7 +27332,7 @@ /turf/open/floor/plasteel, /area/security/checkpoint/medical) "bmw" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05" }, /obj/effect/turf_decal/tile/blue{ @@ -27710,7 +27711,7 @@ dir = 8; pixel_x = 28 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-11" }, /obj/machinery/light/small{ @@ -27961,7 +27962,7 @@ /turf/open/floor/engine, /area/science/explab) "bnZ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/neutral{ @@ -28329,7 +28330,7 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/aft) "boT" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/bot, @@ -28356,7 +28357,7 @@ dir = 1 }, /obj/machinery/light, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/neutral{ @@ -30325,7 +30326,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bsW" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -30714,7 +30715,7 @@ /turf/open/floor/grass, /area/medical/genetics) "btU" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/blue, @@ -30979,7 +30980,7 @@ /area/science/robotics/lab) "buw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/twohanded/required/kirbyplants/photosynthetic{ +/obj/item/kirbyplants/photosynthetic{ pixel_y = 10 }, /obj/effect/turf_decal/tile/purple{ @@ -30998,7 +30999,7 @@ /turf/open/floor/plasteel/dark, /area/science/explab) "buy" = ( -/obj/item/twohanded/required/kirbyplants/photosynthetic{ +/obj/item/kirbyplants/photosynthetic{ pixel_y = 10 }, /obj/effect/turf_decal/tile/purple, @@ -31037,7 +31038,7 @@ /turf/open/floor/plasteel, /area/science/explab) "buD" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-11" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -33010,7 +33011,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants/photosynthetic{ +/obj/item/kirbyplants/photosynthetic{ pixel_y = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -33402,7 +33403,7 @@ /turf/open/floor/plasteel/white, /area/medical/genetics) "bzM" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/green, @@ -34197,7 +34198,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hor) "bBu" = ( -/obj/item/twohanded/required/kirbyplants/dead, +/obj/item/kirbyplants/dead, /obj/structure/disposalpipe/segment{ dir = 10 }, @@ -34294,7 +34295,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bBB" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-20"; pixel_y = 3 }, @@ -34313,6 +34314,10 @@ "bBC" = ( /obj/machinery/portable_atmospherics/canister/toxins, /obj/effect/turf_decal/delivery, +/obj/machinery/light{ + dir = 1; + light_color = "#d1dfff" + }, /turf/open/floor/engine, /area/science/storage) "bBD" = ( @@ -34322,25 +34327,25 @@ /turf/open/floor/engine, /area/science/storage) "bBE" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/obj/effect/turf_decal/delivery, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/structure/sign/poster/random{ + pixel_y = 32 }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/bot, /turf/open/floor/engine, /area/science/storage) "bBF" = ( -/obj/machinery/portable_atmospherics/scrubber/huge, -/obj/machinery/airalarm{ - pixel_y = 22 - }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/bot, /turf/open/floor/engine, /area/science/storage) "bBG" = ( /obj/machinery/portable_atmospherics/scrubber/huge, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 1; + light_color = "#d1dfff" + }, /turf/open/floor/engine, /area/science/storage) "bBH" = ( @@ -34520,8 +34525,8 @@ /area/maintenance/department/engine) "bBY" = ( /obj/structure/closet/crate/medical, -/obj/item/stack/medical/ointment, -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/mesh, +/obj/item/stack/medical/suture, /turf/open/floor/plating, /area/maintenance/department/engine) "bBZ" = ( @@ -35050,11 +35055,9 @@ /turf/open/floor/plating, /area/science/storage) "bCQ" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/bot, /turf/open/floor/engine, /area/science/storage) "bCR" = ( @@ -35475,22 +35478,19 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/aft) "bDL" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/bot, +/obj/structure/sign/warning/nosmoking{ + pixel_x = -32 + }, /turf/open/floor/engine, /area/science/storage) "bDM" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/engine, /area/science/storage) "bDN" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/engine, /area/science/storage) "bDO" = ( @@ -35994,7 +35994,7 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/heads/cmo) "bEH" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-16" }, /obj/machinery/light_switch{ @@ -36274,20 +36274,18 @@ /area/hallway/primary/aft) "bFa" = ( /obj/effect/turf_decal/bot, -/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /turf/open/floor/engine, /area/science/storage) "bFb" = ( -/obj/machinery/portable_atmospherics/canister/carbon_dioxide, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/bot, -/turf/open/floor/engine, -/area/science/storage) -"bFc" = ( /obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line{ - dir = 4 + dir = 5 }, /turf/open/floor/engine, /area/science/storage) @@ -36347,7 +36345,6 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "bFl" = ( -/obj/machinery/portable_atmospherics/pump, /turf/open/floor/plasteel/white, /area/science/mixing) "bFm" = ( @@ -36388,6 +36385,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 32 + }, /turf/open/floor/plasteel/dark, /area/science/mixing) "bFr" = ( @@ -36729,25 +36729,24 @@ /area/hallway/primary/aft) "bGf" = ( /obj/effect/turf_decal/bot, -/obj/machinery/portable_atmospherics/canister/nitrogen, /obj/effect/turf_decal/stripes/line, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, /turf/open/floor/engine, /area/science/storage) "bGg" = ( /obj/machinery/portable_atmospherics/canister/carbon_dioxide, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/bot, -/turf/open/floor/engine, -/area/science/storage) -"bGh" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line{ dir = 6 }, /turf/open/floor/engine, /area/science/storage) +"bGh" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/bot, +/turf/open/floor/engine, +/area/science/storage) "bGi" = ( /obj/structure/cable{ icon_state = "1-2" @@ -36779,11 +36778,11 @@ /turf/open/floor/plasteel/dark, /area/science/explab) "bGl" = ( -/obj/machinery/portable_atmospherics/scrubber, /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ dir = 4 }, +/obj/structure/closet/firecloset, /turf/open/floor/plasteel/dark, /area/science/explab) "bGm" = ( @@ -36892,7 +36891,6 @@ /turf/open/floor/plasteel/white, /area/science/mixing) "bGr" = ( -/obj/structure/tank_dispenser, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -36900,6 +36898,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, +/obj/machinery/portable_atmospherics/pump, /turf/open/floor/plasteel/white, /area/science/mixing) "bGs" = ( @@ -37435,8 +37434,9 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/sign/poster/random{ - pixel_x = 32 +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 }, /turf/open/floor/engine, /area/science/storage) @@ -37989,54 +37989,56 @@ /turf/open/floor/plasteel/dark, /area/hallway/primary/aft) "bIF" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "Toxins Storage APC"; - pixel_x = -25 +/obj/structure/tank_dispenser, +/obj/effect/turf_decal/stripes/line{ + dir = 5 }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/bot, +/obj/machinery/light, /turf/open/floor/engine, /area/science/storage) "bIG" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/engine, /area/science/storage) "bIH" = ( -/obj/machinery/light, /obj/structure/cable{ icon_state = "4-8" }, /obj/effect/turf_decal/stripes/line, -/obj/machinery/pipedispenser, +/obj/machinery/power/apc{ + name = "Toxins Storage APC"; + pixel_y = -25 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, /turf/open/floor/engine, /area/science/storage) "bII" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/sign/warning/nosmoking{ - pixel_y = -32 +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/turf_decal/stripes/line{ + dir = 9 }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/machinery/pipedispenser/disposal, +/obj/effect/turf_decal/bot, /turf/open/floor/engine, /area/science/storage) "bIJ" = ( /obj/structure/cable{ icon_state = "1-8" }, -/obj/machinery/pipedispenser/disposal/transit_tube, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/light, /turf/open/floor/engine, /area/science/storage) "bIK" = ( @@ -38238,7 +38240,7 @@ /turf/open/floor/plasteel/dark, /area/maintenance/department/engine) "bJi" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plating, @@ -39420,7 +39422,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bLT" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "applebush" }, /obj/machinery/airalarm{ @@ -40236,7 +40238,7 @@ }, /area/maintenance/department/chapel/monastery) "bNF" = ( -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/suture, /turf/open/floor/plasteel/dark, /area/maintenance/department/engine) "bNG" = ( @@ -40326,7 +40328,7 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "bNR" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/green, @@ -42443,7 +42445,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "bSP" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-02" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -42919,6 +42921,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/pipedispenser, /turf/open/floor/plasteel, /area/engine/atmos) "bTL" = ( @@ -42934,6 +42937,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/pipedispenser/disposal, /turf/open/floor/plasteel, /area/engine/atmos) "bTM" = ( @@ -44960,7 +44964,7 @@ /turf/open/floor/plating, /area/maintenance/department/engine) "bYI" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_y = 3 }, @@ -45727,7 +45731,7 @@ /area/engine/engineering) "caw" = ( /obj/structure/table, -/obj/item/twohanded/rcl/pre_loaded, +/obj/item/rcl/pre_loaded, /turf/open/floor/plasteel, /area/engine/engineering) "cax" = ( @@ -46860,7 +46864,7 @@ /turf/open/floor/plasteel/dark, /area/chapel/main/monastery) "ceK" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-08" }, /turf/open/floor/plasteel/dark, @@ -48017,7 +48021,7 @@ /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "cjP" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/item/radio/intercom{ @@ -49773,7 +49777,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "cpT" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -49781,7 +49785,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "cpU" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ dir = 8 @@ -49978,7 +49982,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "cqE" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-18"; layer = 3 }, @@ -50630,7 +50634,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/plasteel/dark, @@ -50722,7 +50726,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/dark, @@ -51273,7 +51277,7 @@ icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/dark, @@ -51532,7 +51536,7 @@ /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "cwr" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/structure/cable{ @@ -51977,7 +51981,7 @@ /turf/open/floor/plasteel/dark, /area/library) "cyQ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/camera{ @@ -51990,7 +51994,7 @@ /turf/open/floor/plasteel/dark, /area/library) "cyR" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel/dark, @@ -52242,7 +52246,7 @@ /area/library) "cAs" = ( /obj/structure/table/wood, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05"; pixel_y = 10 }, @@ -52409,6 +52413,23 @@ }, /turf/open/floor/plasteel/dark, /area/library) +"cBi" = ( +/obj/machinery/flasher/portable, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/armory) "cBk" = ( /obj/machinery/vending/boozeomat/pubby_maint, /turf/closed/wall, @@ -52585,12 +52606,6 @@ /obj/machinery/status_display/ai, /turf/closed/wall/r_wall, /area/engine/supermatter) -"cCO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/security/brig) "cCP" = ( /obj/effect/turf_decal/bot/right, /turf/open/floor/plasteel/white, @@ -52994,7 +53009,7 @@ }, /area/hallway/secondary/exit/departure_lounge) "dpb" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_y = 3 }, @@ -54215,7 +54230,7 @@ /turf/open/floor/plating, /area/maintenance/department/security/brig) "gkR" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, @@ -54514,7 +54529,7 @@ /area/science/xenobiology) "gKz" = ( /obj/structure/table/wood, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22"; pixel_y = 8 }, @@ -55275,6 +55290,9 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "ivO" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, /mob/living/simple_animal/bot/secbot{ arrest_type = 1; health = 45; @@ -55649,7 +55667,7 @@ /obj/structure/sign/plaques/deempisi{ pixel_y = 28 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_y = 3 }, @@ -55668,6 +55686,13 @@ }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) +"juw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/armory) "jvi" = ( /obj/structure/cable{ icon_state = "4-8" @@ -56100,7 +56125,7 @@ /turf/open/floor/carpet, /area/lawoffice) "kxs" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plating, @@ -56411,7 +56436,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/plasteel/dark, @@ -57065,6 +57090,13 @@ /obj/machinery/atmospherics/components/unary/outlet_injector/on, /turf/open/floor/plating, /area/security/execution/transfer) +"mzE" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/science/storage) "mzU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall, @@ -57406,7 +57438,7 @@ /turf/open/floor/plasteel/white/corner, /area/hallway/primary/central) "nyO" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/light/small{ @@ -57646,7 +57678,7 @@ /turf/open/floor/engine, /area/engine/supermatter) "nVU" = ( -/obj/item/twohanded/spear, +/obj/item/spear, /turf/open/floor/plating, /area/maintenance/department/engine) "nWP" = ( @@ -58246,6 +58278,15 @@ }, /turf/open/floor/plating, /area/security/execution/transfer) +"pfB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/armory) "pfP" = ( /obj/structure/table, /obj/item/storage/box/syringes, @@ -58622,7 +58663,7 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "pXT" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /obj/machinery/power/apc{ areastring = "/area/lawoffice"; dir = 8; @@ -58637,7 +58678,7 @@ /turf/closed/wall/r_wall, /area/engine/engineering) "pYw" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-03" }, /obj/structure/extinguisher_cabinet{ @@ -59400,6 +59441,13 @@ }, /turf/open/floor/plating/airless, /area/maintenance/department/engine) +"rNi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/pipedispenser/disposal/transit_tube, +/turf/open/floor/plasteel, +/area/engine/atmos) "rNB" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -61869,6 +61917,12 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"xEx" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/bot, +/turf/open/floor/engine, +/area/science/storage) "xFl" = ( /obj/machinery/power/apc/highcap/five_k{ areastring = "/area/tcommsat/server"; @@ -84497,7 +84551,7 @@ aiL ajg ajP akL -alA +cBi amh amV anF @@ -84754,7 +84808,7 @@ aiM aiM ajQ akM -akM +juw ami amW anG @@ -85268,7 +85322,7 @@ aiN aji ajS akO -akO +pfB amk amY anI @@ -89132,7 +89186,7 @@ apj ajM ajM ajM -cCO +ajM ajM ajM avL @@ -97944,7 +97998,7 @@ bPQ bPQ bQI bPQ -bNc +rNi bMf bMf hjk @@ -99983,7 +100037,7 @@ bxt byS bAA bBC -bBC +bDN bDL bFa bGf @@ -100240,7 +100294,7 @@ bxu byT bAB bBD -bBD +mzE bDM bFb bGg @@ -100498,8 +100552,8 @@ byU bAA bBE bCQ -bDN -bFc +bCR +bGh bGh bCR bIH @@ -100754,7 +100808,7 @@ bxw byV bAA bBF -bCR +bCQ bDO bCR bCR @@ -101011,7 +101065,7 @@ bxx byW bAA bBG -bCR +xEx bDP bFd bGi diff --git a/_maps/map_files/IceBoxStation/IcemoonUnderground_Above.dmm b/_maps/map_files/Snaxi/IcemoonUnderground_Above.dmm similarity index 85% rename from _maps/map_files/IceBoxStation/IcemoonUnderground_Above.dmm rename to _maps/map_files/Snaxi/IcemoonUnderground_Above.dmm index c3866d387c..403f155854 100644 --- a/_maps/map_files/IceBoxStation/IcemoonUnderground_Above.dmm +++ b/_maps/map_files/Snaxi/IcemoonUnderground_Above.dmm @@ -1,134 +1,25 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( -/obj/docking_port/stationary{ - dir = 8; - dwidth = 2; - height = 5; - id = "laborcamp_away"; - name = "labor camp"; - width = 9 +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 }, -/turf/closed/mineral/random/snow, -/area/icemoon/underground/unexplored/rivers) +/turf/open/floor/plasteel, +/area/mine/living_quarters) "ah" = ( /turf/closed/mineral/random/snow, /area/icemoon/underground/unexplored/rivers) "ak" = ( /turf/closed/mineral/random/high_chance/snow, /area/icemoon/underground/unexplored/rivers) -"ao" = ( -/obj/machinery/computer/shuttle/labor/one_way{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"ap" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/mine/laborcamp) -"aq" = ( -/turf/closed/wall, -/area/mine/laborcamp) -"au" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"az" = ( -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"aC" = ( -/obj/structure/sign/poster/official/safety_report{ - pixel_x = -32 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/camera{ - c_tag = "Labor Camp Central"; - dir = 4; - network = list("labor") - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"aF" = ( -/obj/machinery/door/poddoor/preopen{ - id = "labor"; - name = "labor camp blast door" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"aG" = ( -/obj/structure/table, -/obj/item/trash/plate, -/obj/item/kitchen/fork, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"aJ" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/book/manual/chef_recipes{ - pixel_x = 2; - pixel_y = 6 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"aM" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/mine/eva) -"aN" = ( -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"aS" = ( -/obj/structure/sign/warning/docking{ - pixel_x = -32 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"aV" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/machinery/computer/mech_bay_power_console{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"aY" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/security/glass{ - name = "Labor Camp Shuttle Security Airlock"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"bd" = ( -/obj/machinery/mineral/processing_unit_console, -/turf/closed/wall, -/area/mine/laborcamp) -"bf" = ( +"dW" = ( /turf/closed/wall, /area/mine/eva) -"bg" = ( +"dX" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/mine/eva) -"bh" = ( -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"bi" = ( -/obj/structure/gulag_beacon, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"bn" = ( +"ei" = ( /obj/structure/table, /obj/item/pickaxe, /obj/item/gps/mining, @@ -146,7 +37,7 @@ }, /turf/open/floor/plasteel, /area/mine/eva) -"bo" = ( +"ej" = ( /obj/machinery/suit_storage_unit/mining, /obj/effect/turf_decal/tile/brown{ dir = 1 @@ -156,7 +47,7 @@ }, /turf/open/floor/plasteel, /area/mine/eva) -"bp" = ( +"ek" = ( /obj/machinery/suit_storage_unit/mining, /obj/effect/turf_decal/tile/purple{ dir = 1 @@ -167,14 +58,14 @@ }, /turf/open/floor/plasteel, /area/mine/eva) -"bq" = ( +"eq" = ( /turf/closed/wall, /area/mine/production) -"br" = ( +"er" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/mine/production) -"bs" = ( +"es" = ( /obj/machinery/camera{ c_tag = "EVA"; dir = 4; @@ -200,10 +91,14 @@ }, /turf/open/floor/plasteel, /area/mine/eva) -"bt" = ( +"et" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, /turf/open/floor/plasteel, /area/mine/eva) -"bu" = ( +"eu" = ( +/turf/open/floor/plasteel, +/area/mine/eva) +"ew" = ( /obj/machinery/light_switch{ pixel_x = 27 }, @@ -213,41 +108,25 @@ }, /turf/open/floor/plasteel, /area/mine/eva) -"bw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"bx" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/security/glass{ - name = "Labor Camp Shuttle Prisoner Airlock" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"by" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Labor Camp APC"; - pixel_y = 23 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/mine/laborcamp) -"bB" = ( -/obj/structure/toilet{ +"ex" = ( +/obj/machinery/light/small{ dir = 8 }, -/obj/machinery/light/small{ +/turf/closed/mineral/random/snow, +/area/icemoon/underground/unexplored/rivers) +"eH" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/effect/turf_decal/tile/purple{ dir = 1 }, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"bD" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"eI" = ( /obj/structure/closet/crate, /obj/item/dice/d4, /obj/effect/turf_decal/tile/brown{ @@ -258,16 +137,16 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"bE" = ( +"eJ" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/mine/production) -"bF" = ( +"eK" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/mine/eva) -"bG" = ( +"eL" = ( /obj/structure/table, /obj/item/stack/packageWrap, /obj/item/stack/packageWrap, @@ -278,16 +157,27 @@ }, /turf/open/floor/plasteel, /area/mine/eva) -"bH" = ( +"eM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/eva) +"eN" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/mine/eva) -"bI" = ( +"eO" = ( /obj/structure/tank_dispenser/oxygen, /obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/mine/eva) -"bJ" = ( +"eP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/mine/eva) +"eQ" = ( /obj/machinery/light/small{ dir = 1 }, @@ -296,7 +186,7 @@ }, /turf/open/floor/plasteel, /area/mine/eva) -"bK" = ( +"eR" = ( /obj/structure/extinguisher_cabinet{ pixel_x = -5; pixel_y = 30 @@ -307,35 +197,25 @@ /obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/mine/eva) -"bL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/door/airlock/highsecurity{ - name = "Labor Camp Monitoring"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"bM" = ( -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"bN" = ( +"eZ" = ( /obj/structure/sign/warning/docking, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/mine/production) -"bO" = ( +"fa" = ( /obj/item/beacon, /obj/effect/turf_decal/tile/purple{ dir = 8 }, /turf/open/floor/plasteel, /area/mine/production) -"bP" = ( +"fb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, /turf/open/floor/plasteel, /area/mine/production) -"bQ" = ( +"fc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, @@ -347,7 +227,7 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"bR" = ( +"fd" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -363,7 +243,7 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"bS" = ( +"fe" = ( /obj/machinery/door/airlock/mining/glass{ name = "Mining Station EVA"; req_access_txt = "54" @@ -379,7 +259,7 @@ }, /turf/open/floor/plasteel, /area/mine/eva) -"bT" = ( +"ff" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -400,7 +280,7 @@ }, /turf/open/floor/plasteel, /area/mine/eva) -"bU" = ( +"fg" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -412,7 +292,7 @@ }, /turf/open/floor/plasteel, /area/mine/eva) -"bV" = ( +"fh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, @@ -421,7 +301,7 @@ }, /turf/open/floor/plasteel, /area/mine/eva) -"bW" = ( +"fi" = ( /obj/effect/turf_decal/tile/brown, /obj/effect/turf_decal/tile/brown{ dir = 4 @@ -431,7 +311,7 @@ }, /turf/open/floor/plasteel, /area/mine/eva) -"bX" = ( +"fj" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, @@ -452,7 +332,7 @@ }, /turf/open/floor/plasteel, /area/mine/eva) -"bY" = ( +"fk" = ( /obj/effect/turf_decal/tile/brown{ dir = 1 }, @@ -464,39 +344,25 @@ }, /turf/open/floor/plasteel, /area/mine/eva) -"ca" = ( -/turf/closed/wall, -/area/mine/laborcamp/security) -"cb" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ +"fm" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, -/obj/structure/table, -/obj/item/restraints/handcuffs, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"cc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining External Airlock"; + opacity = 0; + req_access_txt = "54" }, -/mob/living/simple_animal/bot/secbot/beepsky{ - desc = "Powered by the tears and sweat of laborers."; - name = "Prison Ofitser" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"ch" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" }, /turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"cj" = ( +/area/mine/eva) +"fB" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, @@ -507,7 +373,21 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"ck" = ( +"fC" = ( +/turf/open/floor/plasteel, +/area/mine/production) +"fD" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining Shuttle Airlock"; + opacity = 0 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"fE" = ( /obj/effect/turf_decal/tile/brown{ dir = 1 }, @@ -516,13 +396,7 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"cl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"cm" = ( +"fF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable{ @@ -530,13 +404,13 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"cn" = ( +"fG" = ( /obj/effect/turf_decal/tile/purple{ dir = 4 }, /turf/open/floor/plasteel, /area/mine/production) -"co" = ( +"fH" = ( /obj/machinery/power/apc{ name = "Mining EVA APC"; pixel_x = 1; @@ -549,50 +423,47 @@ /obj/structure/cable, /turf/open/floor/plasteel, /area/mine/eva) -"cp" = ( +"fI" = ( /obj/machinery/mech_bay_recharge_port, /obj/structure/cable, /turf/open/floor/plating, /area/mine/eva) -"cq" = ( +"fJ" = ( /turf/open/floor/mech_bay_recharge_floor, /area/mine/eva) -"cs" = ( +"fK" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/computer/mech_bay_power_console{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"fM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/mine/eva) +"fN" = ( /obj/effect/turf_decal/tile/purple{ dir = 1 }, /turf/open/floor/plasteel, /area/mine/eva) -"cy" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/mine/production) -"cB" = ( -/obj/structure/chair/office{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"cC" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/red, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"cD" = ( +"gS" = ( /obj/effect/turf_decal/tile/purple{ dir = 1 }, /turf/open/floor/plasteel, /area/mine/production) -"cE" = ( +"gW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"hv" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -602,59 +473,85 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"cF" = ( +"hz" = ( /obj/effect/turf_decal/tile/brown, /obj/effect/turf_decal/tile/brown{ dir = 4 }, /turf/open/floor/plasteel, /area/mine/production) -"cG" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/closet/secure_closet/freezer/gulag_fridge, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, +"hY" = ( +/obj/structure/closet/emcloset, /turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"cH" = ( +/area/mine/eva) +"je" = ( /obj/effect/turf_decal/tile/purple{ dir = 8 }, /turf/open/floor/plasteel, /area/mine/production) -"cI" = ( +"jk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"jo" = ( /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ dir = 4 }, /turf/open/floor/plasteel, /area/mine/production) -"cJ" = ( +"jr" = ( /obj/machinery/door/airlock{ name = "Closet" }, /turf/open/floor/plating, /area/mine/production) -"cK" = ( +"ju" = ( /obj/machinery/light/small{ dir = 1 }, /turf/open/floor/plating, /area/mine/production) -"cL" = ( +"jy" = ( /obj/machinery/space_heater, /turf/open/floor/plating, /area/mine/production) -"cM" = ( +"jL" = ( +/obj/structure/ladder, +/turf/open/floor/plasteel, +/area/mine/eva) +"jU" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining External Airlock"; + opacity = 0; + req_access_txt = "54" + }, +/turf/open/floor/plasteel, +/area/mine/eva) +"jV" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/mine/eva) +"kb" = ( +/obj/structure/ore_box, +/turf/open/floor/plasteel, +/area/mine/eva) +"nd" = ( /turf/closed/wall, /area/mine/living_quarters) -"cO" = ( +"nm" = ( /obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; @@ -668,7 +565,7 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"cP" = ( +"nq" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 30 }, @@ -678,14 +575,25 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"cQ" = ( +"nE" = ( +/obj/item/bikehorn{ + color = "#000"; + desc = "A horn off of a bicycle. This one has been charred to hell and back, yet somehow it still honks."; + name = "charred bike horn" + }, +/turf/closed/mineral/random/snow, +/area/icemoon/underground/unexplored/rivers) +"nN" = ( +/turf/closed/wall/r_wall, +/area/mine/living_quarters) +"nV" = ( /turf/closed/wall/r_wall, /area/mine/maintenance) -"cR" = ( +"op" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/mine/living_quarters) -"cS" = ( +"oB" = ( /obj/machinery/power/smes{ charge = 5e+006 }, @@ -694,7 +602,7 @@ }, /turf/open/floor/plating, /area/mine/living_quarters) -"cT" = ( +"oL" = ( /obj/machinery/light/small{ dir = 1 }, @@ -707,21 +615,21 @@ }, /turf/open/floor/plating, /area/mine/living_quarters) -"cU" = ( +"oO" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/structure/cable{ icon_state = "2-8" }, /turf/open/floor/plating, /area/mine/living_quarters) -"cV" = ( +"oQ" = ( /turf/open/floor/plating, /area/mine/living_quarters) -"cW" = ( +"oU" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/mine/living_quarters) -"cX" = ( +"oW" = ( /obj/machinery/power/apc{ dir = 8; name = "Mining Station Starboard Wing APC"; @@ -742,7 +650,18 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"cZ" = ( +"pf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"pi" = ( /obj/machinery/mineral/equipment_vendor, /obj/effect/turf_decal/tile/brown{ dir = 1 @@ -753,7 +672,11 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"db" = ( +"pu" = ( +/obj/machinery/mineral/mint, +/turf/open/floor/plasteel, +/area/mine/production) +"pJ" = ( /obj/machinery/light/small{ dir = 1 }, @@ -762,7 +685,7 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"dc" = ( +"pV" = ( /obj/structure/closet/crate, /obj/machinery/airalarm{ pixel_y = 23 @@ -770,7 +693,7 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/mine/production) -"dd" = ( +"qa" = ( /obj/structure/extinguisher_cabinet{ pixel_x = -5; pixel_y = 30 @@ -779,19 +702,39 @@ /obj/item/paper/fluff/stations/lavaland/orm_notice, /turf/open/floor/plasteel, /area/mine/production) -"de" = ( +"qb" = ( /obj/structure/ore_box, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/mine/production) -"df" = ( +"qt" = ( /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/mine/production) -"dg" = ( +"qN" = ( +/obj/structure/table, +/obj/item/cigbutt, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"rj" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ry" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"sa" = ( +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"sj" = ( /turf/open/floor/circuit, /area/mine/maintenance) -"dh" = ( +"so" = ( /obj/machinery/power/apc{ dir = 1; name = "Mining Communications APC"; @@ -804,7 +747,7 @@ }, /turf/open/floor/plasteel/dark, /area/mine/maintenance) -"di" = ( +"sp" = ( /obj/machinery/telecomms/relay/preset/mining, /obj/machinery/light/small{ dir = 1 @@ -821,17 +764,17 @@ }, /turf/open/floor/plasteel/dark, /area/mine/maintenance) -"dj" = ( +"ss" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/dark, /area/mine/maintenance) -"dk" = ( +"st" = ( /obj/machinery/airalarm{ pixel_y = 24 }, /turf/open/floor/circuit, /area/mine/maintenance) -"dl" = ( +"su" = ( /obj/machinery/light/small{ dir = 8 }, @@ -847,7 +790,7 @@ }, /turf/open/floor/plasteel/white, /area/mine/living_quarters) -"dm" = ( +"sA" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 }, @@ -857,7 +800,16 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, /turf/open/floor/plasteel/white, /area/mine/living_quarters) -"dn" = ( +"sH" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/mine/living_quarters) +"sM" = ( /obj/structure/table, /obj/item/storage/firstaid/toxin{ pixel_x = 3; @@ -872,7 +824,7 @@ }, /turf/open/floor/plasteel/white, /area/mine/living_quarters) -"do" = ( +"sY" = ( /obj/machinery/power/terminal{ dir = 1 }, @@ -884,7 +836,7 @@ }, /turf/open/floor/plating, /area/mine/living_quarters) -"dp" = ( +"tn" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, @@ -894,19 +846,36 @@ }, /turf/open/floor/plating, /area/mine/living_quarters) -"dq" = ( +"tI" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, /turf/open/floor/plating, /area/mine/living_quarters) -"dr" = ( +"tL" = ( /obj/machinery/atmospherics/components/unary/tank/air{ dir = 8 }, /turf/open/floor/plating, /area/mine/living_quarters) -"ds" = ( +"uG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"uJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"vb" = ( /obj/machinery/mineral/equipment_vendor, /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ @@ -917,24 +886,40 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"du" = ( +"vq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/mine/production) +"vw" = ( /obj/effect/turf_decal/loading_area, /turf/open/floor/plasteel, /area/mine/production) -"dv" = ( +"vG" = ( /obj/effect/turf_decal/loading_area{ dir = 4 }, /turf/open/floor/plasteel, /area/mine/production) -"dw" = ( +"vH" = ( /obj/machinery/light/small{ dir = 4 }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/mine/production) -"dx" = ( +"vW" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"wj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 5 }, @@ -943,7 +928,7 @@ }, /turf/open/floor/circuit, /area/mine/maintenance) -"dy" = ( +"wq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, @@ -956,7 +941,7 @@ }, /turf/open/floor/plasteel/dark, /area/mine/maintenance) -"dz" = ( +"wN" = ( /obj/machinery/light_switch{ pixel_y = -25 }, @@ -965,7 +950,7 @@ }, /turf/open/floor/circuit, /area/mine/maintenance) -"dA" = ( +"wX" = ( /obj/machinery/camera{ c_tag = "Communications Relay"; dir = 8; @@ -973,7 +958,7 @@ }, /turf/open/floor/circuit, /area/mine/maintenance) -"dB" = ( +"wZ" = ( /obj/structure/closet/crate/freezer, /obj/item/reagent_containers/blood, /obj/item/reagent_containers/blood{ @@ -1004,20 +989,20 @@ }, /turf/open/floor/plasteel/white, /area/mine/living_quarters) -"dC" = ( +"xi" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 5 }, /turf/open/floor/plasteel/white, /area/mine/living_quarters) -"dD" = ( +"xU" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 10 }, /turf/open/floor/plasteel/white, /area/mine/living_quarters) -"dE" = ( +"yf" = ( /obj/structure/table, /obj/item/storage/firstaid/regular, /obj/effect/turf_decal/tile/blue, @@ -1026,14 +1011,14 @@ }, /turf/open/floor/plasteel/white, /area/mine/living_quarters) -"dF" = ( +"yk" = ( /obj/machinery/power/port_gen/pacman{ anchored = 1 }, /obj/structure/cable, /turf/open/floor/plating, /area/mine/living_quarters) -"dH" = ( +"yq" = ( /obj/machinery/atmospherics/components/binary/pump/on, /obj/structure/cable, /obj/structure/cable{ @@ -1041,13 +1026,13 @@ }, /turf/open/floor/plating, /area/mine/living_quarters) -"dI" = ( +"yr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, /turf/open/floor/plating, /area/mine/living_quarters) -"dJ" = ( +"yy" = ( /obj/effect/turf_decal/tile/purple{ dir = 1 }, @@ -1056,7 +1041,7 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"dK" = ( +"yD" = ( /obj/machinery/light{ dir = 4 }, @@ -1075,18 +1060,18 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"dL" = ( +"yX" = ( /obj/structure/closet/crate{ icon_state = "crateopen" }, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/mine/production) -"dM" = ( +"zk" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/mine/production) -"dN" = ( +"zn" = ( /obj/machinery/camera{ c_tag = "Processing Area Room"; dir = 8; @@ -1103,7 +1088,7 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"dO" = ( +"zQ" = ( /obj/machinery/mineral/unloading_machine{ dir = 1; icon_state = "unloader-corner"; @@ -1115,7 +1100,29 @@ }, /turf/open/floor/plating, /area/mine/production) -"dP" = ( +"zU" = ( +/obj/item/clothing/under/color/jumpskirt/random, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"zX" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Ac" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Al" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Aw" = ( /obj/machinery/door/airlock/maintenance{ name = "Mining Station Communications"; req_access_txt = "48" @@ -1127,11 +1134,11 @@ }, /turf/open/floor/plasteel, /area/mine/maintenance) -"dQ" = ( +"AB" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/mine/living_quarters) -"dR" = ( +"AW" = ( /obj/machinery/door/airlock/medical/glass{ name = "Infirmary" }, @@ -1139,7 +1146,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel/white, /area/mine/living_quarters) -"dS" = ( +"Bd" = ( /obj/machinery/door/airlock/maintenance{ name = "Mining Station Maintenance"; req_access_txt = "48" @@ -1150,25 +1157,57 @@ }, /turf/open/floor/plating, /area/mine/living_quarters) -"dT" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 1 +"Be" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/mine/production) +"Bl" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/mine/production) +"Bz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/cable, +/obj/machinery/door/airlock/mining/glass{ + name = "Processing Area"; + req_access_txt = "48" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" }, /turf/open/floor/plasteel, /area/mine/production) -"dU" = ( -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/plasteel, -/area/mine/production) -"dV" = ( -/obj/effect/spawner/structure/window, +"BL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plating, /area/mine/production) -"dW" = ( +"Cd" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/mine/production) -"dX" = ( +"Cf" = ( /obj/machinery/conveyor_switch/oneway{ id = "mining_internal"; name = "mining conveyor" @@ -1179,7 +1218,11 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"dY" = ( +"Cr" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/mine/production) +"CK" = ( /obj/machinery/conveyor{ id = "mining_internal" }, @@ -1188,16 +1231,25 @@ }, /turf/open/floor/plating, /area/mine/production) -"dZ" = ( +"Dh" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"ea" = ( +"Dn" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Du" = ( /obj/effect/turf_decal/tile/purple{ dir = 4 }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"eb" = ( +"DB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/brown{ dir = 1 @@ -1211,19 +1263,21 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"ec" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 1 +"DR" = ( +/obj/machinery/camera{ + c_tag = "Crew Area Hallway"; + network = list("mine") }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, /turf/open/floor/plasteel, /area/mine/living_quarters) -"ee" = ( +"Ee" = ( /obj/machinery/airalarm{ pixel_y = 23 }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"ef" = ( +"El" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/brown{ dir = 1 @@ -1234,7 +1288,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel, /area/mine/living_quarters) -"eg" = ( +"Es" = ( /obj/machinery/power/apc{ dir = 1; name = "Mining Station Port Wing APC"; @@ -1246,14 +1300,14 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"eh" = ( +"Ez" = ( /obj/structure/extinguisher_cabinet{ pixel_x = -5; pixel_y = 30 }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"ei" = ( +"EB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/brown{ dir = 1 @@ -1266,7 +1320,7 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"ej" = ( +"EG" = ( /obj/machinery/camera{ c_tag = "Crew Area Hallway East"; network = list("mine") @@ -1276,11 +1330,49 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"ek" = ( +"EL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"ET" = ( /obj/effect/turf_decal/tile/purple, /turf/open/floor/plasteel, /area/mine/living_quarters) -"em" = ( +"Fd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"Fy" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"FB" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"FF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"FQ" = ( /obj/machinery/light{ dir = 4 }, @@ -1293,11 +1385,11 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"en" = ( +"FU" = ( /obj/machinery/mineral/processing_unit_console, /turf/closed/wall, /area/mine/production) -"eo" = ( +"Gn" = ( /obj/machinery/mineral/processing_unit{ dir = 1 }, @@ -1306,18 +1398,64 @@ }, /turf/open/floor/plating, /area/mine/production) -"eq" = ( +"Gp" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{ + dir = 4; + piping_layer = 3 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/mine/living_quarters) +"Gv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/mine/living_quarters) +"Gw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/mine/living_quarters) +"GI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"GN" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"GY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Hd" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable{ icon_state = "4-8" }, /obj/structure/cable{ icon_state = "1-4" }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"er" = ( +"Ho" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -1329,7 +1467,29 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"es" = ( +"Hx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"HF" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"HM" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, /obj/structure/cable{ @@ -1337,7 +1497,7 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"et" = ( +"HO" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, @@ -1352,7 +1512,7 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"eu" = ( +"HW" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 @@ -1365,7 +1525,19 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"ew" = ( +"HX" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"HY" = ( /obj/effect/turf_decal/tile/brown, /obj/effect/turf_decal/tile/brown{ dir = 4 @@ -1381,7 +1553,7 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"ex" = ( +"Iq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -1396,7 +1568,7 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"ey" = ( +"Iv" = ( /obj/effect/turf_decal/tile/brown{ dir = 1 }, @@ -1414,7 +1586,7 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"ez" = ( +"IB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -1426,7 +1598,23 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"eA" = ( +"IF" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/mine/production) +"IK" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -1441,7 +1629,7 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"eB" = ( +"IM" = ( /obj/effect/turf_decal/tile/brown{ dir = 1 }, @@ -1459,7 +1647,7 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"eC" = ( +"Jo" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, /obj/structure/cable{ @@ -1467,14 +1655,14 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"eD" = ( +"JM" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, /turf/open/floor/plasteel, /area/mine/production) -"eE" = ( +"JU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -1483,7 +1671,7 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"eH" = ( +"Kb" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -1493,7 +1681,7 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"eI" = ( +"Kk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, @@ -1506,7 +1694,7 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"eJ" = ( +"KE" = ( /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ dir = 4 @@ -1516,7 +1704,25 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"eK" = ( +"Lg" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Lu" = ( +/obj/machinery/camera{ + c_tag = "Crew Area Hallway West"; + dir = 1; + network = list("mine") + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"LE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/brown, /obj/effect/turf_decal/tile/brown{ @@ -1525,41 +1731,46 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel, /area/mine/living_quarters) -"eL" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 8 +"LI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"eM" = ( -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"eN" = ( +"LL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel, /area/mine/living_quarters) -"eO" = ( +"LU" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Mt" = ( /obj/machinery/light/small, /obj/effect/turf_decal/tile/purple{ dir = 4 }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"eP" = ( +"MG" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, /turf/open/floor/plasteel, /area/mine/production) -"eQ" = ( +"MH" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/door/airlock/glass, /turf/open/floor/plasteel, /area/mine/living_quarters) -"eR" = ( +"Nj" = ( /obj/machinery/door/airlock/glass{ name = "Break Room" }, @@ -1567,7 +1778,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel, /area/mine/living_quarters) -"eS" = ( +"Nt" = ( /obj/machinery/airalarm{ dir = 1; pixel_y = -22 @@ -1575,7 +1786,7 @@ /obj/machinery/mineral/equipment_vendor, /turf/open/floor/plasteel, /area/mine/production) -"eT" = ( +"Ny" = ( /obj/structure/closet/crate{ icon_state = "crateopen" }, @@ -1586,7 +1797,7 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"eU" = ( +"NI" = ( /obj/structure/closet/crate, /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ @@ -1594,13 +1805,24 @@ }, /turf/open/floor/plasteel, /area/mine/production) -"eW" = ( +"NK" = ( +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/mine/production) +"NP" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/plasteel, +/area/mine/production) +"NY" = ( /obj/effect/turf_decal/loading_area{ dir = 8 }, /turf/open/floor/plasteel, /area/mine/production) -"eX" = ( +"Of" = ( /obj/machinery/conveyor{ dir = 8; id = "mining_internal" @@ -1611,7 +1833,7 @@ }, /turf/open/floor/plating, /area/mine/production) -"eY" = ( +"Ol" = ( /obj/machinery/conveyor{ dir = 8; id = "mining_internal" @@ -1621,7 +1843,7 @@ }, /turf/open/floor/plating, /area/mine/production) -"eZ" = ( +"Ou" = ( /obj/machinery/conveyor{ dir = 10; id = "mining_internal" @@ -1634,14 +1856,28 @@ }, /turf/open/floor/plating, /area/mine/production) -"fa" = ( +"Ow" = ( +/obj/item/clothing/under/color/jumpskirt/random, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Pa" = ( /obj/machinery/newscaster{ pixel_y = 32 }, /obj/structure/chair, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fb" = ( +"Pl" = ( /obj/structure/extinguisher_cabinet{ pixel_x = -5; pixel_y = 30 @@ -1655,7 +1891,7 @@ /obj/structure/chair, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fc" = ( +"Pp" = ( /obj/machinery/airalarm{ pixel_y = 23 }, @@ -1664,7 +1900,7 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fd" = ( +"Ps" = ( /obj/machinery/camera{ c_tag = "Public Shuttle Lobby"; network = list("mine") @@ -1681,7 +1917,7 @@ /obj/item/gps/mining, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fe" = ( +"Pt" = ( /obj/structure/bed, /obj/item/bedsheet/brown, /obj/machinery/airalarm{ @@ -1689,7 +1925,7 @@ }, /turf/open/floor/carpet, /area/mine/living_quarters) -"ff" = ( +"PE" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, @@ -1698,7 +1934,7 @@ }, /turf/open/floor/carpet, /area/mine/living_quarters) -"fg" = ( +"PL" = ( /obj/machinery/door/airlock{ id_tag = "miningdorm1"; name = "Room 1" @@ -1711,7 +1947,7 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fh" = ( +"PY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -1726,7 +1962,7 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fi" = ( +"Qx" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, @@ -1735,7 +1971,7 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fj" = ( +"QN" = ( /obj/machinery/vending/snack, /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ @@ -1743,14 +1979,23 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fk" = ( +"QQ" = ( /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ dir = 1 }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fm" = ( +"QW" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"QX" = ( /obj/machinery/vending/cigarette, /obj/machinery/newscaster{ pixel_y = 32 @@ -1761,7 +2006,7 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fn" = ( +"Rb" = ( /obj/structure/table, /obj/machinery/microwave{ pixel_y = 6 @@ -1772,13 +2017,31 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 +"Rf" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining External Airlock"; + opacity = 0 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel, +/area/mine/production) +"Rx" = ( +/obj/structure/chair{ + dir = 4 }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fq" = ( +"RE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"RO" = ( /obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; @@ -1792,11 +2055,11 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fr" = ( +"SE" = ( /obj/structure/table, /turf/open/floor/carpet, /area/mine/living_quarters) -"fs" = ( +"SJ" = ( /obj/machinery/light/small{ dir = 4 }, @@ -1812,7 +2075,7 @@ }, /turf/open/floor/carpet, /area/mine/living_quarters) -"ft" = ( +"SV" = ( /obj/machinery/camera{ c_tag = "Dormitories"; dir = 4; @@ -1823,7 +2086,7 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fu" = ( +"SX" = ( /obj/structure/chair, /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ @@ -1833,7 +2096,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fv" = ( +"Ti" = ( /obj/structure/table, /obj/machinery/reagentgrinder, /obj/effect/turf_decal/tile/bar, @@ -1842,7 +2105,36 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fy" = ( +"Tk" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"Tn" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"To" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"Tv" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/closed/wall, +/area/mine/living_quarters) +"TA" = ( /obj/structure/table, /obj/item/clothing/glasses/meson, /obj/item/storage/bag/ore, @@ -1851,11 +2143,23 @@ /obj/item/flashlight, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fB" = ( -/obj/structure/displaycase, +"TC" = ( +/obj/structure/table, +/obj/item/gps/mining, +/obj/item/gps/mining, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fC" = ( +"TP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"TT" = ( /obj/structure/chair{ dir = 4 }, @@ -1868,7 +2172,7 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fD" = ( +"Uh" = ( /obj/structure/table, /obj/item/reagent_containers/food/drinks/beer{ pixel_x = 7; @@ -1893,7 +2197,7 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fE" = ( +"Ur" = ( /obj/structure/chair{ dir = 8 }, @@ -1906,7 +2210,7 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fF" = ( +"UE" = ( /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ dir = 1 @@ -1916,7 +2220,7 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fG" = ( +"UH" = ( /obj/structure/table, /obj/item/storage/box/donkpockets, /obj/effect/turf_decal/tile/bar, @@ -1925,7 +2229,28 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fH" = ( +"UJ" = ( +/obj/machinery/shower{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 30 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"UM" = ( +/obj/structure/table, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/tank/internals/emergency_oxygen, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"UP" = ( /obj/machinery/door/airlock{ id_tag = "miningdorm2"; name = "Room 2" @@ -1938,7 +2263,7 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fI" = ( +"UQ" = ( /obj/item/radio/intercom{ dir = 8; name = "Station Intercom (General)"; @@ -1950,7 +2275,7 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fJ" = ( +"US" = ( /obj/machinery/camera{ c_tag = "Crew Area"; dir = 1; @@ -1966,7 +2291,7 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fK" = ( +"UW" = ( /obj/machinery/airalarm{ dir = 1; pixel_y = -22 @@ -1977,7 +2302,33 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fM" = ( +"Vo" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = 11 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"VC" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining External Airlock"; + opacity = 0 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/production) +"VP" = ( +/obj/structure/displaycase, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"VX" = ( /obj/machinery/light/small{ dir = 4 }, @@ -1993,7 +2344,16 @@ }, /turf/open/floor/carpet, /area/mine/living_quarters) -"fN" = ( +"Wi" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"WA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light{ dir = 4 @@ -2003,7 +2363,91 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fO" = ( +"WD" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/closed/mineral/random/snow, +/area/icemoon/underground/unexplored/rivers) +"WE" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Lavaland Shuttle Airlock" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"WM" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Lavaland Shuttle Airlock" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"WO" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Xf" = ( +/obj/structure/statue{ + desc = "A lifelike statue of a horrifying monster."; + dir = 8; + icon = 'icons/mob/lavaland/lavaland_monsters.dmi'; + icon_state = "goliath"; + name = "goliath" + }, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Xl" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/structure/displaycase, +/turf/open/floor/plasteel, +/area/mine/living_quarters) +"Xx" = ( +/obj/machinery/door/window/southleft, +/obj/machinery/shower{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"XU" = ( +/obj/machinery/door/window/southright, +/obj/machinery/shower{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"Ym" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = -12 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"Yv" = ( +/obj/structure/toilet{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"Yy" = ( /obj/machinery/door/airlock{ id_tag = "miningdorm3"; name = "Room 3" @@ -2016,612 +2460,56 @@ }, /turf/open/floor/plasteel, /area/mine/living_quarters) -"fP" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "miningdorm3"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/mine/living_quarters) -"ga" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"gd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"gn" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, +"YA" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, /turf/open/floor/plasteel, /area/mine/living_quarters) -"gp" = ( -/obj/structure/table, -/obj/item/storage/firstaid/regular, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/mine/laborcamp) -"gS" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/security/glass{ - name = "Labor Camp Shuttle Security Airlock"; - req_access_txt = "2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"gW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"hv" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "gulag"; - name = "labor camp conveyor" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"hz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/mine/living_quarters) -"hY" = ( -/obj/machinery/door/airlock/public/glass{ - id_tag = "gulag3"; - name = "Cell 3" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"ia" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/mine/production) -"ie" = ( -/obj/machinery/vending/sustenance, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"ip" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"ix" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/camera{ - c_tag = "Labor Camp Operations"; - dir = 8; - network = list("labor") - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"iG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"iM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"iZ" = ( -/obj/machinery/camera{ - c_tag = "Labor Camp External South"; - dir = 4; - network = list("labor") - }, -/turf/closed/mineral/random/snow, -/area/mine/laborcamp) -"je" = ( -/obj/structure/bed, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"jk" = ( -/obj/machinery/computer/prisoner, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"jo" = ( -/obj/effect/turf_decal/delivery, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"jr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"ju" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"jy" = ( -/obj/structure/table, -/obj/item/toy/cards/deck, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"jL" = ( -/turf/closed/wall/r_wall, -/area/icemoon/underground/unexplored/rivers) -"jU" = ( -/obj/structure/ore_box, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"jV" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"kb" = ( -/obj/machinery/conveyor{ - dir = 10; - id = "gulag" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/mine/laborcamp) -"ks" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"ku" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/structure/displaycase, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"kv" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"kI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable, -/obj/machinery/door/airlock/mining/glass{ - name = "Processing Area"; - req_access_txt = "48" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"kL" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"kO" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"lO" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"mi" = ( -/obj/effect/turf_decal/bot, -/obj/structure/ore_box, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"mL" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/twohanded/required/kirbyplants/random, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"mS" = ( -/obj/structure/sink/kitchen{ - desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - dir = 8; - name = "old sink"; - pixel_x = 12 - }, -/turf/open/floor/plasteel/freezer, -/area/mine/laborcamp) -"nd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/light/small{ - brightness = 3; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"nm" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 11 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"nq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"nE" = ( -/obj/structure/sign/poster/official/do_not_question{ - pixel_y = 32 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"nI" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/mine/living_quarters) -"nL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"nN" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"nV" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/mine/laborcamp) -"op" = ( -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Mining External Airlock"; - opacity = 0; - req_access_txt = "54" - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"oB" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel/white, -/area/mine/laborcamp) -"oL" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "Lavaland Shuttle Airlock" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"oO" = ( -/obj/structure/table, -/obj/item/gps/mining, -/obj/item/gps/mining, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"oQ" = ( -/obj/structure/toilet{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/freezer, -/area/mine/laborcamp) -"oU" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"oW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"pf" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/seeds/carrot, -/turf/open/floor/plasteel/dark, -/area/mine/laborcamp) -"pi" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/camera{ - c_tag = "Labor Camp Cellblock"; - dir = 4; - network = list("labor") - }, -/obj/item/twohanded/required/kirbyplants/random, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"pu" = ( -/obj/structure/sign/poster/official/obey{ - pixel_y = 32 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"pJ" = ( -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"pV" = ( +"YB" = ( /obj/machinery/door/airlock{ name = "Restroom" }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"qa" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"qb" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"qt" = ( -/obj/structure/table, -/obj/item/cigbutt, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"qN" = ( -/obj/structure/chair/stool, -/obj/machinery/flasher{ - id = "GulagCell 3"; - pixel_x = -28 - }, -/obj/structure/sign/poster/official/obey{ - pixel_y = 32 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 4 }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"rj" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/mine/eva) -"rv" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/freezer, /area/mine/living_quarters) -"ry" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"rz" = ( -/obj/structure/chair/stool, -/obj/machinery/flasher{ - id = "GulagCell 2"; - pixel_x = -28 - }, -/obj/structure/sign/poster/official/work_for_a_future{ - pixel_y = 32 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ +"YP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"sa" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"sj" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 8 +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"YW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/obj/effect/turf_decal/tile/brown, -/turf/open/floor/plasteel, -/area/mine/production) -"so" = ( -/obj/structure/ladder, -/turf/open/floor/plasteel, -/area/mine/eva) -"sp" = ( -/obj/effect/turf_decal/tile/green{ - dir = 8 +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 }, -/obj/effect/turf_decal/tile/green, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sink/kitchen{ - desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - dir = 1; - name = "old sink"; - pixel_y = -5 +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"Zd" = ( +/obj/machinery/door/airlock{ + id_tag = "miningbathroom"; + name = "Restroom" }, -/turf/open/floor/plasteel/dark, -/area/mine/laborcamp) -"ss" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/mine/living_quarters) +"Zf" = ( /obj/machinery/button/door{ id = "miningbathroom"; name = "Door Bolt Control"; @@ -2637,73 +2525,7 @@ }, /turf/open/floor/plasteel/freezer, /area/mine/living_quarters) -"st" = ( -/obj/machinery/biogenerator, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/mine/laborcamp) -"su" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"sA" = ( -/obj/structure/table, -/obj/item/paper, -/obj/item/pen, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/camera{ - c_tag = "Labor Camp Cell 1"; - dir = 4; - network = list("labor") - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"sH" = ( -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Mining External Airlock"; - opacity = 0 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plasteel, -/area/mine/production) -"sM" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"sY" = ( -/obj/structure/fence{ - dir = 4 - }, -/obj/structure/sign/mining, -/turf/closed/mineral/random/snow, -/area/icemoon/underground/unexplored/rivers) -"tn" = ( -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"tI" = ( +"Zk" = ( /obj/machinery/light/small{ dir = 4 }, @@ -2712,1602 +2534,22 @@ }, /turf/open/floor/plasteel/freezer, /area/mine/living_quarters) -"tL" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/mine/laborcamp) -"uG" = ( -/obj/machinery/light, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"uJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/mine/living_quarters) -"vb" = ( -/obj/machinery/door/window/southleft, -/obj/machinery/shower{ - pixel_y = 22 - }, -/turf/open/floor/plasteel/freezer, -/area/mine/living_quarters) -"vq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"vw" = ( -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Labor Camp External Airlock"; - opacity = 0 - }, -/turf/open/floor/plating, -/area/mine/laborcamp) -"vG" = ( -/obj/structure/sign/poster/official/work_for_a_future{ - pixel_y = 32 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"vH" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Labor Camp Security APC"; - pixel_y = 23 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"vW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"we" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/box/donkpockets, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"wj" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"wq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"wN" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"wX" = ( -/obj/machinery/door/airlock{ - name = "Labor Camp Library" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"wZ" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/mine/laborcamp) -"xi" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/closed/wall, -/area/mine/living_quarters) -"xU" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/seeds/onion, -/turf/open/floor/plasteel/dark, -/area/mine/laborcamp) -"yf" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"yk" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"yq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"yr" = ( -/turf/closed/wall/r_wall, -/area/mine/laborcamp) -"yy" = ( -/obj/structure/rack, -/obj/item/storage/bag/ore, -/obj/item/pickaxe, -/obj/item/flashlight, -/obj/item/clothing/glasses/meson, -/obj/item/mining_scanner, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"yD" = ( -/obj/machinery/mineral/unloading_machine{ - dir = 1; - icon_state = "unloader-corner"; - input_dir = 1; - output_dir = 2 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/mine/laborcamp) -"yX" = ( +"Zm" = ( /obj/machinery/light/small{ - dir = 1 - }, -/turf/closed/mineral/random/snow, -/area/icemoon/underground/unexplored/rivers) -"zk" = ( -/obj/effect/turf_decal/bot, -/obj/structure/ore_box, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"zn" = ( -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Mining External Airlock"; - opacity = 0 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"zQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"zU" = ( -/obj/structure/table, -/obj/structure/bedsheetbin, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/mine/laborcamp) -"zX" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/structure/closet/secure_closet/labor_camp_security, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"Ac" = ( -/obj/structure/chair/stool, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Al" = ( -/obj/structure/ore_box, -/turf/open/floor/plasteel, -/area/mine/eva) -"Aw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"AB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"AW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"Bd" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/mine/laborcamp) -"Be" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"Bl" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/microwave{ - pixel_y = 6 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Bz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"BL" = ( -/obj/machinery/light/small, -/obj/machinery/camera{ - c_tag = "Labor Camp Showers"; - dir = 1; - network = list("labor") - }, -/turf/open/floor/plasteel/freezer, -/area/mine/laborcamp) -"Cd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Cf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/public/glass{ - id_tag = "cellblock1"; - name = "Labor Camp Cellblock" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Cr" = ( -/obj/machinery/door/airlock/public/glass{ - id_tag = "gulag1"; - name = "Cell 1" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"CK" = ( -/obj/structure/closet/secure_closet/brig, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Dh" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Dn" = ( -/obj/structure/rack, -/obj/item/storage/bag/ore, -/obj/item/flashlight, -/obj/item/pickaxe, -/obj/item/clothing/glasses/meson, -/obj/item/mining_scanner, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Du" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/mine/laborcamp) -"DB" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"DR" = ( -/obj/structure/chair/stool, -/obj/structure/sign/poster/official/report_crimes{ - pixel_x = -32 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Ee" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"El" = ( -/turf/open/floor/plasteel/freezer, -/area/mine/laborcamp) -"Es" = ( -/obj/machinery/door/window/southright, -/obj/machinery/shower{ - pixel_y = 22 - }, -/turf/open/floor/plasteel/freezer, -/area/mine/living_quarters) -"Ez" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"EB" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/item/seeds/wheat, -/obj/item/seeds/wheat, -/obj/item/seeds/tomato, -/obj/item/seeds/onion, -/obj/item/seeds/garlic, -/obj/item/seeds/carrot, -/obj/item/seeds/ambrosia, -/obj/item/seeds/apple, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"EG" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"EL" = ( -/obj/machinery/shower{ - pixel_y = 22 - }, -/turf/open/floor/plasteel/freezer, -/area/mine/laborcamp) -"ET" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Fd" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Labor Camp Security Office"; - dir = 1; - network = list("labor") - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"Fy" = ( -/obj/structure/chair/stool, -/obj/machinery/flasher{ - id = "GulagCell 1"; - pixel_x = -28 - }, -/obj/structure/sign/poster/official/obey{ - pixel_y = 32 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"FB" = ( -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"FF" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"FQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"FU" = ( -/obj/machinery/seed_extractor, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/mine/laborcamp) -"Gn" = ( -/obj/item/clothing/under/color/jumpskirt/random, -/obj/structure/table, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Gp" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Gv" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Gw" = ( -/obj/machinery/camera{ - c_tag = "Labor Camp External West"; - dir = 4; - network = list("labor") - }, -/turf/closed/mineral/random/snow, -/area/mine/laborcamp) -"GI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"GN" = ( -/obj/structure/table, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = 5; - pixel_y = 3 - }, -/obj/item/tank/internals/emergency_oxygen, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"GY" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Hd" = ( -/turf/closed/wall/r_wall, -/area/mine/laborcamp/security) -"Ho" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/mine/living_quarters) -"Hx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"HF" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"HM" = ( -/obj/machinery/camera{ - c_tag = "Labor Camp External North"; - dir = 1; - network = list("labor") - }, -/turf/closed/mineral/random/snow, -/area/mine/laborcamp) -"HO" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"HW" = ( -/obj/structure/table, -/obj/item/paper, -/obj/item/pen, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/camera{ - c_tag = "Labor Camp Cell 3"; - dir = 4; - network = list("labor") - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"HX" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restroom" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"HY" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{ - dir = 4; - piping_layer = 3 - }, -/obj/structure/lattice/catwalk, -/turf/closed/mineral/random/snow, -/area/mine/living_quarters) -"Iq" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/door/airlock/security/glass{ - name = "Labor Camp Monitoring"; - req_access_txt = "2" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"Iv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"IB" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"IF" = ( -/obj/machinery/mineral/mint, -/turf/open/floor/plasteel, -/area/mine/production) -"IK" = ( -/obj/structure/toilet{ - dir = 8 - }, -/turf/open/floor/plasteel/freezer, -/area/mine/living_quarters) -"IM" = ( -/obj/item/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - name = "Prison Intercom (General)"; - pixel_y = 24; - prison_radio = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Jo" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"JM" = ( -/obj/structure/closet/crate/internals, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"JU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Kb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Kk" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/closed/mineral/random/snow, -/area/icemoon/underground/unexplored/rivers) -"KE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"KJ" = ( -/obj/structure/closet/crate, -/turf/closed/mineral/random/snow, -/area/icemoon/underground/unexplored/rivers) -"Lg" = ( -/obj/item/clothing/under/color/jumpskirt/random, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/structure/table, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Lu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"LE" = ( -/obj/machinery/camera{ - c_tag = "Crew Area Hallway"; - network = list("mine") - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"LI" = ( -/obj/structure/sink/kitchen{ - desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 - }, -/turf/open/floor/plasteel/freezer, -/area/mine/laborcamp) -"LL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/eva) -"LU" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/computer/libraryconsole/bookmanagement, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Mt" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green, -/obj/effect/decal/cleanable/dirt, -/obj/item/seeds/redbeet, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/mine/laborcamp) -"MG" = ( -/obj/machinery/computer/secure_data, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"MH" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/mine/production) -"Nj" = ( -/obj/machinery/door/airlock{ - name = "Restroom" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/mine/living_quarters) -"Nt" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Ny" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Labor Camp Infirmary"; - dir = 8; - network = list("labor") - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/mine/laborcamp) -"NI" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3; - pixel_y = 5 - }, -/obj/item/reagent_containers/food/condiment/peppermill{ - pixel_x = 3 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"NK" = ( -/obj/machinery/light/small{ - dir = 1 - }, /obj/machinery/button/door{ - id = "labor"; - name = "Labor Camp Lockdown"; - pixel_y = 28; - req_access_txt = "2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"NP" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"NY" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "gulag" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/plasticflaps, -/turf/open/floor/plating, -/area/mine/laborcamp) -"Of" = ( -/obj/machinery/light/small, -/turf/closed/mineral/random/snow, -/area/mine/laborcamp) -"Ol" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/public/glass{ - id_tag = "cellblock1"; - name = "Labor Camp Operations" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Ou" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/mine/laborcamp) -"Ow" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/plasteel/dark, -/area/mine/laborcamp) -"Pa" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/red, -/obj/machinery/recharger, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"Pl" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Pp" = ( -/obj/machinery/mineral/processing_unit{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/mine/laborcamp) -"Ps" = ( -/obj/effect/turf_decal/loading_area{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Pt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"PE" = ( -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/dark, -/area/mine/laborcamp) -"PL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/turf/open/floor/plasteel, -/area/mine/eva) -"PY" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plasteel/cafeteria, -/area/mine/laborcamp) -"Qx" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/plant_analyzer, -/turf/open/floor/plasteel/dark, -/area/mine/laborcamp) -"QN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"QQ" = ( -/obj/structure/table, -/obj/item/storage/fancy/donut_box, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"QW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"QX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/camera{ - c_tag = "Labor Camp Library"; - dir = 8; - network = list("labor") + id = "miningdorm3"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Rb" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Rf" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel, -/area/mine/eva) -"Rx" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"RE" = ( -/obj/machinery/shower{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 30 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"RO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, +/turf/open/floor/carpet, /area/mine/living_quarters) -"SE" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/structure/sign/poster/official/twelve_gauge{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"SJ" = ( -/obj/structure/statue{ - desc = "A lifelike statue of a horrifying monster."; - dir = 8; - icon = 'icons/mob/lavaland/lavaland_monsters.dmi'; - icon_state = "goliath"; - name = "goliath" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"SV" = ( -/obj/machinery/computer/security/labor, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"SX" = ( -/obj/machinery/conveyor{ - id = "gulag" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/mine/laborcamp) -"Ti" = ( -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Tk" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green, -/obj/item/seeds/soya, -/turf/open/floor/plasteel/dark, -/area/mine/laborcamp) -"Tn" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/mine/living_quarters) -"To" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/mine/production) -"Tv" = ( -/obj/machinery/camera{ - c_tag = "Crew Area Hallway West"; - dir = 1; - network = list("mine") - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"TA" = ( -/obj/structure/sign/departments/medbay/alt{ - pixel_x = -32 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"TC" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"TP" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"TT" = ( -/obj/machinery/washing_machine, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/cafeteria, -/area/mine/laborcamp) -"Uh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"Ur" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plasteel, -/area/mine/eva) -"UE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"UH" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"UJ" = ( -/obj/machinery/vending/security{ - onstation_override = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp/security) -"UM" = ( -/obj/structure/table, -/obj/item/paper, -/obj/item/pen, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/camera{ - c_tag = "Labor Camp Cell 2"; - dir = 4; - network = list("labor") - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"UP" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, -/obj/structure/mirror{ - pixel_x = -28 - }, -/turf/open/floor/plasteel/freezer, -/area/mine/living_quarters) -"UQ" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/production) -"US" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "Lavaland Shuttle Airlock" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"UW" = ( -/obj/structure/fence{ - dir = 4 - }, -/turf/closed/mineral/random/snow, -/area/icemoon/underground/unexplored/rivers) -"Vo" = ( -/obj/item/bikehorn{ - color = "#000"; - desc = "A horn off of a bicycle. This one has been charred to hell and back, yet somehow it still honks."; - name = "charred bike horn" - }, -/turf/closed/mineral/random/snow, -/area/icemoon/underground/unexplored/rivers) -"VC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"VP" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"VX" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Infirmary" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/mine/laborcamp) -"Wi" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/mine/laborcamp/security) -"WA" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/cultivator, -/obj/item/seeds/potato, -/turf/open/floor/plasteel/dark, -/area/mine/laborcamp) -"WD" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Mining External Airlock"; - opacity = 0; - req_access_txt = "54" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/mine/eva) -"WE" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Mining Shuttle Airlock"; - opacity = 0 - }, -/turf/open/floor/plasteel, -/area/mine/production) -"WM" = ( -/obj/machinery/shower{ - pixel_y = 22 - }, -/obj/item/soap/nanotrasen, -/obj/item/bikehorn/rubberducky, -/turf/open/floor/plasteel/freezer, -/area/mine/laborcamp) -"WO" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/structure/sign/warning/xeno_mining{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Xf" = ( -/obj/structure/ore_box, -/turf/closed/mineral/random/snow, -/area/icemoon/underground/unexplored/rivers) -"Xl" = ( -/obj/structure/bookcase, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Xx" = ( -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"XU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Ym" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"Yv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Yy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/machinery/mineral/labor_points_checker{ - pixel_y = 25 - }, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"YA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) -"YB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/structure/lattice/catwalk, -/turf/closed/mineral/random/snow, -/area/mine/living_quarters) -"YP" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Showers" - }, -/turf/open/floor/plasteel/freezer, -/area/mine/laborcamp) -"YW" = ( -/obj/effect/turf_decal/bot, -/obj/structure/ore_box, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Zd" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/security/glass{ - name = "Labor Camp Shuttle Prisoner Airlock" - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Zf" = ( -/obj/machinery/door/airlock{ - id_tag = "miningbathroom"; - name = "Restroom" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/mine/living_quarters) -"Zk" = ( -/obj/machinery/door/airlock/public/glass{ - id_tag = "gulag2"; - name = "Cell 2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/mine/laborcamp) -"Zm" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/cafeteria, -/area/mine/laborcamp) (1,1,1) = {" ah @@ -11652,7 +9894,7 @@ ah ah ah ah -aa +ah ah ah ah @@ -11899,18 +10141,18 @@ ah ah ah ah -yr -ap -ap -ap -ap -yr -aY -yr -yr -yr -bx -yr +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -12156,23 +10398,23 @@ ah ah ah ah -yr -Ee -Ac -Ac -Ee -aq -NK -aq -ao -aq -nN -yr ah ah ah ah -Vo +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -12413,18 +10655,18 @@ ah ah ah ah -yr -pu -NI -au -Yv -aq -gS -aq -bi -aq -Zd -yr +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -12667,30 +10909,30 @@ ah ah ah ah -ap -ap -ap -yr -Ee -jy -aG -Ee -aq -aF -aq -aN -aS -Ee -yr -Hd -Hd -Hd -ry -Hd -cR -cR -cR -cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -12924,31 +11166,31 @@ ah ah ah ah -ap -El -BL -aq -Ee -Ee -NP -Ee -aC -az -Ee -su -Ee -Yv -yr -cb -UJ -cG -QQ -Hd -qt -dZ -Gn -cM -HY +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -13180,32 +11422,32 @@ ah ah ah ah -HM -yr -EL -El -YP -Ee -Ee -FQ -Jo -Jo -Jo -ks -JU -Iv -jr -bL -cc -bw -Hx -oU -Hd -Ym -dZ -eM -cM -YB +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -13437,34 +11679,34 @@ ah ah ah ah -KJ -yr -WM -mS -aq -ie -Ee -wq -Ee -Bl -we -aJ -mL -CK -CK -yr -SE -bh -GI -Fd -Hd -Xx -dZ -dZ -cM -uJ -nI -cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -13692,43 +11934,43 @@ ah ah ah ah -ap -ap -ap -yr -aq -aq -aq -aq -vG -zQ -Ee -FU -pf -WA -Qx -yr -yr -yr -vH -bh -QN -oW -sM -eL -gn -ec -dZ -gW -ju -cM ah ah ah ah -cR -US -cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -13949,43 +12191,43 @@ ah ah ah ah -ap -gp -nV -aq -LU -DR -nd -aq -IM -wq -Ee -PE -wZ -Ow -sp -yr -by -pV -UH -ch -iM -sa -Iq -QW -vW -QW -QW -RO -Tv -cM ah ah ah ah -cR -dZ -cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -14206,43 +12448,43 @@ ah ah ah ah -ap -tL -oB -aq -Gv -Bz -KE -wX -Iv -HF -EB -st -Tk -Mt -xU -yr -bB -ca -MG -bh -AW -bM -yf -dZ -dZ -Dh -Nt -YA -dZ -cM -cM -cM -xi -cM -cR -oL -cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -14463,43 +12705,43 @@ ah ah ah ah -ap -Bd -Ny -aq -Xl -QX -aq -aq -aq -Cf -aq -aq -aq -aq -aq -yr -yr -Hd -SV -cB -bh -uG -cQ -cQ -cQ -cQ -ip -YA -dZ -cM -Lg -kO -dZ -kO -eL -Pl -cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -14720,43 +12962,43 @@ ah ah ah ah -yr -Du -aq -aq -aq -aq -aq -oQ -aq -ET -pi -aq -Fy -sA -ap -iZ ah -yk -jk -cC -Pa -zX -cQ -dg -dg -cQ -dZ -YA -dZ -cM -fa -dZ -dZ -dZ -dZ -dZ -cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -14976,44 +13218,44 @@ ah ah ah ah -Xf -yr -Du -aq -yy -yy -yy -aq -LI -HX -kL -Jo -Cr -Cd -je -ap ah ah -TC -Wi -Wi -Wi -FF -cQ -dh -dx -cQ -ea -YA -ek -cM -fb -dZ -fy -fy -dZ -SJ -cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -15233,22 +13475,6 @@ ah ah ah ah -Xf -yr -VX -aq -Dn -Ee -Ee -aq -aq -aq -Rb -IB -aq -aq -aq -yr ah ah ah @@ -15256,21 +13482,37 @@ ah ah ah ah -cQ -di -dy -dP -eb -eq -eK -eQ -ef -Aw -fy -fy -dZ -dZ -cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -15488,24 +13730,6 @@ ah ah ah ah -Of -yr -yr -yr -wN -TA -qb -Ee -Ee -Ee -JM -aq -nE -Ee -aq -rz -UM -ap ah ah ah @@ -15513,21 +13737,39 @@ ah ah ah ah -cQ -dj -dz -cQ -ec -er -eL -cM -fc -gW -dZ -dZ -dZ -eM -cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -15746,23 +13988,6 @@ ah ah ah ah -vw -Ou -vw -UE -Ti -tn -pJ -mi -Ee -Ee -aq -ga -Jo -Zk -iG -je -ap ah ah ah @@ -15770,21 +13995,38 @@ ah ah ah ah -cQ -dk -dA -cQ -LE -Kb -eM -cM -fd -fq -oO -GN -fB -ku -cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -16002,24 +14244,6 @@ ah ah ah ah -Of -yr -yr -yr -WO -YW -zk -FB -Gp -Jo -Jo -Ol -HF -Ee -aq -aq -aq -yr ah ah ah @@ -16027,23 +14251,41 @@ ah ah ah ah -cQ -cQ -cQ -cQ -ee -er -dZ -cM -cM -cM -cM -cM -cM -cM -cM -cM -cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -16260,23 +14502,6 @@ ah ah ah ah -KJ -ap -GY -Ee -az -Ee -qa -Ee -Ee -Ee -aq -Yy -Ez -aq -qN -HW -ap ah ah ah @@ -16284,23 +14509,40 @@ ah ah ah ah -cM -dl -dB -cM -dZ -EG -fp -cM -fe -fr -cM -fe -fr -cM -fe -fr -cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -16518,22 +14760,6 @@ ah ah ah ah -ap -Ee -Ee -ix -Ee -hv -VC -az -nq -aq -XU -Jo -hY -Cd -je -ap ah ah ah @@ -16541,23 +14767,39 @@ ah ah ah ah -cR -dm -dC -dQ -ea -er -dZ -cM -ff -fs -cM -ff -fM -cM -ff -fP -cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -16775,22 +15017,6 @@ ah ah ah ah -ap -jU -Ps -aq -aq -bd -aq -aq -NY -yr -PY -Zm -yr -yr -yr -yr ah ah ah @@ -16798,23 +15024,39 @@ ah ah ah ah -cR -Ho -dD -dR -ef -es -dZ -cM -fg -cM -cM -fH -cM -cM -fO -cM -cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -17032,19 +15274,6 @@ ah ah ah ah -ap -jU -jo -yD -SX -Pp -SX -SX -kb -yr -zU -TT -ap ah ah ah @@ -17055,23 +15284,36 @@ ah ah ah ah -cM -dn -dE -dQ -ec -er -dZ -eL -fh -ft -eL -fh -VP -eL -fh -ec -cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -17289,19 +15531,6 @@ ah ah ah ah -ap -ap -ap -yr -yr -yr -yr -yr -yr -yr -ap -ap -ap ah ah ah @@ -17311,24 +15540,37 @@ ah ah ah ah -cM -cM -cM -cM -cM -eg -et -eN -eN -fi -eN -eN -fi -fN -eN -HO -fp -cR +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -17551,10 +15793,6 @@ ah ah ah ah -Gw -ah -ah -UW ah ah ah @@ -17568,24 +15806,28 @@ ah ah ah ah -cM -cS -do -dF -cM -eh -EG -fp -cM -cM -dQ -dQ -cM -cM -cM -Nj -cM -cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -17811,7 +16053,6 @@ ah ah ah ah -sY ah ah ah @@ -17825,23 +16066,24 @@ ah ah ah ah -cM -cT -cV -cV -cM -ea -er -eM -cM -fj -fk -Pt -fI -cM -vb -hz -cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -18068,7 +16310,6 @@ ah ah ah ah -UW ah ah ah @@ -18082,23 +16323,24 @@ ah ah ah ah -cM -cU -dp -dH -dS -ei -eu -ek -dQ -fk -fk -fC -fk -cM -Es -Tn -cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -18325,7 +16567,6 @@ ah ah ah ah -UW ah ah ah @@ -18339,23 +16580,24 @@ ah ah ah ah -cM -cV -dq -dI -cM -ej -rv -kv -eR -TP -fu -fD -fJ -cM -cM -Zf -cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -18582,7 +16824,6 @@ ah ah ah ah -jL ah ah ah @@ -18596,23 +16837,24 @@ ah ah ah ah -cM -cW -dr -dr -cM -vq -Kb -eL -dQ -fk -fk -fE -fK -cM -UP -ss -cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -18853,23 +17095,23 @@ ah ah ah ah -cM -cM -cM -cM -cM -dZ -er -dZ -cM -fm -fk -fF -fk -cM -IK -tI -cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -19114,19 +17356,19 @@ ah ah ah ah -cR -dZ -er -dZ -cM -fn -fv -fG -nm -cM -cM -cM -cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -19371,16 +17613,16 @@ ah ah ah ah -cR -ek -ew -eO -cM -cR -cR -cR -cR -cM +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -19628,11 +17870,11 @@ ah ah ah ah -cR -cR -ex -cR -cR +ah +ah +ah +ah +ah ah ah ah @@ -19886,9 +18128,9 @@ ah ah ah ah -cR -ey -cR +ah +ah +ah ah ah ah @@ -20143,9 +18385,9 @@ ah ah ah ah -cR -er -cR +ah +ah +ah ah ah ah @@ -20400,9 +18642,9 @@ ah ah ah ah -cR -er -cR +ah +ah +ah ah ah ah @@ -20657,9 +18899,9 @@ ah ah ah ah -cR -er -cR +ah +ah +ah ah ah ah @@ -20914,9 +19156,9 @@ ah ah ah ah -br -ez -br +ah +ah +ah ah ah ah @@ -21171,9 +19413,9 @@ ah ah ah ah -br -ez -br +ah +ah +ah ah ah ah @@ -21419,18 +19661,18 @@ ah ah ah ah -bN -cj -br ah ah ah ah ah ah -br -ez -br +ah +ah +ah +ah +ah +ah ah ah ah @@ -21676,18 +19918,18 @@ ah ah ah ah -br -bP -br ah ah ah ah ah ah -br -UQ -br +ah +ah +ah +ah +ah +ah ah ah ah @@ -21932,20 +20174,20 @@ ah ah ah ah -br -br -WE -br -br ah ah ah ah -MH -br -eA -br -br +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -22188,22 +20430,22 @@ ah ah ah ah -bq -br -bO -ck -cD -br -bq -bq -bq -bq -cy -cH -eB -cD -br -bq +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -22445,22 +20687,22 @@ ah ah ah ah -bq -DB -Lu -bP -cl -cH -cO -cX -ck -dJ -cy -cn -ez -bP -eS -bq +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -22702,22 +20944,22 @@ ah ah ah ah -br -bD -bQ -cm -cE -Uh -Uh -yq -nL -Uh -kI -Be -eC -eP -eT -bq +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -22959,26 +21201,26 @@ ah ah ah ah -br -bE -bR -cn -cF -cI -cP -cn -Rx -bP -To -gd -eD -bP -eU -bq -bq -bq -bq -yX +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -23214,27 +21456,27 @@ ah ah ah ah -bf -bf -bf -bF -bS -bF -bf -cJ -bq -cZ -ds -dK -To -bP -eE -bP -dU -br -wj -dU -br +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -23471,27 +21713,27 @@ ah ah ah ah -bf -bn -bs -bG -bT -co -bf -cK -bq -bq -ia -bq -ia -bP -eE -bP -sj -sH -lO -sj -zn +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -23728,27 +21970,27 @@ ah ah ah ah -bg -bo -PL -LL -bU -cp -bf -cL -bq -IF -du -dL -cH -dT -eE -bP -cH -br -jV -RE -br +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -23985,28 +22227,28 @@ ah ah ah ah -bg -bo -bt -bH -bV -cq -bf -bq -bq -db -bP -bP -bP -bP -eH -cF -eW -bq -bq -bq -bq -yX +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -24242,24 +22484,24 @@ ah ah ah ah -bf -bp -bu -bI -bW -aV -bf -so -bq -dc -bP -dM -dW -AB -eI -bq -eX -bq +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -24499,24 +22741,24 @@ ah ah ah ah -bf -bf -bf -rj -bX -aM -bf -op -bq -dd -bP -dN -dX -em -eJ -dV -eY -bq +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -24758,22 +23000,22 @@ ah ah ah ah -bf -bJ -bY -cs -bt -Rf -bq -de -dv -bq -dV -en -dV -dV -eY -bq +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -25015,22 +23257,22 @@ ah ah ah ah -bf -bK -bW -bt -Ur -Al -bq -df -dw -dO -dY -eo -dY -dY -eZ -bq +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -25272,22 +23514,22 @@ ah ah ah ah -bf -rj -WD -aM -bf -bf -bq -bq -bq -bq -bq -bq -bq -bq -bq -bq +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah ah ah ah @@ -25529,11 +23771,11 @@ ah ah ah ah -Kk ah ah ah -Kk +ah +ah ah ah ah @@ -32469,7 +30711,7 @@ ah ah ah ah -ah +nE ah ah ah @@ -32983,11 +31225,11 @@ ah ah ah ah -ah -ah -ah -ah -ah +nN +op +op +op +nd ah ah ah @@ -33240,12 +31482,12 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah +nN +qN +sa +zU +nd +Gp ah ah ah @@ -33497,12 +31739,12 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah +nN +rj +sa +zX +nd +Gv ah ah ah @@ -33754,14 +31996,14 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah +nN +ET +aa +Du +nd +Gw +op +nd ah ah ah @@ -34011,21 +32253,21 @@ ah ah ah ah +nN +ry +vW +Ac +sa +GI +Lg +nd ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +op +WE +op ah ah ah @@ -34268,21 +32510,21 @@ ah ah ah ah +nN +sa +sa +sa +sa +GN +Lu +nd ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +op +sa +op ah ah ah @@ -34525,21 +32767,21 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +nN +sa +sa +Al +Dh +GY +sa +nd +nd +nd +Tv +nd +op +WM +op ah ah ah @@ -34782,21 +33024,21 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +nV +nV +nV +nV +Dn +GY +sa +nd +Ow +Rx +sa +Rx +ry +WO +op ah ah ah @@ -35039,21 +33281,21 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +nV +sj +sj +nV +sa +GY +sa +nd +Pa +sa +sa +sa +sa +sa +op ah ah ah @@ -35296,21 +33538,21 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +nV +so +wj +nV +Du +GY +ET +nd +Pl +sa +TA +TA +sa +Xf +op ah ah ah @@ -35553,21 +33795,21 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +nV +sp +wq +Aw +DB +Hd +LE +MH +El +RE +TA +TA +sa +sa +op ah ah ah @@ -35810,21 +34052,21 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +nV +ss +wN +nV +Ac +Ho +ry +nd +Pp +GI +sa +sa +sa +zX +nd ah ah ah @@ -36067,21 +34309,21 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +nV +st +wX +nV +DR +Hx +zX +nd +Ps +RO +TC +UM +VP +Xl +nd ah ah ah @@ -36324,23 +34566,23 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +nV +nV +nV +nV +Ee +Ho +sa +nd +nd +nd +nd +nd +nd +nd +nd +nd +nd ah ah ah @@ -36581,23 +34823,23 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +nd +su +wZ +nd +sa +HF +LI +nd +Pt +SE +nd +Pt +SE +nd +Pt +SE +nd ah ah ah @@ -36838,23 +35080,23 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +op +sA +xi +AB +Du +Ho +sa +nd +PE +SJ +nd +PE +VX +nd +PE +Zm +nd ah ah ah @@ -37095,23 +35337,23 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +op +sH +xU +AW +El +HM +sa +nd +PL +nd +nd +UP +nd +nd +Yy +nd +nd ah ah ah @@ -37352,23 +35594,23 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +nd +sM +yf +AB +Ac +Ho +sa +ry +PY +SV +ry +PY +Wi +ry +PY +Ac +op ah ah ah @@ -37608,24 +35850,24 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +nd +nd +nd +nd +nd +Es +HO +LL +LL +Qx +LL +LL +Qx +WA +LL +YA +LI +op ah ah ah @@ -37865,24 +36107,24 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +nd +oB +sY +yk +nd +Ez +HF +LI +nd +nd +AB +AB +nd +nd +nd +YB +nd +nd ah ah ah @@ -38122,23 +36364,23 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +nd +oL +oQ +oQ +nd +Du +Ho +zX +nd +QN +QQ +TP +UQ +nd +Xx +YP +nd ah ah ah @@ -38379,23 +36621,23 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +nd +oO +tn +yq +Bd +EB +HW +ET +AB +QQ +QQ +TT +QQ +nd +XU +YW +nd ah ah ah @@ -38636,23 +36878,23 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +nd +oQ +tI +yr +nd +EG +HX +LU +Nj +QW +SX +Uh +US +nd +nd +Zd +nd ah ah ah @@ -38893,23 +37135,23 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +nd +oU +tL +tL +nd +EL +Hx +ry +AB +QQ +QQ +Ur +UW +nd +Ym +Zf +nd ah ah ah @@ -39150,23 +37392,23 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +nd +nd +nd +nd +nd +sa +Ho +sa +nd +QX +QQ +UE +QQ +nd +Yv +Zk +nd ah ah ah @@ -39411,19 +37653,19 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +op +sa +Ho +sa +nd +Rb +Ti +UH +Vo +nd +nd +nd +nd ah ah ah @@ -39668,16 +37910,16 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +op +ET +HY +Mt +nd +op +op +op +op +nd ah ah ah @@ -39925,11 +38167,11 @@ ah ah ah ah -ah -ah -ah -ah -ah +op +op +Iq +op +op ah ah ah @@ -40183,9 +38425,9 @@ ah ah ah ah -ah -ah -ah +op +Iv +op ah ah ah @@ -40440,9 +38682,9 @@ ah ah ah ah -ah -ah -ah +op +Ho +op ah ah ah @@ -40697,9 +38939,9 @@ ah ah ah ah -ah -ah -ah +op +Ho +op ah ah ah @@ -40954,9 +39196,9 @@ ah ah ah ah -ah -ah -ah +op +Ho +op ah ah ah @@ -41211,9 +39453,9 @@ ah ah ah ah -ah -ah -ah +er +IB +er ah ah ah @@ -41468,9 +39710,9 @@ ah ah ah ah -ah -ah -ah +er +IB +er ah ah ah @@ -41716,18 +39958,18 @@ ah ah ah ah +eZ +fB +er ah ah ah ah ah ah -ah -ah -ah -ah -ah -ah +er +IB +er ah ah ah @@ -41973,18 +40215,18 @@ ah ah ah ah +er +fC +er ah ah ah ah ah ah -ah -ah -ah -ah -ah -ah +er +IF +er ah ah ah @@ -42229,20 +40471,20 @@ ah ah ah ah +er +er +fD +er +er ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +Be +er +IK +er +er ah ah ah @@ -42485,22 +40727,22 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +eq +er +fa +fE +gS +er +eq +eq +eq +eq +Bl +je +IM +gS +er +eq ah ah ah @@ -42742,22 +40984,22 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +eq +eH +fb +fC +gW +je +nm +oW +fE +yy +Bl +fG +IB +fC +Nt +eq ah ah ah @@ -42999,22 +41241,22 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +er +eI +fc +fF +hv +jk +jk +pf +uG +jk +Bz +Fd +Jo +MG +Ny +eq ah ah ah @@ -43256,26 +41498,26 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +er +eJ +fd +fG +hz +jo +nq +fG +uJ +fC +BL +Fy +JM +fC +NI +eq +eq +eq +eq +WD ah ah ah @@ -43511,27 +41753,27 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +dW +dW +dW +eK +fe +eK +dW +jr +eq +pi +vb +yD +BL +fC +JU +fC +NK +er +Tk +NK +er ah ah ah @@ -43768,27 +42010,27 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +dW +ei +es +eL +ff +fH +dW +ju +eq +eq +vq +eq +vq +fC +JU +fC +NP +Rf +Tn +NP +VC ah ah ah @@ -44025,27 +42267,27 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +dX +ej +et +eM +fg +fI +dW +jy +eq +pu +vw +yX +je +FB +JU +fC +je +er +To +UJ +er ah ah ah @@ -44282,28 +42524,28 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +dX +ej +eu +eN +fh +fJ +dW +eq +eq +pJ +fC +fC +fC +fC +Kb +hz +NY +eq +eq +eq +eq +WD ah ah ah @@ -44539,24 +42781,24 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +dW +ek +ew +eO +fi +fK +dW +jL +eq +pV +fC +zk +Cd +FF +Kk +eq +Of +eq ah ah ah @@ -44796,24 +43038,24 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +dW +dW +dW +eP +fj +fM +dW +jU +eq +qa +fC +zn +Cf +FQ +KE +Cr +Ol +eq ah ah ah @@ -45055,22 +43297,22 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +dW +eQ +fk +fN +eu +jV +eq +qb +vG +eq +Cr +FU +Cr +Cr +Ol +eq ah ah ah @@ -45312,22 +43554,22 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +dW +eR +fi +eu +hY +kb +eq +qt +vH +zQ +CK +Gn +CK +CK +Ou +eq ah ah ah @@ -45569,22 +43811,22 @@ ah ah ah ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +dW +eP +fm +fM +dW +dW +eq +eq +eq +eq +eq +eq +eq +eq +eq +eq ah ah ah @@ -45826,11 +44068,11 @@ ah ah ah ah +ex ah ah ah -ah -ah +ex ah ah ah diff --git a/_maps/map_files/IceBoxStation/IcemoonUnderground_Below.dmm b/_maps/map_files/Snaxi/IcemoonUnderground_Below.dmm similarity index 99% rename from _maps/map_files/IceBoxStation/IcemoonUnderground_Below.dmm rename to _maps/map_files/Snaxi/IcemoonUnderground_Below.dmm index d4b416cd89..42971e4315 100644 --- a/_maps/map_files/IceBoxStation/IcemoonUnderground_Below.dmm +++ b/_maps/map_files/Snaxi/IcemoonUnderground_Below.dmm @@ -6,29 +6,33 @@ /turf/closed/mineral/random/high_chance/snow, /area/icemoon/underground/unexplored/rivers) "d" = ( -/obj/structure/ladder, -/turf/open/floor/plating/asteroid/snow/icemoon, +/turf/closed/wall, /area/icemoon/underground/explored) "e" = ( /obj/structure/grille, /turf/open/floor/plating/asteroid/snow/icemoon, /area/icemoon/underground/explored) "h" = ( -/turf/closed/wall, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"i" = ( +/obj/item/gps/mining, +/turf/open/floor/plating/asteroid/snow/icemoon, /area/icemoon/underground/explored) "N" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/underground/explored) -"O" = ( -/turf/open/floor/plating/asteroid/snow/icemoon, -/area/icemoon/underground/explored) -"T" = ( /obj/item/flashlight/lantern{ on = 1 }, /turf/open/floor/plating/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"O" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"T" = ( +/obj/structure/ladder, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/underground/explored) (1,1,1) = {" a @@ -19454,11 +19458,11 @@ a a a a -h -e -O -e -h +a +a +a +a +a a a a @@ -19711,11 +19715,11 @@ a a a a -e -O -O -O -e +a +a +a +a +a a a a @@ -19968,11 +19972,11 @@ a a a a -O -O -d -O -O +a +a +a +a +a a a a @@ -20225,11 +20229,11 @@ a a a a -e -T -O -O -e +a +a +a +a +a a a a @@ -20482,11 +20486,11 @@ a a a a -h -N -O -e -h +a +a +a +a +a a a a @@ -39751,11 +39755,11 @@ a a a a -a -a -a -a -a +d +e +h +e +d a a a @@ -40008,11 +40012,11 @@ a a a a -a -a -a -a -a +e +i +h +h +e a a a @@ -40265,11 +40269,11 @@ a a a a -a -a -a -a -a +h +h +T +h +h a a a @@ -40522,11 +40526,11 @@ a a a a -a -a -a -a -a +e +N +h +h +e a a a @@ -40779,11 +40783,11 @@ a a a a -a -a -a -a -a +d +O +h +e +d a a a diff --git a/_maps/map_files/Snaxi/Snaxi.dmm b/_maps/map_files/Snaxi/Snaxi.dmm new file mode 100644 index 0000000000..2c0ee99d77 --- /dev/null +++ b/_maps/map_files/Snaxi/Snaxi.dmm @@ -0,0 +1,110282 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aaw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"aaH" = ( +/obj/machinery/smartfridge/chemistry/preloaded, +/turf/closed/wall, +/area/medical/chemistry) +"aaM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"aaO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aaP" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aaS" = ( +/turf/closed/wall/r_wall, +/area/medical/surgery) +"aba" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/surgery) +"abe" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/wooden_tv, +/obj/structure/barricade/wooden{ + max_integrity = 10; + obj_integrity = 10 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"abk" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"abs" = ( +/obj/structure/table/optable, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"abG" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"abQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"abU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"abX" = ( +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/rack, +/obj/item/stack/sheet/cardboard, +/obj/item/stack/rods/fifty, +/obj/item/electronics/apc, +/obj/item/stock_parts/cell{ + maxcharge = 2000 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"abZ" = ( +/obj/effect/landmark/start/medical_doctor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"ace" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"acj" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"acq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/arrows/red, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"acu" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/chair, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"acv" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/structure/chair/office/dark, +/obj/effect/landmark/start/quartermaster, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"acx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/button/door{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = -1; + pixel_y = -24; + req_access_txt = "31" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"acy" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"acQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"acV" = ( +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"ads" = ( +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/closet/crate/trashcart, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"adt" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/sorting"; + dir = 1; + name = "Delivery Office APC"; + pixel_x = 1; + pixel_y = 24 + }, +/obj/structure/table/reinforced, +/obj/item/destTagger{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/destTagger, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"adu" = ( +/obj/machinery/door/airlock/medical{ + name = "Operating Theatre"; + req_access_txt = "45" + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/freezer, +/area/medical/medbay/central) +"adw" = ( +/obj/machinery/firealarm{ + pixel_y = 29 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"adx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"ady" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"adz" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 30 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"adA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"adT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"adU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"adV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"adW" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"adX" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/airlock/mining/glass{ + name = "Cargo Bay"; + req_access_txt = "31" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"adY" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"adZ" = ( +/obj/structure/table, +/obj/item/clothing/neck/stethoscope, +/obj/item/folder/white, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"aet" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Toxins Launch Hall 3"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"aez" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aeG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"aeH" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/clothing/shoes/magboots, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"afn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/atmospherics_engine) +"afp" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/library) +"afU" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel/dark, +/area/engine/supermatter) +"ahe" = ( +/obj/machinery/door/airlock/external{ + name = "Supply Dock Airlock"; + req_access_txt = "31" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/quartermaster/storage) +"ahn" = ( +/obj/structure/barricade/wooden/snowed{ + max_integrity = 10; + obj_integrity = 10 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"ahC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortType = 13 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"ahU" = ( +/obj/machinery/space_heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/pod/dark, +/area/medical/paramedic) +"aiS" = ( +/obj/structure/closet/secure_closet/CMO, +/obj/machinery/keycard_auth{ + pixel_y = 4; + pixel_x = -24 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"aiU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating, +/area/engine/engineering) +"ajg" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/maintenance/central) +"ajl" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/maintenance/solars/port/fore) +"ajq" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"ajV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/table, +/obj/item/storage/box/masks, +/obj/item/storage/box/gloves{ + pixel_x = 3; + pixel_y = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"akg" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"akB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"akQ" = ( +/obj/machinery/computer/arcade/minesweeper, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"alh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"ali" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/closet/secure_closet/chemical, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"alE" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"alF" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/drinks/britcup{ + desc = "Kingston's personal cup." + }, +/obj/machinery/door/window/eastright{ + dir = 2; + name = "Medbay"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"alG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/main) +"alR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"alS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"alU" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"amy" = ( +/obj/machinery/vending/wallmed{ + pixel_y = -28 + }, +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"amA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"amD" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"amF" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"anh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"ani" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"anm" = ( +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"ann" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"anw" = ( +/obj/machinery/hydroponics/soil, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"anA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"anH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"anI" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"anJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"anK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"anL" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"anO" = ( +/obj/machinery/airalarm{ + pixel_y = 32 + }, +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/rods/fifty, +/turf/open/floor/plasteel, +/area/storage/auxiliary) +"anR" = ( +/obj/structure/cable, +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/engine/supermatter) +"aoj" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/medbay/central) +"aok" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"aol" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"aom" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"aon" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aoo" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + pixel_y = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 5 + }, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"aow" = ( +/obj/machinery/suit_storage_unit/captain, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"aoR" = ( +/obj/structure/closet/secure_closet/medical3, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/item/gun/syringe/dart, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"aoT" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"aoU" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"aoX" = ( +/turf/closed/wall/r_wall, +/area/medical/chemistry) +"apt" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -31 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"apJ" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/server) +"apK" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/pod/dark, +/area/medical/paramedic) +"apN" = ( +/obj/machinery/telecomms/bus/preset_three, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"apO" = ( +/obj/machinery/door/window/eastleft{ + name = "Medical Delivery"; + req_access_txt = "5" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"apP" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall, +/area/medical/medbay/central) +"aqP" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"arl" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"arE" = ( +/obj/structure/table, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"arG" = ( +/turf/open/floor/plating, +/area/medical/medbay/central) +"arH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"arI" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"arK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"arN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"arP" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel, +/area/storage/auxiliary) +"arV" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"asc" = ( +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"ash" = ( +/turf/closed/wall, +/area/medical/medbay/central) +"asn" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/item/storage/fancy/donut_box{ + pixel_y = 10 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"asr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"asE" = ( +/obj/machinery/status_display, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"asF" = ( +/obj/machinery/shieldwallgen, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"asJ" = ( +/obj/machinery/shieldwallgen, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"asO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"asQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/construction/storage) +"atb" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"atp" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"atq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"atr" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"atI" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Telecomms Admin"; + departmentType = 5; + name = "Telecomms RC"; + pixel_x = 30 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"atJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/teleporter) +"atM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + sortType = 14 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"atO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"atU" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/wood, +/area/hallway/primary/port) +"atX" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/obj/machinery/light/floor, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"auc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aue" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"auO" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"auP" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"auR" = ( +/obj/structure/table/wood, +/obj/item/storage/fancy/donut_box, +/obj/item/book/manual/wiki/security_space_law, +/obj/structure/extinguisher_cabinet{ + pixel_y = -31 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"auT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"auV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"auX" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"auY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortType = 12 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"ava" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"avp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"avP" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"avS" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/port"; + name = "Port Hall APC"; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"avT" = ( +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"avU" = ( +/obj/structure/chair/comfy/brown, +/turf/open/floor/wood, +/area/hallway/primary/port) +"avV" = ( +/obj/machinery/vending/snack/random, +/turf/open/floor/wood, +/area/hallway/primary/port) +"avX" = ( +/obj/structure/table, +/turf/open/floor/wood, +/area/hallway/primary/port) +"avY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"awb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"awo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/barricade/wooden/snowed{ + max_integrity = 10; + obj_integrity = 10 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"awB" = ( +/obj/structure/chair/stool, +/obj/machinery/camera{ + c_tag = "Aft Starboard Solar Control"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"awW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"awZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/highsecurity{ + name = "AI Upload Access"; + req_access_txt = "16" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"axc" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular, +/obj/item/paper/pamphlet/gateway, +/obj/item/paper/pamphlet/gateway, +/obj/item/paper/pamphlet/gateway, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"axg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -31 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"axi" = ( +/turf/open/floor/wood, +/area/hallway/primary/port) +"axj" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/wood, +/area/hallway/primary/port) +"axk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"axl" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"axn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/science/robotics/lab) +"axo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"axr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plating, +/area/construction/storage) +"axu" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/storage/belt/utility, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/turf/open/floor/plating, +/area/construction/storage) +"axG" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "Research Division" + }, +/obj/structure/plasticflaps/opaque, +/turf/open/floor/plasteel/dark, +/area/science/lab) +"axL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"axN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 10 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"ayk" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"ayl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"aym" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/loading_area, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"ayo" = ( +/obj/machinery/suit_storage_unit/rd, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/heads/hor) +"ayp" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Research Director's Desk"; + departmentType = 5; + name = "Research Director RC"; + pixel_x = -2; + pixel_y = 30; + receive_ore_updates = 1 + }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/heads/hor) +"ayq" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"ayr" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/white, +/area/science/lab) +"ays" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/table/glass, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/reagent_containers/dropper, +/obj/machinery/power/apc{ + areastring = "/area/science/lab"; + dir = 1; + name = "Research Lab APC"; + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"ayt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/lab) +"ayu" = ( +/obj//obj/item/kirbyplants{ + icon_state = "plant-16" + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"ayy" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"ayA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/conveyor_switch/oneway{ + dir = 8; + id = "robo2" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"ayC" = ( +/obj/machinery/mecha_part_fabricator, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"ayD" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/space_heater, +/obj/machinery/power/apc{ + areastring = "/area/construction/storage"; + dir = 8; + name = "Engineering Medical"; + pixel_x = -24 + }, +/turf/open/floor/plating, +/area/construction/storage) +"ayE" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/terminal, +/turf/open/floor/plasteel, +/area/construction/storage) +"ayG" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/construction/storage) +"ayH" = ( +/obj/structure/table, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = 6 + }, +/turf/open/floor/plating, +/area/construction/storage) +"ayP" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"azc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/maintenance/department/electrical) +"azq" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"azz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/highsecurity{ + name = "Cyborg Charging Station"; + req_access_txt = "19" + }, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/service) +"azA" = ( +/obj/machinery/computer/mecha{ + dir = 4 + }, +/obj/machinery/keycard_auth{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/heads/hor) +"azB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/heads/hor) +"azC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/command/glass{ + name = "Research Director"; + req_access_txt = "30" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/heads/hor) +"azD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"azG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"azH" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "robo2" + }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass{ + amount = 20; + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"aAe" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"aAh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aAw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"aAx" = ( +/obj/machinery/light, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/primary/port) +"aAC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"aAD" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"aAE" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/service) +"aAF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/service) +"aAG" = ( +/obj/structure/table, +/obj/item/paicard{ + pixel_x = 4 + }, +/obj/item/taperecorder{ + pixel_x = -3 + }, +/obj/item/aicard, +/obj/item/circuitboard/aicore{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/heads/hor) +"aAI" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"aAJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"aAK" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aAL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aAO" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aAP" = ( +/obj/machinery/vending/clothing, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aAQ" = ( +/obj/structure/chair, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aAS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side, +/area/hallway/primary/port) +"aAT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/white/side, +/area/hallway/primary/port) +"aAU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side, +/area/hallway/primary/port) +"aAV" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aAY" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white/side, +/area/hallway/primary/port) +"aBw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"aBG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"aBH" = ( +/obj/machinery/vending/wardrobe/science_wardrobe, +/turf/open/floor/plasteel/white, +/area/science/lab) +"aBI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aBK" = ( +/turf/open/floor/plasteel/white, +/area/science/lab) +"aBR" = ( +/obj/structure/table, +/obj/item/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"aCr" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"aCV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/conveyor{ + id = "packageSort2"; + dir = 1 + }, +/obj/machinery/disposal/deliveryChute, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"aCX" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aDa" = ( +/obj/machinery/firealarm{ + pixel_y = 29 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/vending/autodrobe, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aDb" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aDc" = ( +/obj/effect/landmark/start/scientist, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, +/area/science/lab) +"aDd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aDe" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/entry"; + dir = 4; + name = "Entry Hall APC"; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/vending/clothing, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aDf" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, +/area/science/lab) +"aDg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/structure/closet/cabinet, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/pickaxe, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aDh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aDk" = ( +/obj/machinery/space_heater, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/status_display{ + layer = 4; + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aDm" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/structure/closet/cabinet, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/pickaxe, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aDn" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aDo" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aDp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/chair, +/obj/effect/landmark/start/assistant, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aDJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/closet/secure_closet/atmospherics, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/engine/atmos) +"aDL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/maintenance/department/electrical) +"aDM" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/science/xenobiology) +"aDQ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aDX" = ( +/obj/structure/chair/sofa/right{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/obj/effect/landmark/start/depsec/medical, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"aEE" = ( +/obj/machinery/rnd/destructive_analyzer, +/turf/open/floor/circuit, +/area/science/lab) +"aEF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aEG" = ( +/turf/open/floor/circuit, +/area/science/lab) +"aEH" = ( +/obj/machinery/computer/rdconsole/core{ + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/circuit, +/area/science/lab) +"aEI" = ( +/obj/machinery/rnd/production/protolathe/department/science, +/turf/open/floor/circuit, +/area/science/lab) +"aEJ" = ( +/turf/closed/wall/r_wall, +/area/hallway/secondary/entry) +"aEK" = ( +/obj/machinery/rnd/production/circuit_imprinter/department/science, +/obj/item/reagent_containers/glass/beaker/sulphuric, +/turf/open/floor/circuit, +/area/science/lab) +"aEL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/directions/science{ + dir = 1 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"aEO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aFa" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/ladder, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"aFA" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/janitorialcart, +/turf/open/floor/plasteel, +/area/janitor) +"aFI" = ( +/turf/closed/wall/r_wall, +/area/science/lab) +"aFJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aFO" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aFQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aFR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aFT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aFU" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aFY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aFZ" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters{ + id = "Skynet_launch2"; + name = "mech bay" + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"aGl" = ( +/obj/structure/closet/secure_closet/miner, +/obj/item/clothing/shoes/winterboots/ice_boots, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"aGD" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"aHc" = ( +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"aHe" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/secondary/entry) +"aHt" = ( +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/engine/engineering) +"aHu" = ( +/turf/closed/wall/r_wall, +/area/science/server) +"aHA" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/secondary/entry) +"aHD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/secondary/entry) +"aHE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/airlock/research{ + name = "Mech Bay"; + req_access_txt = "29" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"aHG" = ( +/obj/machinery/recharge_station, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/turf/open/floor/circuit, +/area/science/robotics/mechbay) +"aHK" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/clothing/glasses/welding, +/obj/item/clothing/glasses/welding, +/obj/item/multitool{ + pixel_x = 3 + }, +/obj/item/multitool{ + pixel_x = 3 + }, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"aHU" = ( +/obj/machinery/rnd/production/techfab/department/service, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aIf" = ( +/obj/item/target, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aIt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"aIK" = ( +/obj/machinery/computer/aifixer{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"aIN" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"aIP" = ( +/turf/closed/wall, +/area/hallway/secondary/entry) +"aIS" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"aJb" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aJe" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/recharge_station, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/circuit, +/area/science/robotics/mechbay) +"aJt" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/quartermaster/miningdock) +"aJC" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "AI Chamber - Fore"; + network = list("aicore") + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"aJP" = ( +/obj/machinery/vending/assist, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"aJZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"aKa" = ( +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/storage/atmos) +"aKf" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"aKm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/vending/wardrobe/sec_wardrobe, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"aKn" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"aKp" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"aKs" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"aKu" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/science/robotics/mechbay"; + dir = 8; + name = "Mech Bay APC"; + pixel_x = -26 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"aKw" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/circuit, +/area/science/robotics/mechbay) +"aKP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/security/armory) +"aLk" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"aLp" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/storage/box/firingpins{ + pixel_x = -3 + }, +/obj/item/storage/box/firingpins{ + pixel_x = 6 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aLu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aLD" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/chair/sofa/corner{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/medical"; + dir = 8; + name = "Medbay Security APC"; + pixel_x = -25 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"aLE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"aLF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/chair/sofa/left, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"aLG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/computer/secure_data{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"aLL" = ( +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"aLM" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"aLN" = ( +/obj/machinery/button/door{ + id = "Skynet_launch"; + name = "Mech Bay Door Control"; + pixel_x = 6; + pixel_y = -24; + req_access_txt = "29" + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"aLP" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"aLQ" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/storage/box, +/obj/item/storage/box, +/obj/item/storage/box, +/obj/item/hand_labeler{ + pixel_y = 8 + }, +/obj/item/hand_labeler{ + pixel_y = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"aMu" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/chair/comfy/black, +/obj/effect/landmark/start/depsec, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"aMx" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/chair/comfy/black, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"aMF" = ( +/obj/machinery/button/door{ + id = "kanyewest"; + name = "Privacy Shutters"; + pixel_y = 24 + }, +/obj/machinery/computer/med_data, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aMR" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"aNe" = ( +/obj/machinery/camera{ + c_tag = "Brig Genpop South" + }, +/obj/structure/chair/comfy/brown, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"aNg" = ( +/obj/machinery/light, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/maintenance/solars/port/fore) +"aNj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"aNk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/computer/security{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"aNl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"aNm" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"aNo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"aNr" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"aNw" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/firealarm{ + pixel_y = 29 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"aNL" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/structure/fans/tiny, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"aNS" = ( +/obj/machinery/turnstile{ + name = "Genpop Entrance Turnstile"; + req_access_txt = "69"; + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "permacell1"; + name = "genpop blast door" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"aNT" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/airlock_sensor/incinerator_toxmix{ + pixel_y = 24 + }, +/turf/open/floor/engine, +/area/science/mixing) +"aNU" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/engine/engineering) +"aOl" = ( +/obj/structure/closet/secure_closet/security/med, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Security Post - Medbay"; + dir = 1 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"aOm" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"aOo" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"aOp" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/storage/atmos"; + dir = 8; + name = "Atmospherics APC"; + pixel_x = -24 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/storage/atmos) +"aOq" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/storage/atmos) +"aOr" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"aOJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"aOP" = ( +/obj/structure/table/wood, +/obj/item/storage/pill_bottle/dice, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"aPw" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aPA" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint/medical) +"aPB" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"aPC" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/storage/atmos) +"aPD" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/storage/atmos) +"aPE" = ( +/turf/closed/wall/r_wall, +/area/storage/atmos) +"aPY" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/sleeper{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"aPZ" = ( +/obj/machinery/airalarm{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"aQd" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"aQe" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"aQA" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/effect/landmark/start/station_engineer, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aQK" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aQT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aQV" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"aQX" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"aRp" = ( +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmos) +"aRq" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aRt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"aSl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aSE" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aSI" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aSN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"aTc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"aTY" = ( +/obj/machinery/camera{ + c_tag = "Secure Tech Storage" + }, +/turf/open/floor/plating, +/area/storage/tech) +"aUb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"aUd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"aUg" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/obj/structure/light_construct/small, +/obj/structure/barricade/wooden/snowed{ + max_integrity = 10; + obj_integrity = 10 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/maintenance/bar) +"aUC" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aUG" = ( +/obj/structure/closet/firecloset/full{ + anchored = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"aVt" = ( +/obj/structure/closet/emcloset, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/department/electrical"; + dir = 4; + name = "Southern Atmos Post APC"; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"aVv" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"aVC" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortType = 30 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"aWr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/storage) +"aWK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door_timer{ + id = "Cell 1"; + name = "Cell 1"; + pixel_x = -32 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aWM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=HOP2"; + location = "Stbd" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"aXh" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/hallway/secondary/exit/departure_lounge) +"aYe" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"aYf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=QM"; + location = "CHW" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"aZz" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/computer/communications{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Bridge Center"; + dir = 1 + }, +/obj/machinery/keycard_auth{ + pixel_x = 29; + pixel_y = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aZY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"aZZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"baa" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"bbq" = ( +/obj/machinery/door/airlock/engineering{ + name = "Port Bow Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"bcc" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 2"; + name = "Cell 2"; + dir = 1 + }, +/obj/effect/turf_decal/vg_decals/numbers/two, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"bcp" = ( +/turf/open/floor/engine, +/area/science/misc_lab) +"bcq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"bcu" = ( +/obj/effect/turf_decal/vg_decals/atmos/plasma, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"bcR" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 28 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/hallway/primary/port) +"bdd" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"bdm" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"bdM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bei" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/camera{ + c_tag = "Atmospherics North West"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"beo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"beq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"beD" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/virology) +"bff" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"bfg" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"bfk" = ( +/obj/structure/plasticflaps, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor2"; + name = "supply dock loading door" + }, +/obj/machinery/conveyor{ + id = "QMLoad2"; + dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bfB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bfT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bhe" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bhC" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Lab - Pen #2"; + dir = 8; + network = list("ss13","rd","xeno") + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bii" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"bjU" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"bkz" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + desc = "Used to grind things up into raw materials and liquids."; + pixel_y = 5 + }, +/obj/item/stack/sheet/mineral/plasma{ + pixel_y = 4 + }, +/obj/item/clothing/glasses/science, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bkQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"blg" = ( +/obj/docking_port/stationary{ + dir = 2; + dwidth = 5; + height = 7; + id = "supply_home"; + name = "Cargo Bay"; + width = 12 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bly" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"blD" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"blI" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/ambrosia, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"blR" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bmA" = ( +/turf/closed/wall, +/area/hallway/secondary/exit/departure_lounge) +"bmP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bmS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bmW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bmX" = ( +/obj/effect/landmark/loneopspawn, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"bna" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Mining Dock Airlock"; + req_access_txt = "48"; + shuttledocked = 1 + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"bnE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bnU" = ( +/turf/closed/wall/r_wall, +/area/engine/engineering) +"bok" = ( +/turf/closed/wall/r_wall, +/area/hallway/secondary/exit/departure_lounge) +"bom" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bow" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) +"bpB" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"bpD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/item/radio/intercom{ + pixel_x = -25 + }, +/turf/open/floor/plasteel/cult, +/area/lawoffice) +"bpI" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bpM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/cult, +/area/lawoffice) +"bpO" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restroom" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/fitness/recreation) +"bpT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bqx" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bqN" = ( +/turf/closed/indestructible/rock/snow/ice, +/area/icemoon/surface/outdoors) +"bqO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/cult, +/area/lawoffice) +"bqW" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bqX" = ( +/obj/machinery/airalarm{ + pixel_y = 26 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/fitness/recreation) +"bra" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/carpet, +/area/quartermaster/miningoffice) +"bri" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"brq" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"brE" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/door/window/southleft{ + name = "Court Cell"; + req_access_txt = "2"; + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"brJ" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"brX" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock{ + name = "Law Office"; + req_access_txt = "38" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/lawoffice) +"bsk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"bsm" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/security/courtroom) +"bsn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"bsq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/fitness/recreation) +"bsx" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/fitness/recreation) +"bsL" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/carpet, +/area/quartermaster/miningoffice) +"bsU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bsX" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + on = 0; + pixel_x = -3; + pixel_y = 8 + }, +/obj/item/camera, +/obj/item/taperecorder, +/turf/open/floor/wood, +/area/library) +"btf" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/lawoffice"; + dir = 8; + name = "Law Office APC"; + pixel_x = -25; + pixel_y = 1 + }, +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/cult, +/area/lawoffice) +"btu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/security/courtroom) +"btI" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/closet/crate/coffin, +/turf/open/floor/wood, +/area/chapel/office) +"btZ" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/structure/fans/tiny, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"bum" = ( +/turf/open/openspace/icemoon, +/area/icemoon/surface/outdoors) +"buF" = ( +/obj/machinery/light, +/obj/structure/window/plasma/reinforced{ + dir = 4 + }, +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/machinery/cell_charger, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/pipe_dispenser, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"buI" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/grille, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"buJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"buO" = ( +/obj/machinery/quantumpad{ + map_pad_id = "3"; + map_pad_link_id = "4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"buX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/security/courtroom) +"buZ" = ( +/turf/open/floor/wood, +/area/security/courtroom) +"bvl" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "lawyer_blast"; + name = "privacy door" + }, +/turf/open/floor/plating, +/area/lawoffice) +"bvo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bvq" = ( +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bvw" = ( +/turf/open/floor/plating, +/area/quartermaster/miningoffice) +"bvW" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/door_timer{ + id = "Cell 2"; + name = "Cell 2"; + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"bwa" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/arrows/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"bwb" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/turnstile{ + name = "Genpop Entrance Turnstile"; + req_access_txt = "69"; + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"bwh" = ( +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"bwm" = ( +/obj/structure/table, +/obj/item/storage/firstaid/toxin, +/obj/item/storage/firstaid/toxin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bwr" = ( +/obj/machinery/camera{ + c_tag = "Toxins Launch hall 1"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"bwt" = ( +/turf/closed/wall/r_wall, +/area/security/courtroom) +"bwu" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Southern Hall 1"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bwx" = ( +/turf/closed/wall, +/area/lawoffice) +"bwG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bwL" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/miningoffice"; + dir = 8; + name = "Mining APC"; + pixel_x = -26 + }, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bwZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L9" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bxa" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L7" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bxb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L13" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bxc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L11" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bxf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"bxh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4; + pixel_y = 5 + }, +/obj/machinery/camera{ + c_tag = "AI Chamber - Starboard"; + dir = 8; + network = list("aicore") + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"bxk" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"bxG" = ( +/obj/machinery/firealarm{ + pixel_y = 29 + }, +/obj/effect/turf_decal/arrows/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bxK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"bxL" = ( +/turf/closed/indestructible/rock/glacierrock/blue, +/area/icemoon/surface/outdoors) +"bxM" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/lab) +"bxN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/crew_quarters/fitness/recreation) +"bxR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/arrows/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bxU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"bxX" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"byu" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/medical/virology) +"byL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"byO" = ( +/obj/structure/fence, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"byP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "permacell2"; + name = "garden blast door" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/plating, +/area/security/prison) +"byR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/flasher{ + id = "PCell 1"; + pixel_y = -25 + }, +/obj/effect/turf_decal/arrows/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"byT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"byU" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"byW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/arrows/red{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/hallway/primary/central) +"byY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L10" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"byZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bzb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L12" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bzc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bzd" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bze" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bzh" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bzi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Mining Dock"; + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Mining"; + pixel_x = -30 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bzj" = ( +/obj/structure/chair, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bzk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"bzl" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bzn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bzq" = ( +/turf/closed/wall, +/area/quartermaster/miningoffice) +"bzs" = ( +/turf/closed/wall, +/area/maintenance/aft) +"bzS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bzU" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bzV" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bzW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bAg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"bAh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"bAj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L1" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bAk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bAp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bAr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bAs" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bAt" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bAL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"bAM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/security/glass{ + id_tag = "innerbrig"; + name = "Brig Infirmary"; + req_access_txt = "2" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"bAN" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bAO" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/security/warden"; + dir = 8; + name = "Brig Control APC"; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bAP" = ( +/obj/structure/musician/piano{ + icon_state = "piano" + }, +/obj/machinery/camera{ + c_tag = "Bar South"; + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"bBd" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plating, +/area/science/misc_lab) +"bBh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bBk" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/vending/sustenance, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bBl" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Gen-Pop Access"; + req_access_txt = "2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bBp" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Brig Control"; + name = "brig shutters" + }, +/turf/open/floor/plating, +/area/security/warden) +"bBq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Brig Control"; + name = "brig shutters" + }, +/turf/open/floor/plating, +/area/security/warden) +"bBr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Brig Control"; + name = "brig shutters" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/security/warden) +"bBs" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Brig Control"; + name = "brig shutters" + }, +/turf/open/floor/plating, +/area/security/warden) +"bBt" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortType = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bBy" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/hallway/primary/central) +"bBz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Security Lobby" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/hallway/primary/central) +"bBA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/hallway/primary/central) +"bBB" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBH" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/grille, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"bBJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bBL" = ( +/turf/closed/wall, +/area/crew_quarters/fitness/recreation) +"bBN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bBP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bBQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"bCt" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bCv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Brig Control"; + name = "brig shutters" + }, +/turf/open/floor/plating, +/area/security/warden) +"bCz" = ( +/obj/structure/chair, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/wood, +/area/hallway/primary/central) +"bCA" = ( +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmos) +"bCC" = ( +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmos) +"bCD" = ( +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bCG" = ( +/obj/effect/turf_decal/tile/brown, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bCJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/stock_parts/cell/high, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"bCL" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bCM" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bCO" = ( +/turf/closed/wall, +/area/quartermaster/miningdock) +"bCQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bCT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/sorting/mail{ + sortType = 24 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"bCW" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio3"; + name = "Containment Blast Doors"; + pixel_y = 4; + req_access_txt = "55" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bCY" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bDe" = ( +/obj/machinery/door/poddoor/shutters{ + id = "Skynet_launch"; + name = "mech bay" + }, +/obj/structure/fans/tiny, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"bDf" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bDg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering"; + req_access_txt = "10" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bDo" = ( +/obj/machinery/jukebox{ + req_one_access = null + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"bDr" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/main) +"bDv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bDA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bDB" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"bDE" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"bDI" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bDR" = ( +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/fitness/recreation) +"bDT" = ( +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bDU" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bDW" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/misc_lab) +"bEa" = ( +/turf/closed/wall/r_wall, +/area/science/misc_lab) +"bEb" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bEe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/fitness/recreation) +"bEi" = ( +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bEl" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/vending/wardrobe/science_wardrobe, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"bEJ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"bES" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"bEX" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/item/toy/plush/nukeplushie, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bEZ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/item/toy/plush/lizardplushie, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bFb" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/item/toy/plush/carpplushie{ + color = "red"; + name = "Nanotrasen wildlife department space carp plushie" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bFc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bFd" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/structure/closet/secure_closet/warden, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/clothing/suit/hooded/wintercoat/security, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bFf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bFj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/item/radio/intercom{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bFk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bFl" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bFn" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bFq" = ( +/obj/machinery/computer/crew, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bFs" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/closet/secure_closet/security/sec, +/obj/item/clothing/suit/hooded/wintercoat/security, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bFw" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/closet/l3closet/scientist{ + pixel_x = -2 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"bFx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bFA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"bFD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/pen/red, +/turf/open/floor/plasteel/cult, +/area/lawoffice) +"bFK" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/tank_dispenser, +/obj/machinery/power/apc{ + areastring = "/area/science/misc_lab"; + dir = 8; + name = "Testing Lab APC"; + pixel_x = -29 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"bFL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bFO" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bFT" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/airlock/mining{ + name = "Mining Office"; + req_access_txt = "48" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bGo" = ( +/obj/structure/fence/corner{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"bGq" = ( +/obj/structure/fence/cut/large{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"bGt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light/floor, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bGu" = ( +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bGv" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/item/toy/plush/beeplushie, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"bGy" = ( +/turf/open/floor/plasteel/white, +/area/security/brig) +"bGB" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bGD" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/computer/secure_data{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bGE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bGN" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bGO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/computer/prisoner/management{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bGR" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/sorting/mail/flip{ + sortType = 28 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"bGT" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bGV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bGW" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bHc" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"bHh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"bHj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "hos" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"bHk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "hos" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"bHl" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/poddoor/preopen{ + id = "hos" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"bHt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"bHD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"bHE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"bHR" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/hos"; + dir = 8; + name = "Head of Security's Office APC"; + pixel_x = -24 + }, +/obj/machinery/computer/card/minor/hos{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"bHS" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/window/brigdoor{ + dir = 4; + name = "HoS Office"; + req_access_txt = "58" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"bHX" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/vending/security, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bIc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"bIf" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio2"; + name = "Containment Blast Doors"; + pixel_y = 4; + req_access_txt = "55" + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bIj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"bIm" = ( +/obj/effect/landmark/start/shaft_miner, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"bIn" = ( +/obj/structure/closet/crate/science, +/obj/item/clothing/suit/hooded/wintercoat/science, +/obj/item/clothing/suit/hooded/wintercoat/science, +/obj/item/clothing/suit/hooded/wintercoat/science, +/obj/item/clothing/suit/hooded/wintercoat/science, +/obj/item/clothing/suit/hooded/wintercoat/science, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"bIq" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_x = -30 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bIK" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/window/southleft{ + name = "Test Chamber"; + req_access_txt = "55"; + dir = 8 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bIL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/door/window/southleft{ + name = "Test Chamber"; + req_access_txt = "55"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bJf" = ( +/obj/structure/cable, +/obj/structure/grille, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"bJl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"bJn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"bJp" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bJq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Brig Control"; + name = "brig shutters" + }, +/turf/open/floor/plating, +/area/security/warden) +"bJs" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_y = -26 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bJt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bJu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"bJw" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bJy" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/door/window/brigdoor{ + name = "Reception Desk"; + req_access_txt = "63"; + dir = 1 + }, +/obj/machinery/door/window/brigdoor{ + dir = 8; + name = "Reception Desk"; + req_access_txt = "63" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bJz" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hos" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"bJC" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/science/mixing) +"bJF" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bJG" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/cult, +/area/lawoffice) +"bJQ" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Arrivals Airlock" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"bKl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"bKo" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Courtroom" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/wood, +/area/security/courtroom) +"bKs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"bKw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "hos" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"bKI" = ( +/turf/closed/wall/r_wall, +/area/engine/atmos) +"bKL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bKO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bKR" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bLc" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Engineering East" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bLv" = ( +/obj/machinery/power/tracker, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/icemoon/surface/outdoors) +"bLI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen/fountain, +/obj/item/stamp/hos, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"bLO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kanyewest"; + name = "privacy shutters" + }, +/turf/open/floor/plating, +/area/security/detectives_office) +"bLQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/vault, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"bLS" = ( +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"bLT" = ( +/turf/closed/wall/r_wall, +/area/quartermaster/miningdock) +"bLW" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/camera{ + c_tag = "Medbay Morgue"; + dir = 8; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bLX" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/cult, +/area/lawoffice) +"bMj" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"bMs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bMN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/landmark/start/detective, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bMP" = ( +/obj/machinery/door/airlock/security{ + name = "Detective's Office"; + req_access_txt = "4" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bMT" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bMZ" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/obj/machinery/door/window/southleft{ + name = "Test Chamber"; + req_access_txt = "55" + }, +/obj/machinery/door/window/southleft{ + dir = 1; + name = "Test Chamber"; + req_access_txt = "55" + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"bNb" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8; + pixel_x = 4 + }, +/turf/open/floor/wood, +/area/hallway/primary/port) +"bNf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bNk" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bNn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Southern Hall 2"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bNF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bNN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"bNR" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/closet{ + name = "Evidence Closet" + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bNS" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bNT" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/computer/secure_data{ + dir = 1 + }, +/obj/machinery/power/apc{ + areastring = "/area/security/detectives_office"; + name = "Detective's Office APC"; + pixel_y = -26 + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bNV" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/security/detectives_office) +"bOb" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bOc" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"bOp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bOT" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/table/wood, +/obj/machinery/recharger{ + pixel_y = 4; + pixel_x = -7 + }, +/obj/item/book/manual/wiki/security_space_law{ + pixel_x = 6; + pixel_y = 2 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"bOX" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/security/glass{ + name = "Evidence Storage"; + req_access_txt = "4" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bPa" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1; + sortType = 17 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bPc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bPd" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bPf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortType = 16 + }, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"bPh" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/photocopier, +/obj/machinery/power/apc{ + areastring = "/area/library"; + dir = 4; + name = "Library APC"; + pixel_x = 24 + }, +/turf/open/floor/wood, +/area/library) +"bPk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"bPm" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"bPn" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/aft) +"bPq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bPW" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"bQf" = ( +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bQg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"bQj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/central"; + dir = 1; + name = "Security Maint APC"; + pixel_y = 24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"bQk" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"bQm" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"bQn" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"bQs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bQt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"bQx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/maintenance{ + name = "Library Maintenance"; + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/library) +"bQC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/machinery/door/airlock/research{ + name = "Toxins Storage"; + req_access_txt = "8" + }, +/turf/open/floor/plating, +/area/science/storage) +"bQP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"bRy" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"bRD" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bRH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/library) +"bRL" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/science/storage) +"bRN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio3"; + name = "containment blast door" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bRQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/door/window/northleft{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Containment Pen"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bSd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/chapel/main) +"bSu" = ( +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bSC" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 1; + height = 4; + name = "escape pod loader"; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bSF" = ( +/obj/machinery/airalarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"bSO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + sortType = 3 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bSS" = ( +/turf/closed/wall, +/area/maintenance/aft/secondary) +"bSX" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bTw" = ( +/obj/structure/bodycontainer/morgue, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"bTC" = ( +/obj/structure/grille, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"bTE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"bTH" = ( +/turf/open/floor/plasteel/cafeteria, +/area/chapel/office) +"bTM" = ( +/obj/machinery/door/poddoor/shutters/window{ + id = "armory2" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"bTR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"bTU" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/wood, +/area/library) +"bTV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/library) +"bUm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/chapel/office) +"bUB" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"bUD" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"bUH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/central) +"bUJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/table/wood, +/obj/item/storage/book/bible, +/turf/open/floor/carpet, +/area/chapel/main) +"bUL" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bUP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay/zone2) +"bVa" = ( +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"bVu" = ( +/obj/machinery/airalarm{ + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bVv" = ( +/obj/item/clothing/glasses/hud/health, +/obj/structure/closet/secure_closet/medical3, +/obj/machinery/camera{ + c_tag = "Northeast Paramedic Post"; + dir = 8; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) +"bVI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"bVM" = ( +/obj/structure/grille, +/obj/structure/cable, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"bVQ" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bVR" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/wood, +/area/chapel/main) +"bVS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/chapel/main) +"bVT" = ( +/obj/item/cultivator, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bVW" = ( +/turf/open/floor/carpet, +/area/security/detectives_office) +"bVX" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bVZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/library) +"bWd" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/structure/sign/warning/nosmoking{ + pixel_x = -32 + }, +/obj/machinery/camera{ + c_tag = "Toxins Storage"; + dir = 4; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel, +/area/science/storage) +"bWe" = ( +/turf/open/floor/engine/airless, +/area/science/mixing) +"bWf" = ( +/turf/closed/wall/r_wall, +/area/maintenance/aft/secondary) +"bWj" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio3"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bWM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/closet{ + name = "Evidence Closet" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"bWN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Chapel"; + departmentType = 2; + pixel_y = 30 + }, +/obj/machinery/camera{ + c_tag = "Chapel Office" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bWO" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/chapel/office"; + dir = 1; + name = "Chapel Office APC"; + pixel_y = 24 + }, +/turf/open/floor/carpet, +/area/chapel/office) +"bWQ" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bWR" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Security's Desk"; + departmentType = 5; + name = "Head of Security RC"; + pixel_x = 30 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"bXO" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth (Chaplain)"; + req_access_txt = "22" + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"bXU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"bXV" = ( +/obj/machinery/door/morgue{ + name = "Private Study"; + req_access_txt = "37" + }, +/turf/open/floor/plating, +/area/library) +"bXW" = ( +/turf/open/floor/plasteel, +/area/science/storage) +"bYL" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/chair, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bYU" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/gun/energy/e_gun/dragnet{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/gun/energy/e_gun/dragnet, +/obj/item/gun/energy/e_gun/dragnet{ + pixel_x = -2; + pixel_y = 2 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"bYY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"bYZ" = ( +/turf/open/floor/engine/airless, +/area/engine/atmos) +"bZa" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmospherics_engine) +"bZt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"bZx" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/chapel/office) +"bZF" = ( +/turf/closed/wall, +/area/chapel/main) +"bZI" = ( +/turf/open/floor/carpet/orange, +/area/engine/secure_construction) +"bZU" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cav" = ( +/obj/docking_port/stationary/random{ + dir = 8; + id = "pod_lavaland2"; + name = "lavaland" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"caA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/chapel/office) +"caJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"caS" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"cbt" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/closet/crate/coffin, +/turf/open/floor/wood, +/area/chapel/office) +"cbz" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/camera{ + c_tag = "Brig Evidence Storage" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"cbL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"cbO" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cbQ" = ( +/turf/open/floor/engine, +/area/science/xenobiology) +"cci" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/obj/structure/chair/sofa/corner{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"ccl" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/shutters{ + id = "capshut" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/captain) +"ccD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"ccF" = ( +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmos) +"ccG" = ( +/turf/open/floor/engine/air, +/area/engine/atmos) +"ccI" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"ccN" = ( +/obj/machinery/atmospherics/components/unary/relief_valve/atmos/atmos_waste{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmos) +"cdj" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/xenobiology) +"cdk" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_x = -6; + pixel_y = 3 + }, +/obj/machinery/recharger{ + pixel_x = 6; + pixel_y = 3 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"cdt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/carpet, +/area/chapel/office) +"cdD" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "heads_meeting"; + name = "privacy shutters" + }, +/turf/open/floor/plating, +/area/bridge/meeting_room) +"cdE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"cep" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"cer" = ( +/turf/closed/wall/r_wall, +/area/chapel/office) +"ces" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/light, +/obj/item/radio/intercom{ + pixel_y = -26 + }, +/obj/structure/chair/comfy/brown{ + color = "#596479"; + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"cew" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/chapel/office) +"cex" = ( +/obj/machinery/nuclearbomb/selfdestruct, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"cey" = ( +/obj/machinery/computer/bank_machine, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"ceA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ceZ" = ( +/mob/living/simple_animal/bot/medbot, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) +"cfh" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/obj/item/pen/fountain/captain, +/obj/item/storage/box/matches, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"cfn" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"cfp" = ( +/turf/closed/wall, +/area/maintenance/disposal) +"cfs" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cfB" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/plasteel/dark, +/area/bridge) +"cfN" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cgp" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/landmark/start/warden, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"cgH" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"cgY" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cgZ" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cha" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/mix_output, +/turf/open/floor/engine/airless, +/area/engine/atmos) +"chb" = ( +/turf/closed/wall/r_wall, +/area/bridge/meeting_room) +"chc" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"chd" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chk" = ( +/obj/machinery/camera{ + c_tag = "Telecomms - Control Room"; + dir = 1; + network = list("ss13","tcomms") + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"chp" = ( +/turf/open/floor/plating, +/area/maintenance/aft) +"chN" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"chZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"cio" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters{ + id = "capshut" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/captain) +"civ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + req_access_txt = "19" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"ciG" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/mix_input, +/turf/open/floor/engine/airless, +/area/engine/atmos) +"ciO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/light, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"cjA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"cjE" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/radio/intercom{ + pixel_y = 20 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cjH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cjN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"cjP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cjS" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plasteel/dark, +/area/bridge) +"cjX" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"cjY" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/door/poddoor/shutters{ + id = "capshut" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/captain) +"ckb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"ckm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output, +/turf/open/floor/engine/air, +/area/engine/atmos) +"ckT" = ( +/obj/structure/cable, +/obj/structure/chair/comfy/brown{ + color = "#596479"; + dir = 1 + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/captain"; + name = "Captain's Office APC"; + pixel_y = -26 + }, +/mob/living/simple_animal/pet/fox/Renault, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"ckV" = ( +/obj/machinery/computer/cargo{ + dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"ckW" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"ckX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/bridge) +"ckY" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"clc" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/item/radio/intercom{ + pixel_x = 25 + }, +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/dark, +/area/bridge) +"clf" = ( +/obj/structure/table/wood, +/obj/item/lipstick/random{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/lipstick/random{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/toy/dummy, +/obj/item/reagent_containers/food/snacks/baguette, +/obj/item/radio/intercom{ + pixel_x = -25 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"clq" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cly" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"clB" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/hor) +"clR" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/captain) +"clV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plating, +/area/bridge) +"cmk" = ( +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"cmC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cmK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cmU" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"cmV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj//obj/item/kirbyplants{ + icon_state = "plant-10" + }, +/turf/open/floor/carpet, +/area/bridge) +"cng" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"cni" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cnI" = ( +/obj/docking_port/stationary{ + dheight = 1; + dir = 8; + dwidth = 12; + height = 17; + id = "syndicate_ne"; + name = "northeast of station"; + width = 23 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) +"coa" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/central"; + dir = 4; + name = "Central Primary Hall APC"; + pixel_x = 25; + pixel_y = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"con" = ( +/obj/structure/window/reinforced, +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cpe" = ( +/turf/closed/wall, +/area/ai_monitored/turret_protected/ai) +"cph" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Bridge Southeast" + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Bridge"; + departmentType = 5; + name = "Bridge RC"; + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"cpC" = ( +/obj/machinery/quantumpad{ + map_pad_id = "2"; + map_pad_link_id = "1" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"cqa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"cqd" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cqo" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/plasteel/dark, +/area/bridge) +"cqp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/modular_computer/console/preset/command{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/dark, +/area/bridge) +"cqq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/holopad, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"cqr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"cqt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"cqC" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"cqG" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + sortType = 8 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"cqM" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"crg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"cry" = ( +/obj/machinery/computer/robotics{ + dir = 4 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/heads/hor) +"crz" = ( +/obj/structure/table, +/obj/item/stamp/rd{ + pixel_x = 3; + pixel_y = -2 + }, +/obj/item/pen/fountain, +/obj/item/folder/white, +/obj/item/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/hor"; + dir = 1; + name = "RD Office APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/heads/hor) +"cuO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cuY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/fans/tiny, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"cvH" = ( +/obj/machinery/computer/arcade, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/fitness/recreation) +"cwm" = ( +/obj/machinery/vending/boozeomat, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"cwo" = ( +/obj/machinery/space_heater, +/obj/machinery/camera{ + c_tag = "Arrivals Airlock" + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"cwH" = ( +/obj/machinery/autolathe, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"cwT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"cwW" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cxX" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/medical{ + name = "Patient Room"; + req_access_txt = "5" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cya" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/construction/storage) +"cyb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/highsecurity{ + name = "AI Chamber"; + req_access_txt = "16" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AI Chamber entrance shutters"; + name = "AI Chamber entrance shutters" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"cyu" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/barricade/wooden/crude/snow{ + max_integrity = 15; + obj_integrity = 15 + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"cyH" = ( +/obj/structure/closet/wardrobe/engineering_yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cyI" = ( +/obj/machinery/seed_extractor, +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"cyM" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"czu" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/chair, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"czA" = ( +/obj/structure/sign/directions/engineering{ + pixel_x = 32; + pixel_y = -40 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"czF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Medbay West"; + network = list("ss13","medbay"); + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"czN" = ( +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/dark, +/area/bridge) +"czY" = ( +/turf/closed/wall/r_wall, +/area/maintenance/aft) +"cAa" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/science/misc_lab) +"cAe" = ( +/turf/open/floor/plasteel, +/area/maintenance/aft) +"cAo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cAq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/machinery/door/airlock/command/glass{ + name = "EVA Storage"; + req_access_txt = "18" + }, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"cAL" = ( +/obj/machinery/airalarm{ + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/rnd/production/techfab/department/security, +/turf/open/floor/plasteel/dark, +/area/security/main) +"cBt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/xenobiology) +"cBv" = ( +/obj/structure/fence, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"cBy" = ( +/turf/open/floor/plasteel/dark, +/area/security/main) +"cBD" = ( +/turf/closed/wall/r_wall, +/area/security/main) +"cBF" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cBI" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/chapel/main) +"cBJ" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input, +/obj/machinery/air_sensor/atmos/air_tank{ + pixel_x = 25 + }, +/turf/open/floor/engine/air, +/area/engine/atmos) +"cCb" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/plasteel/dark, +/area/engine/atmospherics_engine) +"cCd" = ( +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"cCg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/machinery/door/window/northright{ + name = "Engineering Delivery"; + req_access_txt = "10" + }, +/obj/machinery/door/window/northright{ + name = "Engineering Delivery"; + req_access_txt = "10"; + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"cCp" = ( +/obj/structure/table, +/obj/item/integrated_electronics/wirer, +/obj/item/integrated_electronics/debugger, +/obj/item/integrated_electronics/analyzer, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"cCA" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -31 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cCH" = ( +/turf/closed/wall/r_wall, +/area/library) +"cCT" = ( +/obj/structure/table/wood, +/obj/item/storage/lockbox/medal, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Captain's Desk"; + departmentType = 5; + name = "Captain RC"; + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"cDm" = ( +/turf/open/floor/plasteel/dark, +/area/bridge) +"cDL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"cDN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"cDO" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cDS" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"cEb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"cEq" = ( +/obj/structure/reflector/single, +/turf/open/floor/plating, +/area/engine/storage) +"cFm" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -30 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"cFO" = ( +/obj/machinery/light/small, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"cFP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cGu" = ( +/obj/structure/closet/secure_closet/medical2, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"cGz" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/construction/storage) +"cGF" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/table, +/obj/item/storage/firstaid/regular, +/obj/item/storage/belt/utility, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cGQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cGZ" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology South"; + dir = 4; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cHu" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"cIg" = ( +/obj/machinery/modular_computer/console/preset/research{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"cIh" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"cIP" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmos) +"cJc" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/tower, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"cJp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) +"cJH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"cJL" = ( +/turf/open/floor/plasteel, +/area/storage/primary) +"cKk" = ( +/turf/closed/wall, +/area/crew_quarters/bar) +"cKD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet/orange, +/area/engine/secure_construction) +"cKK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/storage/atmos) +"cKQ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cLq" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Dormitory" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cLC" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/autolathe/secure{ + name = "public autolathe" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cLO" = ( +/turf/open/floor/engine, +/area/engine/engineering) +"cLX" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Bridge Northwest"; + dir = 1 + }, +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"cMc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cNm" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"cNE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/closet/radiation, +/turf/open/floor/engine, +/area/engine/engineering) +"cNI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) +"cOl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"cOn" = ( +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse2"; + name = "warehouse shutters" + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"cOq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"cOR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"cPn" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"cPI" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"cQa" = ( +/obj/machinery/quantumpad{ + map_pad_id = "6"; + map_pad_link_id = "5" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"cQp" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cQr" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/northleft{ + name = "Telecomms Access"; + req_access_txt = "61" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"cQu" = ( +/obj/structure/table, +/obj/item/clothing/head/welding{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/clothing/head/welding{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/multitool, +/obj/item/clothing/glasses/welding, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cQv" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/starboard) +"cRa" = ( +/obj/structure/reagent_dispensers/watertank/high, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 28 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/janitor) +"cRJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"cRX" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/medical/virology"; + dir = 8; + name = "Virology APC"; + pixel_x = -24; + pixel_y = -6 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cSd" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/storage/tech) +"cSg" = ( +/obj/machinery/computer/camera_advanced/xenobio{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cSi" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"cSv" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cSC" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"cSG" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cSQ" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/science/xenobiology) +"cSY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/window/plasma/reinforced{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmospherics_engine) +"cTh" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 28 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cTp" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"cTD" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/courtroom) +"cTE" = ( +/obj/structure/closet/l3closet/scientist, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"cTG" = ( +/obj/structure/filingcabinet/employment, +/turf/open/floor/plasteel/cult, +/area/lawoffice) +"cTL" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/miningoffice) +"cTO" = ( +/turf/closed/wall/r_wall, +/area/quartermaster/miningoffice) +"cUd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"cUm" = ( +/obj/machinery/door/airlock/engineering{ + name = "Starboard Quarter Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"cUC" = ( +/obj/structure/chair, +/obj/effect/landmark/start/geneticist, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"cUN" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cUP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/disposal) +"cUS" = ( +/obj/structure/closet/emcloset, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"cUV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/maintenance/starboard) +"cVu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cVG" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/storage/primary) +"cVL" = ( +/obj/machinery/light, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/maintenance/solars/starboard/fore) +"cWG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table, +/obj/item/clipboard, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen/red, +/obj/item/stamp{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/stamp/denied{ + pixel_x = 4; + pixel_y = -2 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cWO" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"cXi" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/junction/flip, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"cXr" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj//obj/item/kirbyplants{ + icon_state = "plant-10" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"cXI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"cXO" = ( +/obj/structure/cable, +/obj/effect/landmark/start/ai/secondary, +/obj/machinery/door/window{ + base_state = "rightsecure"; + dir = 1; + icon_state = "rightsecure"; + layer = 4.1; + name = "Secondary AI Core Access"; + obj_integrity = 300; + pixel_y = 4; + req_access_txt = "16" + }, +/obj/item/radio/intercom{ + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = -25; + pixel_y = -10 + }, +/obj/item/radio/intercom{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = -25; + pixel_y = 5 + }, +/obj/item/radio/intercom{ + freerange = 1; + name = "Common Channel"; + pixel_x = -25 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"cYb" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/heads/hor) +"cYj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock{ + name = "Kitchen cold room"; + req_access_txt = "28" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"cYq" = ( +/obj/machinery/suit_storage_unit/atmos, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cYw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Supermatter East"; + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"cYK" = ( +/obj/structure/barricade/wooden/snowed{ + max_integrity = 10; + obj_integrity = 10 + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"cYU" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"cZk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cZq" = ( +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'BOMB RANGE"; + name = "BOMB RANGE" + }, +/turf/closed/wall, +/area/icemoon/surface/outdoors) +"cZr" = ( +/obj/structure/bed, +/obj/item/bedsheet/captain, +/obj/effect/landmark/start/captain, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"cZI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"cZN" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"cZO" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"daj" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/emergency, +/obj/item/wrench, +/obj/item/assembly/timer, +/obj/item/assembly/signaler, +/turf/open/floor/plasteel/dark, +/area/bridge) +"daP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"daX" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"dbb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"dbc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) +"dbl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"dbB" = ( +/obj/structure/table/optable, +/obj/machinery/camera{ + c_tag = "Brig Infirmary"; + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/security/brig) +"dbN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"dbR" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "MiniSat External West"; + dir = 8; + network = list("minisat"); + start_active = 1 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"dcg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/mirror{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/shower{ + pixel_y = 20; + pixel_x = 11 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"ddh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"ddi" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"dfa" = ( +/obj/structure/table/glass, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/glasses/welding, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"dfd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"dfx" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/solar{ + id = "portsolar"; + name = "Port Solar Array" + }, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/icemoon/surface/outdoors) +"dfy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"dfV" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"dgI" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plasteel, +/area/science/storage) +"dhX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"dij" = ( +/obj//obj/item/kirbyplants{ + icon_state = "plant-10" + }, +/turf/open/floor/carpet, +/area/bridge) +"diD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/storage) +"diH" = ( +/turf/closed/wall, +/area/chapel/office) +"djL" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Genetics Maintenance"; + req_access_txt = "5; 9; 68" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/genetics) +"dks" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"dkB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"dkD" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"dkQ" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/camera{ + c_tag = "Engineering South"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"dlJ" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas, +/obj/item/tank/internals/oxygen, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"dlZ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/obj/structure/closet/secure_closet/brig{ + id = "Cell 3"; + name = "Cell 3 Locker" + }, +/obj/item/radio/headset{ + desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; + name = "prisoner headset"; + prison_radio = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"dmc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"dml" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plating, +/area/security/brig) +"dmy" = ( +/obj/machinery/door/airlock/engineering{ + name = "Telecommunications"; + req_access_txt = "61" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"dmE" = ( +/turf/closed/wall/r_wall, +/area/maintenance/solars/port/aft) +"dnm" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Escape Airlock" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"dnn" = ( +/obj/machinery/button/door{ + id = "permacell1"; + name = "Genpop Lockdown"; + pixel_x = -4; + pixel_y = 25; + req_access_txt = "2" + }, +/obj/effect/turf_decal/arrows/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"dns" = ( +/obj/docking_port/stationary{ + dwidth = 3; + height = 4; + id = "snaxi_ne"; + name = "Northeast Taxi Port"; + width = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"doD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/closet/emcloset, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"doI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/telecomms/hub/preset, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"doN" = ( +/obj/structure/bookcase/random/religion, +/turf/open/floor/wood, +/area/library) +"doV" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"dpp" = ( +/turf/open/floor/plating, +/area/maintenance/disposal) +"dpZ" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel/dark, +/area/security/main) +"dqE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/machinery/door/window/southleft{ + name = "Reception Desk"; + req_access_txt = "63" + }, +/obj/machinery/button/door{ + id = "innerbrig"; + name = "Brig Doors Control"; + normaldoorcontrol = 1; + pixel_x = -4; + pixel_y = 6; + req_access_txt = "63" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"dqO" = ( +/obj/machinery/teleport/station, +/obj/machinery/button/door{ + id = "teledoor"; + name = "Teleport Shutters Control"; + pixel_x = 25; + req_access_txt = "17;65" + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"dri" = ( +/turf/closed/indestructible/rock/glacierrock/blue, +/area/engine/secure_construction) +"drK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/flashlight/lamp/green{ + pixel_y = 1; + pixel_x = -7 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"dsk" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/wood, +/area/hallway/primary/port) +"dsn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/plasteel, +/area/engine/secure_construction) +"dsX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/closet/crate, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"dtc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/storage) +"dtm" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"dtt" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start/lawyer, +/turf/open/floor/wood, +/area/security/courtroom) +"dtQ" = ( +/obj/structure/chair/comfy/black, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"duu" = ( +/obj/item/radio/intercom{ + frequency = 1485; + name = "Station Intercom (Medbay)"; + pixel_y = 30 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"duB" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"duI" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ai_monitored/security/armory) +"duJ" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"duX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"dvc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"dvh" = ( +/obj/structure/table/reinforced, +/mob/living/carbon/monkey/punpun, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"dvs" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"dvw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"dvO" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"dwF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/light/floor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"dwS" = ( +/obj/structure/closet/crate/freezer, +/turf/open/floor/plating, +/area/maintenance/starboard) +"dxF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"dxL" = ( +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"dxO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/machinery/holopad, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"dxV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"dxZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + sortType = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"dyW" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/closet/secure_closet/lethalshots, +/obj/item/radio/intercom{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"dzS" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "QM #4" + }, +/turf/open/floor/pod/dark, +/area/maintenance/starboard) +"dAi" = ( +/obj/structure/sign/warning/pods{ + pixel_x = -32 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"dAs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"dAM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"dAV" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"dBL" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"dBP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"dBR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/sorting) +"dCs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"dCI" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"dCM" = ( +/obj/machinery/status_display/supply{ + pixel_x = 32 + }, +/obj/effect/turf_decal/tile/brown, +/obj/machinery/rnd/production/techfab/department/cargo, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"dDf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"dDC" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/closet/crate/engineering{ + name = "Antimatter Engine Crate" + }, +/obj/machinery/power/am_control_unit, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_shielding_container, +/obj/item/am_containment, +/obj/item/am_containment, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"dDK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 6 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"dEk" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"dED" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"dEX" = ( +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"dFa" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"dFb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"dFp" = ( +/obj/machinery/processor/slime, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"dFt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/turnstile{ + name = "Genpop Exit Turnstile"; + req_access_txt = "70"; + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"dFC" = ( +/obj/machinery/vending/wardrobe/curator_wardrobe, +/obj/item/radio/intercom{ + pixel_x = -30 + }, +/turf/open/floor/wood, +/area/library) +"dFF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/quartermaster/qm) +"dFJ" = ( +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel/white, +/area/science/lab) +"dGb" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"dGB" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"dGO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/checkpoint/supply) +"dGP" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Mining Office"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"dGV" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"dHe" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"dHw" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plating, +/area/science/mixing) +"dHP" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"dIj" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/mineral_door/woodrustic, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"dJb" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm3"; + name = "Room Two" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"dJc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"dJB" = ( +/obj/machinery/telecomms/bus/preset_four, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"dJZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"dKn" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"dKw" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ai_monitored/security/armory) +"dKF" = ( +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/engine/engineering) +"dKQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads/hor) +"dLj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"dLv" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"dMj" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"dMI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/xenobiology) +"dML" = ( +/obj/structure/table, +/obj/item/surgicaldrill, +/obj/item/surgical_drapes, +/obj/item/razor, +/obj/machinery/camera{ + c_tag = "Surgery A"; + network = list("ss13","medbay"); + pixel_x = 22 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"dMR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/checkpoint/supply) +"dNB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"dOP" = ( +/obj/machinery/button/door{ + id = "Skynet_launch"; + name = "Mech Bay Door Control"; + pixel_x = 6; + pixel_y = 24; + req_access_txt = "29" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/science/robotics/mechbay) +"dOR" = ( +/obj/machinery/recharger{ + name = "wall-mounted recharger"; + pixel_x = 25 + }, +/obj/machinery/recharger{ + name = "wall-mounted recharger"; + pixel_x = 39 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"dPn" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start/roboticist, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"dPx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"dPA" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/gibber, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"dPL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/main) +"dPM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortType = 29 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"dQz" = ( +/turf/closed/wall, +/area/storage/eva) +"dQT" = ( +/obj/machinery/smartfridge/extract/preloaded, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"dQW" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"dRF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"dRI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat/service) +"dSp" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/power/apc/highcap/fifteen_k{ + areastring = "/area/engine/storage"; + dir = 1; + name = "Engineering Secure Storage APC"; + pixel_y = 25 + }, +/turf/open/floor/plating, +/area/engine/storage) +"dSQ" = ( +/turf/closed/wall, +/area/maintenance/starboard) +"dTo" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"dTy" = ( +/turf/closed/wall/r_wall, +/area/maintenance/solars/starboard/fore) +"dTE" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"dTL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "GeneticsDoor"; + name = "Genetics"; + req_access_txt = "5; 68" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"dTS" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/computer/atmos_alert{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"dTU" = ( +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/airlock/engineering/glass{ + name = "TEG Engine Room"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"dTV" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/supermatter) +"dUH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"dUI" = ( +/obj/structure/table, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/engine/break_room"; + name = "Engineering Foyer APC"; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"dUM" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"dUV" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"dVr" = ( +/obj/structure/chair/comfy/brown, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"dVG" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/arrows/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"dVJ" = ( +/obj/structure/table/wood, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"dVV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"dWt" = ( +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/obj/vehicle/ridden/janicart, +/turf/open/floor/plasteel, +/area/janitor) +"dWF" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/security/courtroom) +"dWI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"dWU" = ( +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/item/radio/intercom{ + pixel_x = 25 + }, +/turf/open/floor/wood, +/area/library) +"dXa" = ( +/obj/structure/rack, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"dXF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"dXR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"dYa" = ( +/obj/machinery/requests_console{ + department = "Genetics"; + name = "Genetics Requests Console"; + pixel_y = 30 + }, +/obj/machinery/dna_scannernew, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"dYl" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"dYS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/item/storage/firstaid/fire{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/break_room) +"dYZ" = ( +/obj/docking_port/stationary{ + dwidth = 1; + height = 4; + name = "escape pod loader"; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"dZa" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1; + sortType = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"dZg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 2; + sortType = 25 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"dZV" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/dorms) +"ebq" = ( +/obj/structure/table/wood, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"ebF" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/medical/medbay/central) +"ebK" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/trinary/filter/critical{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ebM" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/storage/auxiliary) +"ebX" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"ect" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/maintenance/bar) +"ecD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"ecI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ecN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"edH" = ( +/obj/machinery/holopad, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"edM" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/fitness/recreation) +"edW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"eed" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 8; + icon_state = "left"; + name = "Robotics Desk"; + req_access_txt = "29" + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"eeh" = ( +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Escape Arm Southwest"; + dir = 1 + }, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"eex" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/meter, +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{ + pixel_x = -9; + pixel_y = -25 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"eeE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"eeM" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"efk" = ( +/obj/machinery/vending/games, +/obj/machinery/camera{ + c_tag = "Rec Room" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/fitness/recreation) +"efn" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"efp" = ( +/obj/machinery/iv_drip, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"efE" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"efF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plasteel, +/area/janitor) +"efT" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"egg" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"egj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"egk" = ( +/turf/closed/wall, +/area/engine/atmos) +"ego" = ( +/obj/structure/closet/secure_closet/freezer/cream_pie, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"egJ" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1; + sortType = 26 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"egM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"eha" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"ehh" = ( +/obj/effect/spawner/lootdrop/bedsheet, +/obj/structure/bed, +/turf/open/floor/wood, +/area/icemoon/surface/outdoors) +"ehL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"ehX" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/closed/wall/r_wall, +/area/engine/atmospherics_engine) +"ehZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"eih" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/door_timer{ + id = "Cell 3"; + name = "Cell 3"; + pixel_y = 32 + }, +/obj/machinery/power/apc{ + areastring = "/area/security/brig"; + dir = 4; + name = "Brig APC"; + pixel_x = 26 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"eik" = ( +/obj/docking_port/stationary/random{ + id = "pod_lavaland2"; + name = "lavaland" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"eiz" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -26 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"eiR" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/westleft{ + dir = 2; + name = "Medbay"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"eiW" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/button/flasher{ + id = "PCell 1"; + pixel_y = 9; + pixel_x = -37 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"ejw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"ekw" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"emh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/fitness/recreation) +"emH" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/disposal) +"eng" = ( +/obj/structure/table, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"enq" = ( +/obj/structure/table, +/obj/item/storage/firstaid/fire, +/obj/item/storage/firstaid/fire{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/obj/item/radio/intercom{ + pixel_y = -26 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) +"enN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/chair/sofa/left, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"enP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"eoL" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1480; + name = "Confessional Intercom"; + pixel_x = 6; + pixel_y = -29 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"eoT" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"eoW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"epc" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start/librarian, +/turf/open/floor/wood, +/area/library) +"epU" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/maintenance/central) +"eqP" = ( +/turf/open/floor/plasteel, +/area/construction/storage) +"eqZ" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/scrubber/huge, +/turf/open/floor/plasteel, +/area/science/storage) +"erc" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/machinery/door/window/northleft{ + name = "Engineering Production"; + req_access_txt = "10" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ery" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"erG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel, +/area/engine/break_room) +"erO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"esi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/turnstile{ + name = "Genpop Exit Turnstile"; + req_access_txt = "70"; + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"esq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"esE" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"esY" = ( +/turf/open/openspace/icemoon, +/area/engine/atmos) +"ets" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"etz" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/telecomms/bus/preset_one, +/obj/machinery/power/terminal{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"etB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"etM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"eua" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/janitor) +"eue" = ( +/obj//obj/item/kirbyplants{ + icon_state = "plant-04" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"eus" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"eut" = ( +/obj/effect/landmark/start/medical_doctor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"euS" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"euW" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"evr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"evI" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"evJ" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"evO" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/disposal) +"evU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering{ + name = "Telecommunications"; + req_access_txt = "61" + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"evY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/storage/auxiliary) +"ewI" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 29 + }, +/obj/machinery/rnd/production/circuit_imprinter/department/science, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"ewK" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/security/courtroom) +"ewY" = ( +/obj/machinery/light, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/wood, +/area/hallway/primary/central) +"exi" = ( +/turf/open/floor/plasteel, +/area/maintenance/starboard) +"exq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"exs" = ( +/obj/item/radio/intercom{ + pixel_y = -26 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"eyP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"eyS" = ( +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"ezO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"ezY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"eAJ" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"eAR" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/maintenance/starboard) +"eBf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"eBj" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "MiniSat External South"; + network = list("minisat"); + start_active = 1 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"eBl" = ( +/obj/structure/cable, +/obj/machinery/suit_storage_unit/ce, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/crew_quarters/heads/chief"; + name = "CE Office APC"; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"eBm" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"eBq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"eCd" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"eDr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"eDt" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/fans/tiny/invisible, +/obj/structure/barricade/wooden/crude/snow{ + max_integrity = 15; + obj_integrity = 15 + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"eDu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/aft) +"eDE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/airlock/engineering/glass{ + name = "Power Storage"; + req_access_txt = "11" + }, +/turf/open/floor/plating, +/area/engine/storage) +"eEa" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/dorms) +"eEy" = ( +/obj/machinery/doorButtons/access_button{ + idDoor = "virology_airlock_interior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + pixel_y = 28; + req_access_txt = "39" + }, +/obj/structure/closet/l3closet, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/camera{ + c_tag = "Virology Airlock"; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"eEB" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"eFn" = ( +/obj/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"eFy" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/computer/arcade/minesweeper{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"eFB" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/rag, +/turf/open/floor/wood, +/area/maintenance/bar) +"eFC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"eFG" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"eFU" = ( +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"eGi" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar, +/obj/machinery/door/airlock/public/glass{ + name = "Diner" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"eGF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/camera{ + c_tag = "Captain's Quarters"; + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"eGL" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Library" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/wood, +/area/library) +"eGO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/research{ + name = "Research and Development Lab"; + req_one_access_txt = "7;29" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/science/lab) +"eHn" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"eHK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"eIa" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + name = "Privacy Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hop) +"eIc" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"eIN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"eJh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/security/brig) +"eJu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"eJY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"eKc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"eKe" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor{ + dir = 8; + name = "Reception Desk"; + req_access_txt = "3" + }, +/obj/machinery/door/window/southright{ + dir = 4; + name = "Reception Desk"; + req_access_txt = "63" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Brig Control"; + name = "brig shutters" + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"eKO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"eKZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"eLf" = ( +/obj/machinery/airalarm{ + pixel_y = 26 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"eLl" = ( +/obj/structure/window{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/window{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"eLm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"eLQ" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/engine/secure_construction"; + dir = 8; + name = "Secure Construction"; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"eLX" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"eMi" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel, +/area/engine/engineering) +"eMl" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"eMJ" = ( +/obj/machinery/door/window/eastleft{ + dir = 1; + name = "Chapel Office"; + req_access_txt = "22" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/carpet, +/area/chapel/office) +"eMQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"eMU" = ( +/obj/machinery/atmospherics/miner/carbon_dioxide, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"eNu" = ( +/obj/docking_port/stationary{ + dwidth = 3; + height = 4; + id = "snaxi_nw"; + name = "Northwest Taxi Port"; + width = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"eNG" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"eNK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"eNX" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"eOd" = ( +/obj/structure/closet/wardrobe/green, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"eOn" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/structure/closet/secure_closet/security/sec, +/obj/item/clothing/suit/hooded/wintercoat/security, +/turf/open/floor/plasteel/dark, +/area/security/main) +"eOr" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/landmark/event_spawn, +/obj/machinery/camera{ + c_tag = "Supermatter South"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"eOt" = ( +/obj/machinery/computer/arcade/orion_trail{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Bar East"; + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"eOK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"eOO" = ( +/obj/structure/weightmachine/weightlifter, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"eOZ" = ( +/obj/machinery/atmospherics/components/binary/pump/on, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"ePa" = ( +/obj/machinery/gateway/centerstation, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"eQd" = ( +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/secure_construction) +"eQC" = ( +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plating, +/area/engine/atmospherics_engine) +"eRt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"eRu" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"eRv" = ( +/obj/structure/table, +/obj/machinery/computer/security/telescreen/engine{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"eRW" = ( +/obj/structure/bookcase{ + name = "Forbidden Knowledge" + }, +/turf/open/floor/wood, +/area/library) +"eSJ" = ( +/obj/structure/table/glass, +/obj/item/clothing/glasses/hud/health, +/obj/item/healthanalyzer, +/obj/item/clothing/gloves/color/latex, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"eSK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"eSP" = ( +/obj/machinery/computer/med_data{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/camera{ + c_tag = "Medbay Treatment Center"; + dir = 8; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"eSQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/research/glass{ + name = "Genetics Research"; + req_access_txt = "5; 9; 68" + }, +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"eTg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"eTu" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/structure/fans/tiny, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/pod/dark, +/area/medical/paramedic) +"eTv" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/ore_silo, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"eTJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"eTR" = ( +/obj/machinery/telecomms/bus/preset_two, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"eTX" = ( +/obj/machinery/vending/wardrobe/medi_wardrobe, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"eUB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/security/main) +"eVp" = ( +/obj/machinery/portable_atmospherics/canister/bz, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"eVW" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/closet/secure_closet{ + name = "nonlethal ammunition"; + req_access = "list(3)" + }, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"eWg" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"eWw" = ( +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"eWH" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"eWW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/closet/crate, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"eXd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/mineral/wood, +/area/maintenance/bar) +"eYe" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/obj/machinery/recycler, +/turf/open/floor/plating, +/area/maintenance/disposal) +"eYu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"eZe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/camera/motion{ + c_tag = "AI Upload Foyer"; + network = list("aiupload") + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"eZi" = ( +/obj/structure/table, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"eZn" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/machinery/camera/motion{ + c_tag = "Armory Motion Sensor North" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"eZA" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/bridge/meeting_room"; + dir = 1; + name = "Conference Room APC"; + pixel_y = 26 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"eZU" = ( +/obj/machinery/conveyor{ + id = "QMLoad2"; + dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"fad" = ( +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/monkey_recycler, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"faJ" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"faR" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/storage/atmos) +"faV" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"faZ" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"fbb" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"fbq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"fch" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"fcj" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/security/courtroom"; + dir = 8; + name = "Courtroom APC"; + pixel_x = -24 + }, +/obj/structure/closet/secure_closet/courtroom, +/obj/item/gavelhammer, +/turf/open/floor/wood, +/area/security/courtroom) +"fcl" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 1"; + name = "Cell 1"; + dir = 8 + }, +/obj/effect/turf_decal/vg_decals/numbers/one, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"fcu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"fcz" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/closet/secure_closet/miner, +/obj/item/clothing/shoes/winterboots/ice_boots, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"fcJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/hallway/primary/central) +"fcU" = ( +/obj/machinery/vending/kink, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"fdu" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/storage/box/trackimp{ + pixel_x = -3 + }, +/obj/item/storage/box/chemimp{ + pixel_x = 6 + }, +/obj/item/storage/lockbox/loyalty, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"fdJ" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/wood, +/area/icemoon/surface/outdoors) +"fen" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"fet" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/aisat/service) +"feM" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/maintenance/solars/starboard/fore) +"ffm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ffJ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/hallway/secondary/exit/departure_lounge) +"fga" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/fitness/recreation) +"fgj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"fgp" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"fgM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"fhi" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"fho" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/landmark/start/ai/secondary, +/obj/machinery/door/window{ + base_state = "rightsecure"; + icon_state = "rightsecure"; + layer = 4.1; + name = "Secondary AI Core Access"; + obj_integrity = 300; + pixel_y = -4; + req_access_txt = "16" + }, +/obj/item/radio/intercom{ + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = -25; + pixel_y = -10 + }, +/obj/item/radio/intercom{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_x = -25; + pixel_y = 5 + }, +/obj/item/radio/intercom{ + freerange = 1; + name = "Common Channel"; + pixel_x = -25 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"fhz" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"fhC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"fhM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"fiw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"fiG" = ( +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"fiI" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"fiN" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"fjc" = ( +/obj/item/radio/intercom{ + pixel_x = -25 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/computer/crew{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"fjw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"fjL" = ( +/obj/machinery/atmospherics/components/binary/pump, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"fjS" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"fjU" = ( +/turf/open/floor/plasteel/white, +/area/science/mixing) +"fkr" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"fkC" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"fkN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L14" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"flh" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera/motion{ + c_tag = "Armory - External 1"; + dir = 8 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ai_monitored/security/armory) +"flw" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"fmk" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, +/area/engine/engineering) +"fmt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Equipment Room"; + req_access_txt = "1" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"fmw" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"fmW" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/computer/cargo/request, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"fnc" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/storage/box/flashbangs{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/storage/box/flashbangs{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/storage/box/flashbangs, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"fne" = ( +/obj/effect/landmark/start/roboticist, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"fni" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output{ + dir = 8 + }, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"fnu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/quantumpad{ + map_pad_id = "1"; + map_pad_link_id = "2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"fnx" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/storage/toolbox/emergency, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"fnQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plating, +/area/engine/storage) +"foi" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plating, +/area/engine/storage) +"fok" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"foy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/bot_white, +/obj/effect/landmark/secequipment, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"fpt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"fpI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"fpJ" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"fpS" = ( +/obj/structure/table, +/obj/item/hemostat, +/obj/item/retractor, +/obj/item/scalpel{ + pixel_y = 12 + }, +/obj/item/circular_saw, +/obj/item/cautery{ + pixel_x = 4 + }, +/obj/item/surgical_drapes, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/camera{ + c_tag = "Robotics Lab"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"fpW" = ( +/obj/effect/turf_decal/bot, +/mob/living/simple_animal/bot/mulebot{ + home_destination = "QM #2"; + suffix = "#2" + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "QM #2" + }, +/obj/machinery/camera{ + c_tag = "Cargo Garage"; + dir = 8 + }, +/turf/open/floor/pod/dark, +/area/maintenance/starboard) +"fqj" = ( +/obj/machinery/field/generator, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/storage) +"fqE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"fqM" = ( +/obj/structure/table, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/item/reagent_containers/spray/cleaner, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"frh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/bridge) +"frn" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start/chemist, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"frB" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmospherics_engine) +"frL" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/brown, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"fsh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"fsA" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"fsJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"fsQ" = ( +/obj/machinery/ntnet_relay, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"ftH" = ( +/obj/machinery/mineral/ore_redemption{ + input_dir = 2; + output_dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"ftM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"ftV" = ( +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"fuj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/storage/eva) +"fuy" = ( +/obj/machinery/light, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"fuB" = ( +/obj/machinery/camera{ + c_tag = "Auxiliary Bridge North"; + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"fuG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"fuX" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/structure/chair/sofa{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"fuZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"fva" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"fve" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"fvz" = ( +/obj/structure/table/optable{ + name = "Robotics Operating Table" + }, +/obj/item/tank/internals/anesthetic, +/obj/item/clothing/mask/breath, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"fwn" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table, +/obj/item/storage/box/bodybags, +/obj/machinery/requests_console{ + department = "Robotics"; + departmentType = 2; + name = "Robotics RC"; + pixel_y = 30; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"fww" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"fwU" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"fwX" = ( +/obj/structure/table, +/obj/item/surgical_drapes, +/obj/item/surgicaldrill, +/obj/item/razor, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"fxY" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input{ + dir = 8 + }, +/obj/machinery/air_sensor/atmos/toxin_tank{ + pixel_y = -25 + }, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"fyr" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/table, +/obj/item/key/janitor, +/obj/machinery/power/apc{ + areastring = "/area/janitor"; + dir = 4; + name = "Custodial Closet APC"; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/janitor) +"fyz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"fyV" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"fze" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"fzg" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"fzG" = ( +/obj/structure/sign/barsign, +/turf/closed/wall, +/area/crew_quarters/bar) +"fzQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"fzT" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"fzU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/table, +/obj/item/radio/off, +/obj/item/radio/off{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"fAj" = ( +/obj/structure/fence{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"fBc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"fBf" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"fBk" = ( +/obj/machinery/camera{ + c_tag = "Northwestern Hall 10" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"fBs" = ( +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Bathrooms"; + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/dorms) +"fBG" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"fBS" = ( +/turf/open/floor/plating, +/area/engine/storage) +"fCh" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "TEG Chamber"; + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/atmospherics_engine) +"fCQ" = ( +/obj/structure/toilet/secret/low_loot{ + pixel_y = 14 + }, +/obj/machinery/button/door{ + id = "Bath2"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 24; + specialfunctions = 4; + pixel_y = -5 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/dorms) +"fDi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"fDo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"fDt" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"fDJ" = ( +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) +"fET" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/camera{ + c_tag = "Southeastern Hall 1"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"fFG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/camera{ + c_tag = "Engineering Access" + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/break_room) +"fFM" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Secure Tech Storage"; + req_access_txt = "19;23" + }, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"fGi" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"fGl" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel, +/area/engine/engineering) +"fHa" = ( +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table, +/obj/item/storage/box/ids, +/obj/item/storage/firstaid/regular{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"fHh" = ( +/obj/machinery/light, +/obj/machinery/computer/security/hos{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/newscaster/security_unit{ + pixel_y = -32 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"fHF" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/atmos) +"fIu" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"fII" = ( +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"fIS" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/potato, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"fIU" = ( +/obj/machinery/light, +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"fIY" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/starboard/fore"; + dir = 8; + name = "Starboard Bow Solar APC"; + pixel_x = -25; + pixel_y = 3 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"fJc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + sortType = 21 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"fJg" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"fJs" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + sortType = 11 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"fJO" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"fJW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"fJZ" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"fKc" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Mining Dock Airlock"; + req_access_txt = "48"; + shuttledocked = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"fKl" = ( +/obj/effect/turf_decal/stripes/line, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"fKC" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/hos) +"fKE" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"fKM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/virology{ + autoclose = 0; + frequency = 1449; + id_tag = "virology_airlock_exterior"; + name = "Virology Exterior Airlock"; + req_access_txt = "39" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/doorButtons/access_button{ + idDoor = "virology_airlock_exterior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + pixel_x = -24; + req_access_txt = "39" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"fLv" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/power/apc{ + areastring = "/area/security/main"; + name = "Security Office APC"; + pixel_y = -26 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"fLB" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/gun/energy/temperature/security, +/obj/item/clothing/suit/armor/laserproof, +/obj/item/gun/energy/ionrifle, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"fLK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"fLL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"fLW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24; + pixel_y = -28 + }, +/turf/open/floor/plating, +/area/storage/atmos) +"fNd" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"fNh" = ( +/obj/structure/cable, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"fNC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/bridge) +"fNO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/radio/intercom{ + pixel_y = 20 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Genetics Cloning"; + network = list("ss13","medbay") + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"fNR" = ( +/obj/machinery/camera{ + c_tag = "South Paramedic Post"; + dir = 8; + network = list("ss13","medbay") + }, +/obj/structure/table, +/obj/item/storage/firstaid/o2, +/obj/item/storage/firstaid/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"fNU" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/camera{ + c_tag = "Cargo Bay South"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"fOA" = ( +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/airlock/research/glass{ + name = "Robotics Lab"; + req_access_txt = "29" + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"fOC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"fOG" = ( +/obj/machinery/light, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/maintenance/solars/port/aft) +"fOW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"fPd" = ( +/obj/machinery/airalarm{ + pixel_y = 25 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/machinery/camera{ + c_tag = "Primary Tool Storage" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"fPp" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"fPD" = ( +/turf/open/floor/wood, +/area/crew_quarters/bar) +"fPF" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"fPM" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/plating, +/area/crew_quarters/dorms) +"fPN" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/flashlight/lamp/green{ + pixel_y = 1; + pixel_x = -7 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"fQc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"fQe" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Auxiliary Tool Storage"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel, +/area/storage/auxiliary) +"fQi" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"fQs" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"fQx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"fQI" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"fQM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"fQU" = ( +/obj/machinery/light, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stock_parts/cell/high/plus, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"fRS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"fSw" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"fSR" = ( +/obj/machinery/camera{ + c_tag = "Server Room"; + network = list("ss13","rd"); + pixel_x = 22 + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"fTg" = ( +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"fTn" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"fTu" = ( +/obj/machinery/door/firedoor/border_only, +/obj/machinery/camera{ + c_tag = "Northwestern Hall 2"; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"fTy" = ( +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"fTM" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"fUm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"fUX" = ( +/obj/machinery/sleeper{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"fVm" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"fVQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"fVT" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/engine, +/area/engine/engineering) +"fWc" = ( +/obj/structure/rack, +/obj/item/storage/belt/medical{ + pixel_y = 2 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) +"fWB" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hydroponics) +"fWE" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"fXd" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"fXU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 2; + sortType = 29 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"fYa" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"fYl" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/obj/structure/windoor_assembly{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"fYx" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/hallway/primary/port) +"fYH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 29 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"fYQ" = ( +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"fYU" = ( +/obj/machinery/door/airlock/virology/glass{ + name = "Isolation B"; + req_access_txt = "39" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"fZn" = ( +/obj/item/radio/intercom{ + pixel_x = 25 + }, +/obj/machinery/photocopier, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"fZA" = ( +/obj/machinery/field/generator, +/turf/open/floor/plating, +/area/engine/storage) +"gaf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/airlock/mining/glass{ + name = "Cargo Bay"; + req_access_txt = "31" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"gar" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"gbt" = ( +/obj/structure/chair, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"gcp" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/table/reinforced, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Bar"; + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"gct" = ( +/obj/machinery/quantumpad{ + map_pad_id = "4"; + map_pad_link_id = "3" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"gcw" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"gcY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock{ + name = "Bar"; + req_access_txt = "25" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"gdg" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/kitchen"; + dir = 1; + name = "Kitchen APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"gdi" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"gdj" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"gdL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"gel" = ( +/obj/machinery/atmospherics/components/trinary/filter/critical{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"gev" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"geO" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/maintenance/starboard) +"gfC" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"gfF" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/fitness/recreation) +"gfN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/door/airlock/security{ + name = "Detective's Office"; + req_access_txt = "4" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"gfQ" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"gfY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/wood, +/area/library) +"ggl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"ggD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"ghq" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"giv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 28 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"giT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"giZ" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"gjA" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"gjW" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/engineering) +"gkl" = ( +/obj/machinery/jukebox, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"gkt" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/maintenance/solars/starboard/aft) +"gkv" = ( +/obj/machinery/door/airlock/engineering/glass/critical{ + heat_proof = 1; + name = "Supermatter Chamber"; + req_access_txt = "10" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"gkx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"gky" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"gkJ" = ( +/obj/machinery/power/emitter, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/plating, +/area/engine/storage) +"gkX" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio8"; + name = "Containment Blast Doors"; + pixel_y = 4; + req_access_txt = "55" + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"glg" = ( +/obj/structure/closet/crate/solarpanel_small, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"gls" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/door/window/westright{ + name = "Red Corner" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"gmf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/hallway/primary/central) +"gmn" = ( +/obj/effect/landmark/loneopspawn, +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + sortType = 7 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"gmr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"gmH" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"gnf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortType = 7 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"gnm" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/bot_white, +/obj/vehicle/ridden/atv/snowmobile/snowcurity, +/obj/item/key/security, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"gnv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/circuit, +/area/science/robotics/mechbay) +"gop" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Brig Gen-Pop Access" + }, +/obj/machinery/button/door{ + id = "Secure Gate"; + name = "Cell Shutters"; + pixel_y = 24; + req_access_txt = "2"; + pixel_x = 3 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"got" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"goC" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"goK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light_switch{ + pixel_y = -28 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"goM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"goW" = ( +/obj/machinery/conveyor{ + id = "QMLoad" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"gpe" = ( +/obj/machinery/door/airlock/external{ + name = "Supply Dock Airlock"; + req_access_txt = "31" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"gph" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"gpp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"grs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"grz" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/storage/auxiliary) +"grM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet/orange, +/area/engine/secure_construction) +"grV" = ( +/turf/closed/wall, +/area/security/courtroom) +"grZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/table, +/obj/item/aiModule/core/full/custom, +/obj/item/aiModule/core/freeformcore, +/obj/item/aiModule/core/full/asimov, +/obj/effect/spawner/lootdrop/aimodule_harmless, +/obj/effect/spawner/lootdrop/aimodule_neutral, +/obj/machinery/camera/motion{ + c_tag = "AI Upload Chamber - Starboard"; + dir = 1; + network = list("aiupload") + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"gsr" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"gsK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/storage) +"gsM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"gsQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"gto" = ( +/obj/structure/sink{ + pixel_y = 20 + }, +/mob/living/simple_animal/pet/bumbles, +/turf/open/floor/plasteel, +/area/hydroponics) +"gtG" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/maintenance/aft) +"gtR" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmospherics_engine) +"gtS" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"guv" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/toilet/secret/low_loot{ + pixel_y = 14 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/fitness/recreation) +"guD" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/maintenance/solars/starboard/aft) +"guE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + req_access_txt = "19" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"guI" = ( +/obj/machinery/light/floor, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"guR" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/item/reagent_containers/glass/beaker/large, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/dropper, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"guV" = ( +/obj/structure/chair/sofa/right{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"gvm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/spider/stickyweb, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"gvp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"gvP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"gwY" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/checkpoint/supply) +"gxi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"gxq" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/item/radio/intercom{ + frequency = 1485; + name = "Station Intercom (Medbay)"; + pixel_x = -30 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"gxF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/sign/warning/nosmoking{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"gxL" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/orange/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"gxY" = ( +/obj/machinery/door/airlock{ + name = "Service Hall"; + req_one_access_txt = "25;26;35;28" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"gyk" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/vending/security, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"gyE" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"gzk" = ( +/obj/machinery/computer/crew{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"gzt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"gzH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"gzW" = ( +/obj/machinery/shower{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"gzZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/scrubber, +/obj/item/storage/firstaid/toxin, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"gAt" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/port/fore"; + dir = 8; + name = "Port Bow Solar APC"; + pixel_x = -25; + pixel_y = 3 + }, +/obj/machinery/camera{ + c_tag = "Fore Port Solar Control"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"gAu" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/chapel/main) +"gAG" = ( +/obj/structure/table/wood, +/obj/structure/barricade/wooden{ + max_integrity = 10; + obj_integrity = 10 + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"gAY" = ( +/mob/living/simple_animal/bot/secbot{ + arrest_type = 1; + health = 45; + icon_state = "secbot1"; + idcheck = 1; + name = "Sergeant-at-Armsky"; + weaponscheck = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"gBk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"gBF" = ( +/obj/structure/chair/pew/left{ + dir = 8 + }, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/chapel/main) +"gCd" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"gCs" = ( +/obj/item/reagent_containers/food/snacks/spidereggsham, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/library) +"gCC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/atmos) +"gCG" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/central) +"gCJ" = ( +/obj/item/beacon, +/turf/open/floor/plasteel/dark, +/area/bridge) +"gCM" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/computer/atmos_control/tank/mix_tank, +/turf/open/floor/plasteel, +/area/engine/atmos) +"gCO" = ( +/obj/machinery/light, +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/dorms) +"gCS" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"gEd" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"gEh" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plating, +/area/engine/storage) +"gEz" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"gFb" = ( +/obj/machinery/vending/wardrobe/law_wardrobe, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/obj/machinery/requests_console{ + department = "Law office"; + pixel_x = 32 + }, +/turf/open/floor/plasteel/cult, +/area/lawoffice) +"gFq" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"gFM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"gFP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"gGs" = ( +/obj/machinery/turretid{ + control_area = "/area/ai_monitored/turret_protected/ai_upload"; + icon_state = "control_stun"; + name = "AI Upload turret control"; + pixel_x = -26 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"gGQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"gHe" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"gHG" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"gHQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 1; + sortType = 2 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"gId" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"gIm" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads/cmo) +"gIE" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/virology) +"gIG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"gJi" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"gJx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/light/small, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"gJP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"gJQ" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"gKo" = ( +/obj/structure/table/wood, +/obj/item/folder/blue, +/obj/item/folder/blue, +/obj/item/pen, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"gKt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"gKB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/reagent_dispensers/watertank, +/obj/item/radio/intercom{ + pixel_y = -26 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"gKR" = ( +/obj/machinery/mineral/equipment_vendor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"gLk" = ( +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/dorms) +"gLH" = ( +/turf/closed/wall/r_wall, +/area/teleporter) +"gLO" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/obj/machinery/door/poddoor{ + id = "trash"; + name = "disposal bay door" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"gMD" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"gML" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/plasteel, +/area/science/storage) +"gMR" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/landmark/start/research_director, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/holopad, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/heads/hor) +"gNb" = ( +/obj/structure/table/glass, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/storage/box/syringes, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"gNq" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/sign/warning/securearea{ + pixel_x = 32 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"gNy" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"gNI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"gNM" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"gOd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + req_access_txt = "19" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"gOi" = ( +/obj/structure/chair, +/obj/item/radio/intercom{ + pixel_x = -25 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"gOp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"gOr" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/structure/closet/cabinet, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/pickaxe, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"gOM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"gOW" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"gPb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/storage/atmos) +"gPE" = ( +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"gPF" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plating, +/area/engine/storage) +"gPS" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible/layer3, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmospherics_engine) +"gQj" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"gQw" = ( +/turf/open/floor/carpet, +/area/hallway/primary/central) +"gQU" = ( +/obj/structure/table, +/obj/item/storage/firstaid/o2, +/obj/item/storage/firstaid/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) +"gQV" = ( +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/rad_collector/anchored, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"gQZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"gRh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"gRE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/airlock/mining{ + name = "Mining Office"; + req_access_txt = "48" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"gRP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"gRS" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"gSh" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"gSu" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"gSY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"gSZ" = ( +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"gTb" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start/chemist, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"gTc" = ( +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 2; + icon_state = "left"; + name = "Research Division Delivery"; + req_access_txt = "47" + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/white, +/area/science/lab) +"gTh" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"gTH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light, +/obj/structure/chair/pew/right{ + dir = 8 + }, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"gUa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/machinery/light, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/storage/primary) +"gUb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"gUc" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/crew_quarters/dorms) +"gUw" = ( +/obj/structure/plasticflaps, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor"; + name = "supply dock loading door" + }, +/obj/machinery/conveyor{ + id = "QMLoad" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"gUA" = ( +/obj/machinery/sparker{ + id = "testigniter"; + pixel_x = -25 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"gUL" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"gVo" = ( +/obj/vehicle/ridden/atv/snowmobile, +/obj/item/key, +/turf/open/floor/pod/dark, +/area/medical/paramedic) +"gWc" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"gWj" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"gWn" = ( +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"gWZ" = ( +/obj/machinery/computer/telecomms/monitor, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"gXD" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"gXE" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/medical_cloning{ + pixel_y = 6 + }, +/obj/item/storage/box/bodybags, +/obj/item/storage/box/rxglasses{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/pen, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"gXM" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"gYw" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/chapel/main) +"gYC" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"gZb" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/medbay/zone3"; + dir = 4; + name = "Northeast Paramedic Station APC"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) +"gZG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"gZQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay/central) +"gZS" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"gZX" = ( +/turf/closed/wall, +/area/medical/morgue) +"hah" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/medical/paramedic) +"haj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"hap" = ( +/obj/machinery/space_heater, +/turf/open/floor/wood, +/area/icemoon/surface/outdoors) +"haU" = ( +/obj/machinery/button/door{ + id = "kitchen"; + name = "Kitchen Shutters Control"; + req_access_txt = "28"; + pixel_x = 24; + pixel_y = -4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"hbb" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/bar) +"hch" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table/wood, +/obj/item/flashlight/lamp{ + pixel_y = 10 + }, +/obj/item/paper_bin, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/carpet, +/area/chapel/office) +"hcu" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"hcz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"hcV" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/cult, +/area/lawoffice) +"hdn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmospherics_engine) +"hez" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"hfk" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"hfp" = ( +/obj/machinery/vending/wardrobe/bar_wardrobe, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"hfX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"hfZ" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"hgb" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"hge" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"hgg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/closet/secure_closet/genpop, +/obj/item/radio/headset{ + desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; + name = "prisoner headset"; + prison_radio = 1 + }, +/obj/item/clothing/suit/hooded/wintercoat, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"hgp" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/security/main) +"hgJ" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"hgM" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"hgO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"hhb" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/reagent_containers/food/snacks/soup/coldchili, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"hho" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/hallway/secondary/exit/departure_lounge) +"hhx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"hhz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"hhI" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/door/window/westleft{ + dir = 1; + name = "Monkey Pen"; + req_access_txt = "9" + }, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"hik" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"hiO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"hjv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"hjw" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel, +/area/engine/atmos) +"hjF" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plasteel, +/area/science/storage) +"hkw" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/computer/monitor{ + name = "bridge power monitoring console"; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"hlx" = ( +/obj/structure/fence/corner{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"hlT" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"hmC" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"hmM" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"hmX" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"hnc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"hnB" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/obj/machinery/light_switch{ + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/mob/living/simple_animal/pet/cat/Runtime, +/obj/machinery/camera{ + c_tag = "Chief Medical Office"; + dir = 8; + network = list("ss13","medbay"); + pixel_y = -22 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"hnO" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"hnP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"hom" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"hop" = ( +/obj/structure/window{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"hoq" = ( +/turf/closed/wall, +/area/engine/break_room) +"hoV" = ( +/obj/machinery/firealarm{ + pixel_y = 29 + }, +/obj/machinery/computer/card/minor/qm, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"hoX" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"hpa" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/engine, +/area/science/xenobiology) +"hpg" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"hpw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/table/wood, +/obj/item/folder/blue, +/obj/item/folder/blue, +/obj/item/folder/blue, +/obj/item/folder/blue, +/obj/item/stamp/law, +/obj/item/flashlight/lamp/green{ + pixel_y = 1; + pixel_x = -7 + }, +/turf/open/floor/plasteel/cult, +/area/lawoffice) +"hpC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"hpN" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"hpV" = ( +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/obj/structure/table/wood, +/obj/item/stack/sheet/mineral/wood/fifty{ + amount = 20 + }, +/obj/item/reagent_containers/food/drinks/flask/gold, +/obj/item/razor{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/clothing/mask/cigarette/cigar, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"hqD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"hrc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"hru" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"hrN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/airlock/mining{ + req_access_txt = "48" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"hrS" = ( +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"hse" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"hsl" = ( +/turf/open/floor/plating, +/area/maintenance/starboard) +"hso" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Storage"; + req_access_txt = "5" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"hsu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"hsv" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/plating, +/area/engine/engineering) +"hsC" = ( +/obj/docking_port/stationary{ + dwidth = 3; + height = 15; + id = "arrivals_stationary"; + name = "arrivals"; + roundstart_template = /datum/map_template/shuttle/arrival/snaxi; + width = 7 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"hsP" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/eastright{ + dir = 1; + name = "Bridge Delivery"; + req_access_txt = "19" + }, +/obj/machinery/door/window/eastright{ + name = "Bridge Delivery"; + req_access_txt = "19" + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"hsQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"hta" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"htA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"hui" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Northwestern Hall 9"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/hallway/primary/port) +"huA" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input{ + dir = 8 + }, +/obj/machinery/air_sensor/atmos/carbon_tank{ + pixel_y = -25 + }, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"huF" = ( +/obj/machinery/mineral/stacking_unit_console{ + machinedir = 4 + }, +/turf/closed/wall, +/area/maintenance/disposal) +"huQ" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"hva" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"hvr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"hwg" = ( +/obj/machinery/computer/teleporter{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Teleporter"; + dir = 8 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"hwG" = ( +/obj/structure/closet/wardrobe/mixed, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"hwV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/computer/apc_control, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"hxf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"hxr" = ( +/obj/machinery/computer/scan_consolenew, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"hxx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/window/northleft{ + dir = 8; + name = "Atmos Monitoring"; + req_access_txt = "12; 24" + }, +/obj/machinery/atmospherics/components/binary/valve/digital/on{ + dir = 4; + name = "Digital Valve" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/storage/atmos) +"hxP" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"hyq" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/carpet, +/area/quartermaster/miningoffice) +"hyz" = ( +/obj/machinery/vending/autodrobe, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"hyK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"hzh" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "qm_warehouse2"; + name = "Warehouse Door Control"; + pixel_x = -1; + pixel_y = 24; + req_access_txt = "31" + }, +/turf/open/floor/plasteel, +/area/maintenance/starboard) +"hAa" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/maintenance/solars/starboard/fore) +"hAb" = ( +/obj/machinery/light/small, +/mob/living/simple_animal/slime, +/turf/open/floor/engine, +/area/science/xenobiology) +"hAf" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/obj/structure/closet/secure_closet/brig{ + id = "Cell 2"; + name = "Cell 2 Locker" + }, +/obj/machinery/flasher{ + id = "Cell 2"; + pixel_x = -24; + pixel_y = -36 + }, +/obj/item/radio/headset{ + desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; + name = "prisoner headset"; + prison_radio = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"hAq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/telecomms/receiver/preset_left, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"hAw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"hAx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"hBb" = ( +/obj/machinery/camera{ + c_tag = "Tech Storage"; + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"hBq" = ( +/turf/closed/wall/r_wall, +/area/engine/atmospherics_engine) +"hBy" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/closet/secure_closet/engineering_chief, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"hBH" = ( +/obj/machinery/vending/medical, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"hBQ" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"hCD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/closet/crate, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/machinery/camera{ + c_tag = "Engineering Secure Storage" + }, +/turf/open/floor/plating, +/area/engine/storage) +"hCI" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_x = 25 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/modular_computer/console/preset/engineering{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"hCL" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/qm"; + dir = 1; + name = "Quartermaster APC"; + pixel_y = 24 + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/machinery/keycard_auth{ + pixel_y = 40 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"hDj" = ( +/obj/structure/table, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"hDk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"hEf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"hEQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay/central) +"hFj" = ( +/obj/structure/chair/comfy/brown, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"hFv" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/atmos) +"hFG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) +"hGr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"hGy" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"hGK" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"hGM" = ( +/obj/structure/urinal{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/dorms) +"hGU" = ( +/obj/structure/closet/secure_closet/personal/cabinet{ + pixel_x = -8 + }, +/turf/open/floor/wood, +/area/icemoon/surface/outdoors) +"hHu" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/maintenance/solars/starboard/fore) +"hHy" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) +"hHC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"hHR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"hHW" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"hIa" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/table, +/obj/item/storage/toolbox/emergency, +/obj/item/assembly/flash/handheld, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"hIe" = ( +/obj/structure/table, +/obj/item/hemostat, +/obj/item/circular_saw, +/obj/item/scalpel{ + pixel_y = 12 + }, +/obj/item/retractor, +/obj/item/cautery{ + pixel_x = 4 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"hIl" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plasteel, +/area/engine/atmos) +"hIG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/hallway/primary/aft) +"hIH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"hIS" = ( +/obj/structure/table/wood, +/obj/item/folder, +/obj/item/folder, +/obj/item/pen, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"hJw" = ( +/obj/structure/chair/comfy/black, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"hJE" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"hKc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/bridge) +"hKm" = ( +/obj/machinery/computer/aifixer{ + dir = 8 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/heads/hor) +"hKs" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"hKt" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"hLg" = ( +/obj/machinery/bloodbankgen, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"hLo" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -30 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"hLQ" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"hLZ" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"hMy" = ( +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"hMD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"hMM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/computer/secure_data{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"hMQ" = ( +/obj/machinery/airalarm{ + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"hNg" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"hNi" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/structure/chair/sofa{ + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"hNt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"hNv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"hNT" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"hNZ" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/computer/communications, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"hOb" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"hOc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/storage/atmos) +"hOw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/closet/cabinet, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/pickaxe, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"hOA" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"hOY" = ( +/obj/machinery/door/window/southleft{ + name = "Mass Driver Door"; + req_access_txt = "7" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"hPe" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + sortType = 17 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"hPh" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior, +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"hPp" = ( +/obj/structure/sign/plaques/deempisi{ + pixel_x = -28; + pixel_y = -4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"hPt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"hPC" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/plasteel, +/area/engine/secure_construction) +"hPK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"hPO" = ( +/obj/machinery/processor, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"hQb" = ( +/obj/structure/closet/wardrobe/pjs, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"hQs" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{ + dir = 1 + }, +/obj/machinery/sparker/toxmix{ + pixel_x = 25 + }, +/turf/open/floor/engine/airless, +/area/science/mixing) +"hQL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"hQY" = ( +/turf/closed/wall, +/area/library) +"hRe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"hRt" = ( +/turf/closed/wall, +/area/quartermaster/qm) +"hRH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"hSl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Brig Control"; + req_access_txt = "3" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"hSv" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"hSD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/mineral/wood, +/area/icemoon/surface/outdoors) +"hSV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"hTa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/spider/stickyweb, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"hTk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/status_display{ + layer = 4; + pixel_y = 32 + }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"hTy" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj//obj/item/kirbyplants{ + icon_state = "plant-10" + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"hTB" = ( +/obj/machinery/mass_driver{ + dir = 4; + id = "toxinsdriver" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"hTK" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/light/small, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/carpet, +/area/security/detectives_office) +"hTL" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/science/mixing) +"hTO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"hUo" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"hUs" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/security/brig) +"hUF" = ( +/obj/structure/closet/wardrobe/black, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"hUL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/chapel/office) +"hVh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/engine/engineering) +"hVk" = ( +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"hVm" = ( +/obj/machinery/vending/wardrobe/viro_wardrobe, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Virology Break Room"; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"hVt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/engine, +/area/engine/engineering) +"hVH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ + external_pressure_bound = 120; + name = "killroom vent"; + dir = 1 + }, +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"hVN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"hVO" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/wooden_tv, +/obj/item/radio/intercom{ + pixel_x = -30 + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"hVX" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Surgery Observation"; + network = list("ss13","medbay"); + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"hWb" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/landmark/start/security_officer, +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"hWn" = ( +/obj/machinery/sleeper{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/mirror{ + pixel_x = 25 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"hWW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/landmark/start/mime, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"hXB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"hXF" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/wood, +/area/security/courtroom) +"hXO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"hYi" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"hYD" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/fireaxecabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"hYN" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/structure/table/wood, +/obj/item/instrument/trumpet, +/obj/item/instrument/piano_synth, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"hZy" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/metal/fifty, +/turf/open/floor/plasteel, +/area/engine/break_room) +"hZz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/machinery/door/airlock/mining/glass{ + name = "Quartermaster"; + req_access_txt = "41" + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"hZU" = ( +/obj/structure/table/wood, +/obj/item/radio/intercom{ + dir = 8; + freerange = 1; + name = "Station Intercom (Command)" + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"iad" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/security/main) +"iam" = ( +/obj/machinery/computer/slot_machine{ + pixel_y = 2; + pixel_x = -7 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"iaq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"ias" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"iat" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/construction/storage) +"iau" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + req_access_txt = "19" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/bridge) +"iax" = ( +/obj/structure/window/plasma/reinforced{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/dark, +/area/engine/atmospherics_engine) +"iaD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/aft/secondary"; + dir = 1; + name = "Science Maint APC"; + pixel_y = 24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"iaM" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"iaO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"iaY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/turf/open/floor/plasteel/cult, +/area/lawoffice) +"icb" = ( +/obj/structure/closet/secure_closet/captains, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"idb" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/engine/atmos) +"idl" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"idG" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/button/door{ + id = "QMLoaddoor2"; + layer = 4; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = 8 + }, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"idQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"iek" = ( +/obj/structure/table/glass, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 29 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"ieI" = ( +/obj/machinery/telecomms/server/presets/service, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"ifl" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/closet/crate/coffin, +/turf/open/floor/wood, +/area/chapel/office) +"ifQ" = ( +/mob/living/simple_animal/mouse/brown/Tom, +/obj/structure/chair/comfy/brown{ + color = "#596479"; + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"ifT" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/exit/departure_lounge"; + dir = 8; + name = "Escape Hallway APC"; + pixel_x = -25 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"igi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/space_heater, +/turf/open/floor/plasteel, +/area/engine/atmos) +"igK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/door/window/eastleft{ + name = "Blue Corner" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"igO" = ( +/obj/machinery/vending/boozeomat, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/maintenance/bar) +"igQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"igR" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/door/window{ + name = "Captain's Desk"; + req_access_txt = "20" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"ihn" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/machinery/turretid{ + icon_state = "control_stun"; + name = "AI Chamber turret control"; + pixel_x = -25; + pixel_y = -3 + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"ihE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel, +/area/science/mixing) +"ihJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"ihX" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/smes, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"iiM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel, +/area/storage/primary) +"iiY" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/chief) +"ijz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/starboard) +"ijK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"ijL" = ( +/obj/structure/reflector/double, +/turf/open/floor/plating, +/area/engine/storage) +"ijV" = ( +/obj/machinery/vending/hydroseeds{ + slogan_delay = 700 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"ijZ" = ( +/turf/open/floor/plating, +/area/engine/engineering) +"ikh" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"ikk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/circuit, +/area/science/robotics/mechbay) +"ikA" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"ikY" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"ilb" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/structure/table/wood, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"ilo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side, +/area/hallway/primary/port) +"ilF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ilL" = ( +/obj/machinery/newscaster/security_unit{ + pixel_y = -32 + }, +/obj/machinery/camera{ + c_tag = "Head of Personnel's Office"; + dir = 1 + }, +/obj/structure/bed/dogbed/ian, +/mob/living/simple_animal/pet/dog/corgi/Ian{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"imn" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"imM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"ina" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"inq" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/modular_computer/console/preset/engineering, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/construction/storage) +"inw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=AIW"; + location = "QM" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"inA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/dorms) +"inU" = ( +/obj/machinery/chem_dispenser, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"iob" = ( +/obj/structure/window/plasma/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Hot Loop Exit" + }, +/turf/open/floor/plating, +/area/engine/atmospherics_engine) +"ioe" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"iog" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"iop" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/effect/landmark/start/paramedic, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"ioG" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"ioJ" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmospherics_engine) +"ipi" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 1 + }, +/turf/closed/wall/mineral/wood, +/area/maintenance/bar) +"ipL" = ( +/obj/item/plant_analyzer, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"ipV" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor{ + id = "toxinsdriver"; + name = "toxins launcher bay door" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ipY" = ( +/obj/machinery/airalarm/unlocked{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"iqH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"iqJ" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"iqT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/hydroponics) +"iqZ" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Stbd"; + location = "HOP" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"irg" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"iro" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"irr" = ( +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"irt" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"irN" = ( +/obj/machinery/requests_console{ + department = "AI"; + departmentType = 5; + pixel_x = 30; + pixel_y = 30 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"irQ" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"isp" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/obj/item/multitool, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"isu" = ( +/turf/open/floor/plasteel/dark, +/area/science/server) +"itb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"itp" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/camera{ + c_tag = "Northwestern Engineering Post"; + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plating, +/area/storage/atmos) +"itw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + sortType = 18 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"itN" = ( +/obj/machinery/vending/coffee, +/obj/item/radio/intercom{ + pixel_x = 25 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"itU" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"ius" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"iux" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel, +/area/janitor) +"iuy" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"iuC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"iuP" = ( +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/turf/open/floor/engine, +/area/engine/atmospherics_engine) +"ivM" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Escape Airlock" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"ivQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/chemistry) +"iwc" = ( +/obj/machinery/computer/upload/ai, +/obj/machinery/camera/motion{ + c_tag = "AI Upload Chamber - Port"; + network = list("aiupload") + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"iwd" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Bridge Exterior"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"iwk" = ( +/obj/structure/closet/crate, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ixf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"ixu" = ( +/obj/structure/table, +/obj/item/hand_tele, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"ixZ" = ( +/obj/structure/chair/office/dark, +/mob/living/simple_animal/pet/cat/Runtime{ + desc = "Meow."; + gender = "male"; + name = "Salem" + }, +/turf/open/floor/wood, +/area/library) +"iyq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/closet/crate/bin, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"iyL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/engine/engineering) +"iyP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"iyV" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"iza" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"izV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/checkpoint/supply) +"iAb" = ( +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/machinery/camera{ + c_tag = "Kitchen" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"iAt" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/bridge"; + dir = 1; + name = "Bridge APC"; + pixel_y = 26 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"iAv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"iAG" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"iAO" = ( +/turf/closed/wall, +/area/teleporter) +"iAR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/auxiliary) +"iBl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"iBm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/machinery/recharger{ + pixel_x = -5 + }, +/obj/item/hand_tele, +/obj/structure/window/reinforced, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"iBo" = ( +/obj/machinery/cryopod, +/obj/machinery/computer/cryopod{ + pixel_y = 26 + }, +/obj/effect/turf_decal/trimline/red/filled, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"iBF" = ( +/obj/structure/table/glass, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stock_parts/cell/high/plus, +/turf/open/floor/plasteel/white, +/area/science/lab) +"iBL" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/break_room) +"iBW" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"iCq" = ( +/obj/machinery/door/airlock/engineering/glass/critical{ + heat_proof = 1; + name = "Supermatter Chamber"; + req_access_txt = "10" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/engine, +/area/engine/supermatter) +"iCO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/brown, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"iEa" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"iEj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"iEz" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"iEJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"iEQ" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/stamp/hop, +/obj/item/pen/fourcolor, +/obj/item/paper_bin/bundlenatural{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"iET" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"iFc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"iFl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/secondary/entry) +"iFq" = ( +/obj/structure/table, +/obj/item/cartridge/signal/toxins, +/obj/item/paicard{ + pixel_x = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"iFK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"iGb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"iGd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"iGB" = ( +/obj/machinery/keycard_auth{ + pixel_x = 8; + pixel_y = -26 + }, +/obj/machinery/button/door{ + id = "hos"; + name = "HoS Office Shutters"; + pixel_y = -26; + pixel_x = -6 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"iGJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/hallway/primary/central) +"iGS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"iGV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"iHg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Prison Wing"; + req_access_txt = "2" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"iHM" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/dorms) +"iHO" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/airlock/mining/glass{ + name = "Cargo Bay"; + req_access_txt = "31" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"iIg" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"iIK" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel/dark, +/area/bridge) +"iIN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"iIQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/storage/eva) +"iIS" = ( +/turf/closed/wall/r_wall, +/area/bridge) +"iJc" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"iJl" = ( +/turf/open/floor/plating, +/area/maintenance/port/fore) +"iJs" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"iJK" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/obj/item/reagent_containers/food/snacks/bluecherrycupcake{ + pixel_y = 5 + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"iKM" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/wood, +/area/hallway/primary/port) +"iKV" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"iLi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"iLA" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"iML" = ( +/obj/machinery/light, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Personnel's Desk"; + departmentType = 5; + name = "Head of Personnel RC"; + pixel_y = -30 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"iMX" = ( +/obj/structure/cable, +/obj/machinery/power/terminal, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"iNi" = ( +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/obj/machinery/computer/rdconsole/production{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"iNE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Gas to Filter" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"iNK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"iNV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"iOe" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/starboard) +"iOp" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/obj/structure/window/plasma/reinforced{ + dir = 1 + }, +/obj/machinery/rnd/production/protolathe/department/engineering, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Engineering Storage"; + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"iOG" = ( +/turf/closed/wall/r_wall, +/area/maintenance/department/bridge) +"iOH" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"iOR" = ( +/obj/machinery/computer/rdconsole/robotics, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"iOW" = ( +/obj/effect/landmark/observer_start, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"iPC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/closet/secure_closet/genpop, +/obj/item/radio/headset{ + desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; + name = "prisoner headset"; + prison_radio = 1 + }, +/obj/item/clothing/suit/hooded/wintercoat, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"iPO" = ( +/obj/structure/displaycase/trophy, +/turf/open/floor/wood, +/area/library) +"iPX" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"iQv" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Courtroom"; + req_access_txt = "42" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/wood, +/area/security/courtroom) +"iQD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/atmos/abandoned{ + name = "Atmospherics Maintenance"; + req_access_txt = "12;24" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"iRy" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/table, +/obj/structure/bedsheetbin{ + pixel_x = 2 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"iRF" = ( +/obj/machinery/door/airlock/external, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"iRO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/heads/hor) +"iRQ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/computer/security/telescreen/prison{ + pixel_y = 30 + }, +/obj/effect/turf_decal/arrows/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"iSg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"iSo" = ( +/obj/machinery/photocopier, +/obj/machinery/camera{ + c_tag = "Law Office" + }, +/turf/open/floor/plasteel/cult, +/area/lawoffice) +"iSB" = ( +/obj/machinery/light/floor, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"iTP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/chapel/main) +"iTS" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"iTY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/junction/flip, +/turf/open/floor/plasteel/white, +/area/hallway/primary/port) +"iVB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"iVY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"iWf" = ( +/turf/open/floor/plating, +/area/hallway/primary/aft) +"iWu" = ( +/obj/machinery/chem_master, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"iWG" = ( +/obj/item/radio/intercom{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"iWY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/junction{ + dir = 2 + }, +/turf/open/floor/plasteel/white, +/area/hallway/primary/port) +"iXG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"iXH" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/recharger{ + name = "wall-mounted recharger"; + pixel_y = 34 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel/dark, +/area/security/main) +"iXZ" = ( +/obj/machinery/computer/security/telescreen/toxins{ + dir = 1; + network = list("toxins"); + pixel_y = -28 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"iYb" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"iYh" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/science/xenobiology"; + dir = 8; + name = "Xenobiology APC"; + pixel_x = -25 + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"iYF" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"iYI" = ( +/obj/machinery/camera{ + c_tag = "Cargo Office"; + dir = 4 + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"iZc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"iZu" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/closet/secure_closet/medical3, +/obj/item/clothing/glasses/hud/health, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"iZH" = ( +/turf/closed/wall/r_wall, +/area/medical/medbay/central) +"iZZ" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"jab" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"jae" = ( +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel/dark, +/area/security/main) +"jap" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"jbc" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"jbg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"jbE" = ( +/obj/machinery/vending/wardrobe/gene_wardrobe, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"jcr" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"jcR" = ( +/obj/structure/table/wood, +/obj/item/taperecorder, +/obj/item/cartridge/lawyer, +/obj/item/clothing/glasses/sunglasses/big{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/glasses/sunglasses/big, +/obj/machinery/button/door{ + id = "lawyer_blast"; + name = "Privacy Shutters"; + pixel_x = 25; + pixel_y = 8 + }, +/turf/open/floor/plasteel/cult, +/area/lawoffice) +"jcS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"jcT" = ( +/turf/closed/wall, +/area/hallway/primary/central) +"jcU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/chair/pew/left{ + dir = 8 + }, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"jdw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"jdS" = ( +/obj/effect/turf_decal/vg_decals/atmos/mix, +/turf/open/floor/engine/airless, +/area/engine/atmos) +"jed" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/terminal, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"jen" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"jeo" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"jes" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/landmark/start/shaft_miner, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"jex" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/airlock/research{ + name = "Experimentation Lab"; + req_access_txt = "47" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"jeJ" = ( +/obj/machinery/door/poddoor{ + id = "tegvent"; + name = "TEG Vent" + }, +/turf/open/floor/engine, +/area/engine/atmospherics_engine) +"jfi" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "packageSort2" + }, +/obj/structure/disposaloutlet{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"jfH" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/icemoon/surface/outdoors) +"jga" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"jgj" = ( +/obj/machinery/telecomms/server/presets/common, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"jgz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"jhe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=AIE"; + location = "AftH" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"jhF" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/maintenance/solars/port/aft) +"jih" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"jil" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"jin" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/smes, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"jix" = ( +/obj/machinery/camera{ + c_tag = "Brig Genpop Exterior"; + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"jiV" = ( +/obj/structure/table, +/obj/item/storage/firstaid/brute, +/obj/item/storage/firstaid/brute{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"jiY" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/autolathe, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"jji" = ( +/obj/machinery/vending/autodrobe, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"jjn" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/computer/bounty, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"jjB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"jjC" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/turf/open/floor/plating, +/area/engine/storage) +"jkw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"jkJ" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"jkL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"jlf" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"jll" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"jls" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"jlL" = ( +/obj/structure/table/wood, +/obj/machinery/microwave{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"jmd" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"jmf" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/storage/atmos) +"jmU" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"jnh" = ( +/obj/effect/landmark/start/cook, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"job" = ( +/obj/structure/chair/comfy/black, +/turf/open/floor/plasteel/dark, +/area/bridge) +"joq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"joT" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/surgery"; + dir = 1; + name = "Surgical Center APC"; + pixel_y = 26 + }, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"joU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"jpd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/command{ + name = "Head of Personnel"; + req_access_txt = "57" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"jph" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"jpr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"jro" = ( +/obj/machinery/vr_sleeper{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"jrq" = ( +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/engine/secure_construction) +"jrH" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"jrR" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/gateway, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"jsl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"jso" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"jsu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/telecomms/receiver/preset_right, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"jsz" = ( +/obj/structure/table, +/obj/item/kitchen/rollingpin, +/obj/item/reagent_containers/food/condiment/flour, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"juI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"jvb" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/obj/item/storage/fancy/donut_box, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"jvy" = ( +/obj/structure/barricade/wooden/snowed{ + max_integrity = 10; + obj_integrity = 10 + }, +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"jvA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"jvV" = ( +/obj/machinery/mineral/stacking_unit_console{ + machinedir = 8 + }, +/turf/closed/wall, +/area/maintenance/disposal) +"jwc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"jwj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/bridge) +"jwo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"jwN" = ( +/obj/machinery/air_sensor/atmos/toxins_mixing_tank, +/turf/open/floor/engine/airless, +/area/science/mixing) +"jwP" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"jxw" = ( +/obj/machinery/computer/security/telescreen/cmo{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"jxB" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/solar{ + id = "starboardsolar"; + name = "Starboard Solar Array" + }, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/icemoon/surface/outdoors) +"jxS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"jxZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"jyj" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"jyA" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"jzc" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"jzx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"jAb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"jAq" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"jAv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/barricade/wooden{ + max_integrity = 10; + obj_integrity = 10 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"jAy" = ( +/obj/effect/landmark/blobstart, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/storage) +"jAL" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 5 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"jAT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"jBk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/maintenance{ + name = "Chapel Maintenance"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/chapel/main) +"jBl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"jBr" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"jBP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"jCw" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/computer/cargo/request{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"jCF" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"jCL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/closet/crate/wooden/toy, +/obj/item/megaphone/clown, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"jCW" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Server Room"; + req_access_txt = "61" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/server) +"jDr" = ( +/turf/open/floor/carpet, +/area/chapel/office) +"jDD" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"jDG" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/button/door{ + id = "capshut"; + name = "Privacy Shutters"; + pixel_x = -26; + pixel_y = 8 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"jDH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/heads/hor) +"jDK" = ( +/obj/machinery/light/small, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"jEb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/landmark/start/paramedic, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"jER" = ( +/obj/machinery/vending/kink, +/turf/open/floor/plating, +/area/maintenance/bar) +"jFl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"jFv" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/engine/secure_construction) +"jFy" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/machinery/power/apc{ + areastring = "/area/science/mixing"; + name = "Toxins Lab APC"; + pixel_y = -26 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"jFG" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"jFS" = ( +/obj/effect/spawner/structure/window/ice, +/turf/open/floor/plating, +/area/maintenance/bar) +"jFY" = ( +/obj/structure/bodycontainer/morgue{ + dir = 2 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"jFZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/mob/living/simple_animal/bot/medbot, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"jGd" = ( +/obj/structure/table/reinforced, +/obj/machinery/chem_dispenser/drinks{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"jGi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"jGp" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"jGF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"jHC" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/space_heater, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"jHD" = ( +/obj/machinery/computer/cargo{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"jHF" = ( +/obj/machinery/food_cart, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"jHT" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Diner" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"jIc" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"jIj" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"jIk" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plating, +/area/engine/storage) +"jIt" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint/supply) +"jIu" = ( +/obj/machinery/clonepod, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"jJb" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/chief) +"jJd" = ( +/turf/open/floor/pod/dark, +/area/maintenance/starboard) +"jJu" = ( +/turf/closed/wall/r_wall, +/area/medical/medbay/zone3) +"jKb" = ( +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/storage/primary) +"jKF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"jKT" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/button/ignition/incinerator/toxmix{ + pixel_x = -8; + pixel_y = -22 + }, +/obj/machinery/button/door/incinerator_vent_toxmix{ + pixel_y = -22; + pixel_x = 9 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"jKV" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod One" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/hallway/primary/port) +"jLp" = ( +/obj/effect/turf_decal/arrows/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"jLF" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/engine/engineering) +"jLG" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/obj/machinery/mineral/stacking_machine{ + input_dir = 1; + stack_amt = 10 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/disposal) +"jMk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "Dorm6"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_y = -25; + specialfunctions = 4 + }, +/obj/structure/table/wood, +/obj/item/radio/intercom{ + pixel_x = -30 + }, +/turf/open/floor/carpet, +/area/quartermaster/miningoffice) +"jNp" = ( +/obj/machinery/dna_scannernew, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"jNw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"jNK" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/landmark/start/janitor, +/turf/open/floor/plasteel, +/area/janitor) +"jNZ" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/closet/secure_closet/hos, +/obj/item/clothing/suit/hooded/wintercoat/security, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"jOj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"jOl" = ( +/obj/machinery/vending/clothing, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/fitness/recreation) +"jOo" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/mineral/wood, +/area/icemoon/surface/outdoors) +"jOy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, +/area/storage/atmos) +"jOB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"jOE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"jOJ" = ( +/obj/structure/chair/comfy/brown, +/obj/effect/landmark/start/captain, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"jPb" = ( +/obj/structure/window/plasma/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Hot Loop Entrance" + }, +/turf/open/floor/plating, +/area/engine/atmospherics_engine) +"jPh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"jPj" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"jPm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmospherics_engine) +"jPz" = ( +/obj/machinery/door/window/eastright{ + dir = 8; + name = "Research and Development Desk"; + req_one_access_txt = "7;29" + }, +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/lab) +"jPI" = ( +/obj/machinery/cryopod{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"jPP" = ( +/obj/machinery/gateway{ + dir = 8 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"jQj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"jQp" = ( +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"jQB" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/bridge) +"jQN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{ + dir = 8 + }, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"jRD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"jRU" = ( +/obj/structure/table/glass, +/obj/item/stock_parts/scanning_module, +/obj/item/stock_parts/scanning_module, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/matter_bin, +/obj/item/stack/sheet/glass, +/obj/item/stack/sheet/glass, +/obj/item/stack/sheet/glass, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/lab) +"jSq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"jTl" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/computer/cargo{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"jTo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced, +/obj/vehicle/ridden/atv/snowmobile/snowcurity, +/obj/item/key/security, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"jTs" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"jTP" = ( +/obj/machinery/light, +/obj/machinery/shower{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/white, +/area/security/brig) +"jTY" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"jUf" = ( +/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible, +/obj/machinery/computer/atmos_control/tank/nitrogen_tank{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"jUn" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"jUu" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"jUB" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Gas to Filter" + }, +/obj/machinery/airalarm/engine{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"jVc" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Gas to Chamber" + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"jVx" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 32 + }, +/obj/item/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel/dark, +/area/security/main) +"jWl" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/department/bridge) +"jWr" = ( +/turf/closed/wall/r_wall, +/area/storage/tech) +"jWx" = ( +/obj/structure/table/glass, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/reagent_containers/glass/bottle/epinephrine, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"jWy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"jXa" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"jXh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"jXL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"jYS" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/light, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"jYT" = ( +/obj/machinery/power/solar_control{ + dir = 4; + id = "portsolar"; + name = "Port Quarter Solar Control" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"jZg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"jZl" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"jZy" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"jZW" = ( +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"kag" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"kaK" = ( +/obj/effect/turf_decal/vg_decals/atmos/air, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine/air, +/area/engine/atmos) +"kaM" = ( +/obj/machinery/smartfridge, +/turf/open/floor/plasteel, +/area/hydroponics) +"kbR" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/storage/firstaid/regular{ + pixel_y = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) +"kcn" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"kcw" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"kcM" = ( +/obj/structure/plasticflaps, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor"; + name = "supply dock loading door" + }, +/obj/machinery/conveyor{ + id = "QMLoad" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"kcX" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/structure/barricade/wooden/snowed{ + max_integrity = 10; + obj_integrity = 10 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"kdm" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Cargo Delivery Office" + }, +/obj/structure/closet/crate/trashcart, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"kds" = ( +/obj/structure/cable, +/obj/structure/closet/toolcloset, +/obj/machinery/power/apc{ + areastring = "/area/storage/auxiliary"; + name = "Auxiliary Tool Storage APC"; + pixel_y = -24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/auxiliary) +"kdA" = ( +/obj/structure/table/glass, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"kdM" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/conveyor{ + id = "QMLoad2"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"kdR" = ( +/obj/machinery/airalarm{ + pixel_y = 25 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/vehicle/ridden/atv/snowmobile, +/obj/item/key, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"keq" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/obj/structure/closet/secure_closet/atmospherics, +/obj/machinery/camera{ + c_tag = "Atmospherics South West"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ker" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"keu" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/computer/security{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"keC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"keI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"kfv" = ( +/turf/closed/wall/r_wall, +/area/security/prison) +"kfJ" = ( +/obj/structure/table/wood, +/obj/item/clothing/under/misc/burial, +/obj/item/storage/book/bible, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/carpet, +/area/chapel/office) +"kge" = ( +/obj/structure/window{ + dir = 8 + }, +/obj/structure/window{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"kgx" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + desc = "Used to grind things up into raw materials and liquids."; + pixel_y = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"kgM" = ( +/obj/machinery/telecomms/server/presets/engineering, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"kgR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"khf" = ( +/obj/structure/bed, +/obj/item/bedsheet/syndie, +/obj/machinery/flasher{ + id = "Cell 3"; + pixel_x = -24; + pixel_y = -36 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"khw" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"khy" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/closed/wall, +/area/quartermaster/sorting) +"kii" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/glowshroom, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"kij" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"kin" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/clothing/suit/armor/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/head/helmet/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"kis" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"kiB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/bed/roller, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"kjh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"kkn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/junction/yjunction, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"kkt" = ( +/obj/structure/table/glass, +/obj/item/book/manual/wiki/infections{ + pixel_y = 7 + }, +/obj/item/reagent_containers/spray/cleaner, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/syringe/antiviral, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"kkB" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/reagent_containers/food/snacks/soup/hotchili, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"kkG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"kkJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "hos" + }, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"kkY" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"klc" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/starboard) +"klh" = ( +/obj/structure/table, +/obj/item/radio/headset/headset_med, +/obj/item/hand_labeler, +/obj/structure/reagent_dispensers/virusfood{ + pixel_x = 30 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"klo" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/table, +/obj/item/storage/box/mousetraps, +/obj/item/storage/box/mousetraps, +/obj/item/restraints/legcuffs/beartrap, +/obj/item/restraints/legcuffs/beartrap, +/turf/open/floor/plasteel, +/area/janitor) +"klQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/courtroom) +"kms" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/theatre) +"kmA" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"kmH" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/space_heater, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms) +"knn" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Security Lobby" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/wood, +/area/hallway/primary/central) +"knx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/turf/open/floor/plating, +/area/security/brig) +"knI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"knR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"kol" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "tegvent"; + name = "TEG Vent"; + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"kop" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"kox" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel, +/area/hydroponics) +"kpO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"kpX" = ( +/obj/structure/window/plasma/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/valve/digital/layer1{ + name = "injector valve" + }, +/turf/open/floor/plating, +/area/engine/atmospherics_engine) +"kqo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/disposal) +"kqV" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"krq" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/hallway/secondary/exit/departure_lounge) +"krB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/quartermaster/sorting) +"krH" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/qm) +"krT" = ( +/obj/docking_port/stationary{ + dwidth = 3; + height = 4; + id = "snaxi_s"; + name = "South Taxi Port"; + roundstart_template = /datum/map_template/shuttle/snow_taxi; + width = 6 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"krV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/landmark/start/chief_engineer, +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"ksq" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/door/airlock/security/glass{ + name = "Holding Area"; + req_access_txt = "2" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"ksM" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/closet/secure_closet/atmospherics, +/obj/machinery/power/apc{ + areastring = "/area/engine/atmos"; + name = "Atmospherics APC"; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ktd" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/genetics) +"kti" = ( +/obj/effect/turf_decal/bot, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ktt" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/manifold/green/visible, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/engine/engineering) +"ktw" = ( +/turf/closed/wall/mineral/wood, +/area/icemoon/surface/outdoors) +"ktT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"ktW" = ( +/obj/machinery/vending/wallmed{ + pixel_y = 28 + }, +/obj/structure/table, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/storage/belt/medical{ + pixel_y = 2 + }, +/obj/item/storage/belt/medical{ + pixel_y = 2 + }, +/obj/item/storage/belt/medical{ + pixel_y = 2 + }, +/obj/item/clothing/neck/stethoscope, +/obj/item/reagent_containers/spray/cleaner, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"kuy" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/machinery/camera{ + c_tag = "Medbay Patient Room"; + dir = 4; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"kvG" = ( +/obj/effect/turf_decal/trimline/red/filled, +/obj/machinery/suit_storage_unit/security, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"kwl" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"kwY" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/computer/security/mining{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"kxf" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"kxj" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/machinery/camera{ + c_tag = "Testing Lab East"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"kxI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 10 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"kxP" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + sortType = 28 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"kxU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"kyc" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"kyf" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"kyo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"kyV" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/department/bridge) +"kzf" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side, +/area/hallway/primary/port) +"kzS" = ( +/obj/machinery/computer/upload/borg, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"kAv" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/chapel/office) +"kAO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"kBb" = ( +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmos) +"kBe" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"kBK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"kCi" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"kCI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/book/manual/wiki/barman_recipes, +/obj/item/reagent_containers/food/drinks/shaker, +/obj/item/paper/fluff{ + info = "Renovation Notice

    The bar layout for the station is very old. We've decided to give it a facelift after our partnership with IKEA Intergalactic?.
  • We added some sweet retro arcade machines and much more seating area. We removed the stage since it hasn't ever been used.
  • You can run this place like a restaurant now that you have tables. Go whip up a menu with the Chef. You have a condiments table and your Requests Console has been moved so a noticeboard can be placed there. Take tickets from customers and pin them on the noticeboard for the Chef.
  • We hope you like the new bar!"; + name = "Renovation Notice - Bar"; + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/stack/spacecash/c100, +/obj/machinery/requests_console{ + department = "Bar"; + departmentType = 2; + pixel_x = -30; + pixel_y = 26; + receive_ore_updates = 1 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"kDy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"kEd" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"kEf" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"kEz" = ( +/obj/vehicle/ridden/atv/snowmobile, +/obj/item/key, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"kEW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/maintenance{ + name = "Chapel Office Maintenance"; + req_access_txt = "22" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"kFr" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/hop) +"kFF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/bed/roller, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) +"kGo" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"kGS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"kHd" = ( +/turf/open/floor/pod/dark, +/area/medical/paramedic) +"kHm" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/atmos) +"kHr" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Lab - Pen #1"; + dir = 8; + network = list("ss13","rd","xeno") + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"kHD" = ( +/turf/open/floor/engine{ + name = "Holodeck Projector Floor" + }, +/area/holodeck/rec_center) +"kHI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"kHP" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"kHX" = ( +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"kIp" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"kIG" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"kJk" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"kJs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"kJE" = ( +/turf/open/floor/carpet, +/area/chapel/main) +"kJO" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Escape Arm Holding Area"; + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"kKk" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/grass, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"kKY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"kLh" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"kLo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/obj/machinery/vending/cart, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"kLQ" = ( +/obj/machinery/camera/motion{ + c_tag = "Vault"; + dir = 4; + network = list("vault") + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/item/radio/intercom{ + pixel_x = -25 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"kMc" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"kMt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"kMy" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"kMK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"kMT" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/table/glass, +/obj/item/cartridge/chemistry{ + pixel_y = 2 + }, +/obj/item/cartridge/medical, +/obj/item/cartridge/medical{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/cartridge/medical{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/pen, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"kNQ" = ( +/obj/machinery/suit_storage_unit/hos, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"kOi" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{ + dir = 8 + }, +/obj/machinery/air_sensor/atmos/oxygen_tank{ + pixel_y = -25 + }, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"kPi" = ( +/obj/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/floor/engine, +/area/engine/atmospherics_engine) +"kPj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"kPn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"kPu" = ( +/obj/structure/window/plasma/reinforced{ + dir = 4 + }, +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"kPA" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "garbage" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"kPQ" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"kQn" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/tcomms, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"kQr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"kQG" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/maintenance/aft/secondary) +"kRk" = ( +/turf/open/floor/plasteel/white, +/area/crew_quarters/dorms) +"kRz" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/construction/storage) +"kRI" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lantern{ + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/icemoon/surface/outdoors) +"kRK" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/wood, +/area/hallway/primary/port) +"kRX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/closet/secure_closet/hydroponics, +/turf/open/floor/plasteel, +/area/hydroponics) +"kSk" = ( +/obj/machinery/libraryscanner, +/turf/open/floor/wood, +/area/library) +"kSR" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"kTj" = ( +/obj/structure/table, +/obj/item/storage/box/lights/mixed, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plating, +/area/construction/storage) +"kTI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/hallway/primary/port) +"kTN" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"kTY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + sortType = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"kUo" = ( +/obj/machinery/door/airlock/virology{ + name = "Break Room"; + req_access_txt = "39" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"kUy" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"kVo" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"kVx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"kVD" = ( +/obj/structure/cable, +/turf/open/floor/plasteel/dark, +/area/engine/supermatter) +"kVO" = ( +/turf/closed/wall, +/area/hallway/primary/aft) +"kWC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"kXG" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"kXY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"kYg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"kYs" = ( +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"kYF" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ai_monitored/security/armory) +"kZL" = ( +/turf/open/floor/wood, +/area/icemoon/surface/outdoors) +"lac" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"lam" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/scientist, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"las" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 30 + }, +/obj/structure/light_construct/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"lat" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"laE" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/medical/virology) +"laL" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"lbp" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/central) +"lbu" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Port Auxiliary Solar Array" + }, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/icemoon/surface/outdoors) +"lbv" = ( +/obj/machinery/atmospherics/components/binary/pump, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"ldt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/command{ + name = "Teleport and Gateway Access"; + req_access_txt = "17" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"ldE" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/secondary/entry) +"lek" = ( +/obj/effect/turf_decal/vg_decals/atmos/oxygen, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"lel" = ( +/obj/effect/landmark/start/botanist, +/turf/open/floor/plasteel, +/area/hydroponics) +"lep" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/shieldwallgen/xenobiologyaccess, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"leq" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 27 + }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"leT" = ( +/turf/open/floor/engine, +/area/engine/supermatter) +"leZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"lfd" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"lfl" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"lfs" = ( +/obj//obj/item/kirbyplants{ + icon_state = "plant-08" + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"lfy" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/public/glass{ + name = "Hydroponics"; + req_access_txt = "35" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hydroponics) +"lfD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"lfG" = ( +/obj/machinery/atmospherics/pipe/manifold/green/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"lfV" = ( +/obj/structure/closet/cardboard, +/turf/open/floor/plating, +/area/maintenance/starboard) +"lgn" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"lgq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"lgJ" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"lgX" = ( +/obj/machinery/camera{ + c_tag = "Fore Starboard Solars"; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/smes, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"lhi" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/aft"; + dir = 8; + name = "Toxins Launch APC"; + pixel_x = -25 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"lhr" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"lhB" = ( +/obj/machinery/camera{ + c_tag = "Northwestern Hall 7"; + dir = 8 + }, +/obj/machinery/computer/shuttle/snow_taxi{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"lhQ" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"lhR" = ( +/obj/structure/table, +/obj/item/storage/firstaid/fire, +/obj/item/storage/firstaid/fire{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"lia" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/landmark/start/assistant, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"liL" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/ai_monitored/turret_protected/ai"; + dir = 4; + name = "AI Chamber APC"; + pixel_x = 24 + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"ljh" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/obj/structure/chair/stool, +/obj/effect/landmark/start/scientist, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"ljL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"ljT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/medical/paramedic) +"lki" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"lkP" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"lkQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"llu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"lmm" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"lmu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"lmy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hydroponics) +"lmC" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/hallway/primary/port) +"lng" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/computer/station_alert{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"lnx" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"lnH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/engine/storage) +"lnW" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"lob" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"loe" = ( +/obj/machinery/teleport/hub, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/teleporter) +"lom" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/miningoffice) +"loM" = ( +/obj/machinery/vending/wardrobe/chef_wardrobe, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"loO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"loT" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/genetics"; + dir = 4; + name = "Genetics APC"; + pixel_x = 24 + }, +/obj/structure/table/glass, +/obj/item/storage/pill_bottle/mannitol, +/obj/item/storage/pill_bottle/mutadone{ + pixel_x = 3 + }, +/obj/item/radio/headset/headset_medsci, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"loV" = ( +/obj/machinery/flasher{ + id = "Cell 1"; + pixel_x = -24; + pixel_y = -36 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"lpb" = ( +/obj/structure/table/wood, +/obj/effect/landmark/xeno_spawn, +/obj/item/gavelblock, +/turf/open/floor/wood, +/area/security/courtroom) +"lpl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"lpT" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"lpW" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/table/glass, +/obj/item/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = -2; + pixel_y = 9 + }, +/obj/item/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 7; + pixel_y = 1 + }, +/obj/item/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 5; + pixel_y = 9 + }, +/obj/item/wrench/medical, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"lqg" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"lqt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/atmos) +"lqW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"lrK" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmospherics_engine) +"lrV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"lsh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/atmospherics_engine) +"lsA" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Medbay Break Room"; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"ltk" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/power/apc{ + areastring = "/area/storage/eva"; + dir = 1; + name = "EVA Storage APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"ltF" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/wood, +/area/hallway/primary/port) +"ltY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/public/glass{ + name = "Hydroponics"; + req_access_txt = "35" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hydroponics) +"lud" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"luf" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"lul" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/arrows/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"luo" = ( +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"lwH" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"lxz" = ( +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/rad_collector/anchored, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"lxF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"lxL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"lxV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"lyt" = ( +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/obj/machinery/doppler_array/research/science{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"lyu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"lyv" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"lzh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"lzi" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/fans/tiny/invisible, +/obj/structure/barricade/wooden/crude/snow{ + max_integrity = 15; + obj_integrity = 15 + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"lzw" = ( +/obj/machinery/firealarm{ + pixel_y = 25 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/end, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"lzB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"lzW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/closet/crate/hydroponics, +/obj/item/wirecutters, +/obj/item/shovel/spade, +/obj/item/reagent_containers/glass/bucket, +/obj/item/wrench, +/turf/open/floor/plasteel, +/area/hydroponics) +"lAp" = ( +/obj/machinery/button/door{ + desc = "A remote control-switch for secure storage."; + id = "Secure Storage"; + name = "Engineering Secure Storage"; + pixel_x = -24; + req_access_txt = "10" + }, +/obj/structure/closet/secure_closet/engineering_welding, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"lAv" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/break_room) +"lAL" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/storage/box/donkpockets, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"lAS" = ( +/obj/item/storage/secure/safe{ + pixel_x = 5; + pixel_y = 29 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"lBe" = ( +/obj/machinery/smartfridge/chemistry/virology/preloaded, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"lBF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/icecream_vat, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"lBH" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"lBT" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"lCi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"lCQ" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"lCW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"lDj" = ( +/obj/machinery/computer/med_data{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"lDV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/disposal) +"lEy" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"lEU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"lFu" = ( +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/airlock/engineering/glass{ + name = "TEG Engine Room"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"lFv" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"lFK" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/vr_sleeper{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"lFN" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"lGp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/hallway/primary/central) +"lGy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/camera{ + c_tag = "MiniSat External North"; + dir = 1; + network = list("minisat"); + start_active = 1 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"lGB" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) +"lHa" = ( +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmospherics_engine) +"lHl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel, +/area/engine/atmos) +"lHn" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"lHH" = ( +/turf/open/floor/mech_bay_recharge_floor, +/area/science/robotics/mechbay) +"lHZ" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plating, +/area/engine/storage) +"lIm" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"lIn" = ( +/obj/structure/sink{ + pixel_y = 30 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"lIJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/weightmachine/stacklifter, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"lJi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"lJp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/engine/atmos) +"lJA" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"lJC" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"lJN" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/dorms) +"lKT" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"lLa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"lLv" = ( +/obj/structure/chair/comfy/beige{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"lLD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock{ + name = "Theatre Backstage"; + req_access_txt = "46" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/theatre) +"lMx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"lMF" = ( +/obj/machinery/camera{ + c_tag = "Virology Module"; + network = list("ss13","medbay"); + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"lNm" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/shieldwallgen/xenobiologyaccess, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/item/radio/intercom{ + pixel_y = -26 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"lNK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"lNU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet/orange, +/area/engine/secure_construction) +"lOs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"lOF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"lOO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"lOX" = ( +/obj/machinery/sleeper{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/mirror{ + pixel_x = 25 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"lPB" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"lQp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"lQs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"lQJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"lRx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"lSt" = ( +/obj/effect/landmark/start/janitor, +/turf/open/floor/plasteel, +/area/janitor) +"lSN" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/rnd/production/techfab/department/medical, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"lTh" = ( +/obj/structure/table/glass, +/obj/item/storage/firstaid/regular, +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/reagent_containers/spray/cleaner, +/obj/item/storage/box/bodybags, +/obj/item/reagent_containers/glass/bottle/charcoal{ + pixel_x = 2; + pixel_y = 2 + }, +/turf/open/floor/plasteel/white, +/area/security/brig) +"lTs" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"lTB" = ( +/obj/structure/table/glass, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/item/clothing/glasses/hud/health, +/obj/item/stamp/cmo, +/obj/item/clothing/neck/stethoscope, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"lTJ" = ( +/obj/structure/table, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"lTT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/command{ + name = "Captain's Office"; + req_access_txt = "20" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"lUd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Storage"; + req_access_txt = "5" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"lVd" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/obj/machinery/camera{ + c_tag = "Kitchen Cold Room" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"lVK" = ( +/obj/machinery/blackbox_recorder, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"lVN" = ( +/obj/structure/closet/crate/secure/engineering{ + name = "Supermatter Shard Crate" + }, +/obj/machinery/power/supermatter_crystal/shard, +/turf/open/floor/plating, +/area/engine/storage) +"lVS" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"lWb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/science/lab) +"lWf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/aisat/service) +"lWi" = ( +/obj/machinery/suit_storage_unit/engine, +/turf/open/floor/plating, +/area/construction/storage) +"lWo" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"lWy" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"lWP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"lWR" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"lXk" = ( +/obj/structure/mineral_door/woodrustic, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"lXR" = ( +/obj/machinery/camera{ + c_tag = "Northwest Paramedic Post Garage"; + network = list("ss13","medbay") + }, +/turf/open/floor/pod/dark, +/area/medical/paramedic) +"lXT" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/light, +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmospherics_engine) +"lYk" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/storage/firstaid/regular, +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"lYy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/start/scientist, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"lYM" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/computer/med_data{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"lYN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/miningdock) +"lYS" = ( +/obj/structure/plasticflaps/opaque, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "Security" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"lZi" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/effect/turf_decal/bot_white, +/obj/effect/landmark/secequipment, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"lZj" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/grenade/barrier{ + pixel_x = -4 + }, +/obj/item/grenade/barrier, +/obj/item/grenade/barrier{ + pixel_x = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"lZn" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"lZs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"lZL" = ( +/turf/open/floor/carpet, +/area/hallway/primary/port) +"mai" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/camera{ + c_tag = "Escape Arm Central"; + dir = 1 + }, +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"maj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"mao" = ( +/obj/structure/tank_dispenser{ + pixel_x = -1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"maG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"maL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"maR" = ( +/obj/structure/fans/tiny, +/obj/structure/mineral_door/woodrustic, +/turf/open/floor/wood, +/area/icemoon/surface/outdoors) +"mbm" = ( +/turf/closed/wall, +/area/maintenance/port/fore) +"mbt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"mbE" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/turf/open/floor/plasteel, +/area/hydroponics) +"mbM" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/dark, +/area/bridge) +"mcs" = ( +/obj/structure/displaycase/captain, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"mcy" = ( +/obj/machinery/camera{ + c_tag = "Mining Dock External"; + dir = 8 + }, +/obj/vehicle/ridden/atv/snowmobile, +/obj/item/key, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"mcU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"mdq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"mdG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"mek" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/quartermaster/miningoffice) +"meG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"mfi" = ( +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/open/floor/wood, +/area/hallway/primary/port) +"mfm" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"mfC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"mfF" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/cmo"; + dir = 1; + name = "CM Office APC"; + pixel_x = -32; + pixel_y = 4 + }, +/obj/effect/landmark/start/chief_medical_officer, +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"mgo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Cargo Bay Warehouse"; + req_access_txt = "31" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"mgC" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"mgM" = ( +/turf/open/floor/plating, +/area/storage/tech) +"mgV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"mhq" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Cargo Bay North" + }, +/obj/machinery/vending/wardrobe/cargo_wardrobe, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"mhv" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"mhz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/research{ + name = "Toxins Lab"; + req_access_txt = "7" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/science/mixing) +"mhG" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/atmospherics_engine) +"mhH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/courtroom) +"mia" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"mjH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"mjX" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/maintenance/solars/starboard/aft) +"mkd" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"mkm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/fore"; + dir = 1; + name = "Fore Primary Hallway APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"mkr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel, +/area/engine/engineering) +"mky" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail{ + sortType = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"mkY" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth (Chaplain)"; + req_access_txt = "22" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"mlM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/security/checkpoint/supply) +"mmJ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"mmK" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"mmM" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"mmO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"mmQ" = ( +/obj/machinery/vending/engivend, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"mmY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/vehicle/ridden/atv/snowmobile, +/obj/item/key, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"mnj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"mnL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"moD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/storage/belt/medical{ + pixel_y = 2 + }, +/obj/item/storage/belt/medical, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"moX" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"mpj" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/virology) +"mps" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"mqb" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"mqc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"mqm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/carpet, +/area/bridge) +"mqT" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmos) +"mrM" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/arrows/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"mrW" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/sign/poster/contraband/clown{ + pixel_y = -32 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"mse" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ai_monitored/security/armory) +"msg" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plasteel, +/area/science/storage) +"msi" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"msm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"msA" = ( +/obj/machinery/holopad, +/turf/open/floor/wood, +/area/security/courtroom) +"msK" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/chair/sofa/left{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"msN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"mtz" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"mtP" = ( +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"mtY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/green/visible, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/engine/engineering) +"muk" = ( +/obj/machinery/rnd/bepis, +/turf/open/floor/engine, +/area/science/misc_lab) +"muN" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"mvA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/quartermaster/storage) +"mvQ" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"mwQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/closet/cabinet, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/pickaxe, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"mwV" = ( +/obj/machinery/vending/medical{ + pixel_x = -2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"mwW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel/dark, +/area/security/main) +"mxo" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"mxt" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/server) +"mxF" = ( +/obj/machinery/light/floor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"myh" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/robotics/lab) +"myq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"myZ" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"mzj" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/modular_computer/console/preset/engineering, +/turf/open/floor/plasteel, +/area/engine/break_room) +"mzs" = ( +/obj/machinery/power/emitter, +/turf/open/floor/plating, +/area/engine/storage) +"mzx" = ( +/obj/machinery/telecomms/processor/preset_four, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"mzB" = ( +/obj/structure/table, +/obj/item/mmi, +/obj/item/mmi, +/obj/item/mmi, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"mAk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"mAn" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"mAx" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"mAK" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"mBK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"mDm" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"mDp" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/pen/red, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"mDB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"mDO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/plating, +/area/security/brig) +"mDW" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"mDX" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"mEE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"mEI" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 2; + icon_state = "left"; + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"mFg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mGa" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"mGb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"mGl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/flasher{ + id = "AI"; + pixel_x = -26; + pixel_y = 3 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"mGp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/hydroponics) +"mGE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"mGL" = ( +/obj/structure/closet/secure_closet/RD, +/obj/machinery/light_switch{ + pixel_y = -23 + }, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/heads/hor) +"mGT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"mHT" = ( +/obj/structure/closet/l3closet/scientist, +/obj/item/extinguisher, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"mHU" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/bananalamp{ + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"mIe" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"mIl" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"mIu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"mIz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"mIO" = ( +/obj/machinery/camera{ + c_tag = "Mech Bay"; + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24; + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"mJd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"mJr" = ( +/obj/structure/chair/sofa{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/landmark/start/depsec/science, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"mKk" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/zipties{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/storage/box/zipties{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/storage/fancy/donut_box, +/obj/machinery/camera{ + c_tag = "Brig Control"; + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_x = -30 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"mKv" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"mKD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/chair/stool, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"mKL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1; + sortType = 15 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"mKO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "engsm"; + name = "Radiation Shutters Control"; + req_access_txt = "10"; + pixel_y = 25 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"mLu" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/obj/machinery/computer/atmos_control/tank/oxygen_tank{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mLB" = ( +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Toxins Launch Hall 2"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"mLD" = ( +/obj/structure/closet/wardrobe/chemistry_white, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"mLK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table, +/obj/structure/bedsheetbin/color, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -26 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/dorms) +"mLO" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = -9 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + dir = 1; + pixel_x = -3 + }, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -9; + pixel_y = 9 + }, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 9 + }, +/obj/item/sharpener{ + pixel_x = 10 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"mLP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/storage/eva) +"mMs" = ( +/turf/closed/wall/r_wall, +/area/engine/break_room) +"mMP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + req_access_txt = "19" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"mNo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"mNq" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/water_vapor, +/turf/open/floor/plasteel, +/area/janitor) +"mNG" = ( +/obj/item/target, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"mNP" = ( +/obj/machinery/vending/wallmed{ + pixel_y = -28 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"mNS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/turnstile{ + name = "Genpop Exit Turnstile"; + req_access_txt = "70"; + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "permacell1"; + name = "genpop blast door" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"mOe" = ( +/obj/machinery/telecomms/server/presets/security, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"mOv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"mOx" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"mOE" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mOG" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/chapel/main) +"mPm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"mPM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/hallway/primary/central) +"mPR" = ( +/obj/machinery/door/airlock{ + desc = "A small bathroom with a sink, toilet and shower."; + id_tag = "Bath2"; + name = "Bathroom" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/dorms) +"mQo" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Hydroponics North" + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"mQC" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/disposal) +"mQD" = ( +/obj/structure/bookcase/random/adult, +/turf/open/floor/wood, +/area/library) +"mQJ" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"mQK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"mQV" = ( +/obj/machinery/button/door{ + id = "trash"; + name = "Disposal Vent Control"; + pixel_x = -8; + pixel_y = -25; + req_access_txt = "12" + }, +/obj/machinery/conveyor_switch/oneway{ + dir = 8; + id = "garbage"; + name = "disposal conveyor" + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"mRz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"mRZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/storage/primary) +"mSs" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"mSt" = ( +/turf/closed/wall, +/area/janitor) +"mSN" = ( +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/department/electrical) +"mTl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/hallway/primary/central) +"mTw" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer, +/obj/item/radio/intercom{ + frequency = 1485; + name = "Station Intercom (Medbay)"; + pixel_y = 30 + }, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"mVb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "armory2"; + name = "Armory Shutters"; + pixel_y = 26; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"mVe" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/port/aft"; + dir = 4; + name = "Port Quarter Solar APC"; + pixel_x = 23; + pixel_y = 2 + }, +/obj/machinery/camera{ + c_tag = "Aft Port Solar Control"; + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"mVf" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 6 + }, +/obj/machinery/computer/atmos_control/tank/carbon_tank{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mVh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/medical{ + name = "Morgue"; + req_access_txt = "6;5" + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"mVi" = ( +/obj/machinery/airalarm{ + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"mVo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Auxiliary Bridge South" + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"mVr" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 29 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"mVN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"mWc" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"mWm" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"mWy" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/bed, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"mWD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"mWJ" = ( +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"mXj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"mXC" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"mYd" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"mYx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"mYB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"mYE" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold{ + dir = 8 + }, +/obj/structure/chair/sofa/right{ + dir = 4 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"mYT" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 2; + icon_state = "left"; + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"mZk" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/starboard) +"mZp" = ( +/turf/closed/wall/r_wall, +/area/engine/storage) +"naj" = ( +/turf/open/floor/wood, +/area/maintenance/bar) +"naE" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 30 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"nbr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/computer/atmos_alert{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"nbC" = ( +/turf/closed/mineral/random/snow/more_caves, +/area/icemoon/surface/outdoors) +"nbU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"ncg" = ( +/obj/machinery/door/airlock/atmos/abandoned{ + name = "Atmospherics Maintenance"; + req_access_txt = "12;24" + }, +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"ncH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"nde" = ( +/obj/structure/light_construct/small, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"ndg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"ndm" = ( +/obj/machinery/chem_dispenser, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"ndn" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth" + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"ndL" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Brig Equipment Room" + }, +/obj/machinery/recharger{ + name = "wall-mounted recharger"; + pixel_y = 34 + }, +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel/dark, +/area/security/main) +"ndM" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/paramedic"; + dir = 8; + name = "Paramedic Post"; + pixel_x = -26 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"ndQ" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/storage"; + dir = 4; + name = "Cargo Bay APC"; + pixel_x = 24; + pixel_y = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ndX" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"nea" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/bar) +"nez" = ( +/obj/structure/cable, +/obj/machinery/power/smes, +/turf/open/floor/plasteel, +/area/construction/storage) +"nft" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, +/obj/machinery/computer/atmos_control/tank/toxin_tank{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"nfB" = ( +/obj/structure/closet/secure_closet/detective, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/item/clothing/glasses/sunglasses, +/obj/item/taperecorder, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"nfI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/airalarm{ + pixel_y = 25 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"ngj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/janitor) +"ngB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"nhe" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"nhn" = ( +/obj/structure/table, +/obj/item/electronics/apc, +/obj/item/electronics/airlock, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"nhr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"nht" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"nhv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"nhz" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"nhK" = ( +/obj/effect/landmark/start/paramedic, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) +"nij" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table, +/obj/item/watertank, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 13; + pixel_y = 5 + }, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 13; + pixel_y = 5 + }, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 13; + pixel_y = 5 + }, +/obj/item/book/manual/hydroponics_pod_people{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/item/paper/guides/jobs/hydroponics{ + pixel_x = -5; + pixel_y = 3 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"njd" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -27; + pixel_y = -29 + }, +/turf/open/floor/pod/dark, +/area/maintenance/starboard) +"njr" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/chair/stool, +/obj/machinery/camera{ + c_tag = "Mining Office Kitchen"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"nlk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"nlF" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/dorms) +"nlM" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"nmc" = ( +/obj/machinery/rnd/production/techfab/department/cargo, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"nmL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"nmM" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/computer/atmos_alert, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"nmN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge) +"nmR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/medical/genetics) +"nmY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"nnj" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/genetics) +"nnV" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"nok" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/computer/station_alert, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"now" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"noB" = ( +/obj/effect/turf_decal/bot, +/mob/living/simple_animal/sloth/paperwork, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"noQ" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/supermatter) +"npl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/spider/stickyweb, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"npp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"npv" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar, +/obj/machinery/door/airlock/public/glass{ + name = "Diner" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"nqc" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"nqx" = ( +/obj/machinery/space_heater, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"nrd" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"nre" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "hos" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"nrg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"nrJ" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/storage/auxiliary) +"nrY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/fans/tiny, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"nsf" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"nsi" = ( +/obj/structure/table, +/obj/item/soap/nanotrasen, +/obj/item/clothing/mask/muzzle, +/obj/item/clothing/suit/straight_jacket, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"nsv" = ( +/obj/machinery/requests_console{ + department = "Kitchen"; + departmentType = 2; + pixel_y = 32 + }, +/obj/structure/table, +/obj/machinery/microwave{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/book/manual/chef_recipes, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"nsw" = ( +/obj/machinery/button/door{ + id = "QMLoaddoor"; + layer = 4; + name = "Loading Doors"; + pixel_x = 24; + pixel_y = -8 + }, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"nsB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"ntd" = ( +/obj/machinery/door/airlock/medical{ + name = "Medbay Break Room"; + req_access_txt = "5" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay/central) +"ntO" = ( +/obj/structure/closet/crate/freezer/surplus_limbs, +/obj/item/reagent_containers/glass/beaker/synthflesh, +/obj/machinery/light_switch{ + pixel_y = -23 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"ntV" = ( +/obj/machinery/camera{ + c_tag = "AI Chamber - Port"; + dir = 4; + network = list("aicore") + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"ntX" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/engine/airless, +/area/engine/atmos) +"nuu" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/tracker, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/icemoon/surface/outdoors) +"nuJ" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/lab) +"nuS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Northwestern Lobby"; + dir = 1 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/secondary/entry) +"nvj" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plating, +/area/construction/storage) +"nwq" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"nwz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/computer/station_alert, +/turf/open/floor/plasteel, +/area/engine/break_room) +"nwR" = ( +/obj/machinery/door/airlock{ + name = "Custodial Closet"; + req_access_txt = "26" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/janitor) +"nxv" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/security/armory) +"nya" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Medbay Foyer"; + dir = 1; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"nyd" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"nyp" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/AI, +/turf/open/floor/plating, +/area/storage/tech) +"nyq" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"nyT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"nzn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/pew/right{ + dir = 8 + }, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"nzt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"nzD" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"nzH" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"nzK" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"nzM" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/wood, +/area/library) +"nAx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/tcommsat/server) +"nAS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"nBd" = ( +/obj/machinery/button/door{ + id = "Dorm2"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -24; + specialfunctions = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"nBk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"nBI" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/table/glass, +/obj/item/storage/box/syringes, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"nBU" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window{ + dir = 1; + name = "High-Risk Modules"; + req_access_txt = "20" + }, +/obj/structure/table, +/obj/item/aiModule/reset/purge, +/obj/item/aiModule/zeroth/oneHuman, +/obj/item/aiModule/supplied/protectStation, +/obj/item/aiModule/supplied/oxygen, +/obj/effect/spawner/lootdrop/aimodule_harmful, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"nCc" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/science/storage) +"nCf" = ( +/obj/structure/window/plasma/reinforced{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/rad_collector/anchored, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"nCq" = ( +/obj/structure/window/plasma/reinforced{ + dir = 1 + }, +/obj/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/dark/visible/layer1, +/obj/machinery/door/poddoor{ + id = "tegheat"; + name = "TEG Heatshield" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/engine/atmospherics_engine) +"nCA" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ai_monitored/security/armory) +"nCL" = ( +/obj/machinery/hydroponics/soil, +/obj/item/seeds/carrot, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"nCU" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"nDa" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"nDd" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/machinery/light/floor, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"nDl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"nDu" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/grille, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"nEa" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"nEi" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/science/lab) +"nEl" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"nEs" = ( +/obj/docking_port/stationary{ + dir = 4; + dwidth = 12; + height = 18; + id = "emergency_home"; + name = "BoxStation emergency evac bay"; + width = 32 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"nEt" = ( +/obj/machinery/computer/crew{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"nEv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/hallway/primary/port) +"nEI" = ( +/obj/structure/dresser, +/obj/machinery/camera{ + c_tag = "Theatre" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"nEJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/bridge) +"nFw" = ( +/obj/machinery/button/door{ + id = "bridge blast"; + name = "Bridge Blast Door Control"; + pixel_x = -3; + pixel_y = -35; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"nFG" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/chair/comfy/black, +/turf/open/floor/plasteel/dark, +/area/bridge) +"nFM" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Port Mix to Engine"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"nGa" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/mob/living/simple_animal/bot/mulebot{ + beacon_freq = 1400; + home_destination = "QM #1"; + suffix = "#1" + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "QM #1" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/starboard"; + dir = 4; + name = "Starboard Maintenance APC"; + pixel_x = 26 + }, +/turf/open/floor/pod/dark, +/area/maintenance/starboard) +"nGd" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/science/storage) +"nGf" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/computer/secure_data{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"nGh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"nGi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"nGx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"nHe" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood, +/area/maintenance/bar) +"nHi" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"nHQ" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel, +/area/science/storage) +"nHX" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"nIu" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"nIM" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck, +/obj/item/storage/pill_bottle/dice{ + pixel_x = 8 + }, +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"nIR" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/camera{ + c_tag = "Medbay South"; + network = list("ss13","medbay") + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"nIU" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"nJq" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics South East"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"nJr" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"nJI" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/southleft{ + name = "Reception Desk"; + req_access_txt = "63"; + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"nKO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"nKU" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = -1; + pixel_y = 24; + req_access_txt = "31" + }, +/obj/structure/closet/wardrobe/cargotech, +/obj/item/radio/headset/headset_cargo, +/obj/item/radio/headset/headset_cargo, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"nLF" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/visible{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"nMw" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"nNj" = ( +/obj/machinery/chem_master/condimaster{ + name = "HoochMaster 2000" + }, +/obj/machinery/camera{ + c_tag = "Bar Storage" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"nNV" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/carpet/orange, +/area/engine/secure_construction) +"nOe" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"nOj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"nOk" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"nOn" = ( +/obj/machinery/telecomms/server/presets/science, +/obj/machinery/camera{ + c_tag = "Telecomms Server Room"; + network = list("tcomms") + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"nOG" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/landmark/start/cyborg, +/obj/machinery/power/apc{ + areastring = "/area/ai_monitored/turret_protected/aisat/service"; + dir = 8; + name = "MiniSat Service Bay APC"; + pixel_x = -27 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/service) +"nOK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"nOY" = ( +/obj/machinery/camera{ + c_tag = "Dorms West"; + dir = 8 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"nPd" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/public/glass{ + id_tag = "permahydro"; + name = "Hydroponics Module" + }, +/obj/machinery/door/poddoor/preopen{ + id = "permacell2"; + name = "garden blast door" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel, +/area/security/prison) +"nPs" = ( +/obj/structure/chair/stool, +/obj/structure/barricade/wooden{ + max_integrity = 10; + obj_integrity = 10 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"nPF" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/break_room) +"nQd" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmospherics_engine) +"nQp" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"nQr" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "Medbay" + }, +/obj/structure/plasticflaps/opaque, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"nQM" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/landmark/secequipment, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"nRn" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "hos" + }, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"nRt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/plaque{ + icon_state = "L3" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"nRu" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/closed/wall/r_wall, +/area/science/mixing) +"nRS" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"nRX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"nSf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"nSX" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Gas to Cooling Loop"; + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/atmospherics_engine) +"nTz" = ( +/obj/machinery/light, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/hallway/secondary/exit/departure_lounge) +"nTQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"nUm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Disposal Access"; + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/disposal) +"nUN" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"nVp" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/auxiliary) +"nVv" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_y = 30 + }, +/obj/structure/table/glass, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/screwdriver{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"nVI" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"nVP" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"nVY" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/department/bridge) +"nWJ" = ( +/obj/effect/landmark/start/cargo_technician, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"nWO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"nWP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"nXn" = ( +/obj/structure/closet/firecloset, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"nXs" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"nXy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"nYv" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"nYN" = ( +/obj/machinery/computer/security, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"nYZ" = ( +/turf/closed/wall/r_wall, +/area/medical/genetics) +"nZE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"nZU" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"oai" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"oaC" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"oaF" = ( +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"oaS" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/construction/storage) +"oba" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"obb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/green/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"obd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"obB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"obL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/command{ + name = "Conference Room"; + req_access_txt = "19" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/wood, +/area/bridge) +"obR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"ocG" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/light, +/obj/effect/turf_decal/tile/brown, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ocN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/airlock/research{ + name = "Kill Chamber"; + req_access_txt = "55" + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"ocY" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/maintenance/starboard) +"odg" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"odD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/construction/storage) +"odF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "Dorm5"; + name = "Cabin Bolt Control"; + normaldoorcontrol = 1; + pixel_y = -25; + specialfunctions = 4 + }, +/obj/structure/table/wood, +/obj/item/radio/intercom{ + pixel_x = -30 + }, +/turf/open/floor/carpet, +/area/quartermaster/miningoffice) +"odK" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"odR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"oeh" = ( +/obj/machinery/door/airlock/engineering/abandoned{ + name = "Electrical Maintenance"; + req_access_txt = "11" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/construction/storage) +"oez" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"oeC" = ( +/obj/machinery/space_heater, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"oeS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"oeV" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"ofm" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"ofy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hor) +"ofF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"ofP" = ( +/obj/machinery/airalarm{ + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"oge" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/item/radio/intercom{ + frequency = 1485; + name = "Station Intercom (Medbay)" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"ogX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/quartermaster/sorting) +"ohf" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/obj/effect/turf_decal/bot_white/left, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"ohk" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"ohm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"oho" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/wood, +/area/hallway/primary/central) +"ohq" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ohr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/auxiliary) +"ohv" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/aft"; + dir = 1; + name = "Aft Hall APC"; + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"ohF" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"ohK" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"oib" = ( +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"oiC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"oiM" = ( +/obj/structure/window/plasma/reinforced{ + dir = 1 + }, +/obj/structure/window/plasma/reinforced, +/obj/machinery/door/poddoor{ + id = "tegheat"; + name = "TEG Heatshield" + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/engine/atmospherics_engine) +"oiX" = ( +/turf/closed/wall, +/area/crew_quarters/heads/hop) +"oje" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Dormitory" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"ojs" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + req_access_txt = "19" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"ojv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"ojP" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Atmos to Gas" + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"ojY" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"okm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/table, +/obj/item/reagent_containers/spray/cleaner, +/obj/item/crowbar, +/obj/item/clothing/neck/stethoscope, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"okq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Dorm"; + location = "HOP2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"okt" = ( +/obj/machinery/light/small, +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet, +/area/quartermaster/miningoffice) +"old" = ( +/obj//obj/item/kirbyplants{ + icon_state = "applebush" + }, +/turf/open/floor/wood, +/area/security/courtroom) +"oln" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"olx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"olz" = ( +/obj/structure/closet/l3closet, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"olW" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"omh" = ( +/obj/machinery/door/airlock/wood, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/barricade/wooden/crude/snow{ + max_integrity = 15; + obj_integrity = 15 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"oml" = ( +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"omC" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"omO" = ( +/obj/structure/closet/crate/wooden, +/obj/item/storage/box/lights/mixed, +/obj/item/stack/sheet/mineral/wood/twenty, +/obj/item/circuitboard/machine/chem_dispenser/drinks, +/obj/item/circuitboard/machine/chem_dispenser/drinks/beer, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stock_parts/cell/high/plus, +/obj/item/storage/toolbox/mechanical/old, +/obj/item/electronics/airlock, +/turf/open/floor/plating, +/area/maintenance/bar) +"omQ" = ( +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/pod/dark, +/area/maintenance/starboard) +"ont" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output{ + dir = 8 + }, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"onY" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 10 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"ooa" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"oob" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"ooR" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/landmark/start/ai, +/obj/item/radio/intercom{ + freerange = 1; + frequency = 1447; + name = "Private Channel"; + pixel_x = -25; + pixel_y = -10 + }, +/obj/item/radio/intercom{ + freerange = 1; + listening = 0; + name = "Custom Channel"; + pixel_y = 27 + }, +/obj/item/radio/intercom{ + freerange = 1; + name = "Common Channel"; + pixel_x = -25 + }, +/obj/machinery/button/door{ + id = "AI Chamber entrance shutters"; + name = "AI Chamber entrance shutters control"; + pixel_x = 8; + pixel_y = 23; + req_access_txt = "16" + }, +/obj/machinery/door/window{ + base_state = "rightsecure"; + dir = 4; + icon_state = "rightsecure"; + name = "Primary AI Core Access"; + obj_integrity = 300; + req_access_txt = "16" + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"opq" = ( +/obj/machinery/computer/rdservercontrol{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"opC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/closet/secure_closet/engineering_personal, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/construction/storage) +"opT" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access_txt = "13" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"opY" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/vending/cigarette, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"oql" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"oqw" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/structure/table/reinforced, +/obj/machinery/door/window/westleft{ + name = "Cargo Desk"; + req_access_txt = "50" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"oqF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"oqL" = ( +/obj/structure/closet/secure_closet/security/science, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"orN" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"osa" = ( +/obj/structure/chair/pew/right{ + dir = 8 + }, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"osc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"oto" = ( +/turf/closed/wall, +/area/medical/surgery) +"ots" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/tcommsat/server) +"oty" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/engine/engineering) +"otZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"ouB" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + sortType = 23 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"ouE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/bar) +"ouH" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"ouQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"ouX" = ( +/obj/structure/table/wood, +/obj/item/storage/briefcase, +/obj/item/storage/briefcase{ + pixel_x = -3; + pixel_y = 2 + }, +/turf/open/floor/plasteel/cult, +/area/lawoffice) +"ovb" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ovq" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/pickaxe, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"ovI" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/engine/engineering) +"ovP" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"owj" = ( +/obj/structure/loot_pile/maint, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"owk" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"owv" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/science/xenobiology) +"owV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"oxh" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"oxs" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Bridge Southwest" + }, +/obj/machinery/button/door{ + id = "bridge blast"; + name = "Bridge Blast Door Control"; + pixel_x = 8; + pixel_y = 27; + req_access_txt = "19" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"oyf" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + dir = 8; + freq = 1400; + location = "QM #3" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/pod/dark, +/area/maintenance/starboard) +"oym" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"oyz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"oAX" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"oBj" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access_txt = "13" + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"oBl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"oBs" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"oBD" = ( +/obj/structure/closet/emcloset, +/obj/machinery/camera{ + c_tag = "Dorms South"; + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"oBF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"oBG" = ( +/obj/structure/bed, +/obj/item/bedsheet/syndie, +/obj/item/toy/plush/mammal/fox, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"oCZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"oDm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"oDn" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/smes/engineering, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "TEG West"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"oDw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"oEa" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/tile/brown, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"oEf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/vending/wardrobe/jani_wardrobe, +/obj/machinery/camera{ + c_tag = "Custodial Closet" + }, +/turf/open/floor/plasteel, +/area/janitor) +"oEs" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/turf/open/floor/plating, +/area/security/brig) +"oEz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/service) +"oEO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/machinery/computer/card, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"oGU" = ( +/obj//obj/item/kirbyplants{ + icon_state = "plant-10" + }, +/turf/open/floor/wood, +/area/hallway/primary/central) +"oHl" = ( +/obj/structure/closet/crate/secure/engineering{ + name = "TEG crate" + }, +/obj/item/circuitboard/machine/circulator, +/obj/item/circuitboard/machine/circulator, +/obj/item/circuitboard/machine/generator, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/cable_coil, +/turf/open/floor/plating, +/area/engine/storage) +"oHS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/suit_storage_unit/rd, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"oHU" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"oIb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1; + sortType = 22 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"oIq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/engine/atmos) +"oIA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/airlock/research{ + name = "Toxins Launch Room"; + req_access_txt = "7" + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"oIJ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"oJa" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/closet/radiation, +/turf/open/floor/engine, +/area/engine/engineering) +"oJp" = ( +/obj/machinery/vending/tool, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"oJF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/security/main) +"oJX" = ( +/obj/structure/closet/secure_closet/quartermaster, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/item/cartridge/quartermaster{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/cartridge/quartermaster{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/cartridge/quartermaster{ + pixel_x = 6; + pixel_y = 5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"oKr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"oKD" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/light, +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Brig Cell Blocks"; + dir = 1 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"oKG" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plating, +/area/maintenance/disposal) +"oKN" = ( +/obj/structure/table/reinforced, +/obj/item/assembly/signaler{ + pixel_y = 8 + }, +/obj/item/assembly/signaler{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/assembly/signaler{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/assembly/signaler{ + pixel_x = -3; + pixel_y = 2 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"oLe" = ( +/obj/machinery/computer/shuttle/snow_taxi{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"oLo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"oLB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"oLT" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/hallway/secondary/exit/departure_lounge) +"oME" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/light/floor, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"oNv" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"oNz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"oNR" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"oNT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"oOe" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"oOu" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/table/wood, +/turf/open/floor/plasteel/dark, +/area/bridge) +"oOR" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "hop"; + name = "Privacy Shutters Control"; + pixel_x = 6; + pixel_y = -24; + req_access_txt = "57" + }, +/obj/effect/landmark/start/head_of_personnel, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"oPP" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 2; + icon_state = "left"; + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"oPS" = ( +/turf/closed/wall, +/area/storage/primary) +"oQa" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"oQg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/landmark/start/station_engineer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"oQs" = ( +/obj/structure/table, +/obj/item/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 5 + }, +/obj/item/reagent_containers/food/snacks/mint, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"oQy" = ( +/obj/machinery/vending/cola/random, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"oQE" = ( +/obj/machinery/telecomms/processor/preset_one, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"oRc" = ( +/obj/effect/turf_decal/tile/blue, +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"oRh" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"oSt" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 10 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"oTu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"oTv" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"oTF" = ( +/turf/closed/wall/r_wall, +/area/medical/morgue) +"oTT" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"oUs" = ( +/obj/machinery/suit_storage_unit/engine, +/turf/open/floor/plasteel, +/area/engine/engineering) +"oUQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/poddoor{ + id = "Secure Storage"; + name = "secure storage" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/engine/storage) +"oUV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"oUX" = ( +/obj/structure/table/wood, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"oVN" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/closed/wall/r_wall, +/area/science/misc_lab) +"oWw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"oWy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + sortType = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"oWT" = ( +/obj/machinery/vending/cigarette, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/hallway/primary/port) +"oWW" = ( +/obj/machinery/computer/atmos_control/tank/air_tank, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/machinery/camera{ + c_tag = "Atmospherics North East" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"oXi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"oXl" = ( +/obj/machinery/camera{ + c_tag = "Hydroponics South"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"oXn" = ( +/obj/structure/chair/comfy/black, +/obj/effect/landmark/start/scientist, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"oYn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/circuit, +/area/science/robotics/mechbay) +"oYr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock{ + id_tag = "Dorm5"; + name = "Room Four" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"oYU" = ( +/obj/structure/chair, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"oZe" = ( +/obj/machinery/camera{ + c_tag = "Escape Arm Airlocks"; + dir = 8 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"oZf" = ( +/obj/machinery/camera{ + c_tag = "Testing Chamber"; + dir = 1; + network = list("test","rd") + }, +/turf/open/floor/engine, +/area/science/misc_lab) +"oZq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/medical/glass{ + name = "Surgery Observation" + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/medical/medbay/central) +"oZC" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/gun/ballistic/shotgun/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/gun/ballistic/shotgun/riot, +/obj/item/gun/ballistic/shotgun/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"oZL" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/water_vapor, +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"par" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay/zone3) +"pax" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/closed/wall, +/area/janitor) +"paF" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/security/main) +"paY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"pbc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/landmark/start/assistant, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"pbf" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"pbg" = ( +/obj/machinery/vending/cola/random, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"pbk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"pbs" = ( +/obj/docking_port/stationary{ + dir = 2; + dwidth = 2; + height = 13; + id = "ferry_home"; + name = "port bay 2"; + width = 5 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"pbw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/camera{ + c_tag = "Surgery B"; + network = list("ss13","medbay"); + pixel_x = 22 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"pbP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/table, +/obj/item/storage/box/bodybags, +/obj/item/pen, +/obj/item/paper/guides/jobs/medical/morgue{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"pbS" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible/layer3{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/atmospherics_engine) +"pbV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/bridge) +"pcd" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/vending/snack/random, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"pce" = ( +/obj/machinery/door/airlock/external{ + name = "Auxiliary Airlock" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"pcl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output{ + dir = 1 + }, +/obj/machinery/sparker/toxmix{ + pixel_x = -25 + }, +/turf/open/floor/engine/airless, +/area/science/mixing) +"pcs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/closet, +/obj/item/clothing/shoes/winterboots/ice_boots, +/obj/item/clothing/shoes/winterboots/ice_boots, +/obj/item/clothing/shoes/winterboots/ice_boots, +/obj/item/hatchet, +/obj/item/hatchet, +/obj/item/hatchet, +/obj/item/pickaxe/drill, +/obj/item/pickaxe/drill, +/obj/item/pickaxe/drill, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"pcT" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + sortType = 23 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"pdj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"pdo" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/hallway/primary/port) +"pdv" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"pdD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/closet/secure_closet/security/cargo, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"pdL" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"peq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"pfb" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Gas to Cooling Loop"; + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"pfB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/misc_lab) +"pfN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"pfY" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"pfZ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"pgk" = ( +/obj/structure/window{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"pgp" = ( +/turf/closed/wall, +/area/crew_quarters/dorms) +"pgG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/obj/machinery/camera/motion{ + c_tag = "EVA Motion Sensor" + }, +/obj/vehicle/ridden/atv/snowmobile, +/obj/item/key, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"phf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"phq" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/janitor) +"phs" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"phu" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating, +/area/hallway/primary/fore) +"phI" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"phS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"phU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/airlock/mining{ + req_access_txt = "48" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"pig" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"piu" = ( +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"piv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/security/main) +"piR" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/plating, +/area/engine/engineering) +"piX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/cabinet, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/pickaxe, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"piY" = ( +/obj/machinery/atmospherics/miner/nitrogen, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"pjg" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"pjn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Southern Hall 3"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"pjD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"pkh" = ( +/mob/living/simple_animal/hostile/retaliate/goat{ + name = "Pete" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"pkJ" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/bar) +"plg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"pmE" = ( +/obj/machinery/camera{ + c_tag = "Courtroom East"; + dir = 8 + }, +/obj//obj/item/kirbyplants{ + icon_state = "applebush" + }, +/turf/open/floor/wood, +/area/security/courtroom) +"pmK" = ( +/obj/machinery/computer/operating, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/white, +/area/security/brig) +"pnr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"pnz" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/chair/pew/right{ + dir = 8 + }, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"pnS" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump, +/turf/open/floor/plasteel, +/area/engine/atmos) +"poj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"por" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"poR" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"poT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"poU" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/chair/comfy/black, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"ppj" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible/layer3, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmospherics_engine) +"ppl" = ( +/turf/open/floor/plating, +/area/engine/atmospherics_engine) +"ppI" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"pqe" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/hallway/secondary/exit/departure_lounge) +"pqj" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"pqs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"pqL" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_x = -25 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/computer/arcade/minesweeper{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"pqX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"prf" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"prl" = ( +/obj/structure/closet/l3closet/virology, +/obj/machinery/light_switch{ + pixel_x = 25 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"pry" = ( +/obj/structure/chair/pew/right{ + dir = 8 + }, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"prD" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"prL" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"prP" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"pss" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"psS" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + pixel_x = -30 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Quartermaster's Office"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"ptd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock{ + id_tag = "Dorm6"; + name = "Room Five" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"ptl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"ptv" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer1, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible/layer3, +/obj/machinery/igniter{ + id = "Incinerator" + }, +/turf/open/floor/engine, +/area/engine/atmospherics_engine) +"ptU" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"ptY" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"puf" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/obj/machinery/pipedispenser/disposal, +/obj/structure/fireaxecabinet{ + pixel_y = 32 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"puk" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 1; + initialize_directions = 1 + }, +/turf/open/floor/circuit, +/area/science/server) +"puo" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"puA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/landmark/xeno_spawn, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"puE" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/clipboard, +/obj/item/pen/fountain, +/obj/machinery/camera{ + c_tag = "Chief Engineer's Office"; + dir = 8 + }, +/obj/machinery/button/door{ + desc = "A remote control-switch for secure storage."; + id = "Secure Storage"; + name = "Engineering Secure Storage"; + pixel_x = 24; + req_access_txt = "11" + }, +/obj/item/paper/monitorkey, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"puS" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/machinery/requests_console{ + department = "Virology"; + name = "Virology Requests Console"; + pixel_x = 32 + }, +/obj/machinery/light_switch{ + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"puY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/arrows/red{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"pvj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"pvl" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/closet/secure_closet/genpop, +/obj/item/radio/headset{ + desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; + name = "prisoner headset"; + prison_radio = 1 + }, +/obj/item/clothing/suit/hooded/wintercoat, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"pvo" = ( +/obj/structure/closet/crate/coffin, +/obj/machinery/door/window/eastleft{ + name = "Coffin Storage"; + req_access_txt = "22" + }, +/turf/open/floor/wood, +/area/chapel/office) +"pvr" = ( +/obj/effect/turf_decal/bot, +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"pvw" = ( +/obj/machinery/telecomms/processor/preset_three, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"pvx" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/tcommsat/server"; + name = "Telecomms Server APC"; + pixel_y = -25 + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"pvV" = ( +/obj/machinery/airalarm{ + pixel_y = 26 + }, +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/storage/toolbox/drone{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/storage/toolbox/electrical{ + pixel_x = -2; + pixel_y = 2 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"pvY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + external_pressure_bound = 140; + name = "killroom vent"; + pressure_checks = 0; + dir = 1 + }, +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"pwC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/engine/storage) +"pwE" = ( +/obj/effect/landmark/start/cyborg, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/service) +"pwL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"pxh" = ( +/obj/structure/window/plasma/reinforced{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/rad_collector/anchored, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Supermatter Interior"; + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"pxp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Mining Dock Airlock"; + req_access_txt = "48"; + shuttledocked = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"pxv" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"pxE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"pxS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"pxX" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"pxZ" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"pyw" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/port/fore"; + dir = 4; + name = "Port Bow Maintenance APC"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"pyD" = ( +/obj/machinery/chem_heater, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"pyF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/disposal) +"pyI" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/science/storage"; + dir = 4; + name = "Toxins Storage APC"; + pixel_x = 25 + }, +/turf/open/floor/plasteel, +/area/science/storage) +"pyW" = ( +/obj/structure/closet/crate/medical, +/turf/open/floor/plating, +/area/maintenance/starboard) +"pyY" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/toilet/secret/prison{ + dir = 8 + }, +/obj/structure/mirror{ + pixel_x = 25 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"pze" = ( +/obj/machinery/door/airlock/external{ + name = "Auxiliary Airlock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"pzk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"pzI" = ( +/obj/machinery/telecomms/broadcaster/preset_left, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"pzZ" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"pAC" = ( +/obj/machinery/airalarm{ + pixel_y = 25 + }, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/rnd, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"pAN" = ( +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"pBh" = ( +/obj/machinery/door/airlock{ + desc = "A small bathroom with a sink, toilet and shower."; + id_tag = "Bath1"; + name = "Bathroom" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/dorms) +"pBU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L5" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"pCj" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/structure/urinal{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/dorms) +"pCo" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 9 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"pCv" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/engine, +/area/engine/atmospherics_engine) +"pCU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"pCY" = ( +/obj/machinery/computer/communications, +/obj/machinery/newscaster/security_unit{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"pDh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"pDu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + sortType = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"pDF" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/flasher/portable, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"pDS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/portables_connector, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_x = -30 + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"pEm" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"pED" = ( +/obj/machinery/computer/operating, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"pEF" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable, +/obj/machinery/power/terminal, +/turf/open/floor/plasteel, +/area/construction/storage) +"pEK" = ( +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ai_monitored/security/armory) +"pFf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/pipedispenser/disposal/transit_tube, +/turf/open/floor/plasteel, +/area/engine/atmos) +"pFo" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/engine/storage) +"pFu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"pFI" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"pFM" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/suit/apron/surgical, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"pFR" = ( +/turf/closed/wall, +/area/hallway/primary/fore) +"pGe" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"pGs" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"pGL" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"pHi" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/machinery/meter, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"pHl" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"pHH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"pIf" = ( +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"pIz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/storage/fancy/donut_box, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"pIH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"pIP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"pJS" = ( +/turf/closed/wall, +/area/quartermaster/storage) +"pJT" = ( +/obj/machinery/computer/arcade{ + dir = 4 + }, +/obj/structure/light_construct/small, +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"pKp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/computer/secure_data{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"pKr" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Doors Control"; + normaldoorcontrol = 1; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"pKN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"pLd" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/light, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"pLP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/turnstile{ + name = "Genpop Exit Turnstile"; + req_access_txt = "70"; + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"pLX" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"pMf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"pMp" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"pMD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"pMU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"pNo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/announcement_system, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"pNv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/command{ + name = "Server Room"; + req_access_txt = "30" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/plasteel/checker, +/area/science/server) +"pNB" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/RnD_secure, +/turf/open/floor/plating, +/area/storage/tech) +"pNO" = ( +/obj/machinery/suit_storage_unit/cmo, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Medical Officer's Desk"; + departmentType = 5; + name = "Chief Medical Officer RC"; + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"pNQ" = ( +/obj/machinery/bookbinder, +/obj/machinery/camera{ + c_tag = "Library South"; + dir = 8 + }, +/obj/machinery/newscaster{ + pixel_x = 32 + }, +/turf/open/floor/wood, +/area/library) +"pNU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/main) +"pOg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen{ + desc = "Writes upside down!"; + name = "astronaut pen" + }, +/obj/machinery/door/window{ + name = "Captain's Desk"; + req_access_txt = "20" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/item/card/id/captains_spare, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"pPw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/chapel/office) +"pPx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"pPz" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/westright{ + dir = 1; + name = "Hydroponics Desk"; + req_access_txt = "35" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hydroponics) +"pPL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"pQd" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"pQg" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmospherics_engine) +"pQN" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"pRV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"pSm" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kanyewest"; + name = "privacy shutters" + }, +/turf/open/floor/plating, +/area/security/detectives_office) +"pSO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"pST" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/security/glass{ + name = "Evidence Storage"; + req_access_txt = "4" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"pTq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plasteel, +/area/engine/engineering) +"pTw" = ( +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"pUf" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/conveyor{ + id = "QMLoad" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"pUz" = ( +/obj/structure/disposalpipe/junction/yjunction{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"pUP" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Chapel" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/wood, +/area/chapel/main) +"pVz" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/poddoor/preopen{ + id = "lawyer_blast"; + name = "privacy door" + }, +/turf/open/floor/plating, +/area/lawoffice) +"pVW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"pVZ" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/head/that, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"pWa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"pWc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plating, +/area/maintenance/disposal) +"pWz" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"pWS" = ( +/turf/closed/wall/r_wall, +/area/hallway/primary/fore) +"pXb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/fans/tiny, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"pXl" = ( +/obj/machinery/computer/cloning{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"pXp" = ( +/obj/structure/window/reinforced, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"pXW" = ( +/obj/structure/chair/comfy/black, +/obj/machinery/button/door{ + id = "heads_meeting"; + name = "Security Shutters"; + pixel_y = 24 + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"pYh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Northwestern Hall 3"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"pYM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/heads/hor) +"pZl" = ( +/obj/machinery/light, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/hallway/secondary/exit/departure_lounge) +"pZD" = ( +/turf/closed/wall/r_wall, +/area/medical/virology) +"pZJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/medical/genetics) +"qal" = ( +/obj/structure/chair, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"qaO" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"qaX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"qbg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"qbh" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"qbr" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/computer/security{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"qbv" = ( +/obj/structure/chair/comfy/black, +/obj/machinery/camera{ + c_tag = "Conference Room" + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"qbJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"qbY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"qbZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"qck" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"qeo" = ( +/obj/machinery/holopad, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel/dark, +/area/security/main) +"qeH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/janitor) +"qeL" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"qeP" = ( +/obj/structure/window/plasma/reinforced{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/rad_collector/anchored, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/engine, +/area/engine/supermatter) +"qeY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"qfd" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"qfJ" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"qfT" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/hallway/primary/central) +"qfX" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"qgm" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"qgC" = ( +/obj/structure/light_construct/small{ + dir = 1 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"qgZ" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"qha" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"qhf" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"qhu" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"qhU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"qib" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Atmos to Gas" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"qip" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"qiF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"qjc" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/snacks/pie/cream, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"qjA" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/storage/primary"; + dir = 4; + name = "Primary Tool Storage APC"; + pixel_x = 24; + pixel_y = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"qkg" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"qkO" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"qkT" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/chapel/main) +"qlj" = ( +/turf/closed/wall, +/area/crew_quarters/theatre) +"qlH" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/maintenance/solars/port/aft) +"qlW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"qlY" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/phone{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/cigbutt/cigarbutt{ + pixel_x = 5; + pixel_y = -1 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"qmo" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input{ + dir = 8 + }, +/obj/machinery/air_sensor/atmos/nitrogen_tank{ + pixel_y = -25 + }, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"qmD" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/structure/barricade/wooden{ + max_integrity = 10; + obj_integrity = 10 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"qnk" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"qnr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/miningdock) +"qnx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"qnC" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/power/terminal{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"qnL" = ( +/obj/machinery/power/solar_control{ + id = "auxsolareast"; + name = "Starboard Bow Solar Control" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"qoh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"qpb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"qpo" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/closet/crate/trashcart, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"qpW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/stack/packageWrap{ + pixel_x = -1; + pixel_y = -1 + }, +/obj/item/stack/wrapping_paper{ + pixel_x = 3; + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"qqb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/plasma, +/turf/open/floor/plating, +/area/storage/atmos) +"qqo" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"qqR" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"qqZ" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Escape Airlock" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"qrq" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/teleporter"; + name = "Teleporter APC"; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"qrv" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table, +/obj/item/integrated_circuit_printer, +/obj/machinery/camera{ + c_tag = "Testing Lab West"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"qrA" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/obj/effect/landmark/start/medical_doctor, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"qrR" = ( +/turf/closed/mineral/random/snow/no_caves, +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) +"qrS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock{ + name = "Custodial Closet"; + req_access_txt = "26" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/janitor) +"qsf" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"qsm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"qss" = ( +/turf/open/floor/plasteel, +/area/hydroponics) +"qsz" = ( +/obj/structure/closet/secure_closet/medical1{ + anchored = 1; + pixel_x = -3 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/shower{ + dir = 4; + pixel_x = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"qsD" = ( +/turf/closed/wall/r_wall, +/area/maintenance/department/electrical) +"qtH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"qtK" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/library) +"quh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/airlock/research{ + name = "Research Division Access"; + req_access_txt = "47" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"quj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"qur" = ( +/turf/open/floor/plating, +/area/quartermaster/storage) +"quE" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"quH" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/flasher/portable, +/obj/item/radio/intercom{ + pixel_y = -26 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"qva" = ( +/obj/structure/closet/secure_closet/hop, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"qvG" = ( +/obj/item/radio/intercom{ + pixel_y = -26 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"qwq" = ( +/obj/machinery/power/apc{ + areastring = "/area/science/server"; + dir = 1; + name = "Server Room APC"; + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"qxk" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/washing_machine, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/dorms) +"qxw" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard) +"qxT" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"qxX" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "packageSort2" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"qyc" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"qyt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "misclab"; + name = "Test Chamber Blast Doors"; + pixel_y = -22; + req_access_txt = "55" + }, +/obj/machinery/button/ignition{ + id = "testigniter"; + pixel_y = -30; + pixel_x = -1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"qyK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"qzz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"qzO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Construction Area"; + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"qzP" = ( +/obj/machinery/vending/dinnerware{ + contraband = list(/obj/item/kitchen/rollingpin = 2, /obj/item/kitchen/knife/butcher = 2, /obj/item/reagent_containers/food/condiment/flour = 4) + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"qzX" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"qAi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"qAq" = ( +/obj/machinery/quantumpad{ + map_pad_id = "5"; + map_pad_link_id = "6" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"qAx" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/wood, +/area/hallway/primary/port) +"qAF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/storage/atmos) +"qAI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/hallway/primary/central) +"qBb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/start/security_officer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/hallway/primary/central) +"qBu" = ( +/obj/machinery/atmospherics/components/binary/pump, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qBG" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"qBO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/camera{ + c_tag = "Toxins Launch Hall 4"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"qCo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"qCK" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qDg" = ( +/obj/structure/chair/comfy/brown, +/obj/structure/barricade/wooden/snowed{ + max_integrity = 10; + obj_integrity = 10 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"qDO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"qEs" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/obj/structure/chair/sofa/left{ + dir = 8 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"qEz" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 3"; + name = "Cell 3"; + dir = 1 + }, +/obj/effect/turf_decal/vg_decals/numbers/three, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"qED" = ( +/obj/effect/turf_decal/vg_decals/atmos/nitrogen, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"qFa" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/hallway/primary/port) +"qFf" = ( +/obj/structure/closet/secure_closet/personal/patient, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"qFH" = ( +/obj/structure/table/wood, +/obj/item/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_y = 29 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"qFZ" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/secondary/entry) +"qGn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"qGt" = ( +/obj/structure/bodycontainer/crematorium{ + id = "crematoriumChapel"; + dir = 8 + }, +/obj/machinery/button/crematorium{ + id = "crematoriumChapel"; + pixel_x = 25 + }, +/turf/open/floor/plasteel/cafeteria, +/area/chapel/office) +"qGL" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qGM" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Crematorium Maintenance"; + req_access_txt = "27" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/plating, +/area/chapel/office) +"qHc" = ( +/obj/effect/landmark/start/paramedic, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"qHe" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"qHi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"qHq" = ( +/obj/structure/closet/crate, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"qHC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"qHL" = ( +/obj/structure/chair/comfy/beige{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"qHO" = ( +/obj//obj/item/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"qIm" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"qIx" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/table/reinforced, +/obj/item/storage/box/ids, +/obj/item/storage/box/PDAs{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/secure/briefcase, +/turf/open/floor/plasteel/dark, +/area/bridge) +"qIP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/machinery/camera{ + c_tag = "Dorms Central" + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"qIR" = ( +/obj/machinery/button/massdriver{ + id = "toxinsdriver"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"qIT" = ( +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/plasteel/dark, +/area/engine/atmospherics_engine) +"qIU" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"qJs" = ( +/obj/structure/chair, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"qJw" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/maintenance/solars/starboard/aft) +"qJy" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"qJM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"qJV" = ( +/turf/closed/wall/r_wall, +/area/science/mixing) +"qKk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"qKA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"qKP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/computer/security{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"qLm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"qLp" = ( +/obj/machinery/airalarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"qLt" = ( +/obj/structure/rack, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"qLG" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"qMn" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/washing_machine, +/turf/open/floor/plasteel/white, +/area/crew_quarters/dorms) +"qMB" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"qMN" = ( +/obj/structure/table, +/obj/item/storage/pill_bottle/dice, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/fitness/recreation) +"qNB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/command{ + name = "Head of Security's Office"; + req_access_txt = "58" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"qOb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_x = -30 + }, +/turf/open/floor/wood, +/area/chapel/main) +"qOs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"qOA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"qOL" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet, +/area/chapel/office) +"qQb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"qQp" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/main) +"qQt" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"qQC" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"qQH" = ( +/turf/open/floor/plasteel/dark, +/area/teleporter) +"qRe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering"; + req_access_txt = "32" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"qRy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/landmark/start/clown, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"qRF" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/engine/storage) +"qRH" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/power/apc{ + areastring = "/area/engine/atmospherics_engine"; + dir = 1; + name = "Atmospherics Engine APC"; + pixel_y = 25 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Gas waste pump" + }, +/turf/open/floor/plating, +/area/engine/atmospherics_engine) +"qRK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"qSh" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"qSi" = ( +/obj/structure/disposalpipe/junction/yjunction{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"qSy" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"qSJ" = ( +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/obj/structure/closet/secure_closet/miner, +/obj/item/clothing/shoes/winterboots/ice_boots, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"qSP" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible/layer3{ + dir = 6 + }, +/turf/open/floor/engine, +/area/engine/atmospherics_engine) +"qSR" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"qSS" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/engine/engineering) +"qTb" = ( +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"qTo" = ( +/obj/machinery/computer/shuttle/snow_taxi, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"qTG" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"qTO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"qUe" = ( +/obj/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/dark/visible/layer1, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/turf/open/floor/engine, +/area/engine/atmospherics_engine) +"qUF" = ( +/obj/structure/table, +/obj/item/aicard, +/obj/item/aiModule/reset, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/clothing/gloves/color/yellow, +/obj/item/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"qVf" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"qVi" = ( +/obj/structure/closet/crate/coffin, +/turf/open/floor/wood, +/area/chapel/office) +"qVD" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"qWa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"qWg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"qWs" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"qWH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"qWL" = ( +/obj/structure/table/glass, +/obj/item/book/manual/wiki/chemistry, +/obj/item/book/manual/wiki/chemistry{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"qWM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/directions/medical{ + dir = 1 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"qXN" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 29 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Escape Arm Northwest" + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/hallway/secondary/exit/departure_lounge) +"qYD" = ( +/turf/closed/wall/r_wall, +/area/hallway/primary/aft) +"qYN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"qZO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/obj/machinery/light/floor, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"rai" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"ral" = ( +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/obj/structure/fans/tiny, +/turf/open/floor/engine, +/area/engine/atmospherics_engine) +"ram" = ( +/obj/machinery/computer/card/minor/rd{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Research Director's Office"; + dir = 1; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/heads/hor) +"raq" = ( +/obj/structure/bed, +/obj/effect/spawner/lootdrop/bedsheet, +/turf/open/floor/carpet, +/area/quartermaster/miningoffice) +"raA" = ( +/turf/closed/wall/r_wall, +/area/maintenance/starboard) +"raM" = ( +/obj/machinery/door/airlock/external, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/crew_quarters/dorms) +"rbg" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortType = 25 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"rbm" = ( +/obj/machinery/rnd/server, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8; + external_pressure_bound = 140; + name = "server vent"; + pressure_checks = 0 + }, +/turf/open/floor/circuit/telecomms/server, +/area/science/server) +"rbo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"rbA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio2"; + name = "Containment Blast Doors"; + pixel_y = 4; + req_access_txt = "55" + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"rbC" = ( +/obj/machinery/vending/wardrobe/engi_wardrobe, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"rbW" = ( +/obj/structure/closet/secure_closet/medical3, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/item/gun/syringe/dart, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"rck" = ( +/obj/machinery/door/airlock{ + name = "Kitchen cold room"; + req_access_txt = "28" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"rco" = ( +/turf/open/floor/plasteel/dark, +/area/engine/supermatter) +"rcH" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"rdn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"rem" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/chief) +"rep" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"reS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/plaque{ + icon_state = "L6" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=CHE"; + location = "AIE" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"rfj" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"rfk" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/storage/primary) +"rgh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"rgm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/hydroponics) +"rgC" = ( +/obj/machinery/vending/cola/random, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"rgH" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "External to Filter" + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/maintenance/department/electrical) +"rgQ" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Test Chamber"; + network = list("xeno","rd"); + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"rhg" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ai_monitored/security/armory) +"rhU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj//obj/item/kirbyplants, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"rhX" = ( +/turf/closed/wall, +/area/medical/paramedic) +"rik" = ( +/obj/structure/closet/toolcloset, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/auxiliary) +"rio" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Morgue Maintenance"; + req_access_txt = "6" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/morgue) +"riC" = ( +/turf/closed/wall, +/area/maintenance/department/electrical) +"riE" = ( +/obj/structure/filingcabinet, +/obj/item/folder/documents, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"rjx" = ( +/turf/closed/wall/r_wall, +/area/maintenance/central) +"rjB" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/ai_monitored/turret_protected/ai_upload"; + dir = 8; + name = "Upload APC"; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload) +"rjO" = ( +/obj/structure/closet/wardrobe/grey, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"rjP" = ( +/obj/structure/table/wood, +/obj/item/instrument/guitar, +/obj/item/instrument/eguitar{ + pixel_x = 5 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"rjQ" = ( +/obj/structure/light_construct/small{ + dir = 1 + }, +/obj/structure/barricade/wooden/snowed{ + max_integrity = 10; + obj_integrity = 10 + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"rkd" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"rke" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/hallway/primary/port) +"rkp" = ( +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"rkL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"rkP" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"rle" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Southeastern Hall 2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"rlo" = ( +/obj/structure/table, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"rlA" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"rlC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) +"rlG" = ( +/obj/machinery/door/airlock/public/glass{ + id_tag = "permahydro"; + name = "Recreation Module" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"rlM" = ( +/obj/machinery/power/solar_control{ + id = "auxsolareast"; + name = "Port Bow Solar Control" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"rlS" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/reagent_containers/food/condiment/enzyme{ + layer = 5 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"rlW" = ( +/obj/structure/table, +/obj/machinery/computer/security/telescreen/rd, +/obj/item/cartridge/signal/toxins{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/cartridge/signal/toxins{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/cartridge/signal/toxins, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/heads/hor) +"rmo" = ( +/obj/effect/turf_decal/vg_decals/atmos/carbon_dioxide, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"rmB" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"rmL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/tcommsat/server) +"rmN" = ( +/turf/closed/wall, +/area/medical/medbay/zone2) +"rmQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"rmV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"rnk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"rnA" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_x = -25 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"rnK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"rnO" = ( +/obj/structure/table/reinforced, +/obj/item/transfer_valve{ + pixel_x = 5 + }, +/obj/item/transfer_valve{ + pixel_x = -5 + }, +/obj/item/transfer_valve, +/obj/item/transfer_valve, +/obj/item/transfer_valve, +/obj/item/transfer_valve, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"rom" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"rot" = ( +/obj/structure/cable, +/obj/machinery/power/solar{ + id = "starboardsolar"; + name = "Starboard Solar Array" + }, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/icemoon/surface/outdoors) +"roS" = ( +/obj/machinery/computer/card/minor/cmo{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"roW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/cabinet, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/pickaxe, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"rpf" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/mixing) +"rqn" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/table/wood, +/obj/item/nullrod, +/obj/item/reagent_containers/food/drinks/bottle/holywater, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/chapel/office) +"rqw" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Outer Medbay Lobby" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"rqx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"rqE" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"rqG" = ( +/obj/structure/chair/sofa/right{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/landmark/start/depsec/supply, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"rqJ" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"rqQ" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"rqS" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/item/pipe_dispenser, +/turf/open/floor/plasteel, +/area/engine/break_room) +"rqW" = ( +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"rrm" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"rsp" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"rsy" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"rsD" = ( +/obj/structure/table/wood, +/obj/structure/bedsheetbin/towel, +/turf/open/floor/wood, +/area/maintenance/bar) +"rsW" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restroom" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"rtm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"rtq" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/shield/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/shield/riot, +/obj/item/shield/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"rtD" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/maintenance/solars/port/fore) +"rtJ" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"rum" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"ruo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"ruD" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/vending/wardrobe/cap_wardrobe, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"rvf" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"rvl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"rwa" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/circuit, +/area/science/server) +"rwm" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/maintenance/solars/port/aft) +"rww" = ( +/turf/closed/wall, +/area/engine/secure_construction) +"rwW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/medical/morgue) +"rxc" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"rxf" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/visible, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/engine/atmos) +"rxl" = ( +/obj/machinery/computer/crew, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"rxt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/department/bridge) +"rxu" = ( +/obj/structure/bookcase/random/reference, +/turf/open/floor/wood, +/area/library) +"rxI" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/solar{ + id = "portsolar"; + name = "Port Solar Array" + }, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/icemoon/surface/outdoors) +"rxJ" = ( +/obj/item/stack/cable_coil/random, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"rxM" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/rack, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/clothing/suit/armor/bulletproof, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001; + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001; + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ryE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"rAa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"rAe" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"rAj" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/camera{ + c_tag = "Bridge Northeast"; + dir = 1 + }, +/obj/machinery/vending/cola/pwr_game, +/turf/open/floor/plasteel/dark, +/area/bridge) +"rAW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"rBb" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/maintenance/aft) +"rBc" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"rBA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "AI Chamber - Core"; + network = list("aicore"); + dir = 4 + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"rBG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/airlock/research/glass{ + name = "Robotics Lab"; + req_access_txt = "29" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"rDv" = ( +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"rDA" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel, +/area/science/mixing) +"rDE" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"rDG" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"rEi" = ( +/turf/open/floor/plating, +/area/maintenance/bar) +"rEx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"rFk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"rFB" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"rFQ" = ( +/obj/structure/table/reinforced, +/mob/living/simple_animal/parrot/Poly, +/obj/item/clothing/glasses/meson{ + pixel_y = 4 + }, +/obj/item/cartridge/atmos, +/obj/item/cartridge/engineering{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/cartridge/engineering{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/cartridge/engineering{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/obj/machinery/keycard_auth{ + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"rGc" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"rGy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"rGP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/turnstile{ + name = "Genpop Exit Turnstile"; + req_access_txt = "70"; + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"rHa" = ( +/obj/structure/table/reinforced, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/plasteel/dark, +/area/security/main) +"rHS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"rIl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/status_display/supply{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"rIB" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"rJh" = ( +/obj/effect/turf_decal/arrows/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"rJk" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/obj/effect/turf_decal/tile/purple, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"rJw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"rJM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"rJO" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/hallway/secondary/exit/departure_lounge) +"rKd" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"rLb" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"rLk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/bridge) +"rLn" = ( +/obj/item/beacon, +/turf/open/floor/engine, +/area/science/misc_lab) +"rMv" = ( +/obj/machinery/shieldwallgen, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"rMS" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/gun/energy/laser{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/gun/energy/laser, +/obj/item/gun/energy/laser{ + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"rNn" = ( +/obj/item/beacon, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"rNP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"rNS" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"rOd" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ai_monitored/security/armory) +"rOD" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Server Room"; + req_access_txt = "61" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel/dark, +/area/tcommsat/server) +"rPs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/starboard) +"rPD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/camera{ + c_tag = "Northwestern Hall 8"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"rPU" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "robo1" + }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass{ + amount = 20; + pixel_x = -3; + pixel_y = 6 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"rQs" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/fore) +"rQu" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"rQz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"rQH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/disposal) +"rQJ" = ( +/turf/closed/wall, +/area/science/robotics/lab) +"rQN" = ( +/obj/machinery/chem_master, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"rRk" = ( +/obj/structure/chair/comfy/beige, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"rRV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"rSn" = ( +/obj/structure/table/optable, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"rSF" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + dir = 8 + }, +/obj/machinery/meter, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel, +/area/engine/atmos) +"rSN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"rTj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"rTs" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"rTv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"rTz" = ( +/obj/structure/fireplace{ + pixel_y = -6 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"rTA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"rTG" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"rTW" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"rUd" = ( +/turf/open/openspace/icemoon, +/area/science/mixing) +"rUl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"rUq" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"rUu" = ( +/obj/machinery/computer/message_monitor, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"rUK" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/fitness/recreation"; + dir = 8; + name = "Rec Room APC"; + pixel_x = -25; + pixel_y = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/fitness/recreation) +"rVy" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating, +/area/engine/engineering) +"rVA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"rVB" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/engine/storage) +"rVN" = ( +/turf/closed/wall, +/area/maintenance/central) +"rWN" = ( +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/plasteel/dark, +/area/bridge) +"rXn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/engine/engineering) +"rXo" = ( +/obj/machinery/power/emitter, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/storage) +"rXp" = ( +/obj/item/target/alien/anchored, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/camera/preset/toxins{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"rXw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"rYc" = ( +/obj/machinery/computer/arcade/battle{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"rYi" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"rYn" = ( +/obj/machinery/telecomms/message_server, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"rYD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"rYN" = ( +/obj/structure/chair/stool, +/turf/open/floor/carpet, +/area/chapel/main) +"rYQ" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/obj/structure/chair/sofa/corner, +/turf/open/floor/wood, +/area/maintenance/bar) +"rZJ" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"rZL" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"sat" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"sax" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 10 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"saN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj//obj/item/kirbyplants{ + icon_state = "plant-10" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"saP" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/chair/pew/left{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Chapel" + }, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"sbo" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel, +/area/engine/atmos) +"sbN" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/terminal, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"sbS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"sco" = ( +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/primary/port) +"scu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"scF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"scH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"scY" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/engine/atmos) +"sda" = ( +/turf/closed/wall, +/area/storage/tech) +"sdc" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/maintenance/solars/port/aft) +"sde" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/security, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"sdq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/closet/l3closet/janitor, +/turf/open/floor/plasteel, +/area/janitor) +"sdr" = ( +/turf/open/floor/plasteel, +/area/engine/atmos) +"sdw" = ( +/obj/machinery/conveyor_switch/oneway{ + dir = 8; + id = "QMLoad" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"sdH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"sdN" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/central) +"sem" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"seo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/mining/glass{ + name = "Delivery Office"; + req_access_txt = "50" + }, +/turf/open/floor/plasteel, +/area/maintenance/starboard) +"seG" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"seR" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"seZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/medical/morgue) +"sfm" = ( +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"sfn" = ( +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"sgB" = ( +/obj/machinery/door/airlock/virology/glass{ + name = "Monkey Pen"; + req_access_txt = "39" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"sgL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/dorms) +"shM" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/dna_scannernew, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"shN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"shR" = ( +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"shX" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/smes/engineering, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"siO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/airlock/command/glass{ + name = "Chief Engineer"; + req_access_txt = "56" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"siX" = ( +/obj/effect/turf_decal/trimline/red/filled, +/obj/machinery/suit_storage_unit/security, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"sjE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/vending/tool, +/turf/open/floor/plasteel, +/area/storage/primary) +"sjW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"skB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/effect/landmark/start/cargo_technician, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"skE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"skK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"skZ" = ( +/turf/closed/wall/r_wall, +/area/janitor) +"slc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"slJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "Skynet_launch2"; + name = "Mech Bay Door Control"; + pixel_x = 6; + pixel_y = -24; + req_access_txt = "29" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"slO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"sma" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/cabinet, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/pickaxe, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"smP" = ( +/turf/closed/wall/r_wall, +/area/security/detectives_office) +"smY" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"snb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/computer/card, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"soN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"spa" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"spy" = ( +/obj/machinery/power/solar_control{ + dir = 1; + id = "starboardsolar"; + name = "Starboard Quarter Solar Control" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"spE" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/obj/machinery/computer/atmos_control/tank/nitrous_tank{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"sqg" = ( +/turf/closed/wall, +/area/construction/storage) +"sqx" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"srk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating, +/area/hallway/primary/fore) +"srm" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj//obj/item/kirbyplants{ + icon_state = "plant-10" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"srq" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"srB" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"srJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"srL" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"srU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/cabinet, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/pickaxe, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"ssF" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"ssH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrous_output{ + dir = 8 + }, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"stW" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"sub" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2, +/turf/open/floor/plating, +/area/storage/atmos) +"sup" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) +"suK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/virology{ + autoclose = 0; + frequency = 1449; + id_tag = "virology_airlock_interior"; + name = "Virology Interior Airlock"; + req_access_txt = "39" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"suL" = ( +/obj/item/radio/intercom{ + pixel_x = -30 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"sve" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/security/checkpoint/supply) +"svp" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"svY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"swQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"sxa" = ( +/obj/machinery/requests_console{ + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_x = 30 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"sxb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"sxl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"sxB" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/medical, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"sxJ" = ( +/obj/item/beacon, +/turf/open/floor/plasteel, +/area/engine/atmos) +"sxN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"syy" = ( +/obj/machinery/camera{ + c_tag = "Toxins Lab East"; + dir = 8; + network = list("ss13","rd"); + pixel_y = -22 + }, +/obj/machinery/portable_atmospherics/pump, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"syN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Northwestern Hall 1"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"sza" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/engine, +/area/engine/engineering) +"szG" = ( +/obj/machinery/computer/mech_bay_power_console, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/circuit, +/area/science/robotics/mechbay) +"szK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/security/checkpoint/medical) +"szX" = ( +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plating, +/area/engine/engineering) +"szZ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/item/aicard, +/obj/item/multitool, +/obj/item/assembly/flash/handheld, +/turf/open/floor/plasteel/dark, +/area/bridge) +"sAh" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"sAw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"sBs" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"sBy" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"sBB" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"sDu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"sDD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"sDW" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/shaker, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"sFh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/security/brig) +"sFp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/captain) +"sFw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/machinery/light, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"sGC" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"sGE" = ( +/obj/effect/turf_decal/arrows/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"sGL" = ( +/obj/machinery/camera{ + c_tag = "Brig Lobby" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"sHl" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/vending/assist, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"sHv" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"sHJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/fans/tiny, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"sHK" = ( +/obj/machinery/door/airlock{ + name = "Bar Storage"; + req_access_txt = "25" + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"sIk" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/green/visible, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/engine, +/area/engine/engineering) +"sIn" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + req_one_access_txt = "13,8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"sIT" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/pod/dark, +/area/medical/paramedic) +"sJs" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"sJD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"sKh" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/structure/fans/tiny, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"sKN" = ( +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/obj/machinery/rnd/production/circuit_imprinter, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"sLg" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"sLj" = ( +/turf/closed/wall/r_wall, +/area/medical/medbay/zone2) +"sLn" = ( +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen/fountain, +/obj/item/clipboard, +/obj/item/stamp/qm, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"sLq" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"sLr" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/obj/effect/turf_decal/bot_white/right, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"sLv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"sLN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"sMa" = ( +/turf/open/floor/engine, +/area/engine/atmospherics_engine) +"sMi" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"sMA" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"sMX" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"sNb" = ( +/obj/machinery/atmospherics/miner/n2o, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"sNg" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/hallway/secondary/exit/departure_lounge) +"sNs" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"sNK" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/science/robotics/lab"; + dir = 4; + name = "Robotics Lab APC"; + pixel_x = 25 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"sOi" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/main) +"sOz" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"sOE" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + name = "Privacy Shutters" + }, +/obj/machinery/door/window/brigdoor{ + base_state = "rightsecure"; + dir = 8; + icon_state = "rightsecure"; + name = "Head of Personnel's Desk"; + req_access_txt = "57" + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Reception Window" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"sPq" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/security/main) +"sPt" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel, +/area/engine/break_room) +"sPA" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"sPF" = ( +/obj/machinery/airalarm{ + pixel_y = 26 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"sQb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"sRh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"sRm" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/structure/sign/warning/biohazard, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"sRM" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/structure/tank_dispenser/oxygen, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/maintenance/department/bridge"; + dir = 4; + name = "Bridge APC"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"sSj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/bot, +/obj/effect/landmark/start/cargo_technician, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"sSy" = ( +/obj/effect/turf_decal/stripes, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"sSP" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/vending/wardrobe/sec_wardrobe, +/turf/open/floor/plasteel/dark, +/area/security/main) +"sSS" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/sign/warning/securearea{ + pixel_x = 32 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ai_monitored/security/armory) +"sTe" = ( +/obj/machinery/door/airlock/medical{ + name = "Operating Theatre"; + req_access_txt = "45" + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"sTq" = ( +/turf/open/openspace/icemoon, +/area/engine/atmospherics_engine) +"sTz" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/storage/box/teargas{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/storage/box/teargas, +/obj/item/storage/box/teargas{ + pixel_x = 1; + pixel_y = -2 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"sTI" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"sTR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"sUn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"sUE" = ( +/obj/structure/table/glass, +/obj/item/disk/design_disk, +/obj/item/disk/design_disk, +/obj/item/disk/tech_disk, +/obj/item/disk/tech_disk, +/obj/item/folder/white, +/turf/open/floor/plasteel/white, +/area/science/lab) +"sUF" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"sVh" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/obj/machinery/camera{ + c_tag = "TEG East"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"sVL" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"sWD" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/structure/table, +/obj/item/hand_labeler, +/obj/item/hand_labeler, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"sWF" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/hallway/secondary/exit/departure_lounge) +"sWN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/security{ + name = "Brig"; + req_access_txt = "63; 42" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/wood, +/area/security/brig) +"sWT" = ( +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"sXl" = ( +/obj/structure/table/glass, +/obj/item/storage/box/disks{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"sXs" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"sXy" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"sXJ" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/cmo) +"sXV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/medical/virology) +"sYm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/science/storage) +"sYo" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/engine/secure_construction) +"sYv" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/hydroponics/constructable, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"sZq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Courtroom West"; + dir = 4 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"sZJ" = ( +/obj/machinery/newscaster/security_unit{ + pixel_x = -28; + pixel_y = -28 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"sZT" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/engine/atmospherics_engine) +"tag" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"taj" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"tat" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/bed/roller, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) +"taP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/suit_storage_unit/standard_unit, +/obj/machinery/firealarm{ + pixel_y = 29 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"tbg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"tcj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/construction/storage) +"tcq" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"tcN" = ( +/obj/structure/table/wood, +/obj/item/storage/box/donkpockets, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"tcP" = ( +/obj/item/radio/intercom{ + pixel_y = 20 + }, +/obj/machinery/vending/wardrobe/chem_wardrobe, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Chemistry" + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"tcU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"tcW" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"tdE" = ( +/obj/machinery/conveyor{ + id = "QMLoad" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"tdK" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"tdL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/janitor) +"tdX" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"teh" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/power/apc{ + areastring = "/area/security/prison"; + dir = 8; + name = "Prison Wing APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/closet/secure_closet/genpop, +/obj/item/radio/headset{ + desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; + name = "prisoner headset"; + prison_radio = 1 + }, +/obj/item/clothing/suit/hooded/wintercoat, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"tey" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/mineral/wood, +/area/icemoon/surface/outdoors) +"teC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"teL" = ( +/obj/machinery/light, +/obj/structure/table/glass, +/obj/item/storage/box/monkeycubes, +/obj/item/storage/box/monkeycubes{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/storage/box/syringes{ + pixel_y = 5 + }, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 7 + }, +/obj/item/radio/intercom{ + pixel_y = -26 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"tfm" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"tfq" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "Engineering" + }, +/obj/structure/plasticflaps/opaque, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"tfx" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/structure/table, +/obj/item/clothing/head/soft, +/obj/item/clothing/head/soft, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"tfP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"tgd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/window{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"tht" = ( +/obj/effect/landmark/start/station_engineer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"thu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/fitness) +"thy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"thF" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Lab - Pen #4"; + dir = 8; + network = list("ss13","rd","xeno") + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"thN" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"thV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/quartermaster/miningdock) +"tif" = ( +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"tio" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"tiG" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"tiN" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"tjA" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj//obj/item/kirbyplants{ + icon_state = "plant-10" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"tkq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table, +/obj/item/multitool{ + pixel_x = 4 + }, +/obj/item/multitool, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, +/turf/open/floor/plasteel, +/area/storage/primary) +"tkr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"tkG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/command{ + name = "Captain's Quarters"; + req_access_txt = "20" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"tkH" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"tlc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/junction/yjunction, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"tlg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering{ + name = "Starboard Bow Solar Access"; + req_access_txt = "10" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"tlk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/highsecurity{ + name = "Telecomms and AI Access"; + req_access_txt = "32; 19" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"tlu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"tmo" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Mining Dock Airlock"; + req_access_txt = "48"; + shuttledocked = 1 + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/quartermaster/miningdock) +"tmt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"tmx" = ( +/obj/structure/table/glass, +/turf/open/floor/plasteel/white, +/area/science/lab) +"tmy" = ( +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"tmI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/storage) +"tmO" = ( +/turf/closed/wall, +/area/hallway/primary/port) +"tmU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"tnL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"tnX" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"toa" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"tod" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/chapel/main) +"tos" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/obj/effect/landmark/start/cargo_technician, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"toH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start/chaplain, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/chapel/office) +"toL" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/engine, +/area/engine/atmospherics_engine) +"tpf" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"tpg" = ( +/obj/machinery/light, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/carpet, +/area/chapel/office) +"tpl" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/security/prison) +"tpD" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"tpN" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"tqa" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"tqg" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"tqp" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"trn" = ( +/obj/machinery/telecomms/broadcaster/preset_right, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"trB" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastleft{ + name = "Hydroponics Desk"; + req_access_txt = "35"; + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"trO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"trU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"tsi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/engine/engineering) +"tsq" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"tsK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"ttl" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"tty" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/engine/engineering) +"ttG" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/wood, +/area/library) +"ttH" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/medbay/zone2"; + dir = 4; + name = "Southern Paramedic Station APC"; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"ttK" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/structure/chair/sofa, +/turf/open/floor/wood, +/area/maintenance/bar) +"ttQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"ttU" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/carpet/orange, +/area/engine/secure_construction) +"tuu" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/bar) +"tuv" = ( +/obj/machinery/vending/wardrobe/chap_wardrobe, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/carpet, +/area/chapel/office) +"tuP" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"tuZ" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrous_input{ + dir = 8 + }, +/obj/machinery/air_sensor/atmos/nitrous_tank{ + pixel_y = -25 + }, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"tvF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"twG" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/machinery/microwave, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"twU" = ( +/obj/structure/sink/kitchen{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink"; + pixel_y = 28 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"txk" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 26 + }, +/obj/machinery/camera{ + c_tag = "Brig North" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"txz" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"txL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"tys" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"tyF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"tyH" = ( +/obj/structure/bodycontainer/morgue{ + dir = 2 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"tyQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"tzB" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"tzL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"tzP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"tAa" = ( +/obj/structure/closet/secure_closet/personal/patient, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"tAm" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"tAv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"tAG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"tAQ" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Containment Pen"; + req_access_txt = "55" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"tAX" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/newscaster/security_unit{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"tAY" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/closet/bombcloset/security, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"tBl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/pipedispenser, +/turf/open/floor/plasteel, +/area/engine/atmos) +"tBm" = ( +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"tBW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/vending/security, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"tCa" = ( +/obj/structure/table/wood, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/obj/item/restraints/handcuffs, +/obj/item/reagent_containers/food/drinks/bottle/whiskey{ + pixel_x = 3 + }, +/obj/item/lighter, +/obj/item/storage/fancy/cigarettes, +/obj/machinery/camera{ + c_tag = "Detective's Office" + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"tCj" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/obj/structure/barricade/wooden/snowed{ + max_integrity = 10; + obj_integrity = 10 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"tCN" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"tDO" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/machinery/computer/security/telescreen{ + name = "Test Chamber Monitor"; + network = list("test"); + pixel_x = -30 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"tDY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"tEl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/machinery/light_switch{ + name = "Bar Lights"; + pixel_x = -6; + pixel_y = 28 + }, +/obj/machinery/reagentgrinder, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"tEt" = ( +/obj/machinery/atmospherics/components/binary/pump/on, +/turf/open/floor/plasteel, +/area/engine/atmos) +"tEQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"tFc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"tFr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/light/floor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"tFu" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"tFN" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmospherics_engine) +"tFY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"tGc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/auxiliary) +"tGJ" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/smes, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"tGK" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/medical/virology) +"tGQ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + name = "Escape Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/fans/tiny, +/turf/open/floor/carpet, +/area/hallway/primary/port) +"tHr" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/item/storage/box/rxglasses, +/obj/item/radio/intercom{ + pixel_x = 25 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Genetics Research"; + network = list("ss13","medbay"); + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"tHC" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"tHH" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/paper_bin/bundlenatural{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/pen/fourcolor, +/turf/open/floor/wood, +/area/library) +"tHU" = ( +/obj/machinery/camera{ + c_tag = "Escape Arm Southeast"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"tIz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"tJi" = ( +/obj/machinery/vending/wardrobe/robo_wardrobe, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"tJA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"tJL" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"tKa" = ( +/obj/machinery/door/airlock/security/glass{ + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"tKD" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/miningdock"; + dir = 4; + name = "Mining Dock APC"; + pixel_x = 26 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"tKN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"tKU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"tLA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/brig) +"tLF" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plasteel/dark, +/area/engine/supermatter) +"tLI" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "Secure Gate"; + name = "Cell Shutters"; + pixel_x = 6; + pixel_y = -3; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "Secure Brig Control"; + name = "Brig Control Shutters"; + pixel_y = -3; + req_access_txt = "2"; + pixel_x = -6 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"tLV" = ( +/obj/effect/turf_decal/bot_white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/vehicle/ridden/secway, +/obj/item/key/security, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"tMk" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/structure/light_construct/small{ + dir = 1 + }, +/obj/structure/barricade/wooden/snowed{ + max_integrity = 10; + obj_integrity = 10 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"tMn" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/space_heater, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"tML" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"tMR" = ( +/obj/machinery/vending/hydronutrients, +/obj/machinery/requests_console{ + department = "Hydroponics"; + departmentType = 2; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"tNf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"tNp" = ( +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"tNq" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"tNX" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/field/generator, +/turf/open/floor/plating, +/area/engine/storage) +"tOs" = ( +/obj/structure/closet/crate/freezer, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/APlus, +/obj/item/reagent_containers/blood/OPlus{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/reagent_containers/blood/OMinus, +/obj/item/reagent_containers/blood/BPlus{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/reagent_containers/blood/BMinus{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/reagent_containers/blood/AMinus, +/obj/item/reagent_containers/blood, +/obj/item/reagent_containers/blood, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"tOz" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/dorms) +"tOE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/maintenance/starboard) +"tOP" = ( +/obj/machinery/atmospherics/components/binary/valve/digital/layer3{ + name = "scrubbers valve" + }, +/turf/open/floor/plating, +/area/engine/atmospherics_engine) +"tOY" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/fitness"; + name = "Fitness Room APC"; + pixel_y = -24 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"tPB" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 4; + name = "euthanization chamber freezer" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"tPQ" = ( +/obj/machinery/camera{ + c_tag = "Escape Arm Northeast"; + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"tQd" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/closet/secure_closet/security/engine, +/obj/item/radio/intercom{ + pixel_y = -26 + }, +/obj/machinery/camera{ + c_tag = "Security Post - Cargo"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"tQv" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/table, +/obj/item/storage/box/lights/mixed, +/obj/item/storage/box/lights/mixed, +/obj/item/reagent_containers/spray/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/turf/open/floor/plasteel, +/area/janitor) +"tQy" = ( +/obj/structure/table, +/obj/machinery/light/small, +/obj/item/clothing/glasses/welding, +/turf/open/floor/plasteel, +/area/construction/storage) +"tQG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse"; + name = "warehouse shutters" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"tQI" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/closet{ + name = "Evidence Closet" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"tRe" = ( +/turf/closed/wall/r_wall, +/area/science/xenobiology) +"tRv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"tRC" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/window{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"tRI" = ( +/obj/structure/table/glass, +/obj/item/slime_scanner, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"tSd" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"tSB" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, +/obj/structure/chair/office/light, +/turf/open/floor/plasteel/dark, +/area/science/server) +"tTo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/janitor) +"tTK" = ( +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science Requests Console"; + pixel_y = 32; + receive_ore_updates = 1 + }, +/obj/structure/table/reinforced, +/obj/item/analyzer, +/obj/item/wrench, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"tTO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating, +/area/engine/storage) +"tTQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"tTW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/security{ + name = "Detective's Office"; + req_access_txt = "4" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plating, +/area/security/detectives_office) +"tUi" = ( +/obj/machinery/computer/arcade/orion_trail{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"tUF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"tVh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"tVp" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"tVS" = ( +/obj/item/radio/intercom{ + frequency = 1485; + name = "Station Intercom (Medbay)"; + pixel_y = 30 + }, +/obj/machinery/vending/wardrobe/medi_wardrobe, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Medbay Storage"; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"tVV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/sorting/mail/flip{ + sortType = 27 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"tWj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"tWx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"tXn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"tXN" = ( +/turf/closed/wall/r_wall, +/area/science/robotics/lab) +"tYo" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/button/door{ + id = "Dorm3"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -24; + specialfunctions = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"tYT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"tZe" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/item/soap/nanotrasen, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"tZO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/start/station_engineer, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"uan" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/medbay/central"; + dir = 4; + name = "Medbay APC"; + pixel_x = 24 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"uap" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/window/northright{ + name = "Engineering Production"; + req_access_txt = "10" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"uat" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"uaG" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/fore) +"uaJ" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/floor/engine, +/area/engine/atmospherics_engine) +"uba" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"ubd" = ( +/obj/machinery/space_heater, +/turf/open/floor/pod/dark, +/area/medical/paramedic) +"ubL" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/central) +"ubQ" = ( +/obj/machinery/field/generator, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 20 + }, +/turf/open/floor/plating, +/area/engine/storage) +"ucm" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ucC" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/engineering) +"ucO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"ucZ" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/safe, +/obj/item/gun/ballistic/revolver/nagant, +/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/clothing/head/bearpelt, +/obj/machinery/power/apc{ + areastring = "/area/ai_monitored/nuke_storage"; + name = "Vault APC"; + pixel_y = -25 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"udB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/security{ + name = "Armory"; + req_access_txt = "3" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"udE" = ( +/obj/machinery/light, +/turf/open/floor/engine, +/area/science/misc_lab) +"udI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"udO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"udT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"ueq" = ( +/obj/structure/bodycontainer/morgue{ + dir = 2 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"ueK" = ( +/obj/structure/closet/l3closet, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"ueO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"ueR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"ufA" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular, +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"ufJ" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ugk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"ugr" = ( +/obj/machinery/button/door{ + id = "Bath1"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 24; + pixel_y = -5; + specialfunctions = 4 + }, +/obj/machinery/shower{ + pixel_y = 20 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/dorms) +"uha" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"uhD" = ( +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/obj/vehicle/ridden/atv/snowmobile, +/obj/item/key, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"uhN" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"uiO" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ujD" = ( +/obj/machinery/airalarm{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"ujE" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/storage/auxiliary) +"ujF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"ukI" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm4"; + name = "Room Three" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"ukJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/secure_closet/freezer/kitchen, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 28 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"ulh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"ulr" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"uma" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/storage/primary) +"umg" = ( +/obj/machinery/airalarm{ + pixel_y = 25 + }, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plating, +/area/engine/storage) +"umx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + name = "Privacy Shutters" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hop) +"umC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"umD" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmospherics_engine) +"umX" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/vending/wallmed{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"unt" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/closet/wardrobe/white, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"unA" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"unF" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible/layer3{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmospherics_engine) +"unX" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/light, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"uoc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"uot" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/closet/secure_closet/engineering_personal, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"uoV" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"upH" = ( +/obj/machinery/camera/motion{ + c_tag = "Armory Motion Sensor South"; + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"uqa" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"uqy" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"urI" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hydroponics) +"urV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortType = 24 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"usn" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/airlock/engineering{ + name = "Tech Storage"; + req_access_txt = "23" + }, +/turf/open/floor/plating, +/area/storage/tech) +"ust" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"usE" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/port) +"usM" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/library) +"utj" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/visible, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"utp" = ( +/obj/structure/cable, +/obj/machinery/power/smes, +/turf/open/floor/plating, +/area/storage/atmos) +"utS" = ( +/obj/structure/table, +/obj/item/clothing/suit/apron/surgical, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/gloves/color/latex, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"uup" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/storage/atmos) +"uut" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/carpet, +/area/chapel/office) +"uuu" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"uuD" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"uuU" = ( +/obj/structure/closet/emcloset, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) +"uuY" = ( +/obj/machinery/camera{ + c_tag = "Toxins Lab West"; + network = list("ss13","rd"); + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/assembly/prox_sensor{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = 8; + pixel_y = 9 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = 9; + pixel_y = -2 + }, +/obj/item/assembly/prox_sensor{ + pixel_y = 2 + }, +/obj/item/pipe_dispenser, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"uvB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"uvO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Brig South"; + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"uwn" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera/motion{ + c_tag = "Armory - External 2" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/ai_monitored/security/armory) +"uwV" = ( +/obj/machinery/camera{ + c_tag = "Northwestern Hall 4"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"uxq" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/vending/coffee, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"uxx" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"uxF" = ( +/obj/machinery/space_heater, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"uxO" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/engine/storage) +"uyK" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/exit/departure_lounge) +"uyM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"uyW" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/pdapainter, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/hop"; + dir = 1; + name = "Head of Personnel APC"; + pixel_y = 24 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"uze" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 6 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"uzf" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/light, +/obj/machinery/vending/cola/random, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"uzI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/secure_construction) +"uzT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"uAh" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/wood, +/area/library) +"uAj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"uAs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"uAu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"uBa" = ( +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"uBc" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/engine, +/area/science/xenobiology) +"uBh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"uBi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"uBy" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"uBG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"uCi" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"uCo" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"uCr" = ( +/obj/effect/spawner/lootdrop/keg, +/turf/open/floor/plating, +/area/maintenance/bar) +"uCE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"uDK" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"uDO" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"uEd" = ( +/obj/effect/turf_decal/tile/red, +/obj/machinery/space_heater, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"uEg" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"uEz" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"uEB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"uEG" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/dorms"; + dir = 1; + name = "Dormitory APC"; + pixel_y = 24 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"uFq" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Arrivals Airlock" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"uGQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"uGY" = ( +/obj/structure/chair/comfy/brown, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/hallway/primary/port) +"uHc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"uHl" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod Four"; + shuttledocked = 1 + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/maintenance/central) +"uHy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"uHM" = ( +/obj/structure/closet/secure_closet/medical3, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"uIs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"uIv" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/bar"; + dir = 1; + name = "Bar APC"; + pixel_y = 23 + }, +/obj/machinery/door/window/southright{ + name = "Bar Door"; + req_one_access_txt = "25;28"; + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"uIU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"uIZ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"uJx" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/science/robotics/mechbay) +"uJF" = ( +/obj/structure/table/glass, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/item/stock_parts/micro_laser, +/obj/item/stock_parts/micro_laser, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/capacitor, +/obj/item/stock_parts/capacitor, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Research and Development"; + network = list("ss13","rd"); + pixel_x = 22 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"uJL" = ( +/obj/structure/displaycase/labcage, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/heads/hor) +"uJV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"uKb" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/obj/structure/table/wood, +/obj/item/storage/box/deputy, +/obj/item/storage/box/seccarts{ + pixel_x = 3; + pixel_y = 2 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"uKr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/window/plasma/reinforced{ + dir = 4 + }, +/obj/structure/window/plasma/reinforced{ + dir = 1 + }, +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/engineering) +"uKy" = ( +/obj/machinery/biogenerator, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"uKE" = ( +/obj/machinery/airalarm{ + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"uKG" = ( +/obj/effect/landmark/start/cyborg, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/camera{ + c_tag = "MiniSat Service Bay"; + dir = 8; + network = list("minisat"); + start_active = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/service) +"uKH" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/yellow/visible/layer3, +/turf/open/floor/plating, +/area/engine/atmospherics_engine) +"uKI" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/landmark/start/geneticist, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"uKM" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/prison{ + pixel_x = 29; + dir = 8 + }, +/turf/open/floor/plasteel/cult, +/area/lawoffice) +"uLa" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/engine, +/area/engine/engineering) +"uLd" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"uLV" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"uLX" = ( +/obj/structure/cable, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Supermatter North"; + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/supermatter) +"uMk" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Kill Room"; + dir = 8; + network = list("ss13","rd") + }, +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"uMF" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"uNd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"uOy" = ( +/obj/machinery/atmospherics/pipe/simple, +/obj/machinery/door/airlock/command/glass{ + name = "Server Room"; + req_access_txt = "30" + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"uPa" = ( +/obj/machinery/light, +/obj/structure/reflector/box, +/turf/open/floor/plating, +/area/engine/storage) +"uPe" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/theatre"; + dir = 1; + name = "Theatre APC"; + pixel_y = 24 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"uPn" = ( +/obj/machinery/door/airlock/external{ + name = "Supply Vehicles Airlock"; + req_access_txt = "31" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel, +/area/maintenance/starboard) +"uPI" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"uPJ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"uQc" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"uQG" = ( +/obj/machinery/door/airlock/external{ + name = "Engineering External Access"; + req_access_txt = "10;13" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"uQR" = ( +/turf/open/floor/wood, +/area/bridge/meeting_room) +"uRc" = ( +/obj/structure/cable, +/obj/machinery/power/tracker, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/icemoon/surface/outdoors) +"uRg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/bombcloset, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"uRi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"uSe" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "hop"; + name = "Privacy Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hop) +"uSv" = ( +/obj/machinery/deepfryer, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"uSH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"uSV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"uTu" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"uTK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/table, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/turf/open/floor/plasteel, +/area/engine/atmos) +"uUi" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"uUk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"uUl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"uUr" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"uUC" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"uUJ" = ( +/obj/structure/bed, +/obj/item/bedsheet/syndie, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"uUZ" = ( +/obj/effect/turf_decal/arrows/red, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"uVe" = ( +/obj/structure/table/wood, +/obj/item/screwdriver{ + pixel_y = 10 + }, +/obj/item/radio/off{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"uVt" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/structure/reagent_dispensers/watertank/high, +/obj/item/reagent_containers/glass/bucket, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"uVD" = ( +/obj/structure/table, +/obj/item/aiModule/reset, +/obj/item/aiModule/supplied/quarantine, +/obj/item/aiModule/supplied/freeform, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"uWb" = ( +/obj/structure/plasticflaps, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor2"; + name = "supply dock loading door" + }, +/obj/machinery/conveyor{ + id = "QMLoad2"; + dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"uWn" = ( +/obj/structure/table, +/obj/item/toy/cards/deck, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/fitness/recreation) +"uWo" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology North"; + dir = 4; + network = list("ss13","rd") + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"uWC" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"uWS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"uWW" = ( +/obj/structure/closet/crate/internals, +/turf/open/floor/plating, +/area/maintenance/starboard) +"uWY" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"uXi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/heads/hor) +"uXs" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room"; + req_access_txt = "10" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"uXy" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "AI Chamber - Aft"; + dir = 1; + network = list("aicore") + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"uXF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/chair{ + name = "Judge"; + dir = 4 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"uXL" = ( +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/primary/fore) +"uXO" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/storage/tech"; + dir = 1; + name = "Tech Storage APC"; + pixel_y = 24 + }, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/engineering, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"uYa" = ( +/turf/open/floor/plasteel/white, +/area/medical/virology) +"uYf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"uYl" = ( +/obj/structure/chair/stool{ + pixel_y = 8 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"uYm" = ( +/obj/machinery/door/poddoor/shutters{ + id = "teledoor"; + name = "Teleporter Access Shutters" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/teleporter) +"uZd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1; + sortType = 30 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"uZf" = ( +/obj/machinery/door/poddoor/incinerator_toxmix, +/turf/open/floor/engine/airless, +/area/science/mixing) +"uZz" = ( +/turf/closed/wall, +/area/quartermaster/sorting) +"vaj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"vam" = ( +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"vax" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"vaB" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/storage) +"vaO" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/dark, +/area/bridge) +"vaQ" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"vaR" = ( +/obj/structure/sign/poster/contraband/random{ + pixel_y = 32 + }, +/obj/machinery/vending/cigarette, +/turf/open/floor/plating, +/area/maintenance/bar) +"vbx" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/tcommsat/computer"; + dir = 1; + name = "Telecomms Monitoring APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"vbz" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"vcF" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/science/xenobiology) +"vcG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"vcH" = ( +/obj/machinery/camera{ + c_tag = "Xenobiology Lab - Pen #3"; + dir = 8; + network = list("ss13","rd","xeno") + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"vcN" = ( +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2) +"vcY" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1480; + name = "Confessional Intercom"; + pixel_x = -4; + pixel_y = -29 + }, +/turf/open/floor/plasteel/grimy, +/area/chapel/main) +"vdw" = ( +/turf/open/floor/circuit, +/area/science/robotics/mechbay) +"vdW" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"vem" = ( +/obj/structure/table/wood, +/obj/machinery/keycard_auth{ + pixel_y = 24 + }, +/obj/item/pinpointer/nuke, +/obj/item/disk/nuclear, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"veC" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=CHW"; + location = "Dorm" + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"veF" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 6; + pixel_y = -1 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -5; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/drinks/bottle/whiskey, +/obj/item/reagent_containers/food/drinks/bottle/vodka{ + pixel_x = 3; + pixel_y = 2 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"veJ" = ( +/obj/structure/cable, +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"vfd" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"vfi" = ( +/obj/machinery/computer/telecomms/server, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"vfp" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/pod/dark, +/area/maintenance/starboard) +"vfx" = ( +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"vgb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/wood, +/area/security/courtroom) +"vgm" = ( +/obj/machinery/air_sensor/atmos/mix_tank, +/turf/open/floor/engine/airless, +/area/engine/atmos) +"vgo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"vgH" = ( +/obj/machinery/chem_master/condimaster{ + name = "CondiMaster Neo" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"vgI" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"vgW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/vending/wardrobe/sec_wardrobe, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"vgX" = ( +/obj/machinery/conveyor{ + id = "QMLoad2"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"vgZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"vhb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"vhf" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/checkpoint/supply) +"vhT" = ( +/obj/machinery/space_heater, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vir" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + sortType = 16 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"viF" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel, +/area/construction/storage) +"vju" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"vjQ" = ( +/obj/structure/closet/secure_closet/exile, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_x = 25 + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"vjV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"vjX" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/command, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/storage/tech) +"vjY" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/sleeper{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) +"vkk" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"vkw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"vkD" = ( +/obj/structure/chair/comfy/black, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"vkR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/engine/engineering) +"vlz" = ( +/obj/structure/urinal{ + pixel_y = 32 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 30 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/dorms) +"vlC" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"vme" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/table, +/obj/item/radio/off, +/obj/item/radio/off{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"vmr" = ( +/obj/machinery/porta_turret/ai{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"vmD" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"vmJ" = ( +/obj/effect/turf_decal/vg_decals/atmos/nitrous_oxide, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"vmM" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"vmN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vmO" = ( +/obj/machinery/smartfridge/chemistry/preloaded, +/turf/closed/wall/r_wall, +/area/medical/chemistry) +"vnl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/airlock/research{ + name = "Xenobiology Lab"; + req_access_txt = "55" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"vnn" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/structure/closet/secure_closet/hydroponics, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"vnM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel, +/area/hydroponics) +"vob" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"vow" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/dorms) +"voD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_x = 25 + }, +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start/lawyer, +/turf/open/floor/plasteel/cult, +/area/lawoffice) +"vpz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/public/glass{ + name = "Security Lobby" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/security/courtroom) +"vpR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/prison) +"vqv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock{ + name = "Theatre Backstage"; + req_access_txt = "46" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"vqF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"vqP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"vqQ" = ( +/obj/effect/landmark/start/virologist, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"vqS" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + dir = 1; + freq = 1400; + location = "Bridge" + }, +/obj/structure/plasticflaps/opaque, +/turf/open/floor/plasteel, +/area/bridge/meeting_room) +"vqY" = ( +/obj/machinery/button/door{ + id = "Dorm4"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + pixel_x = -24; + specialfunctions = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"vqZ" = ( +/obj/structure/window/plasma/reinforced{ + dir = 1 + }, +/obj/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 1 + }, +/obj/machinery/door/poddoor{ + id = "tegheat"; + name = "TEG Heatshield" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/engine/atmospherics_engine) +"vra" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/disposal"; + name = "Disposal APC"; + pixel_y = -24 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"vrd" = ( +/turf/closed/wall/r_wall, +/area/maintenance/solars/port/fore) +"vrg" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2o, +/turf/open/floor/plating, +/area/storage/atmos) +"vrx" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/dorms) +"vrI" = ( +/obj/machinery/button/door{ + id = "tegheat"; + name = "TEG Heatshield"; + pixel_y = 25 + }, +/obj/machinery/button/ignition{ + id = "Incinerator"; + pixel_y = 35; + pixel_x = -1 + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"vrJ" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -35 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"vse" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/bot_white/left, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"vsK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/entry) +"vsM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"vsN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side, +/area/hallway/primary/port) +"vtO" = ( +/obj/machinery/atmospherics/pipe/manifold, +/turf/open/floor/plasteel/dark/telecomms, +/area/science/server) +"vuh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"vuk" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/poddoor/preopen{ + id = "misclab"; + name = "test chamber blast door" + }, +/turf/open/floor/plating, +/area/science/misc_lab) +"vun" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"vuJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"vuO" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"vvH" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"vvM" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -1; + pixel_y = 6 + }, +/turf/open/floor/plasteel/grimy, +/area/tcommsat/computer) +"vwf" = ( +/obj/structure/bookcase/random/fiction, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/wood, +/area/library) +"vwV" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/vending/wardrobe/hydro_wardrobe, +/obj/machinery/power/apc{ + areastring = "/area/hydroponics"; + dir = 1; + name = "Hydroponics APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"vwW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/folder/blue, +/obj/item/folder/blue, +/obj/item/folder/blue, +/obj/item/stamp/captain, +/obj/item/storage/secure/safe{ + pixel_x = 35; + pixel_y = 5 + }, +/obj/item/melee/chainofcommand, +/obj/structure/window/reinforced, +/obj/machinery/camera{ + c_tag = "Captain's Office"; + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"vxi" = ( +/turf/open/floor/carpet, +/area/bridge) +"vxI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"vxX" = ( +/obj/structure/table, +/obj/item/multitool, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/gloves/color/fyellow, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/camera{ + c_tag = "Auxiliary Tool Storage" + }, +/turf/open/floor/plasteel, +/area/storage/auxiliary) +"vyb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/crate, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"vyf" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/storage) +"vyH" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/power/apc{ + areastring = "/area/ai_monitored/turret_protected/ai_upload_foyer"; + dir = 1; + name = "AI Upload Access APC"; + pixel_y = 27 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"vyJ" = ( +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"vyM" = ( +/obj/structure/table/reinforced, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"vzj" = ( +/obj/machinery/light/small, +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/wood, +/area/library) +"vzn" = ( +/obj/structure/closet/secure_closet/miner, +/obj/item/clothing/shoes/winterboots/ice_boots, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"vzR" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"vzS" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 5 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"vAh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/medical/surgery) +"vAp" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"vAs" = ( +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"vAy" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/chemistry"; + dir = 1; + name = "Chemistry APC"; + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"vAF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"vAI" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/plasteel/dark, +/area/bridge) +"vBa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/obj/machinery/conveyor_switch/oneway{ + id = "packageSort2" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"vBe" = ( +/obj/machinery/light/floor, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"vBg" = ( +/obj/machinery/telecomms/server/presets/supply, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"vBo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/airlock/command{ + name = "Conference Room"; + req_access_txt = "19" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"vBx" = ( +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"vBS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"vBV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock{ + name = "Crematorium"; + req_access_txt = "27" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/plasteel/cafeteria, +/area/chapel/office) +"vCr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"vCv" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"vCE" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"vDb" = ( +/obj/machinery/vending/cola/random, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"vDy" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"vDI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"vEd" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"vEe" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"vEi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"vEm" = ( +/obj/machinery/recharge_station, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/aisat/service) +"vEo" = ( +/obj/machinery/door/airlock/wood, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/wood, +/area/maintenance/bar) +"vEr" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"vEA" = ( +/obj/structure/cable, +/obj/structure/closet/secure_closet/contraband/armory, +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/spawner/lootdrop/armory_contraband{ + loot = list(/obj/item/gun/ballistic/automatic/pistol = 5, /obj/item/gun/ballistic/shotgun/automatic/combat = 5, /obj/item/gun/ballistic/revolver/mateba, /obj/item/gun/ballistic/automatic/pistol/deagle, /obj/item/storage/box/syndie_kit/throwing_weapons = 3) + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/ai_monitored/security/armory"; + name = "Armory APC"; + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"vEG" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/secure_closet/brig{ + id = "Cell 1"; + name = "Cell 1 Locker" + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/obj/item/radio/headset{ + desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."; + name = "prisoner headset"; + prison_radio = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"vER" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/airlock/mining{ + req_access_txt = "48" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"vFd" = ( +/obj/machinery/airalarm{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/camera{ + c_tag = "Northwest Paramedic Post"; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"vFe" = ( +/obj/item/beacon, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"vFM" = ( +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"vGi" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"vGn" = ( +/obj/machinery/light, +/turf/open/floor/pod/dark, +/area/medical/paramedic) +"vHU" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"vIf" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Gen-Pop Access"; + req_access_txt = "2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "permacell1"; + name = "genpop blast door" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"vIl" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/wood, +/area/hallway/primary/central) +"vIA" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"vJs" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"vJt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Chapel Crematorium"; + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/chapel/office) +"vJG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/hallway/primary/port) +"vKa" = ( +/turf/closed/wall, +/area/crew_quarters/kitchen) +"vKc" = ( +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/airlock/research{ + name = "Toxins Storage"; + req_access_txt = "8" + }, +/turf/open/floor/plasteel, +/area/science/storage) +"vKm" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vKo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/pen/fourcolor, +/obj/item/paper_bin/bundlenatural{ + pixel_x = 6; + pixel_y = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"vKO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"vKP" = ( +/obj/structure/weightmachine/stacklifter, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"vKT" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/storage/atmos) +"vLa" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/command/glass{ + name = "Chief Medical Officer"; + req_access_txt = "40" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"vLt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"vLE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/obj/structure/reagent_dispensers/foamtank, +/obj/item/radio/intercom{ + pixel_x = -25 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vLP" = ( +/obj/structure/kitchenspike, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen) +"vMf" = ( +/obj/machinery/computer/operating, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"vMg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/secondary/entry) +"vMh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"vMl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hop) +"vMB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white/side, +/area/hallway/primary/port) +"vNu" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/morgue"; + dir = 8; + name = "Morgue APC"; + pixel_x = -26 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"vNF" = ( +/obj/machinery/light, +/obj/structure/table, +/obj/item/storage/toolbox/emergency, +/obj/item/storage/firstaid/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"vNY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"vOo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/public/glass{ + name = "Rec Room" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/fitness/recreation) +"vOB" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"vOS" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"vOU" = ( +/turf/open/floor/plasteel/dark, +/area/security/brig) +"vOV" = ( +/turf/closed/wall/r_wall, +/area/science/storage) +"vPB" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hydroponics) +"vPQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"vQf" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/chapel/main) +"vQk" = ( +/obj/machinery/computer/holodeck{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/dorms) +"vQo" = ( +/turf/closed/wall/r_wall, +/area/engine/supermatter) +"vQW" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"vRa" = ( +/obj/structure/table, +/obj/item/cautery{ + pixel_x = 4 + }, +/obj/item/retractor, +/obj/item/scalpel{ + pixel_y = 12 + }, +/obj/item/circular_saw, +/obj/item/hemostat, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"vSb" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/bridge/meeting_room) +"vSc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + sortType = 26 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"vSg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/holopad, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"vSJ" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/wood, +/area/icemoon/surface/outdoors) +"vST" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"vSX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/wood, +/area/hallway/primary/central) +"vTh" = ( +/obj/machinery/computer/med_data, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"vTk" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"vTs" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"vTF" = ( +/obj/item/radio/intercom{ + pixel_y = -26 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"vTP" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"vUj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Cooling Loop Bypass" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"vUq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"vUs" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"vUu" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/disposal) +"vUB" = ( +/obj/machinery/computer/pandemic, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"vUE" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/service, +/turf/open/floor/plasteel/dark, +/area/storage/tech) +"vUN" = ( +/obj/structure/table, +/obj/machinery/computer/security/telescreen/circuitry, +/turf/open/floor/plasteel, +/area/security/checkpoint/medical) +"vVs" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"vVz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"vVN" = ( +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"vVZ" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"vWg" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"vWt" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"vWV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "bridge blast door" + }, +/turf/open/floor/plating, +/area/bridge) +"vXs" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/medical{ + name = "Medbay Break Room"; + req_access_txt = "5" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"vYc" = ( +/obj/effect/landmark/blobstart, +/obj/item/pickaxe, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"vYL" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"vYP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"vZl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"vZq" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/dark, +/area/bridge) +"vZv" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"vZH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"vZR" = ( +/obj/effect/landmark/start/bartender, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"vZY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"waa" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"was" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + pixel_x = -4 + }, +/turf/open/floor/wood, +/area/hallway/primary/port) +"wav" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/arrows/red{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Brig Genpop North"; + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"wax" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/smes, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"waC" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Cryogenic Storage" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"waP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"wbe" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"wbE" = ( +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"wbF" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plasteel/dark, +/area/engine/supermatter) +"wbJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen"; + name = "kitchen shutters" + }, +/obj/item/reagent_containers/food/snacks/cheesynachos{ + pixel_y = 5 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"wbO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"wbT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"wck" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/camera, +/obj/item/storage/photo_album{ + pixel_y = -10 + }, +/obj/structure/window/reinforced, +/turf/open/floor/wood, +/area/crew_quarters/heads/captain) +"wcn" = ( +/obj/structure/table/reinforced, +/obj/item/restraints/handcuffs, +/turf/open/floor/plasteel/dark, +/area/security/main) +"wcy" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"wcB" = ( +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"wcS" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"wdb" = ( +/obj/machinery/atmospherics/pipe/simple{ + dir = 10 + }, +/obj/structure/table, +/obj/item/folder/white, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/science/server) +"wdk" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"wdt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"wdu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"wdv" = ( +/turf/closed/wall, +/area/icemoon/surface/outdoors) +"wdR" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/table, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = 6 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"wen" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "MedbayFoyer"; + name = "Medbay Doors Control"; + normaldoorcontrol = 1; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"weS" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"wfN" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump/on, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Toxins Chamber"; + network = list("ss13","rd") + }, +/turf/open/floor/engine, +/area/science/mixing) +"wfS" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm2"; + name = "Room One" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"wgu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/obj/machinery/light/floor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"wgH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/obj/structure/chair/stool/bar, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"wha" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2o{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"whB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel/cafeteria, +/area/chapel/office) +"whW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"wie" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"wje" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"wji" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"wju" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/computer/security{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"wjK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/door/window/brigdoor{ + dir = 4; + name = "Kitchen"; + req_access_txt = "28" + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"wjL" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"wjW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engineering) +"wkg" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/valve/digital/on, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"wku" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plating, +/area/engine/engineering) +"wkM" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"wkS" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/chair/sofa/corner{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/supply"; + dir = 8; + name = "Cargo Security APC"; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"wlo" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start/lawyer, +/turf/open/floor/plasteel/cult, +/area/lawoffice) +"wlD" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/virology) +"wlG" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod Two" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/hallway/primary/port) +"wlZ" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"wmf" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"wmx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = -3 + }, +/obj/item/pen{ + pixel_x = -3 + }, +/obj/item/folder/yellow{ + pixel_x = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"wmB" = ( +/turf/closed/indestructible/rock/glacierrock/blue, +/area/engine/atmos) +"wmG" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"wmH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Auxiliary Tool Storage"; + req_access_txt = "12" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/auxiliary) +"wnM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/item/beacon, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"wnO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"wnX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/structure/mineral_door/woodrustic, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"won" = ( +/obj/machinery/telecomms/server/presets/command, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"wop" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/airlock/security/glass{ + name = "Security Office"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"woM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"wph" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"wpN" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/turf/open/floor/plasteel, +/area/science/storage) +"wqc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "xenobio6"; + name = "Containment Blast Doors"; + pixel_y = 4; + req_access_txt = "55" + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"wqd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/machinery/requests_console{ + department = "Tool Storage"; + pixel_x = 30 + }, +/obj/item/clothing/gloves/color/yellow, +/turf/open/floor/plasteel, +/area/storage/primary) +"wqe" = ( +/obj/structure/chair/sofa/left{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"wql" = ( +/turf/closed/wall/r_wall, +/area/security/brig) +"wrh" = ( +/obj/machinery/cryopod{ + dir = 8 + }, +/obj/machinery/computer/cryopod{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"wrN" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/starboard) +"wsc" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/plasma{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"wsj" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmospherics_engine) +"wtp" = ( +/obj/structure/closet/wardrobe/grey, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"wtt" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_y = 13; + pixel_x = -7 + }, +/obj/item/camera/detective, +/obj/item/hand_labeler{ + pixel_x = 5 + }, +/obj/item/storage/briefcase, +/obj/item/storage/secure/safe{ + pixel_y = 36; + pixel_x = 6 + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"wtY" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"wuf" = ( +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"wuj" = ( +/obj/structure/table, +/obj/item/storage/firstaid/o2, +/obj/item/storage/firstaid/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"wut" = ( +/obj/machinery/sleeper{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"wuB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/storage) +"wuC" = ( +/obj/structure/cable, +/obj/machinery/power/solar{ + id = "auxsolareast"; + name = "Port Auxiliary Solar Array" + }, +/turf/open/floor/plating/asteroid/snow/ice/icemoon/solarpanel, +/area/icemoon/surface/outdoors) +"wuQ" = ( +/obj/structure/table, +/obj/machinery/plantgenes{ + pixel_y = 6 + }, +/obj/machinery/camera{ + c_tag = "Hydroponics Storage" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"wuS" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/central) +"wvg" = ( +/turf/open/floor/wood, +/area/library) +"wvj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/security/checkpoint/supply) +"wwx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/closed/wall/mineral/wood, +/area/icemoon/surface/outdoors) +"wwO" = ( +/obj/structure/chair/stool, +/obj/structure/light_construct/small, +/turf/open/floor/wood, +/area/maintenance/bar) +"wxf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"wxw" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/science/server) +"wxT" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/medbay/zone2) +"wxZ" = ( +/obj/structure/table, +/obj/machinery/smartfridge/disks{ + pixel_y = 2 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"wyg" = ( +/turf/closed/wall/mineral/wood, +/area/maintenance/bar) +"wzf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"wzl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"wzF" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"wzH" = ( +/obj/effect/landmark/start/medical_doctor, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"wAx" = ( +/turf/closed/wall, +/area/hydroponics) +"wAM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/nuclearbomb/beer, +/turf/open/floor/wood, +/area/maintenance/bar) +"wAQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/pod/dark, +/area/maintenance/starboard) +"wAW" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"wBg" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/maintenance/solars/port/fore) +"wDd" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"wDk" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"wDt" = ( +/obj/structure/chair/pew/left{ + dir = 8 + }, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/chapel/main) +"wDI" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/starboard) +"wDJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/binary/valve/digital/on{ + dir = 4; + name = "Digital Valve" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/electrical) +"wDR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/atmos/abandoned{ + name = "Atmospherics Maintenance"; + req_access_txt = "12;24" + }, +/turf/open/floor/plasteel, +/area/storage/atmos) +"wEm" = ( +/obj/structure/barricade/wooden{ + max_integrity = 10; + obj_integrity = 10 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/maintenance/bar) +"wEP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"wFc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/closet/radiation, +/obj/machinery/requests_console{ + department = "Engineering"; + departmentType = 4; + name = "Engineering RC"; + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"wFt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/mineral/wood, +/area/icemoon/surface/outdoors) +"wFv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/chapel/office) +"wFB" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"wFD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"wFO" = ( +/obj/machinery/shieldgen, +/turf/open/floor/plating, +/area/engine/storage) +"wFR" = ( +/obj/structure/table, +/obj/item/storage/firstaid/fire, +/obj/item/storage/firstaid/fire{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"wFU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"wGe" = ( +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/plasteel, +/area/engine/atmos) +"wGq" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/scientist, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"wGB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"wGD" = ( +/obj/structure/barricade/wooden{ + max_integrity = 10; + obj_integrity = 10 + }, +/turf/open/floor/wood, +/area/maintenance/bar) +"wHQ" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"wIx" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/closet/l3closet/security, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"wIA" = ( +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"wIH" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"wIT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/carpet/orange, +/area/engine/secure_construction) +"wJf" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/engine/secure_construction) +"wJy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"wJH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/construction/storage) +"wJN" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/medical/morgue) +"wJO" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai_upload) +"wKL" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plasteel, +/area/engine/atmos) +"wKN" = ( +/obj/machinery/door/airlock/medical{ + name = "Operating Theatre"; + req_access_txt = "45" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"wKU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"wLs" = ( +/obj/structure/sign/departments/medbay/alt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/medical/medbay/central) +"wLG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall/mineral/wood, +/area/icemoon/surface/outdoors) +"wMr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"wMw" = ( +/obj/machinery/chem_master/condimaster, +/turf/open/floor/plasteel, +/area/hydroponics) +"wMJ" = ( +/obj/structure/closet/secure_closet/bar{ + req_access_txt = "25" + }, +/obj/item/gun/ballistic/revolver/doublebarrel, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/clothing/under/suit/waiter, +/obj/item/clothing/under/suit/waiter, +/obj/item/clothing/under/suit/waiter, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"wMT" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio2"; + name = "containment blast door" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"wNf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"wOn" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/pod/dark, +/area/medical/paramedic) +"wOK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/science/misc_lab) +"wPD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"wPT" = ( +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/main) +"wQG" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/wood, +/area/maintenance/bar) +"wRa" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "packageSort2" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"wRb" = ( +/obj/machinery/telecomms/processor/preset_two, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"wRc" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Cooling to Unfiltered" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"wRm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "External Access"; + req_access_txt = "13" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/maintenance/aft) +"wRv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/table, +/obj/item/lightreplacer, +/turf/open/floor/plasteel, +/area/engine/break_room) +"wRz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"wRN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"wRY" = ( +/turf/closed/wall/r_wall, +/area/maintenance/solars/starboard/aft) +"wSb" = ( +/obj/effect/turf_decal/arrows/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"wSc" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/fans/tiny, +/turf/open/floor/carpet, +/area/hallway/primary/port) +"wSy" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"wSI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"wTe" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/start/station_engineer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"wTf" = ( +/turf/closed/wall/r_wall, +/area/security/warden) +"wTx" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel/dark, +/area/security/main) +"wTK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/chair/stool, +/obj/effect/landmark/start/scientist, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"wUj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/fore) +"wUr" = ( +/turf/closed/wall, +/area/science/robotics/mechbay) +"wVg" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/crew_quarters/theatre) +"wVO" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/engine/engineering) +"wWd" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/table, +/obj/item/flashlight/lamp{ + pixel_x = -2; + pixel_y = 10 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"wWF" = ( +/obj/machinery/atmospherics/components/trinary/filter/critical{ + filter_type = "n2" + }, +/turf/open/floor/engine, +/area/engine/engineering) +"wWL" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Northwestern Hall 5"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"wXj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"wXk" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"wXZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/carpet/orange, +/area/engine/secure_construction) +"wYe" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/construction/storage) +"wYk" = ( +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"wZl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/chair/pew/right{ + dir = 8 + }, +/turf/open/floor/plasteel/chapel, +/area/chapel/main) +"wZJ" = ( +/obj/structure/chair/sofa{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/landmark/start/depsec/engineering, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"wZV" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/power/terminal, +/obj/machinery/camera{ + c_tag = "Southern Engineering Post" + }, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"xac" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/disposal) +"xal" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/machinery/computer/secure_data{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"xas" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"xaI" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"xaS" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"xaW" = ( +/obj/machinery/door/airlock/security/glass{ + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"xbm" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"xbp" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"xcd" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"xcA" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"xcL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/window{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"xcY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"xdc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"xdr" = ( +/obj/machinery/camera{ + c_tag = "Head of Security's Office"; + dir = 8 + }, +/obj/structure/bed/dogbed{ + desc = "A comfy-looking pet bed. You can even strap your pet in, in case the gravity turns off."; + name = "pet bed" + }, +/mob/living/simple_animal/hostile/retaliate/bat/secbat{ + desc = "An adorable fruit bat with a cute little hat, may or may not have a reputation for biting out eyeballs, or at least that's what the HoS'd tell you."; + name = "Colonel Chomps" + }, +/obj/item/storage/secure/safe/HoS{ + pixel_x = 35 + }, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"xdD" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"xeI" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "robo1" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"xeV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/reagent_dispensers/foamtank, +/turf/open/floor/plasteel, +/area/engine/atmos) +"xfs" = ( +/obj/structure/table, +/obj/item/paicard, +/turf/open/floor/carpet, +/area/crew_quarters/dorms) +"xfD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/structure/disposalpipe/junction/flip, +/turf/open/floor/plasteel, +/area/storage/primary) +"xfH" = ( +/obj/machinery/computer/station_alert, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"xgh" = ( +/obj/item/stack/rods, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"xgi" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Cooling to Unfiltered" + }, +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/plating, +/area/engine/atmospherics_engine) +"xgq" = ( +/obj/structure/closet/secure_closet/medical2, +/obj/machinery/vending/wallmed{ + pixel_y = -28 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/surgery) +"xgu" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 28 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"xgB" = ( +/mob/living/carbon/monkey, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"xgM" = ( +/obj/machinery/light/small, +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"xhb" = ( +/obj/machinery/door/airlock/virology/glass{ + name = "Isolation A"; + req_access_txt = "39" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"xhg" = ( +/obj/machinery/atmospherics/miner/oxygen, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"xhD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"xhH" = ( +/turf/closed/wall/r_wall, +/area/hallway/primary/central) +"xhV" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/gun/energy/e_gun{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/gun/energy/e_gun, +/obj/item/gun/energy/e_gun{ + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"xiw" = ( +/turf/closed/wall/r_wall, +/area/icemoon/surface/outdoors) +"xiB" = ( +/obj/machinery/conveyor{ + dir = 9; + id = "packageSort2" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"xiL" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plating, +/area/engine/storage) +"xjZ" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Escape Airlock" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/hallway/secondary/exit/departure_lounge) +"xka" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"xkR" = ( +/obj/structure/table, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"xkT" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj//obj/item/kirbyplants{ + icon_state = "plant-10" + }, +/obj/machinery/power/apc{ + areastring = "/area/chapel/main"; + dir = 1; + name = "Chapel APC"; + pixel_y = 24 + }, +/turf/open/floor/wood, +/area/chapel/main) +"xkW" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"xlg" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Medbay Cryogenics"; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"xlm" = ( +/obj/machinery/vending/wardrobe/atmos_wardrobe, +/turf/open/floor/plasteel, +/area/engine/atmos) +"xls" = ( +/obj/structure/fireplace{ + pixel_y = -6 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken5" + }, +/area/maintenance/bar) +"xlX" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"xmo" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"xmr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"xmB" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/effect/turf_decal/plaque{ + icon_state = "L4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"xmC" = ( +/obj/structure/closet/jcloset, +/obj/item/reagent_containers/glass/bucket, +/obj/item/mop, +/turf/open/floor/plasteel, +/area/janitor) +"xnb" = ( +/obj/machinery/airalarm{ + pixel_y = 26 + }, +/obj/structure/dresser, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) +"xnm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"xnP" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"xol" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + sortType = 20 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"xop" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"xou" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/computer/shuttle/snow_taxi, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"xow" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/security/glass{ + name = "Prison Wing"; + req_access_txt = "2" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"xoH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"xoS" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"xoY" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/gun/energy/e_gun/advtaser{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/gun/energy/e_gun/advtaser, +/obj/item/gun/energy/e_gun/advtaser{ + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"xpl" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/airlock/mining{ + req_access_txt = "48" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"xpU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) +"xqN" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering) +"xrU" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"xrW" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"xsE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel, +/area/science/storage) +"xsJ" = ( +/obj/machinery/vending/cola/random, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/hallway/primary/port) +"xsZ" = ( +/obj/structure/table/wood, +/obj/item/toy/plush/nukeplushie, +/obj/item/disk/nuclear/fake/obvious{ + pixel_y = -10 + }, +/turf/open/floor/wood{ + icon_state = "wood-broken4" + }, +/area/maintenance/bar) +"xtq" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"xtP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"xtV" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"xui" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"xur" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/medical/glass{ + name = "Chemistry Lab"; + req_access_txt = "5; 33" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"xuB" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/medbay/zone3) +"xuN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plating, +/area/maintenance/department/electrical) +"xve" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"xvj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"xvR" = ( +/obj/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/floor/engine, +/area/engine/atmospherics_engine) +"xwg" = ( +/obj/machinery/atmospherics/components/trinary/mixer/airmix{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"xwh" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"xwA" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/aft) +"xwO" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"xxi" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/construction/storage) +"xyA" = ( +/obj/machinery/door/window/northright{ + name = "Library Desk Door"; + req_access_txt = "37" + }, +/turf/open/floor/wood, +/area/library) +"xyT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/disposal) +"xzn" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=HOP"; + location = "CHE" + }, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"xzL" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/closet/secure_closet/security/sec, +/obj/item/clothing/suit/hooded/wintercoat/security, +/obj/item/radio/intercom{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"xzM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"xAi" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"xAm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output{ + dir = 8 + }, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"xAv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 6 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"xBi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"xBk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"xBv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"xBV" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible/layer3{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/atmospherics_engine) +"xCe" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/engine/atmospherics_engine) +"xCf" = ( +/obj/structure/table, +/obj/item/radio/off, +/obj/item/radio/off{ + pixel_y = 6 + }, +/obj/item/radio/off{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/radio/off{ + pixel_x = -6; + pixel_y = 4 + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"xCn" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"xCr" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/medical/medbay/central) +"xCC" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"xCU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"xDQ" = ( +/obj/machinery/door/airlock/engineering{ + name = "Port Quarter Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"xDS" = ( +/obj/machinery/status_display, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload) +"xEf" = ( +/obj/machinery/computer/bounty{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"xEt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"xFQ" = ( +/obj/machinery/doorButtons/airlock_controller{ + idExterior = "virology_airlock_exterior"; + idInterior = "virology_airlock_interior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Console"; + pixel_x = 8; + pixel_y = -22; + req_access_txt = "39" + }, +/obj/machinery/light, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"xFZ" = ( +/turf/closed/wall/r_wall, +/area/engine/secure_construction) +"xGh" = ( +/obj/machinery/space_heater, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) +"xGj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"xGo" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/bar"; + dir = 8; + name = "Maintenance Bar APC"; + pixel_x = -25 + }, +/turf/open/floor/plating, +/area/maintenance/bar) +"xGx" = ( +/obj/machinery/atmospherics/miner/toxins, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"xGy" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/landmark/start/station_engineer, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"xGE" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/flasher/portable, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"xGN" = ( +/obj/structure/fence/cut/medium{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors) +"xGP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"xGX" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/valve/digital, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/engine/atmos) +"xHk" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/obj/effect/turf_decal/bot_white/right, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"xHt" = ( +/obj/machinery/light/small, +/turf/open/floor/carpet, +/area/quartermaster/miningoffice) +"xHE" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"xHU" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/shower{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"xIJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"xIT" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/item/radio/intercom{ + frequency = 1485; + name = "Station Intercom (Medbay)"; + pixel_x = -30 + }, +/obj/effect/landmark/start/medical_doctor, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"xJn" = ( +/obj/machinery/computer/card/minor/ce, +/obj/machinery/computer/security/telescreen/ce{ + pixel_y = 24 + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Engineer's Desk"; + departmentType = 3; + name = "Chief Engineer RC"; + pixel_x = 32; + pixel_y = 27 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"xJr" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"xJB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"xJD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"xKn" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/reagent_dispensers/watertank/high, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics Central"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"xKu" = ( +/obj/structure/table, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/storage/box/donkpockets{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"xKv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/engine/secure_construction) +"xKN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"xLF" = ( +/obj/structure/closet/secure_closet/bar{ + pixel_x = -3; + pixel_y = -1; + req_access_txt = "25" + }, +/obj/structure/light_construct/small{ + dir = 1 + }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/tile/carpet/fifty, +/turf/open/floor/plating, +/area/maintenance/bar) +"xMG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"xMV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) +"xNs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"xOj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"xOq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Chapel Office"; + req_access_txt = "22" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4; + name = "east facing firelock" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"xOY" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -26 + }, +/obj/machinery/camera{ + c_tag = "Northwestern Hall 6"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"xPK" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable, +/obj/machinery/power/apc/highcap/fifteen_k{ + areastring = "/area/engine/engineering"; + dir = 8; + name = "Engineering APC"; + pixel_y = -1; + pixel_x = -27 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/closet/radiation, +/obj/machinery/camera{ + c_tag = "Supermatter West"; + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/engineering) +"xQF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/paramedic) +"xQH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"xRy" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/chapel/office) +"xRH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/landmark/start/shaft_miner, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock) +"xRL" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"xRZ" = ( +/obj/machinery/telecomms/server/presets/medical, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"xSd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"xSN" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"xSP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"xSZ" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"xTI" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/carpet, +/area/chapel/office) +"xTL" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/chair{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/wood, +/area/security/courtroom) +"xUe" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/public/glass{ + name = "Snow Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"xUm" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"xUy" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Bar North" + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"xUD" = ( +/obj/machinery/atmospherics/pipe/manifold/green/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"xUL" = ( +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"xUU" = ( +/turf/open/floor/plasteel/dark, +/area/maintenance/department/bridge) +"xVe" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"xVl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + sortType = 19 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"xVn" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/medical/virology) +"xWi" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/circuit/off, +/area/ai_monitored/turret_protected/ai) +"xWq" = ( +/turf/closed/wall, +/area/storage/auxiliary) +"xWx" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"xWD" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"xXS" = ( +/obj/machinery/rnd/server, +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ + dir = 4; + external_pressure_bound = 120; + name = "server vent" + }, +/turf/open/floor/circuit/telecomms/server, +/area/science/server) +"xXV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"xXX" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/central) +"xYD" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/carpet, +/area/hallway/secondary/exit/departure_lounge) +"xYE" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plating, +/area/icemoon/surface/outdoors) +"xYJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"xYN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/surgery) +"xZg" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/wood, +/area/hallway/secondary/exit/departure_lounge) +"xZp" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/camera{ + c_tag = "Bar West"; + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/bar) +"xZx" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/storage/eva) +"xZL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"yae" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ybp" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"ybQ" = ( +/obj/machinery/button/door{ + id = "permacell2"; + name = "Garden Lockdown"; + pixel_x = -25; + pixel_y = 7; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"ybT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/machinery/light/floor, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"ycl" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/machinery/door/airlock/mining/glass{ + name = "Delivery Office"; + req_access_txt = "50" + }, +/obj/structure/fans/tiny, +/turf/open/floor/pod/dark, +/area/maintenance/starboard) +"ycQ" = ( +/obj/machinery/vending/medical{ + pixel_x = -2 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"ydo" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/captain) +"ydp" = ( +/turf/closed/mineral/random/snow/no_caves, +/area/icemoon/surface/outdoors) +"yds" = ( +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"ydQ" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/solars/starboard/aft"; + dir = 8; + name = "Starboard Quarter Solar APC"; + pixel_x = -26; + pixel_y = 3 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"ydV" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hydroponics) +"yeg" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "QMLoad2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"yes" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"yeA" = ( +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/security/detectives_office) +"yeF" = ( +/obj/machinery/vr_sleeper{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"yfp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/starboard) +"yfA" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/toy/cards/deck, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"yfN" = ( +/turf/closed/indestructible{ + desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease"; + icon_state = "riveted"; + name = "hyper-reinforced wall" + }, +/area/icemoon/surface/outdoors) +"yfQ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/computer/prisoner/management{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"yge" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors) +"ygB" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"yhj" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"yhx" = ( +/turf/closed/mineral/random/snow/more_caves, +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) +"yhz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"yij" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port) +"yiy" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/quartermaster/qm) +"yiz" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/effect/landmark/start/head_of_security, +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) +"yiT" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/landmark/start/cyborg, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/aisat/service) +"yiZ" = ( +/obj/machinery/door/airlock/command{ + name = "Conference Room"; + req_access_txt = "19" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/bridge/meeting_room) +"yjh" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor/border_only{ + dir = 8; + name = "west facing firelock" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"yjp" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering) +"ykb" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"ykk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor/border_only{ + dir = 1; + name = "north facing firelock" + }, +/obj/machinery/door/airlock/research{ + name = "Toxins Lab"; + req_access_txt = "7" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"ykr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"ykt" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"yky" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ykN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + sortType = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"yld" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"ylW" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Hydroponics"; + req_access_txt = "35" + }, +/obj/machinery/door/firedoor/border_only{ + name = "south facing firelock" + }, +/turf/open/floor/plasteel, +/area/hydroponics) + +(1,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(2,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(3,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(4,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(5,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(6,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(7,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(8,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(9,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(10,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(11,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(12,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(13,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(14,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(15,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(16,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(17,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(18,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(19,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(20,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(21,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(22,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(23,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +qrR +qrR +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +fBG +wuf +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bTC +bBH +bBH +bBH +bBH +bBH +bBH +bBH +bBH +bBH +bTC +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(24,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +qrR +qrR +bTC +avT +avT +avT +avT +avT +avT +avT +rxJ +avT +avT +avT +xgh +avT +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bTC +bBH +tFc +pEm +pEm +pEm +dbR +pEm +pEm +pEm +nBk +bJf +bTC +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(25,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +qrR +qrR +bTC +avT +lbu +aQK +wuC +avT +lbu +aQK +wuC +avT +lbu +aQK +wuC +avT +wuf +yhx +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bTC +buI +qqR +phs +ghq +ghq +ghq +ghq +ghq +ghq +ghq +bMj +tCN +bJf +bTC +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(26,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +qrR +qrR +bTC +avT +lbu +qfJ +wuC +avT +lbu +qfJ +wuC +avT +lbu +qfJ +wuC +avT +avT +avT +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +buI +hnP +swQ +ghq +ghq +ghq +ghq +ghq +ghq +ghq +ghq +ghq +bMj +tCN +bJf +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(27,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +qrR +qrR +bTC +avT +lbu +qfJ +wuC +avT +lbu +qfJ +wuC +avT +lbu +qfJ +wuC +avT +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +buI +buJ +cXI +ghq +hfZ +shR +ntV +jso +shR +shR +hfZ +ghq +ghq +bHE +bJf +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(28,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +avT +avT +avT +avT +lbu +qfJ +wuC +avT +lbu +qfJ +wuC +avT +lbu +qfJ +wuC +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bTC +buI +buJ +cXI +ghq +shR +shR +shR +liL +scF +hse +shR +ghq +ghq +bHE +bJf +bTC +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(29,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +wuf +wuf +avT +avT +lbu +qfJ +wuC +avT +lbu +qfJ +wuC +avT +lbu +qfJ +wuC +avT +wBg +avT +chZ +vrd +vrd +vrd +vrd +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +buI +fJZ +phs +cXI +ghq +shR +shR +cpe +cpe +cpe +xIJ +shR +ghq +ghq +bMj +tCN +bJf +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(30,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +avT +avT +avT +avT +avT +hGK +avT +avT +avT +hGK +avT +avT +avT +hGK +avT +aNg +chZ +chZ +chZ +rlM +rZJ +gAt +vrd +avT +avT +avT +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +ydp +buI +lGy +ghq +cXI +aJC +shR +qVf +cXO +cpe +fho +lfD +shR +uXy +ghq +ghq +eBj +bJf +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(31,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +avT +nuu +sXy +sXy +fNh +xUL +nyq +sXy +fNh +xUL +nyq +sXy +fNh +xUL +nyq +sXy +eWw +tnL +iaq +qeY +uaG +cbL +bbq +sXy +sXy +sXy +sXy +ikA +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +buI +gJx +ghq +cXI +irN +irr +xIJ +cpe +ooR +cpe +xIJ +irr +sZJ +ghq +ghq +wXk +bJf +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(32,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +avT +avT +avT +avT +avT +clq +avT +avT +avT +clq +avT +avT +avT +clq +avT +aNg +chZ +chZ +chZ +kIG +sbN +jin +rtD +avT +avT +avT +avT +bBh +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +buI +phs +ghq +cXI +irr +tFu +hmC +rBA +dfy +ihn +xWi +irr +irr +ghq +ghq +bUB +bJf +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(33,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +fBG +wuf +avT +avT +lbu +mmM +wuC +avT +lbu +mmM +wuC +avT +lbu +mmM +wuC +avT +ajl +avT +chZ +vrd +vrd +vrd +vrd +yhx +yhx +yhx +yhx +bBh +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +bmX +avT +avT +avT +apJ +ayq +ghq +ghq +ghq +tSd +lQp +rQu +rKd +gHG +cqq +bxh +rKd +nyd +vmr +ghq +ghq +bUB +bJf +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +qrR +qrR +qrR +qrR +qrR +wuf +wuf +wuf +wuf +wuf +qrR +qrR +qrR +qrR +qrR +qrR +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(34,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +qrR +qrR +avT +avT +lbu +mmM +wuC +avT +lbu +mmM +wuC +avT +lbu +mmM +wuC +avT +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +rUq +sXy +sXy +sXy +sXy +sXy +sXy +sXy +sXy +sXy +sXy +ikA +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +apJ +apJ +apJ +apJ +apJ +apJ +apJ +apJ +apJ +ayq +ayq +ayq +ayq +ayq +cIh +cIh +cIh +asE +cyb +xDS +cIh +cIh +cIh +cIh +ghq +bUB +bJf +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +qrR +qrR +qrR +qrR +qrR +wuf +avT +avT +avT +wuf +qrR +qrR +qrR +qrR +qrR +qrR +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(35,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +qrR +qrR +wuf +avT +lbu +mmM +wuC +avT +lbu +mmM +wuC +avT +lbu +mmM +wuC +avT +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +avT +avT +bBh +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +apJ +apJ +apJ +apJ +apJ +apJ +apJ +apJ +apJ +vvM +hIS +fiG +kSR +gKo +cIh +kzS +rjB +auO +auP +cwT +aAC +mGl +grZ +vdW +ghq +bUB +bJf +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +qrR +qrR +qrR +qrR +qrR +wuf +avT +bLv +avT +wuf +qrR +qrR +qrR +qrR +qrR +qrR +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(36,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +qrR +qrR +wuf +avT +lbu +mmM +wuC +avT +lbu +mmM +wuC +avT +lbu +mmM +wuC +avT +avT +avT +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +avT +avT +bBh +avT +avT +avT +avT +avT +avT +avT +avT +avT +apJ +apJ +oQE +vmD +pvw +yld +etz +kcw +apN +apJ +qTb +qTb +jdw +qTb +qTb +cIh +uVD +wJO +avP +iEJ +hva +vZH +lac +iMX +lhr +ghq +bUB +bJf +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +wuf +wuf +wuf +wuf +avT +avT +avT +bBh +avT +avT +avT +wuf +wuf +fBG +wuf +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(37,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +qrR +qrR +wuf +avT +lbu +gTh +wuC +avT +lbu +gTh +wuC +avT +lbu +gTh +wuC +avT +wuf +avT +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +rUq +sXy +sXy +sXy +sXy +sXy +sXy +sXy +sXy +ikA +apJ +apJ +wRb +pTw +mzx +tFY +eTR +tFY +dJB +apJ +uVe +qlY +jGi +tcN +jlL +cIh +iwc +nlM +fpI +ayk +awW +aAD +faV +nBU +cIh +ghq +bUB +bJf +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +avT +avT +avT +avT +avT +avT +avT +bBh +avT +avT +avT +avT +avT +avT +avT +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(38,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +qrR +qrR +wuf +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +wuf +avT +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +avT +bBh +apJ +apJ +ieI +pTw +pTw +ygB +pFI +tFY +pTw +apJ +ayq +ayq +dmy +ayq +ayq +cIh +cIh +cIh +awZ +ayl +cIh +cIh +cIh +cIh +cIh +bTC +nDu +bTC +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +avT +rxI +rxI +rxI +rxI +rxI +avT +hGK +avT +rxI +rxI +rxI +rxI +rxI +avT +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(39,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +qrR +avT +wuf +wuf +wuf +wuf +wuf +avT +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +bBh +apJ +apJ +xRZ +pTw +pTw +pzI +pdj +hAq +pTw +apJ +gWZ +nhn +eBf +qnk +ayq +vyH +lyu +gGs +iFc +ery +lWf +oEz +nOG +vEm +fet +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +avT +yge +pjD +pjD +pjD +pjD +fNh +xUL +nyq +fsh +fsh +fsh +fsh +toa +avT +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(40,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +bBh +apJ +apJ +nOn +pTw +pTw +vBx +doI +sUn +pTw +nAx +rUu +ekw +wph +rkp +ayq +nzD +cHu +oLB +qHe +cqr +azz +aAF +yiT +pwE +fet +avT +avT +bmX +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +avT +dfx +dfx +dfx +dfx +dfx +avT +clq +avT +dfx +dfx +dfx +dfx +dfx +avT +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(41,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +bBh +apJ +apJ +jgj +pTw +pTw +trn +pdj +jsu +pTw +rmL +vfi +ekw +mGb +chk +ayq +eZe +vJs +eKZ +iAv +aIK +dRI +aAE +uKG +vEm +fet +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +avT +avT +avT +avT +avT +avT +avT +bBh +avT +avT +avT +avT +avT +avT +avT +fBG +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(42,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +bBh +apJ +apJ +vBg +pTw +pTw +pTw +tFY +sLg +nOe +ots +pNo +gzH +pdv +cQr +nyT +uQc +qDO +jll +clB +clB +clB +clB +clB +aHu +aHu +aHu +aHu +aHu +aHu +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +avT +rxI +rxI +rxI +rxI +rxI +avT +hGK +avT +rxI +rxI +rxI +rxI +rxI +avT +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(43,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +bBh +apJ +apJ +mOe +pTw +lVK +pTw +pvx +apJ +apJ +apJ +nIu +vFe +gQj +leZ +evU +woM +jSq +lOF +clB +cry +azA +aAG +mGL +aHu +qwq +pGL +rwa +xXS +aHu +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +avT +yge +pjD +pjD +pjD +pjD +fNh +xUL +nyq +fsh +fsh +fsh +fsh +toa +avT +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(44,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ktw +ktw +ktw +ktw +ktw +ydp +ydp +avT +bBh +apJ +apJ +kgM +pTw +rYn +pTw +pTw +jCW +mxt +rOD +nIu +rkp +lCi +ikY +ayq +mmJ +tIz +udO +clB +crz +gMR +jDH +jDH +pNv +iJc +tzB +uOy +vtO +aHu +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +avT +dfx +dfx +dfx +dfx +dfx +avT +clq +avT +dfx +dfx +dfx +dfx +dfx +avT +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(45,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ktw +kRI +fdJ +hGU +ktw +ydp +ydp +avT +bBh +apJ +apJ +won +evJ +fsQ +mxo +pTw +apJ +apJ +apJ +ayq +vbx +atp +lTJ +ayq +dAV +tlk +ykr +clB +hKm +pYM +cYb +ram +aHu +fSR +fPF +rwa +rbm +aHu +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +fBG +avT +avT +avT +avT +avT +avT +avT +bBh +avT +avT +avT +avT +avT +avT +avT +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(46,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ktw +vSJ +kZL +kZL +maR +ydp +ydp +avT +bBh +apJ +apJ +apJ +apJ +apJ +apJ +apJ +apJ +apJ +apJ +ayq +atI +qqo +arE +ayq +gYC +auc +avp +clB +ayp +azB +iRO +rlW +aHu +tNp +fPF +aHu +aHu +aHu +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +avT +rxI +rxI +rxI +rxI +rxI +avT +hGK +avT +rxI +rxI +rxI +rxI +rxI +avT +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(47,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ktw +ehh +kZL +hap +ktw +ydp +ydp +ydp +bBh +avT +apJ +gLH +gLH +gLH +gLH +gLH +asF +rMv +asF +gLH +ayq +ayq +ayq +ayq +ikh +tkr +aLu +clB +ayo +uXi +iRO +uJL +aHu +isu +fPF +cIg +aHu +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +avT +yge +pjD +pjD +pjD +pjD +fNh +xUL +nyq +fsh +fsh +fsh +fsh +toa +avT +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(48,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ktw +ktw +ktw +ktw +ktw +ydp +ydp +ydp +bBh +avT +avT +gLH +xHk +jPP +vse +mSs +qQH +qQH +qQH +asJ +cTE +cTE +axc +gLH +atb +tkr +jwo +clB +dKQ +azC +ofy +dKQ +aHu +wxw +tSB +opq +aHu +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +avT +dfx +dfx +dfx +dfx +dfx +avT +clq +avT +dfx +dfx +dfx +dfx +dfx +avT +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(49,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +bBh +avT +avT +gLH +wie +ePa +jrR +nTQ +nTQ +xVe +wnM +nTQ +nTQ +sMX +lat +ldt +qSy +wGB +jwo +axG +gTc +aym +aAI +aBH +aHu +iFq +wdb +puk +aHu +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +avT +avT +avT +avT +avT +avT +avT +bBh +avT +avT +avT +avT +avT +avT +avT +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(50,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +bBh +bmX +avT +gLH +ohf +xcd +sLr +muN +uDK +qQH +qQH +qQH +qQH +wmf +qrq +atJ +oiC +aBI +bEJ +aFI +ayr +azD +aAJ +tmx +aHu +aHu +aHu +aHu +aHu +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +wuf +wuf +avT +avT +avT +avT +qlH +bBh +qlH +avT +avT +avT +avT +wuf +wuf +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(51,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +bBh +avT +avT +gLH +aHc +pzZ +pzZ +eFn +loe +dqO +hwg +dlJ +ixu +vjQ +xCf +gLH +aCX +tkr +pYh +aFI +iek +wRz +erO +aBK +dFJ +kdA +aFI +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +fOG +jhF +cRJ +jhF +sdc +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(52,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +bBh +usE +usE +iAO +gLH +gLH +gLH +gLH +uYm +gLH +gLH +gLH +gLH +gLH +gLH +gLH +aCX +tkr +cYU +aFI +cwH +lam +erO +aBK +aDf +aEG +aFI +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +jhF +xMV +jhF +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(53,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +bBh +wSc +lZL +lmC +aCX +aCX +rZL +gYC +ssF +gYC +aCX +aCX +aCX +wje +efn +asc +wje +tqa +aue +lWb +dfa +obB +aAe +aBK +aDf +aEE +bxM +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +jhF +jhF +gRP +jhF +jhF +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(54,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +rUq +tGQ +nEv +qFa +atq +atq +dJc +gdi +aDd +lWy +atq +atq +atq +atq +atq +igQ +oba +vMh +bsU +aFI +ays +mQK +auT +aBK +aDf +aEI +bxM +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +dmE +oml +nsB +jYT +dmE +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(55,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +usE +xSN +usE +dxL +wje +uwV +etM +oQa +xJr +mWm +xJr +xJr +xJr +xJr +fTu +oQa +auX +avS +aFI +uJF +lam +jcS +aBK +aDc +aEH +bxM +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +dmE +wbe +eCd +oml +dmE +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(56,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +oto +oto +oto +oto +oto +oto +avT +avT +avT +avT +avT +avT +avT +sXJ +sXJ +sXJ +iZH +ash +ash +ash +ntd +ash +ash +ash +ash +nQr +ash +ash +ash +wje +ahC +nOK +nEi +jRU +uzT +gWn +aBK +aDf +aEK +bxM +avT +avT +avT +avT +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +dmE +wax +wNf +mVe +dmE +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(57,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +oto +fwX +vRa +pFM +cGu +ash +aoj +ash +ash +ash +ash +sXJ +sXJ +sXJ +aiS +roS +iZH +qrA +fqM +xIT +vuJ +ash +ktW +rbW +aoR +apO +ash +arG +ash +qbh +auY +hEf +eGO +ayt +nuJ +aAw +aBK +aEJ +aEJ +aIP +avT +avT +bmX +avT +avT +avT +ydp +ydp +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +dmE +rwm +xDQ +dmE +dmE +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(58,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +oto +fGi +acV +nOj +acV +ash +adZ +kuy +gxq +jyj +hQb +sXJ +rxl +mfF +imM +jxw +iZH +lsA +xHE +cVu +hKt +hso +adx +rRV +aoT +pWz +ash +xCr +ash +lxF +rbo +ioG +bxM +ayu +aBK +iBF +sUE +aEJ +vYc +aIP +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +xUL +bBh +xUL +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(59,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +oto +vMf +abs +eut +rFk +adu +fva +xQH +kHX +anm +tsq +sXJ +vTh +lTB +kMT +rAW +ebF +uba +pPx +qJM +tUi +ash +tVS +anm +jiV +ash +ash +ash +ash +dXR +hOA +irg +aFI +bxM +jPz +bxM +aFI +aEJ +aIP +aIP +aIP +aIP +ydp +ydp +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +xUL +bBh +xUL +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(60,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +oto +pbw +qOA +acV +mNP +ash +mAk +pxZ +jmd +xHU +exq +sXJ +pNO +rVA +eFC +ooa +iZH +hEQ +vXs +gZQ +aoj +ash +lSN +anm +lYk +ash +wje +arI +syN +atr +rbo +jwo +azq +azq +azq +aAK +aIP +aDa +gfQ +rsp +qFZ +aPA +aPA +aPA +aPA +aPA +aPA +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +xUL +bBh +xUL +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(61,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +pZD +mpj +mpj +mpj +aaS +oto +oto +wKN +oto +oto +ash +aoj +hEQ +aoj +ash +cxX +sXJ +sXJ +hnB +qhU +vCE +gIm +mwV +nKO +kJs +anH +lUd +kqV +jPh +wFR +ash +ujD +arH +auV +auV +azG +aAL +wje +wje +wje +aAx +aIP +aAQ +eZi +iza +aHA +iqJ +hLo +aLD +mJr +aDX +aPA +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +xUL +bBh +xUL +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(62,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +pZD +hVm +sVL +dfV +aaS +dML +utS +fDi +tOs +ash +kMc +iRy +nsi +eue +eLX +iEa +hLg +sXJ +sXJ +vLa +gIm +gIm +rAa +ykN +alR +vVs +aoj +olz +wuj +bwm +ash +aqP +waP +aDh +aDh +lmu +mNo +xJr +xJr +xJr +aAT +aBw +aDg +hgJ +aFO +aHA +aIS +aKn +aLF +vUN +lkP +aIS +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +euS +sXy +jAq +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(63,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +pZD +efp +vWt +xKu +aaS +hIe +oKr +nOj +ntO +ash +adw +anm +anJ +anm +anm +prP +anH +dVV +czF +oqF +okm +ajV +aok +sJD +alR +amy +ash +ash +aoj +hEQ +apP +tUF +jGF +uBi +iKM +bNb +bNb +dsk +gsQ +kkG +ilo +bxk +ovq +aFO +aFO +aHA +rJM +aKm +aLE +aNj +fzU +mYx +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +bBh +xUL +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(64,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +pZD +lAS +pfN +kgx +aaS +pED +rSn +abZ +xgq +ash +ady +anm +anJ +anm +pbk +jga +kij +cKQ +kij +dZa +ajq +kij +cMc +alh +uDO +amA +ani +anI +aol +akB +ecD +esE +oDm +wje +avU +avX +avX +pdo +wje +rBc +vsN +aBG +aDk +aFO +aFO +aHA +hUo +sMi +oWw +aNl +aOm +aPB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +bBh +xUL +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(65,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +pZD +puS +iIg +lCW +aaS +lIn +fgp +poT +rFk +sTe +adx +jih +wkM +fUX +qsz +wut +anm +uUk +anm +anm +hXB +anm +anJ +xCn +alS +anH +anh +anH +rQz +aok +loO +aFJ +arK +asO +avU +avX +avX +pdo +wnO +jil +kzf +bxk +bxk +bxk +aFO +aHA +aPB +oqL +aLG +aNk +aOl +aPA +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +xUL +xUL +xUL +xUL +avT +avT +yhx +xUL +xUL +bBh +xUL +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(66,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +pZD +pZD +pZD +pZD +sXV +laE +kUo +aaS +aba +xYN +aba +aba +ash +adz +anm +uuD +gvp +egj +eoW +jih +dFb +fze +tVV +fze +pcT +poR +mIu +pKr +mhv +oge +jih +pig +aom +wLs +dXF +arN +wje +axi +axi +axi +kTI +wje +ava +mGa +wje +aUC +aEL +aFO +ldE +aPA +nlk +szK +aNm +aPA +aPA +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +euS +sXy +sXy +sXy +sXy +sXy +sXy +sXy +sXy +sXy +sXy +sXy +jAq +xUL +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(67,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +nbC +nbC +nbC +nbC +nbC +nbC +nbC +nbC +ydp +ydp +ydp +ydp +ydp +ydp +ydp +pZD +nnV +cni +qbY +fYU +uYa +vST +aaS +joT +kGS +vAh +vAh +oZq +kMy +nbU +lgq +rsy +pxE +fRS +rkL +tNq +rkL +mdq +anH +qWg +anH +kyf +anm +alU +alF +anm +anJ +aoU +aoj +oDw +oDm +wje +axi +ltF +avV +kTI +wje +etM +oNR +sxN +sxN +aDo +aFQ +aHe +aIN +aKp +odR +dPx +sPA +sKh +irt +irt +guI +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +avT +euS +sXy +sXy +jAq +xUL +xUL +xUL +avT +yhx +xUL +xUL +xUL +xUL +xUL +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(68,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +nbC +nbC +nbC +nbC +nbC +nbC +nbC +nbC +ydp +ydp +ydp +ydp +ydp +ydp +ydp +pZD +tAa +xkR +pfY +wlD +gkx +xwh +aaS +gWj +nYv +hVX +nhz +ash +duu +dJZ +nwq +hWn +eSP +lOX +uUC +uan +ykb +lpW +sMA +mPm +anm +iEa +lDj +gzk +eiR +anm +anJ +aoU +aoj +oDw +uAj +xJr +mfi +xsJ +oWT +qAx +wje +ouH +ndX +gKt +gKt +uBy +aFR +vMg +vsK +aJZ +aLk +aNo +aOo +sKh +irt +srB +bzc +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +avT +avT +avT +avT +euS +sXy +sXy +jAq +xUL +xUL +xUL +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(69,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +nbC +nbC +ktw +ktw +ktw +ktw +ktw +nbC +ydp +ydp +ydp +ydp +ydp +ydp +ydp +pZD +mpj +mpj +mpj +gIE +hBH +vST +pZD +pZD +pZD +pZD +pZD +pZD +ady +ofF +gZX +gZX +gZX +gZX +gZX +gZX +gZX +sUF +jUu +mPm +anm +iEa +wen +vyM +pdL +anm +fQx +nya +apP +rqw +tkr +wje +kTI +axi +axi +axi +wje +tkr +aAL +wje +aDb +qWM +hIH +nuS +aPE +wDR +fHF +aPC +aPE +aPE +hmM +bzc +bzc +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +euS +jAq +xUL +xUL +xUL +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(70,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +nbC +nbC +ktw +kRI +fdJ +hGU +ktw +nbC +ydp +ydp +ydp +ydp +ydp +ydp +ydp +pZD +qFf +hDj +pfY +wlD +jBP +xwO +cRX +suK +vGi +xcY +iFK +fKM +adA +hom +gZX +oaC +vvH +vvH +vvH +fsA +gZX +xlg +jUu +xGP +anm +iEa +anm +anm +amD +anm +anm +anm +fyV +hfX +aBI +asO +uGY +avX +avX +axj +wnO +aBI +aAY +bxk +bxk +bxk +hIH +iFl +aPC +gCC +qAF +hOc +aOp +aPE +hmM +bzc +bzc +avT +avT +ydp +ktw +ktw +ktw +ktw +ktw +ydp +avT +avT +avT +avT +avT +avT +avT +euS +jAq +xUL +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(71,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +nbC +nbC +ktw +vSJ +kZL +kZL +maR +nbC +ydp +ydp +ydp +ydp +ydp +ydp +ydp +pZD +qIU +tlu +wAW +xhb +uCi +uYa +xFQ +pZD +eEy +gzW +ueK +pZD +lIm +ycQ +rwW +tfm +ets +tmy +tmy +jDK +gZX +sUF +wzH +uUk +anm +iEa +anm +sxa +amD +anm +anm +cwW +jXh +tUF +tkr +wje +uGY +avX +avX +axj +wje +gIG +aAU +aBG +hTk +vHU +qTO +aHD +aPC +jOy +lqt +gPb +hFv +aPC +hmM +bzc +bzc +avT +ydp +ydp +ktw +kRI +fdJ +hGU +ktw +ydp +avT +avT +avT +avT +avT +avT +euS +jAq +xUL +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(72,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +nbC +nbC +ktw +ehh +kZL +hap +ktw +nbC +ydp +ydp +ydp +ydp +ydp +ydp +ydp +pZD +xVn +byu +byu +byu +lzw +uYa +lMF +pZD +pZD +pZD +pZD +pZD +pZD +gZX +seZ +iTS +qfd +qfd +rHS +rqQ +mVh +kEf +amA +mVN +amA +dkB +xAi +aoX +aoX +ann +ivQ +aoX +aoX +tUF +gIG +uBi +atU +was +was +kRK +gsQ +eDr +aAS +bxk +srU +aFO +aFY +aHD +aPC +hxx +vKT +faR +aOq +aPD +aQT +omC +bzc +avT +ydp +ydp +ktw +vSJ +kZL +kZL +maR +ydp +avT +avT +avT +avT +avT +euS +jAq +xUL +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(73,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +nbC +nbC +ktw +ktw +ktw +ktw +ktw +nbC +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +qip +tGK +beD +kkt +cAo +uYa +kWC +itU +sWT +sgB +nVP +xgB +pZD +tyH +vNu +gCS +bTw +bTw +tmy +pbP +gZX +tnX +dAs +uUl +itb +wXj +anm +vmO +hik +mAx +ndm +rQN +aoX +soN +ojv +oTu +oTu +oTu +rTj +oTu +oTu +nhe +vMB +uBG +aDm +hLZ +aFY +aHD +aPC +cKK +sub +vrg +qqb +uup +pqs +gUb +uWS +avT +ydp +ydp +ktw +ehh +kZL +hap +ktw +ydp +avT +avT +avT +avT +euS +jAq +xUL +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(74,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +nbC +nbC +nbC +nbC +nbC +nbC +nbC +nbC +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +mpj +gNb +uYa +uYa +mgC +fjS +uUr +mpj +uYa +xgB +pZD +jFY +vIA +rYD +rYD +rYD +rYD +gId +oTF +dTL +nnj +nnj +nYZ +fJs +jBr +mYT +amF +yds +jap +frn +oPP +tqp +kkn +iIN +iIN +iIN +atM +axl +iIN +uCE +sco +aIP +aDp +eZi +aFU +aHD +aPE +jmf +fLW +utp +itp +aPE +aQV +vcG +wgu +avT +avT +ydp +ktw +ktw +ktw +ktw +ktw +ydp +avT +avT +avT +euS +jAq +xUL +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(75,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +nbC +nbC +nbC +nbC +nbC +nbC +nbC +nbC +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +mpj +eSJ +uYa +vqQ +uYa +uYa +uYa +mpj +xgB +xgB +pZD +ueq +gEd +mYd +bLW +cDS +wJN +mQJ +oTF +fNO +rjO +gXE +nnj +nIR +xhD +xur +lqg +qVD +pyD +guR +aaH +rJw +tqa +wje +wWL +xSZ +atO +axk +ayy +xSZ +aAO +aIP +aDe +rJk +aFT +jOj +aPE +aKa +aPE +aPE +aPE +aPE +aQV +vcG +lzB +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +euS +jAq +xUL +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(76,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +mpj +lBe +mDp +klh +vUB +prl +dBL +mpj +ofm +xgB +pZD +gZX +rio +nYZ +nYZ +nYZ +nYZ +nYZ +nYZ +dcg +fLL +jNp +nnj +uUk +anm +aoX +vAy +yds +anK +gTb +mEI +xGj +eDr +fYQ +rQJ +rQJ +rBG +axn +myh +eed +myh +tXN +rQJ +rQJ +aFZ +aHE +wUr +aKs +aOr +aOr +aOr +aOr +aQX +vcG +lzB +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +bBh +xUL +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(77,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +pZD +pZD +pZD +pZD +pZD +pZD +pZD +pZD +pZD +pZD +pZD +mbm +eJu +nYZ +shM +nXs +nRX +jbE +nmR +sjW +cUC +pXl +nnj +uUk +anm +aoX +tcP +yds +inU +iWu +aoX +rJw +tkr +fYQ +rQJ +iOR +eTg +axo +dGV +dPn +qLt +aBR +fQU +myh +qLm +slJ +wUr +wUr +wUr +wUr +xUL +xUL +xUL +vcG +lzB +bmX +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +bBh +xUL +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(78,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +xUL +vBe +mbm +iJl +iJl +mbm +iJl +eJu +nYZ +hxr +uKI +vAp +ouB +eSQ +gNq +dCI +jIu +nYZ +uUk +anm +aoX +ali +yds +yds +aon +aoX +rJw +tkr +fYQ +rQJ +ewI +avY +gRh +xeI +rqW +rqW +aGD +tJi +myh +qLm +qTG +hta +aKu +aLM +bDe +xUL +xUL +xUL +vcG +lzB +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +bBh +xUL +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(79,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +xUL +rTG +sIn +kxU +sdH +sIn +kxU +pyw +nYZ +sXl +eFU +jyA +goK +nYZ +nYZ +pZJ +nYZ +nnj +uUk +anm +aoX +mLD +yds +yds +gev +aoX +gsM +tkr +fYQ +rQJ +fwn +awb +rqW +ayC +rPU +fne +rqW +rqW +fOA +tWj +oyz +ebX +aLL +aLL +bDe +xUL +xUL +xUL +vcG +lzB +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +bBh +xUL +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(80,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +bmX +avT +xUL +ace +mbm +mvQ +mvQ +mbm +mbm +mbm +nYZ +hxr +uKI +fBf +vqF +vax +lMx +keC +vEr +nnj +uUk +xAi +aoX +nVv +yds +yds +qWL +aoX +gsM +tkr +iPX +rQJ +fpS +wPD +rqW +pIf +pIf +pIf +rqW +aHK +myh +uJx +ikk +gnv +qsf +aLN +wUr +dOP +xUL +xUL +vcG +lzB +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +bBh +xUL +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(81,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +ace +mbm +qIm +qIm +mbm +avT +avT +nYZ +dYa +iaM +tHr +loT +wlZ +hhI +vyJ +fgM +nnj +uUk +anm +aoX +jWx +nBI +anL +aoo +aoX +gsM +tkr +wje +rQJ +fvz +awb +rqW +ayC +azH +fne +rqW +aCr +myh +lHH +oYn +vdw +lHH +mIO +wUr +avT +avT +avT +vcG +wgu +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +bBh +xUL +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(82,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +bGt +avT +avT +avT +avT +avT +avT +nYZ +nYZ +nYZ +nYZ +nYZ +djL +nYZ +nYZ +ktd +nYZ +hxP +uWY +aoX +aoX +aoX +aoX +aoX +aoX +gsM +tkr +xOY +rQJ +uUi +gXD +xtP +ayA +sNK +xmo +rqW +mzB +rQJ +szG +aHG +aJe +aKw +aLP +wUr +avT +avT +avT +vcG +lzB +avT +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +bBh +xUL +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(83,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ace +avT +avT +avT +avT +avT +xUL +xUL +xUL +xUL +tdK +tmO +hui +hBQ +gKt +xrU +yij +iWY +iTY +yij +gKt +rPD +srq +cXi +gKt +vqP +inw +xWD +rQJ +myh +myh +myh +rQJ +rQJ +rQJ +myh +myh +rQJ +wUr +wUr +wUr +wUr +wUr +wUr +avT +avT +avT +vcG +lzB +avT +ydp +avT +avT +avT +avT +avT +avT +avT +avT +avT +bBh +xUL +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(84,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ace +avT +avT +avT +avT +avT +eik +xUL +xUL +xUL +dYZ +jKV +fYx +aYf +xSN +wje +jrH +rke +vJG +quj +aDh +aDh +nDl +wbO +aDh +uCo +tkr +wje +sqg +nvj +kTj +xxi +ayD +cGz +sqg +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +vcG +lzB +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +bBh +xUL +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(85,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ace +avT +avT +avT +avT +avT +xUL +xUL +xUL +xUL +xUL +tmO +fYx +oDm +tmO +rhX +rhX +eLm +qBG +rhX +rhX +ebM +wmH +ohr +xWq +aAL +tkr +pjg +sqg +inq +oaS +eqP +tcj +viF +ayG +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +aSl +bFk +sXy +sXy +sXy +sXy +sXy +sXy +sXy +sXy +sXy +sXy +sXy +jAq +xUL +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(86,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ace +avT +avT +avT +avT +avT +avT +avT +tmO +tmO +tmO +tmO +bcR +oDm +tmO +ndM +umX +fbb +jRD +uHM +rhX +nrJ +iAR +rik +xWq +aAL +gxi +wEP +wJH +opC +wYe +iat +pEF +nez +sqg +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +vcG +lzB +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(87,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +cnI +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ace +avT +avT +avT +avT +avT +xUL +xUL +xUL +xUL +tdK +tmO +fYx +oDm +tmO +hnO +por +jEb +tvF +nEt +rhX +anO +nVp +kds +xWq +aAV +nZU +hnc +asQ +odD +kRz +axr +ayE +nez +sqg +ydp +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(88,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +bGt +avT +avT +avT +avT +avT +eik +xUL +xUL +xUL +dYZ +wlG +fYx +oDm +tmO +vFd +iop +cSC +xQF +vNF +rhX +vxX +evY +tGc +fQe +lZs +jFG +fhi +oeh +cya +lWi +axu +ayH +tQy +sqg +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +vcG +wgu +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(89,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +ace +avT +avT +avT +avT +avT +xUL +xUL +xUL +xUL +xUL +tmO +fYx +oDm +tmO +mTw +lgJ +hlT +fXd +eTX +rhX +ujE +grz +arP +xWq +wje +nrd +wje +sqg +sqg +ayG +sqg +ayG +sqg +sqg +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(90,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +ace +avT +avT +avT +avT +avT +avT +avT +tmO +tmO +tmO +tmO +qJy +xUe +tmO +rhX +vTP +prD +rhX +rhX +rhX +xWq +xWq +xWq +xWq +tmO +wje +wje +tmO +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +vcG +lzB +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(91,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +ace +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +tmO +fBk +oDm +wje +rhX +kHd +ljT +ahU +ubd +rhX +xUL +xUL +xUL +xUL +tmO +uxx +wje +tmO +ydp +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +vcG +lzB +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bTC +bBH +bBH +bBH +bBH +bBH +bBH +bBH +bBH +bBH +bBH +bBH +bTC +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(92,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +ace +avT +avT +avT +bmX +avT +avT +avT +avT +avT +avT +tmO +lki +kMt +tmO +rhX +kHd +ljT +kHd +gVo +rhX +xUL +xUL +xUL +xUL +tmO +wje +iPX +tmO +tmO +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +vcG +lzB +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +buI +sQb +byL +byL +byL +byL +byT +bTE +bTE +bTE +bTE +bHD +bJf +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(93,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +ace +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +vBe +xnm +xUL +rhX +lXR +hah +kHd +vGn +rhX +xUL +xUL +xUL +xUL +usE +buO +wje +cpC +tmO +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +vcG +lzB +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +buI +buJ +hlx +cBv +cBv +cBv +byO +cBv +cBv +cBv +bGo +bHE +bJf +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(94,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +ace +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +xUL +xnm +xUL +eTu +kHd +ljT +kHd +gVo +rhX +xUL +xUL +xUL +eNu +arl +rJh +lhB +uUZ +tmO +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +vcG +lzB +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +buI +buJ +fAj +anw +xUL +xUL +bBh +xUL +xUL +nCL +fAj +bHE +bJf +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(95,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +bGt +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +xUL +xnm +xUL +eTu +kHd +apK +wOn +sIT +rhX +xUL +xUL +xUL +xUL +usE +usE +usE +tmO +tmO +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +vcG +wgu +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +buI +buJ +fAj +kKk +xUL +cqC +bBh +ipL +xUL +anw +fAj +bHE +bJf +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(96,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +ace +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +vBe +xnm +xUL +rhX +rhX +rhX +rhX +rhX +rhX +xUL +xUL +xUL +xUL +wdv +avT +avT +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +vcG +lzB +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +buI +buJ +fAj +anw +xUL +avT +svY +avT +xUL +anw +bGq +bHE +bJf +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(97,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ace +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +xUL +xnm +avT +hmM +hmM +ydp +ydp +ydp +wdv +ydp +ydp +ydp +ydp +wdv +avT +avT +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +vcG +lzB +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +buI +buJ +xGN +fIS +bVT +fQi +bBh +avT +xUL +cJc +fAj +bHE +bJf +bES +bES +bES +bES +bES +bES +bES +bES +bTC +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(98,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ace +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +xUL +xnm +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +buI +phs +fAj +kii +tpl +jix +bBh +xUL +tpl +blI +fAj +bMj +veJ +rhg +sSS +rhg +rhg +rhg +flh +dKw +duI +bVM +bTC +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(99,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ace +xUL +vBe +xUL +xUL +xUL +xUL +vBe +xUL +xUL +xUL +vBe +xUL +xnm +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +kfv +kfv +kfv +kfv +kfv +byP +nPd +byP +kfv +kfv +kfv +kfv +kfv +pEK +nxv +nxv +nxv +nxv +nxv +nxv +nCA +mse +bVM +bTC +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(100,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +pQd +kLh +kQr +lZn +lZn +lZn +lZn +lZn +lZn +lZn +lZn +lZn +lZn +akg +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +vcG +lzB +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +kfv +kfv +tZe +rsW +ybQ +cXr +oOe +bBk +lFK +jro +yeF +kfv +kfv +kfv +nxv +nxv +nxv +nxv +nxv +nxv +nxv +nCA +mse +bVM +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(101,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +vcG +lzB +avT +avT +avT +avT +bmX +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +kfv +kfv +kfv +brq +kfv +arV +bGu +vEi +bGu +bGu +bGu +bGu +rsW +pMp +kfv +xhV +xoY +rMS +dyW +rxM +kin +nxv +nxv +rOd +bVM +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(102,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +xZL +qZO +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +avT +vcG +wgu +xUL +xUL +xUL +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +kfv +kfv +kfv +kfv +kfv +iBo +bGu +bGu +mRz +bGu +bGu +bGu +bGu +kfv +pyY +kfv +eoT +cCd +cCd +cCd +cCd +abk +nxv +nxv +kYF +bVM +avT +bmX +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(103,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +nbC +nbC +nbC +nbC +nbC +nbC +nbC +nbC +nbC +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +bmX +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +vcG +lzB +xUL +xUL +xUL +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +kfv +kfv +oBG +bGu +kfv +bGu +iGd +iVY +mrM +bDv +fOC +bEX +bFb +kfv +kfv +kfv +fLB +oZC +eVW +cCd +bYU +rtq +nxv +nxv +kYF +bVM +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(104,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +nbC +nbC +nbC +nbC +nbC +nbC +nbC +nbC +nbC +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +vcG +lzB +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +kfv +kfv +ilb +ifQ +rlG +wSb +wav +vpR +vIf +kfv +aNe +yfA +aOP +nxv +nxv +pvV +aLp +lZj +fdu +cCd +fnc +sTz +nxv +nxv +uwn +bVM +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(105,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +nbC +nbC +ktw +ktw +ktw +ktw +ktw +nbC +nbC +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +vcG +lzB +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +kfv +kfv +akQ +bGu +kfv +aNS +mNS +vpR +qLp +kfv +bGu +bEZ +bGv +nxv +kvG +cCd +cCd +kEd +cCd +cCd +cCd +upH +nxv +nxv +kYF +bVM +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(106,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +nbC +nbC +ktw +kRI +fdJ +hGU +ktw +nbC +nbC +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +bmX +avT +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +vcG +lzB +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +wql +wql +wql +wql +kfv +bxG +byR +vpR +bBl +kfv +wql +wql +wql +nxv +siX +cCd +cCd +jGp +gAY +cCd +xGE +quH +nxv +nxv +kYF +bVM +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(107,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +nbC +nbC +ktw +vSJ +kZL +kZL +maR +nbC +nbC +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +wql +wql +vEG +uUJ +wql +bwb +dFt +tLA +dnn +teh +wDk +pmK +dbB +nxv +eZn +xBv +nQM +lZi +nQM +cCd +pDF +pDF +nxv +nxv +kYF +bVM +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(108,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +nbC +nbC +ktw +ehh +kZL +hap +ktw +nbC +nbC +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +wql +wql +wql +wql +vOU +loV +wql +iRQ +dVG +eiW +hRH +eSK +bAM +eJh +jTP +nxv +vYL +bJn +nQM +foy +nQM +cCd +cCd +abk +nxv +nxv +kYF +bVM +avT +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(109,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +nbC +nbC +ktw +ktw +ktw +ktw +ktw +nbC +nbC +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +vcG +wgu +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bmX +avT +wql +wql +wql +wql +wql +mDO +fcl +wql +wql +gop +dxO +byU +hgg +bAL +sFh +bGy +bTM +bJl +bHh +ryE +aaO +cCd +cCd +wIx +tAY +nxv +nxv +rOd +bVM +avT +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(110,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +nbC +nbC +nbC +nbC +nbC +nbC +nbC +nbC +nbC +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +vcG +lzB +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +wql +wql +hAf +vOU +dml +yhz +ouQ +aWK +xow +lul +bAg +iPC +pvl +wDk +hUs +lTh +nxv +mVb +dOR +tLV +gnm +jTo +bJu +vEA +nxv +nxv +wFB +bUD +bVM +avT +avT +bmX +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(111,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +nbC +nbC +nbC +nbC +nbC +nbC +nbC +nbC +nbC +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +vcG +lzB +avT +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +wql +wql +uUJ +vOU +bcc +vOU +pzk +oKD +wql +esi +iHg +wTf +wTf +wTf +wTf +wTf +wTf +udB +wTf +aKP +nRn +kkJ +nxv +nxv +nxv +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(112,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +xZL +qZO +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +vcG +lzB +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +wql +wql +wql +wql +wql +bvW +vSg +wWd +knx +bwa +bAg +bBq +bFq +bAO +bFd +mKk +bFj +bJp +bHk +bHR +xal +jNZ +bJz +xUL +cav +xUL +avT +avT +cer +bZx +bZx +bZx +bZx +bZx +bZx +cer +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(113,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +vcG +lzB +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +wql +wql +khf +vOU +qEz +vOU +pzk +xRL +knx +xCC +ndg +bBp +nYN +bAN +bQg +bQg +pMU +bGN +bHj +bNN +yiz +iGB +fKC +xUL +xUL +xUL +avT +avT +cer +bWQ +xRy +bWQ +cbt +qVi +qVi +cer +avT +avT +avT +ydp +ydp +ydp +ydp +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(114,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +vcG +lzB +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +hsC +avT +wql +wql +dlZ +tVp +dml +rTA +oNz +wSy +bxK +fcu +bAh +bBs +sfn +cgp +tLI +cdk +bFc +bGO +bHl +bHS +bLI +fHh +fKC +xUL +xUL +xUL +epU +avT +cer +jDr +jDr +jDr +ifl +pvo +btI +cer +avT +avT +avT +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(115,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +vcG +lzB +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +wql +wql +wql +wql +wql +eih +pQN +tBW +oEs +kTN +wdt +bBr +bCv +eKe +bCv +bCv +hSl +bJq +bKw +kMK +eEB +kNQ +fKC +xUL +xUL +xUL +rjx +ajg +cer +rvl +jDr +sem +tuv +jDr +tpg +cer +avT +avT +avT +bmX +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(116,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +wyg +wyg +wyg +wyg +wyg +jFS +jFS +jFS +jFS +jFS +jFS +wyg +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +vcG +wgu +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +avT +wql +wql +wql +wql +wql +sWN +wql +wql +txk +xEt +nXy +pNU +pNU +pNU +pNU +wPT +dPL +qNB +hpC +yhj +bOT +fKC +xUL +bSC +xUL +rVN +wuS +diH +bWO +qOL +bUm +eMJ +jDr +kAv +cer +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(117,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +wyg +jER +xGo +uCr +wyg +igO +nea +abe +wGD +iam +pJT +wyg +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +xUL +xUL +xUL +avT +avT +xUL +xUL +xUL +avT +avT +vcG +lzB +avT +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +avT +bwt +fcj +sZq +uXF +vgb +eFG +bwt +tjA +cBy +xBi +bBt +bFf +eUB +bFf +bGB +oJF +piv +nre +bWR +xdr +uKb +fKC +rVN +uHl +rVN +rVN +ioe +diH +bWN +jDr +uEg +kfJ +jDr +pPw +cer +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(118,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +wyg +xLF +qWH +uCr +wyg +xls +naj +eFB +naj +nPs +nHe +wyg +ydp +ydp +avT +avT +avT +avT +avT +avT +tqg +nGx +nGx +nGx +nGx +nGx +nGx +nGx +nGx +nGx +nGx +nGx +xtV +lzB +avT +avT +avT +avT +avT +bok +unA +bJQ +bJQ +unA +avT +avT +avT +avT +bwt +sfm +buZ +lpb +oym +brE +bwt +bFl +cBy +nhv +gnf +paF +sPq +fTn +bGE +mwW +uvO +fKC +fKC +fKC +fKC +fKC +bQk +bUH +bUH +bUH +bUH +kEW +bVQ +cew +bYL +rqn +toH +cdt +cer +clR +clR +clR +clR +ccl +cio +cio +cjY +clR +clR +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(119,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +wyg +omO +qWH +uCr +wyg +qgC +naj +gAG +naj +wGD +nVI +wyg +ydp +ydp +avT +avT +avT +avT +avT +avT +tFr +dvc +sLv +sLv +sLv +sLv +sLv +ybT +sLv +sLv +sLv +sLv +sLv +asr +avT +avT +avT +krq +avT +bok +sLq +wcB +wcB +unA +avT +avT +avT +avT +bwt +sPF +bsk +dWF +rgh +uoc +bwt +tpN +eRu +sOi +pLP +tKa +cBD +bCt +bGD +qbr +bJs +cBD +rIB +tQI +rIB +cBD +bQj +gCG +sdN +xXX +ubL +diH +uPJ +xTI +aEO +hch +uut +bUm +cer +cfh +aow +icb +clR +cCT +mcs +wck +phS +jDG +clR +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(120,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +xZL +qZO +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +wyg +vaR +gHe +hcz +cyu +jAv +hpN +veF +naj +naj +nde +wyg +ydp +avT +avT +ktw +ktw +ktw +ktw +ktw +vcG +lzB +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +bmX +avT +avT +bok +xjZ +bok +cwo +wcB +wcB +unA +avT +avT +avT +avT +bwt +ewK +drK +msA +fPN +btu +bwt +mVi +lWR +bfT +trO +iad +cBD +bDr +bDr +alG +fmt +cBD +cbz +jae +bNS +pST +bQm +bZF +bZF +bZF +bZF +diH +xOq +diH +mkY +diH +hUL +vBV +cer +hpV +cqa +kyo +tkG +qiF +qiF +igR +cjX +ruD +clR +avT +avT +bmX +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(121,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +wyg +rjQ +rEi +rEi +wyg +twU +wAM +xsZ +pkJ +naj +tCj +wyg +ydp +rfj +wMr +wFt +wxf +jxS +mGT +tey +fhM +lzB +avT +avT +avT +avT +avT +avT +bHt +nZE +nZE +nZE +nZE +aUd +avT +avT +avT +bok +acj +bok +uxF +wcB +wcB +unA +avT +avT +avT +avT +bwt +aNw +hRe +buZ +dtt +idQ +bwt +bFn +hWb +dqE +puY +cBy +cBD +cAL +bFs +eOn +bJt +bOX +mOx +bWM +bNR +cBD +giT +bZF +xkT +bVR +rYN +qOb +bSd +bXO +eoL +bZF +vJt +caA +cer +rTz +bZt +eGF +ydo +snb +owV +iBm +cep +ces +clR +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(122,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +wyg +cYK +cYK +bDo +wyg +fYl +sDW +oUX +mJd +mJd +awo +eDt +wMr +phs +ydp +ktw +xYE +gky +vmM +jOo +azc +lzB +avT +avT +avT +avT +avT +avT +qAi +qsD +qsD +qsD +qsD +mSN +qsD +bok +bok +bok +wcB +bok +sLq +wcB +wcB +unA +avT +avT +bmX +avT +bwt +cTD +mhH +iQv +cTD +klQ +bwt +sGL +nJI +qQp +rGP +xaW +cBD +iXH +wTx +qeo +fLv +smP +smP +smP +smP +smP +bQn +jBk +gYw +mOG +bUJ +bVS +fzQ +bZF +cBI +bZF +wFv +whB +cer +xnb +uat +cZr +clR +pCY +jOJ +pOg +cyM +ckT +clR +iIS +iIS +iIS +iIS +cjN +vKO +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(123,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +ydp +avT +avT +avT +avT +avT +avT +ydp +wyg +wyg +wyg +wyg +wyg +tMk +naj +naj +naj +naj +jvy +wyg +ydp +ydp +ydp +ktw +bKs +bxU +iSg +wLG +ker +lzB +avT +avT +avT +avT +avT +avT +qAi +qsD +wZV +ihX +pDS +lwH +ncg +aXh +jHC +bok +ivM +bok +unA +uFq +uFq +unA +unA +unA +bmA +bmA +grV +xTL +bff +bsk +lHn +ciO +cTD +bCz +vSX +lGp +byW +oho +cBD +jVx +rHa +wcn +unX +smP +tCa +hVO +bNT +smP +giT +bZF +bSF +vQf +kJE +bwh +qHi +ndn +vcY +bZF +qGt +bTH +cer +dMj +dMj +dMj +dMj +dMj +vem +vwW +fiw +auR +iIS +cfB +cjS +fjc +lYM +vAI +ueR +vKO +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(124,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +xZL +xBk +avT +avT +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +avT +lzi +ahn +naj +naj +naj +naj +wwO +wyg +ydp +ydp +ydp +ktw +dDK +urV +etB +wnX +aAh +utj +vsM +vsM +vsM +vsM +vsM +vsM +rgH +xuN +sxl +wha +wsc +iGb +aVv +aXh +rqE +ifT +rqE +fPp +rqE +wbE +wbE +fPp +rqE +rqE +wcS +cUS +cTD +lHn +bff +bsn +lHn +lHn +cTD +bCz +qfT +qBb +bBA +vIl +cBD +ndL +dpZ +dpZ +bJw +smP +wtt +bMN +bNV +tTW +ius +bZF +saP +pry +qkT +wDt +gTH +bZF +bZF +bZF +diH +qGM +cer +dMj +cey +kLQ +eTv +dMj +dMj +sFp +lTT +clR +iIS +ofP +cDm +imn +brJ +hgM +yfQ +cDL +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(125,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +xZL +xBk +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +wyg +oZL +hjv +fVm +wEm +tuu +nIM +wyg +ydp +ydp +ydp +ktw +xYE +aVC +cgH +lXk +mDB +aDL +ujF +ujF +ujF +ujF +ujF +ujF +hqD +lob +mDm +vVz +hQL +wDJ +aVv +aXh +uBa +aZY +uBa +uBa +uBa +wbE +wbE +uBa +uBa +uBa +uBa +dGB +cTD +buZ +mBK +bsm +buX +dmc +vpz +iGJ +gmf +qAI +bBy +ewY +cBD +bFl +hgp +cBy +cBy +bMP +bVW +yeA +hTK +smP +giT +bZF +gBF +osa +kJE +gBF +nzn +bZF +bZF +bZF +lhQ +lhQ +lhQ +dMj +cex +dEX +orN +bQt +bLQ +fsJ +duJ +pqL +iIS +mVr +gCJ +cDm +cDm +job +keu +cDL +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(126,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +bHt +nZE +nZE +nZE +aez +xBk +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +wyg +wyg +wyg +wyg +wyg +wyg +las +wQG +wGD +wGD +naj +nHe +wyg +ydp +ydp +ydp +ktw +kxI +dPM +xNs +wwx +nDd +aDQ +avT +avT +avT +avT +avT +avT +avT +aVv +iGV +gFq +cEb +uBh +aVv +aXh +uBa +ohm +got +got +uBa +lRx +wbE +got +got +xui +uBa +dGB +cTD +buZ +pmE +buZ +old +hXF +cTD +oGU +gQw +mTl +bBA +oGU +cBD +sSP +bHX +xzL +bJy +smP +aMF +lqW +nfB +smP +giT +bZF +wDt +wZl +iTP +jcU +pnz +bZF +ucm +lhQ +lhQ +lhQ +lhQ +dMj +riE +hGy +ucZ +fBc +fBc +tkH +ckb +cLX +iIS +oxs +cDm +cDm +jQB +bSu +nGf +cDL +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(127,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +mps +xAv +ruo +ruo +acQ +aUb +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +wyg +cci +fuX +mYE +ipi +eXd +eXd +jZg +naj +qmD +kcX +nVI +wyg +ydp +ydp +ydp +ktw +ktw +rbg +cgH +ktw +xZL +lzB +avT +avT +avT +avT +avT +avT +avT +qsD +aVt +doD +bOc +iET +aVv +aXh +uIs +gGQ +iog +aSN +lQs +xYD +wbE +xZg +xZg +xZg +uBa +eeh +grV +cTD +cTD +bKo +cTD +cTD +grV +lbp +knn +eOK +bBz +lbp +cBD +cBD +cBD +cBD +lYS +smP +bLO +gfN +pSm +smP +jbg +bZF +gAu +gAu +pUP +gAu +tod +bZF +tNf +sRh +lhQ +vNY +lhQ +dMj +dMj +dMj +dMj +dMj +iIS +tAX +ckb +ckW +clV +cmU +cDm +quE +cDm +cDm +srm +cDL +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(128,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +axL +aaM +nZE +nZE +abU +vBe +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +wyg +ttK +rsD +cWO +vEo +naj +omh +naj +qDg +ect +ect +aUg +wyg +ydp +ydp +ydp +ktw +gky +ptY +cgH +ktw +xZL +lzB +avT +avT +avT +avT +avT +avT +nTz +qsD +riC +rEx +aVv +iQD +riC +qXN +srJ +aZY +uBa +uBa +uBa +thy +wbE +uBa +uBa +uBa +uBa +qHO +lbp +vPQ +hhz +vPQ +vPQ +vPQ +bwu +lhQ +yae +kPj +bBB +lhQ +lhQ +vPQ +cGQ +vPQ +vPQ +bNn +vPQ +qQt +vPQ +bJF +bVX +cGQ +hhz +vPQ +vPQ +vPQ +haj +pjn +tNf +sAw +vPQ +mdG +vPQ +iwd +ykt +jIj +jIj +cgY +iIS +bVu +ckb +mXC +clV +dij +vxi +nmN +cDm +cDm +qIx +cDL +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(129,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +iHM +tOz +iHM +gCO +iHM +axN +ruo +ruo +aAh +vzS +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +wyg +rYQ +hNi +qEs +wyg +wyg +wyg +jFS +jFS +jFS +jFS +jFS +wyg +ydp +ydp +ydp +ktw +cPI +gmn +xSd +lXk +xZL +paY +mxF +irt +irt +mxF +irt +irt +mxF +btZ +uyK +pqX +enP +lCQ +lEy +ggl +wFU +gSh +beo +beo +beo +qyK +tJA +tJA +tJA +tJA +tJA +tJA +rmQ +tmU +xdc +iNV +bAk +hxf +hxf +hxf +hxf +bAj +ezY +tmU +tmU +tmU +tmU +tmU +tmU +tmU +tmU +uZd +tmU +bPa +hvr +tmU +msm +tmU +tmU +tmU +xdc +tmU +xXV +xdc +tmU +ilF +tmU +tmU +tmU +hvr +tmU +tmU +iau +hKc +olx +grs +guE +jwj +fNC +mqm +dbb +nFG +cqp +cDN +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(130,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +iHM +kRk +iHM +kRk +iHM +avT +avT +avT +xZL +xBk +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +wyg +wyg +wyg +wyg +wyg +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ktw +cPI +cqG +spa +dIj +pIH +bpT +irt +irt +irt +irt +irt +irt +irt +gZS +uyK +aRt +iyP +qGn +lud +ngB +joq +xzn +wdk +iOW +wdk +beq +ngB +ngB +ngB +ngB +ngB +ngB +bnE +fqE +cBF +mfC +udI +fqE +fqE +fqE +fqE +nRt +xmB +bmS +bmS +bmS +bmS +bmS +bmS +bmS +bmS +bmS +bmS +tXn +tys +bmS +iVB +bmS +bmS +bmS +bmS +bmS +bmS +bmS +bmS +bPd +bmS +bmS +bmS +jhe +bmS +bmS +civ +fJW +ina +ckY +mMP +frh +rLk +nEJ +cDm +job +aZz +jQj +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(131,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +iHM +iHM +iHM +iHM +iHM +vow +iHM +vow +iHM +iHM +iHM +iHM +xZL +xBk +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +ktw +cPI +kxP +vAs +ktw +xZL +lzB +avT +avT +avT +avT +xUL +xUL +nTz +sLj +rmN +wxT +bUP +fLK +rmN +oLT +ljL +uBa +uBa +uBa +uBa +ljL +uBa +daX +uBa +uBa +uBa +qHO +lbp +ceA +jAb +coa +fXU +ffm +jBl +fmw +tWx +pBU +reS +lhQ +lhQ +ceA +vun +ceA +ceA +ceA +seR +ceA +ceA +bmP +bQs +vun +vZv +ceA +ceA +ceA +ceA +vun +lhQ +lhQ +ceA +bPc +ceA +bUL +rmB +tNf +bUL +cgZ +iIS +nCU +oeS +ckX +clV +cmV +vxi +pbV +cDm +nFw +vaO +jQj +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(132,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +iHM +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +iHM +xZL +xBk +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +avT +avT +ktw +cPI +hPe +vAs +ktw +xZL +lzB +avT +avT +avT +avT +xUL +xUL +hmM +sLj +aPZ +kAO +phf +uRi +wxT +pqe +hgO +baa +bcq +bcq +bcq +mai +pcd +piX +hJw +kop +uBa +fuy +bwx +bwx +bwx +bwx +brX +bwx +bwx +bwx +lhQ +bxa +byZ +lhQ +bEa +bEa +bEa +bEa +bEa +bEa +bEa +bEa +bEa +mXj +hQY +hQY +afp +bVZ +eGL +bVZ +bVZ +hQY +hQY +hQY +cAe +cdE +cAe +chb +chb +yiZ +chb +vqS +iIS +hYD +oeS +cqo +clV +oBF +cDm +dHe +cDm +cDm +srm +jQj +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(133,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +iHM +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +iHM +xZL +xBk +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +bmX +avT +avT +avT +avT +avT +avT +avT +avT +ktw +spa +vir +fkr +ktw +oME +lzB +avT +avT +avT +avT +xUL +xUL +hmM +wxT +aPY +kAO +jFZ +kiB +wxT +pqe +uBa +dCs +xZg +rkP +xZg +aZZ +vDb +wbE +vkD +pXp +uBa +rcH +bwx +cTG +bpD +bqO +bLX +btf +bJG +bvl +ceA +bwZ +byY +fET +bEa +qrv +tDO +fjL +lNm +oVN +jZy +gUA +bEa +udT +hQY +vwf +gfY +iPO +wvg +bsX +kSk +hQY +gCs +hQY +cAe +cdE +cAe +chb +vam +gsr +rnA +hsP +iIS +kxf +oeS +iIK +iIS +iAt +cDm +cDm +cDm +odK +hkw +maj +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(134,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +iHM +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +iHM +xZL +xBk +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ktw +ktw +hSD +ktw +ktw +xZL +lzB +avT +avT +avT +avT +xUL +xUL +hmM +wxT +moD +aQd +jUn +kiB +wxT +pqe +uBa +uBa +uBa +daX +uBa +uBa +wbE +fWE +wbE +wbE +uBa +rcH +bwx +iSo +bpM +ouX +bFD +hpw +iaY +pVz +hoX +bxc +bzb +bCD +bBd +cCp +wGq +luo +qzX +vuk +rLn +oZf +bEa +udT +hQY +mQD +qtK +nzM +uAh +usM +epc +hQY +hQY +hQY +cAe +cdE +bwr +chb +eZA +uLd +gSY +uAs +obL +bMs +oeS +rAj +iIS +cph +jQB +cDm +cDm +job +lng +jQj +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(135,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +iHM +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +iHM +xZL +xBk +vBe +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +atX +nGx +nGx +nGx +nGx +nGx +nGx +dwF +nGx +nGx +uYf +ujF +ujF +aSE +lzB +avT +avT +avT +avT +xUL +xUL +hmM +wxT +ufA +qHc +vcN +pnr +wxT +pqe +uBa +unA +unA +unA +unA +uBa +wbE +bPW +wbE +wbE +uBa +rcH +bwx +gFb +hcV +uKM +voD +wlo +jcR +bvl +ceA +bxb +fkN +bCD +bBd +aJP +qhu +bIc +tHC +bMZ +bcp +udE +bEa +bPf +bQx +bRH +bRH +bTU +ixZ +usM +wvg +hQY +dFC +hQY +bdm +bXU +cjA +vBo +gMD +pIz +vfd +chc +iIS +oOu +oeS +mbM +iIS +kmA +efT +tuP +rWN +czN +dTS +jQj +avT +avT +avT +bmX +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(136,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +xUL +cav +xUL +iHM +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +kHD +iHM +xZL +xBk +xUL +xUL +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +vcG +dvc +sLv +sLv +sLv +sLv +sLv +sLv +sLv +sLv +sLv +sLv +sLv +sLv +asr +avT +avT +avT +avT +xUL +xUL +hmM +sLj +lhR +fNR +iZu +ttH +jTY +sNg +uBa +uBa +uBa +uBa +uBa +uBa +wbE +wbE +wbE +wbE +uBa +faZ +bBL +bBL +bBL +bBL +bEe +bBL +bBL +bBL +ceA +mIz +cSG +bzS +bBd +bCJ +gZG +dRF +lep +bEa +muk +bcp +bEa +udT +hQY +rxu +wvg +bTV +wvg +xyA +wvg +bXV +vzj +hQY +cAe +cdE +cAe +chb +pXW +hZU +phI +vSb +iIS +vZq +qMB +clc +iIS +daj +kwY +jCw +hCI +szZ +uHy +dAM +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(137,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +xUL +xUL +xUL +iHM +iHM +iHM +iHM +iHM +nlF +iHM +nlF +iHM +iHM +iHM +iHM +xZL +xBk +avT +wdv +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +vcG +lzB +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +bok +bok +bok +sLj +sLj +sLj +rmN +rmN +rmN +ffJ +uBa +xui +got +got +got +uBa +uxq +wbE +vkD +pXp +uBa +fhz +bBL +efk +bDR +edM +bsq +bDR +rUK +vOo +eHn +oxh +osc +bCD +bBd +eng +bFA +qyt +bEa +bEa +bEa +bEa +bEa +iaD +hQY +doN +ttG +bPh +pNQ +tHH +dWU +hQY +eRW +hQY +kYs +cdE +cAe +chb +qbv +ayP +hZU +eIc +iIS +iIS +iIS +iIS +iIS +iIS +iIS +iIS +iIS +vWV +dAM +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(138,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +xUL +xUL +xUL +avT +avT +avT +avT +iHM +lJN +vQk +gUc +iHM +avT +avT +avT +xZL +xBk +avT +wdv +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +vcG +lzB +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +dTE +poU +kJO +oIJ +tMn +dTE +xGh +rqE +tPQ +bhe +uBa +xZg +xZg +xZg +xZg +uBa +opY +sma +dtQ +oeV +uBa +rqE +bBL +cvH +bDR +gfF +uWn +gfF +emh +bxN +bze +bAp +dvw +bCG +bBd +bFw +aaw +oHS +bEa +tTK +uuY +oKN +qJV +udT +vOV +vOV +vOV +vOV +vOV +cCH +cCH +cCH +hQY +hQY +cAe +cdE +cAe +cdD +eyS +vfd +dVJ +eyS +cdD +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(139,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +pgp +xUL +xUL +xUL +pgp +avT +avT +avT +iHM +kRk +kRk +kRk +iHM +avT +avT +avT +xZL +xBk +avT +wdv +xUL +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +vcG +lzB +avT +avT +avT +avT +avT +avT +avT +ydp +avT +avT +avT +avT +avT +ydp +avT +avT +avT +eBm +aMu +kBK +ehL +kBK +ksq +fuZ +fuZ +fuZ +sHv +uBa +uBa +uBa +uBa +uBa +uBa +uBa +uBa +uBa +uBa +uBa +qvG +bBL +bBL +bBL +bqX +qMN +gfF +fga +bBL +jcT +bAr +teC +jcT +bEa +bEa +jex +pfB +bEa +rnO +ljh +exs +qJV +udT +vOV +bRL +nGd +bWd +nHQ +gML +hjF +vOV +eLf +lhi +rqJ +ttl +cAe +cdD +uQR +bDB +edH +mAK +cdD +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(140,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +pgp +xUL +bSC +xUL +pgp +avT +avT +avT +iHM +vow +iHM +vow +iHM +avT +avT +avT +xZL +xBk +iSB +wdv +xUL +xUL +wdv +ydp +ydp +xUL +xUL +wdv +wdv +ydp +avT +avT +avT +ydp +avT +avT +avT +vcG +lzB +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +avT +avT +ydp +ydp +avT +avT +avT +vQW +aMx +aQe +sBy +tif +vQW +rqE +eAJ +rqE +rqE +rqE +eAJ +rqE +oZe +rqE +eAJ +rqE +rqE +rqE +bjU +rqE +tHU +bBL +guv +bpO +bDR +gfF +bDR +jOl +bBL +tiG +daP +kis +bzU +bDW +bEl +bDE +bFK +bJC +prL +fiN +hmX +qJV +udT +vOV +msg +msg +nHQ +nHQ +gML +hjF +vOV +cAe +cng +uSH +cAe +cAe +cdD +ebq +fZn +hTy +oQy +cdD +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(141,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +iHM +iHM +pgp +raM +iHM +pgp +iHM +iHM +iHM +iHM +rRk +xfs +qHL +iHM +iHM +avT +avT +xZL +xBk +avT +xUL +xUL +xUL +xUL +avT +wdv +xUL +xUL +wdv +avT +avT +avT +avT +avT +avT +avT +avT +avT +vcG +lzB +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +eyP +uTu +uTu +iaO +dnm +hHC +dnm +unA +unA +unA +unA +unA +dnm +unA +dnm +unA +unA +waC +unA +bok +rqE +rqE +bok +bsx +bsx +bsx +bsx +bLT +bLT +bLT +xhH +rle +cSG +bCQ +bDW +bIn +bQP +wOK +bJC +gzZ +gSu +ipY +qJV +bPk +sYm +dgI +xsE +nCc +bXW +bXW +bXW +vKc +cAe +cng +uSH +cAe +czY +chb +chb +chb +chb +chb +chb +avT +avT +avT +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(142,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +xUL +aNL +mtP +dvs +mtP +mtP +dAi +mtP +mtP +mtP +mtP +mtP +lLv +mtP +oBD +iHM +lJC +lJC +xZL +xBk +avT +xUL +xUL +xUL +xUL +avT +wdv +xUL +xUL +wdv +avT +avT +avT +avT +avT +avT +avT +avT +avT +tFr +lzB +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +unA +wcB +unA +wcB +unA +avT +avT +avT +unA +wcB +unA +wcB +unA +rqE +rqE +rqE +bok +rqE +faZ +bok +vAs +vAs +vAs +vAs +bLT +fnu +bxR +mPM +ohK +tlc +bzW +quh +bCT +bGR +bIj +ykk +dZg +uNd +lJA +mhz +bPm +bQC +gsK +wuB +pyI +bXW +eqZ +wpN +vOV +cAe +cng +uSH +cAe +bPn +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(143,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +xUL +xUL +xUL +xUL +xUL +aNL +fTM +dvs +mtP +naE +mtP +mtP +nOY +mtP +naE +duB +tsK +tsK +tsK +iuC +tsK +pXb +aSE +xBk +xUL +xUL +xUL +vBe +xUL +xUL +xUL +xUL +vBe +xUL +xUL +xUL +xUL +xUL +vBe +xUL +xUL +xUL +xUL +vcG +lzB +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +krq +avT +avT +avT +avT +avT +avT +unA +wcB +unA +wcB +unA +avT +avT +avT +unA +wcB +unA +wcB +unA +jPI +wrh +jPI +bok +rqE +rqE +bok +vAs +vAs +vAs +vAs +bLT +xou +jkL +fcJ +cqd +qlW +bzV +cAa +anA +wbT +rTs +hTL +uRg +jab +jFy +qJV +fuG +vOV +dtc +vOV +vOV +vOV +vOV +vOV +vOV +czY +scu +uSH +cAe +bPn +bPn +bPn +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +avT +avT +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(144,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +xUL +ydp +ydp +avT +avT +iHM +iHM +pgp +pgp +pgp +fPM +pgp +pgp +pgp +pgp +vhb +mtP +vDI +ugk +hAx +ugk +nrY +vsM +aUb +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +vcG +lzB +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +nTz +xiw +xUL +xUL +xUL +xUL +xUL +pZl +unA +qqZ +unA +qqZ +unA +rJO +xUL +pZl +unA +qqZ +unA +qqZ +unA +bok +bok +bok +bok +rqE +rqE +unA +vAs +vAs +vAs +vAs +dUM +cQa +jLp +bDT +bAt +mmO +bCM +bDW +mOv +jOB +lYy +bJC +ihE +fJO +eex +nRu +fiI +nRu +aNT +nRu +pcl +bWe +uZf +rUd +rUd +qJV +xwA +caJ +cAe +oBj +cAe +opT +pbs +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(145,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +xUL +ydp +ydp +ydp +avT +bmX +avT +pgp +pCj +dZV +gLk +pgp +qFH +nBd +wfS +iJs +mtP +sgL +qxk +pgp +kmH +pgp +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +bmX +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +vcG +lzB +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +xUL +avT +avT +avT +avT +avT +avT +avT +avT +avT +nEs +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +unA +rqE +rqE +pce +vAs +vAs +vAs +krT +pze +bEi +bEi +lbp +bAs +nmY +bCL +bDW +gpp +wbT +nHi +bJC +rDA +fjU +dvO +bJC +fuG +dHw +rpf +hPh +jwN +bWe +uZf +rUd +rUd +qJV +cng +cdE +cAe +bPn +bPn +bPn +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(146,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +xUL +ydp +ydp +ydp +ydp +avT +avT +pgp +hGM +gLk +gLk +pgp +vVZ +mWy +pgp +iJs +mtP +inA +qMn +pgp +wdv +wdv +vBe +xUL +xUL +xUL +xUL +xUL +xUL +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +vcG +lzB +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +xUL +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +unA +rqE +oLe +unA +vAs +vAs +vAs +vAs +bLT +bCO +bFT +bCO +gRE +thV +bCO +bEa +kxj +aaw +rqx +qJV +bKL +fJO +jKT +nRu +fiI +nRu +wfN +nRu +hQs +bWe +uZf +rUd +rUd +qJV +hNt +cdE +mLB +bPn +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(147,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +avT +avT +avT +yhx +yhx +yhx +yhx +yhx +avT +avT +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +xUL +ydp +ydp +ydp +ydp +ydp +avT +pgp +vlz +gLk +fBs +pgp +pgp +pgp +pgp +vhb +hNT +mLK +raA +raA +raA +raA +raA +uPn +iOe +iOe +ycl +ycl +iOe +iOe +dSQ +avT +ydp +ydp +avT +avT +avT +ydp +ydp +avT +avT +avT +avT +vcG +lzB +avT +avT +ydp +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +xUL +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +bok +bok +bok +bok +vAs +vAs +vAs +vAs +bLT +nmc +bEi +bzi +tcU +jWy +aGl +bEa +pHl +aaw +gKB +qJV +fjU +fjU +fjU +qJV +fuG +qJV +cNI +qJV +qJV +qJV +qJV +qJV +qJV +qJV +cAe +cdE +cAe +bPn +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(148,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +avT +avT +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +avT +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +xUL +ydp +ydp +ydp +ydp +avT +avT +pgp +pgp +pgp +gLk +pgp +qFH +tYo +dJb +iJs +veC +unt +raA +lfV +eAR +eAR +raA +hzh +wDI +wrN +jJd +jJd +jJd +jJd +dSQ +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +vcG +lzB +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +xUL +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +cTL +oql +bqW +cTO +cTO +cTO +bLT +bLT +bLT +bwG +mEE +eeM +uha +uuu +vzn +tRe +tRe +vnl +cBt +tRe +gPE +syy +gPE +qJV +goM +gxF +ijK +bSS +nXn +nXn +bWf +avT +avT +bPn +cAe +cdE +cAe +bPn +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(149,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +qrR +qrR +wuf +avT +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +avT +yhx +yhx +avT +avT +avT +avT +avT +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +xUL +avT +avT +avT +ydp +avT +ydp +pgp +ugr +pBh +gLk +pgp +vVZ +mWy +pgp +qIP +iZc +pfZ +raA +qxw +mZk +hsl +cOn +klc +ocY +ijz +cUV +omQ +jJd +njd +dSQ +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +bmX +avT +tFr +lzB +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +xUL +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +cTL +lAL +bqW +rlA +oql +twG +bCO +qSJ +suL +hez +jkL +jes +qfX +cZN +gKR +tRe +iYh +bGT +uWo +tRe +tRe +tRe +tRe +tRe +tRe +bWf +bVa +kXG +sqx +owj +bWf +avT +avT +bPn +cAe +cdE +cAe +czY +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(150,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +qrR +qrR +wuf +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +xUL +ydp +ydp +avT +avT +avT +ydp +pgp +pgp +pgp +eEa +pgp +pgp +pgp +pgp +vKo +vEe +jXL +tOE +uWW +pyW +dwS +cOn +klc +exi +yfp +wAQ +vfp +vfp +vfp +dSQ +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +xUL +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +cTL +oql +bqW +bqW +oql +hhb +bCO +fcz +bEi +bIm +bEi +xRH +tKD +bBN +ppI +tRe +tRI +bGV +tDY +oXn +cSg +tRe +cbQ +rgQ +cbQ +bWf +bVa +bSS +uuU +uuU +bWf +avT +avT +bPn +cAe +cdE +cAe +bPn +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(151,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +qrR +qrR +wuf +avT +lbu +aQK +wuC +avT +lbu +aQK +wuC +avT +lbu +aQK +wuC +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +xUL +ydp +ydp +ydp +avT +avT +ydp +pgp +fCQ +mPR +gLk +pgp +qFH +vqY +ukI +vuh +jjB +cNm +qeH +skZ +skZ +skZ +skZ +mSt +geO +cQv +nGa +fpW +oyf +dzS +dSQ +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +xUL +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +cTL +bqW +bqW +bqW +njr +kkB +bCO +bzq +bzq +bzq +xpl +phU +qnr +cqt +hfk +tRe +fad +qKk +tAv +fTg +teL +tRe +xtq +hpa +cFO +bWf +bVa +bSS +bWf +bWf +bWf +avT +avT +czY +jCF +cdE +cAe +bPn +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(152,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +qrR +qrR +wuf +avT +lbu +fVQ +wuC +avT +lbu +fVQ +wuC +avT +lbu +fVQ +wuC +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +ydp +ydp +ydp +ydp +ydp +avT +avT +xUL +ydp +ydp +iOG +kyV +jWl +iOG +vrx +vrx +vrx +vrx +pgp +vVZ +mWy +pgp +uEG +dKn +gEz +pax +sdq +iux +aFA +mNq +mSt +dSQ +seo +rPs +dSQ +dSQ +dSQ +dSQ +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +vcG +lzB +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +xUL +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +cTO +wtY +wtY +thN +bzq +bzq +bzq +bzq +bxX +bwL +xnP +tKU +lYN +bBJ +wmG +tRe +dFp +wTK +tDY +oXn +cSg +tRe +egg +cbQ +iXG +bWf +bVa +bVa +bWf +ftV +bWf +kQG +avT +czY +cAe +cdE +cAe +bPn +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(153,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +avT +avT +wuf +avT +lbu +fVQ +wuC +avT +lbu +fVQ +wuC +avT +lbu +fVQ +wuC +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +avT +ydp +avT +ydp +avT +xUL +iOG +iOG +iOG +wju +pKp +bii +iOG +fHa +hIa +iOG +vrx +vrx +vrx +vrx +vrx +ptl +hKs +tTo +oEf +efF +lSt +klo +mSt +xgu +rtm +aCV +xiB +xYJ +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +xUL +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +cTL +jwP +bkQ +bmW +bom +bIq +bri +bvo +tyQ +cZk +poj +bzl +ftH +bzd +hGr +tRe +bkz +bGV +uHc +fTg +dQT +tRe +ptU +bIK +bPq +bWf +bVa +bVa +mtz +pxv +eNG +avT +avT +czY +kYs +cdE +cAe +bPn +avT +avT +ydp +ydp +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(154,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +avT +avT +avT +avT +lbu +fVQ +wuC +avT +lbu +fVQ +wuC +avT +lbu +fVQ +wuC +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +bmX +avT +avT +avT +avT +avT +avT +avT +xUL +iOG +hNZ +sTI +hHW +tzL +oRh +iOG +taP +xUU +iOG +uyW +iEQ +gcw +qva +kFr +cLq +oje +tdL +mSt +cRa +eua +phq +nwR +xoS +rnk +skE +wRa +xYJ +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +vcG +lzB +avT +avT +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +ydp +avT +xUL +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +cTL +bvq +bzn +bvq +oCZ +lxV +dGP +evr +lxV +hJE +cmC +aIt +bCO +bBN +vTF +tRe +eVp +bGV +tDY +fTg +cUN +lbv +bIf +bIL +eNX +bWf +bWf +bWf +bWf +bWf +bWf +kQG +avT +bPn +cAe +hSV +cAe +bPn +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(155,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +wuf +wuf +avT +avT +lbu +fVQ +wuC +avT +lbu +fVQ +wuC +avT +lbu +fVQ +wuC +avT +avT +avT +avT +hAa +avT +lpT +dTy +dTy +dTy +dTy +ydp +ydp +ydp +ydp +ydp +ydp +avT +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +qYD +nmM +cPn +bly +pIP +fuB +iOG +mVo +xJD +iOG +kLo +vEd +fII +ilL +kFr +trU +xvj +eha +qrS +ngj +jNK +xmC +mSt +ads +qoh +aeG +qxX +xYJ +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +bmX +avT +avT +ydp +ydp +ydp +avT +xUL +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +cTL +cTL +cTO +bzq +bzq +ptd +lom +bzq +oYr +lom +bzq +bzq +bCO +hrN +vER +tRe +qRK +bDI +bFL +bKO +bKO +nzt +bNf +bOp +fTg +cGZ +iWG +tPB +fTg +sat +tRe +avT +avT +bPn +cAe +cdE +cAe +bPn +avT +avT +avT +bmX +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(156,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +avT +avT +avT +avT +avT +hGK +avT +avT +avT +hGK +avT +avT +avT +hGK +avT +avT +avT +avT +cVL +lpT +lpT +lpT +qnL +uYl +fIY +dTy +avT +avT +avT +ydp +ydp +avT +avT +xUL +ydp +ydp +ydp +ydp +ydp +qaO +qaO +weS +weS +qYD +nok +xas +rNP +kXY +slO +gOd +tRv +dED +iOG +qbJ +ktT +vMl +iML +kFr +vuO +vaj +rTv +mSt +dWt +fyr +tQv +mSt +qpo +adT +tos +qxX +xYJ +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +tFr +lzB +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +avT +ydp +nTz +xiw +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xiw +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +cTO +sWF +cTO +bvw +bzq +bra +jMk +bzq +bra +odF +bzq +bzq +kEz +bBN +bEi +tRe +mHT +bDU +bFO +bSX +bKR +ncH +bSX +qLG +rYi +bSX +bKR +rUl +bSX +bNk +tRe +avT +avT +bPn +cAe +cdE +cAe +czY +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(157,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +avT +nuu +sXy +sXy +fNh +xUL +nyq +sXy +fNh +xUL +nyq +sXy +fNh +xUL +nyq +sXy +sXy +sXy +sXy +sDD +eNK +jwc +iAG +mia +bHc +tlg +sXy +sXy +ikA +avT +ydp +avT +avT +xUL +ydp +ydp +ydp +ydp +ydp +qaO +xka +iWf +iBW +qYD +gyk +xUU +asn +sRM +kDy +nVY +ueO +pPL +jpd +eMl +fch +oEO +oOR +kFr +trU +vaj +rTv +mSt +mSt +mSt +mSt +mSt +kdm +ecN +vBa +jfi +uZz +wdv +wdv +wdv +avT +avT +avT +avT +ydp +avT +avT +avT +avT +avT +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +avT +ydp +ydp +ydp +avT +ydp +avT +hho +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +hho +avT +avT +avT +avT +avT +avT +avT +avT +avT +hho +avT +cTO +mek +bzq +bsL +xHt +bzq +bsL +okt +bzq +bzq +uhD +aFa +bCY +tRe +bCW +bRQ +dMI +gkX +bRQ +dMI +rbA +bRQ +dMI +wqc +bRQ +cdj +sRm +ocN +tRe +avT +avT +bPn +bdm +cdE +cAe +czY +bPn +bPn +bPn +czY +bPn +bPn +bPn +bPn +czY +czY +czY +czY +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(158,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +avT +avT +avT +avT +avT +clq +avT +avT +avT +clq +avT +avT +avT +clq +avT +avT +avT +avT +cVL +lpT +lpT +lpT +isp +jed +lgX +feM +avT +avT +bBh +avT +avT +avT +avT +xUL +xiw +xUL +xUL +xUL +xUL +kVO +kVO +vOS +vOS +qYD +iOG +iOG +iOG +iOG +iOG +iOG +rxt +ojs +iOG +uSe +eIa +umx +sOE +kFr +jQp +vCr +eiz +mvA +vyb +eWW +vyb +ogX +wmx +xoH +bSO +yiy +yiy +psS +bDf +hRt +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +cTO +bvw +bzq +hyq +raq +bzq +hyq +raq +bzq +bzq +mcy +bBP +ojY +tRe +bRN +bWj +dMI +vgZ +blR +dMI +wMT +tAQ +dMI +tKN +dTo +aDM +pvY +tBm +tRe +avT +avT +bPn +cAe +cdE +cAe +cAe +cAe +cAe +cAe +cAe +cAe +cAe +cAe +cAe +cAe +cAe +cAe +czY +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(159,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +wuf +avT +wuf +rxJ +avT +lbu +knR +wuC +avT +lbu +knR +wuC +avT +lbu +knR +wuC +avT +avT +avT +avT +hHu +avT +lpT +dTy +dTy +dTy +dTy +ydp +avT +bBh +avT +avT +avT +avT +xUL +xUL +xUL +xUL +xUL +xUL +kVO +bQf +qgm +qgm +qgm +iLA +qgm +rai +qgm +qgm +jen +vOB +ddh +vZY +xJB +hyK +vVN +qeL +oiX +trU +knI +oIb +mgo +jpr +vob +gHQ +krB +aLQ +skB +eTJ +hRt +hoV +jmU +jHD +krH +avT +xiw +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xiw +avT +vcG +lzB +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +avT +cTO +cTO +cTO +cTO +cTO +cTO +cTO +cTO +cTO +bzq +bLT +pxp +fKc +tRe +iXG +cbQ +dMI +cbQ +cbQ +dMI +cbQ +cbQ +dMI +cbQ +cbQ +cdj +tBm +tBm +tRe +avT +avT +bPn +lfs +jbc +aet +cjA +xmr +cjA +cjA +cjA +cjA +cjA +cjA +iyV +mGE +fDo +qBO +czY +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(160,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +qrR +avT +avT +avT +avT +lbu +knR +wuC +avT +lbu +knR +wuC +avT +lbu +knR +wuC +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +avT +rUq +sXy +sXy +sXy +sXy +ikA +xUL +xUL +xUL +xUL +xUL +qaO +gct +sGE +tJL +ixf +ixf +giv +ixf +ixf +ixf +pss +mWD +xCU +cmK +cmK +cmK +mKL +cmK +qSh +egJ +vSc +rTv +pJS +iwk +dsX +xbm +dBR +qpW +adV +rDE +dFF +sLn +acv +xEf +krH +avT +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +vcG +lzB +avT +avT +bmX +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +ydp +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +bLT +bBQ +bLS +tRe +iXG +hAb +dMI +cbQ +hAb +dMI +cbQ +hAb +dMI +uBc +hAb +cdj +tBm +xgM +tRe +cSQ +avT +czY +bPn +bPn +bPn +bPn +czY +bPn +bPn +bPn +bPn +czY +bzs +wJy +czY +bzs +oIA +bzs +bzs +bzs +czY +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(161,1,1) = {" +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +avT +avT +wuf +avT +lbu +knR +wuC +avT +lbu +knR +wuC +avT +lbu +knR +wuC +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +bBh +xUL +xUL +xUL +xUL +xUL +qaO +qTo +xzM +pFu +mGp +mGp +mGp +iqT +mGp +mGp +iqT +mGp +rgm +wAx +wAx +wAx +uEz +uEz +wzf +uEz +vaj +rTv +pJS +pJS +abX +acx +khy +adt +adU +vFM +hRt +hCL +jmU +oJX +krH +avT +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +vcG +lzB +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +ydp +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +bLT +bBQ +sJs +tRe +iXG +cbQ +dMI +cbQ +cbQ +dMI +cbQ +cbQ +dMI +cbQ +cbQ +cdj +tBm +tBm +tRe +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +czY +chp +eDu +czY +cmk +cng +cAe +hOY +hTB +czY +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(162,1,1) = {" +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +avT +avT +wuf +avT +lbu +knR +wuC +avT +lbu +knR +wuC +avT +lbu +knR +wuC +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +bBh +xUL +xUL +xUL +xUL +dns +iRF +qgm +gNI +mqc +wAx +vwV +qss +kRX +wAx +tMR +uGQ +lel +aRq +qss +qss +urI +uEz +uEz +iqZ +seG +tYT +qKA +cSv +pJS +pJS +tQG +dBR +uZz +adX +uZz +hRt +hZz +krH +krH +krH +vyf +vyf +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +ydp +ydp +avT +ydp +ydp +avT +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +bLT +bBQ +bLS +tRe +wIH +kHr +owv +gtS +bhC +owv +gtS +vcH +owv +gtS +thF +vcF +hVH +uMk +tRe +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +czY +chp +tAG +czY +qIR +obd +cAe +rBb +chp +czY +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(163,1,1) = {" +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +avT +avT +wuf +avT +lbu +gTh +wuC +avT +lbu +gTh +wuC +avT +lbu +gTh +wuC +avT +wuf +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +bBh +xUL +xUL +xUL +xUL +xUL +kVO +nqx +gNI +axg +wAx +lzW +qss +vnn +wAx +ijV +now +mKv +sAh +sAh +sAh +urI +uEz +uEz +hrS +lQJ +lia +uvB +tOY +pJS +nKU +acy +uEB +vCv +adW +rIl +peq +fIu +vgX +kdM +bfk +eZU +uWb +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +tFr +lzB +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +ydp +ydp +avT +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +bmX +avT +avT +avT +bLT +bna +tmo +tRe +tRe +tRe +tRe +tRe +tRe +tRe +tRe +tRe +tRe +tRe +tRe +tRe +tRe +tRe +tRe +avT +avT +avT +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +czY +czY +wRm +czY +lyt +dYl +iXZ +czY +chp +czY +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(164,1,1) = {" +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +qrR +qrR +wuf +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +xgh +avT +wuf +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +bBh +xUL +xUL +xUL +xUL +xUL +kVO +qAq +acq +fJc +lfy +fWB +srL +wAx +wAx +gto +qss +mKv +sAh +sAh +sAh +urI +qkO +uEz +blD +kge +gls +tgd +tRC +pJS +tfx +lrV +iLi +hTO +lrV +wIA +wIA +wIA +yeg +sSy +gpe +qur +ahe +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ktw +ktw +ktw +ktw +ktw +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +avT +avT +ydp +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +aJt +bBh +xUL +aJt +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +bmX +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +gtG +bzk +czY +bPn +bPn +bPn +czY +ipV +czY +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(165,1,1) = {" +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +qrR +qrR +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +fBG +wuf +wuf +bmX +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +bBh +cfp +cfp +xac +xac +xac +cfp +cfp +gNI +skK +wAx +nij +fzT +ltY +duX +lmy +ezO +vPB +qss +qss +qss +ylW +uoV +uEz +blD +pgk +bKl +iNK +chN +pJS +sWD +bNF +rrm +dWI +sSj +kPn +tzP +juI +wIA +jTl +vyf +vyf +vyf +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ktw +kRI +fdJ +hGU +ktw +ydp +ydp +ydp +ydp +bmX +ydp +ydp +ydp +ydp +avT +avT +ydp +ydp +ydp +ydp +avT +avT +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +bBh +xUL +xUL +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +ydp +ydp +avT +hOb +avT +avT +avT +avT +gtG +avT +gtG +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(166,1,1) = {" +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +yhx +yhx +yhx +avT +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +bBh +avT +xac +fpJ +cfp +dpp +evO +cfp +gNI +skK +wAx +wuQ +vnM +wAx +mQo +mbE +qss +sYv +sAh +sAh +sAh +urI +uoV +uEz +blD +pgk +qnx +pbf +sFw +pJS +cjE +bNF +nrg +hTO +dUV +wIA +adY +iLi +wIA +sSy +gpe +qur +ahe +blg +xUL +xUL +xUL +xUL +xUL +xUL +xUL +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ktw +vSJ +kZL +kZL +maR +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +ydp +ydp +ydp +avT +avT +ydp +ydp +ydp +ydp +ydp +bmX +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +rUq +sXy +ikA +avT +avT +bmX +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(167,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +bBh +avT +aDn +gph +cfp +aHU +dpp +gxY +gNI +skK +wAx +wxZ +vPB +wAx +cyI +ydV +qss +sYv +sAh +sAh +sAh +urI +uoV +uEz +blD +eLl +igK +xcL +hop +pJS +mhq +bNF +wIA +hTO +noB +wIA +kti +nrg +goW +pUf +kcM +tdE +gUw +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xiw +avT +vcG +lzB +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ktw +ehh +kZL +hap +ktw +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +bBh +avT +avT +avT +avT +avT +avT +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(168,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bmX +avT +avT +bBh +avT +aKf +irQ +huF +cfp +gxY +cfp +gNI +moX +wAx +wMw +kox +wAx +uKy +uVt +qss +lel +txz +qss +oXl +pPz +uoV +uEz +hsQ +cDO +jAT +nmL +vKP +pJS +hNg +bNF +wIA +hTO +dUV +wIA +pvr +wIA +sdw +fNU +vyf +vyf +vyf +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xiw +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ktw +ktw +ktw +ktw +ktw +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bBh +avT +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(169,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +ydp +bBh +avT +aKf +irQ +jLG +piu +piu +xac +gNI +mqc +vKa +vKa +vKa +vKa +vKa +urI +kaM +trB +wAx +wAx +wAx +wAx +hru +uEz +uEz +uEz +ejw +rTv +eOO +pJS +hNg +bNF +wIA +hTO +bNF +wIA +wIA +wIA +wIA +sSy +vyf +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xiw +avT +vcG +lzB +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bBh +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(170,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +ydp +bBh +avT +aKf +irQ +irQ +vLt +nGi +rQH +wFD +lNK +vKa +lVd +gSZ +qzP +vKa +nIU +fTy +fTy +xUm +aSI +uSv +sup +pbg +uEz +uEz +uEz +ejw +rTv +eOO +pJS +jiY +bNF +wIA +frL +ndQ +dCM +tiN +nzH +nsw +idG +vyf +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xiw +avT +tFr +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bBh +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +bmX +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(171,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +ydp +bBh +avT +aKf +eYe +irQ +mQV +cfp +cfp +hAw +skK +vKa +gdg +pkh +loM +vKa +nsv +jnh +mLO +rlS +fTy +uSv +sup +xkW +qkg +rhU +tio +umC +hiO +lIJ +pJS +leq +qxT +wIA +iCO +pJS +pJS +pJS +pJS +pJS +pJS +pWS +pWS +pWS +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xiw +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bBh +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(172,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +bBh +avT +aKf +irQ +irQ +piu +xac +jZl +gNI +xol +cYj +lBT +dfd +vLP +vKa +iAb +jnh +jsz +oQs +apt +cKk +cKk +cKk +cKk +cKk +cKk +bxf +jeo +thu +mvA +cWG +gdL +wIA +iCO +pJS +wYk +pqj +pqj +roW +pFR +oeC +uEd +pWS +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xiw +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bBh +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(173,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +bBh +avT +aKf +irQ +irQ +bEb +xac +aMR +msN +pFu +tML +ukJ +puA +jcr +rck +vgo +fTy +lBF +jHF +fTy +jvb +xZp +dVr +gRS +msK +cKk +dNB +rmV +dDf +gaf +pMD +shN +qOs +ocG +pJS +wji +pqj +pqj +roW +pFR +oeC +uEd +jIt +jIt +jIt +jIt +jIt +jIt +xiw +xiw +xiw +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bBh +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(174,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +bBh +avT +aKf +irQ +irQ +emH +cfp +gmH +okq +skK +vKa +vgH +dPA +hPO +vKa +vxI +haU +keI +fTy +fTy +stW +iKV +hFj +oNv +guV +cKk +meG +mcU +pLd +pJS +jjn +aNr +ckV +oEa +pJS +fnx +qgZ +pFR +pFR +pFR +pqj +uXL +wop +cFm +wkS +wZJ +rqG +jIt +avT +avT +avT +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bBh +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(175,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +bBh +avT +aKf +irQ +irQ +cCA +cfp +cqM +gNI +skK +vKa +vKa +vKa +vKa +vKa +hFG +vKa +ohk +pWa +eJY +iJK +iKV +fPD +fPD +fPD +cKk +mjH +mcU +qHq +vyf +vyf +oqw +vyf +iHO +vyf +aAP +pqj +acu +gOi +qal +pqj +uXL +izV +fwU +enN +eRv +gdj +izV +avT +avT +avT +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bBh +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(176,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +bBh +avT +cUP +cTh +con +mQC +cfp +rDv +hDk +cjP +qlj +jji +clf +mHU +hYN +jCL +qlj +fYH +oln +gFP +stW +iKV +hFj +oNv +wqe +hbb +rkd +nWO +gBk +vyf +fmW +uWC +iYI +bNF +vyf +hyz +pqj +oYU +gbt +pqj +pqj +uXL +wvj +vgW +sDu +kpO +vme +mlM +avT +avT +avT +avT +vcG +lzB +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bBh +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(177,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +avT +bBh +avT +aKf +gLO +jvV +evO +cfp +kBe +gNI +itw +lLD +wVg +hWW +mKD +qRy +oTv +kms +wjK +wbJ +bqx +bpI +iKV +hFj +oNv +guV +hbb +jxZ +nWP +rlo +vyf +cLC +mmK +nWJ +qxT +pJS +fcU +pqj +oYU +oYU +pqj +pqj +uXL +dGO +crg +nhr +hsu +lmm +gwY +avT +avT +avT +avT +tFr +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +avT +avT +euS +jAq +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(178,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +avT +mnL +hSv +esq +kPA +dpp +vra +cfp +qgm +msN +pFu +kms +uPe +abQ +jzx +lLa +mrW +qlj +tpf +iKV +iKV +iKV +fPD +fPD +fPD +fPD +jHT +rkd +mcU +rNS +vyf +vyf +hLQ +nsf +vyf +pJS +ddi +pqj +oNT +pqj +oNT +vWg +uXL +gwY +pdD +hMM +qKP +tQd +jIt +avT +avT +avT +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +avT +avT +bBh +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(179,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +avT +aJb +irt +irt +irt +irt +irt +irt +irt +irt +irt +irt +irt +irt +irt +irt +irt +oBs +wzl +wzl +wzl +bfB +sXy +lTs +lDV +pyF +kqo +nUm +eKc +pwL +oWy +qlj +nEI +ego +ohF +rjP +wHQ +vqv +gOp +nGh +fPD +fPD +fPD +qQC +fPD +fPD +jHT +rkd +dhX +vkk +vkk +vkk +vkk +qSi +vkk +vkk +pUz +pqj +mcU +pqj +mcU +vWg +uXL +jIt +dMR +sve +vhf +jIt +jIt +avT +avT +avT +avT +vcG +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +avT +avT +bBh +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(180,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +avT +bzc +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +xUL +xUL +avT +avT +avT +avT +avT +cfp +oKG +vUu +pWc +xyT +saN +uPI +lNK +kVO +kVO +kVO +kVO +kVO +hIG +cKk +xUy +rXw +smY +fQs +fPD +fPD +fPD +bAP +fzG +rkd +pSO +fjw +fjw +fjw +mqb +fjw +fjw +fjw +jkw +gmr +sBB +gmr +sBB +gmr +kYg +pVW +sBs +uMF +jsl +gFM +cuY +nGx +nGx +nGx +nGx +xtV +lzB +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +avT +avT +bBh +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(181,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +avT +avT +bzc +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +avT +avT +avT +avT +xUL +xUL +avT +avT +avT +bqN +avT +bqN +cfp +cfp +cfp +cfp +vfx +fQI +mWc +pCU +ixf +kcn +llu +xve +gJP +eGi +mIe +qWa +cZI +kHI +fPD +fPD +fPD +fIU +cKk +jxZ +tTQ +jgz +jgz +jgz +jFl +lVS +jgz +jgz +mbt +qaX +khw +qaX +khw +qaX +lnx +jXa +vYP +dks +nEl +ust +sHJ +sLv +sLv +sLv +sLv +ybT +asr +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +avT +avT +bBh +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(182,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +avT +bzc +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bqN +avT +xUL +xUL +avT +avT +bqN +bqN +bqN +bqN +bqN +bqN +bqN +cfp +rgC +wKU +czA +qgm +qgm +qgm +qgm +qgm +obR +npv +uJV +wgH +iKV +iKV +fPD +fPD +fPD +fPD +jHT +eeE +mky +iqH +iqH +iqH +uqy +yes +iqH +iqH +iqH +iqH +yes +iqH +yes +lgn +euW +jJu +cJp +par +xuB +jJu +jJu +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +bBh +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(183,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +avT +bzc +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +xUL +xUL +avT +bqN +bqN +bqN +bxL +bxL +bxL +dri +xFZ +xFZ +xFZ +dsn +xFZ +xFZ +xFZ +xFZ +xFZ +qgm +obR +cKk +uIv +yjh +pVZ +qjc +iKV +fPD +fPD +fPD +jHT +vUq +kjh +jTs +srk +srk +tVh +phu +srk +pFR +xaI +pqj +gvP +pqj +gvP +vWg +oaF +xuB +dbc +rlC +fDJ +lGB +jJu +avT +avT +bmX +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +bBh +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(184,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +avT +avT +bzc +xUL +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +avT +xUL +xUL +bmX +avT +bxL +bxL +bxL +xUL +bxL +dri +dri +dDC +nQp +kVx +eLQ +hYi +qzO +cCg +tfq +qgm +txL +cKk +dFa +myq +vZR +fYa +iKV +fPD +fPD +fPD +hbb +jxZ +ulh +rlo +srk +plg +wUj +hTa +lOO +hVk +pqj +pqj +oYU +oYU +pqj +nHX +oaF +xuB +tat +ceZ +fDJ +vjY +xuB +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +bBh +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(185,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +avT +avT +bzc +xUL +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +bqN +bxL +xUL +xUL +avT +avT +bxL +bxL +bum +xUL +xUL +dri +dri +uot +kag +wIT +grM +grM +wXZ +msi +xFZ +qgm +xVl +gcY +xop +fbq +lFv +dvh +gkl +eOt +eFy +rYc +hbb +rkd +pSO +gzt +srk +gvm +fww +jvA +fOW +srk +hUF +pqj +gbt +oYU +pqj +pqj +oaF +xuB +kFF +bow +fDJ +fWc +xuB +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +bBh +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(186,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +avT +avT +bzh +xUL +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +bxL +avT +xUL +xUL +avT +bxL +bxL +bum +bum +xUL +xUL +rww +rww +rww +ttQ +lNU +bZI +bZI +nNV +dBP +jFv +kwl +kTY +cKk +fpt +hMy +jkJ +laL +cKk +cKk +cKk +cKk +cKk +mkm +lpl +xcA +srk +pGe +fww +npl +nMw +srk +wtp +eOd +hwG +oYU +czu +pqj +oaF +xuB +xpU +fDJ +nhK +kbR +xuB +avT +avT +avT +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +avT +bBh +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(187,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +avT +avT +avT +bmX +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +bqN +bxL +xUL +xUL +bxL +bxL +bum +bum +bum +xUL +xUL +jrq +wJf +eQd +ttQ +lNU +bZI +bZI +bZI +xKv +uzI +lOs +mYB +cKk +kCI +hMy +hMy +hMy +sHK +hPp +tAm +fPD +cKk +meG +ggD +uzf +pFR +hgb +fzg +kyc +tfP +dQz +pFR +rQs +rQs +rQs +pFR +pqj +oaF +hHy +gZb +bVv +gQU +enq +jJu +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +euS +sXy +sXy +jAq +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +jfH +xSP +jfH +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(188,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +bqN +bqN +bKI +bCA +bCA +bKI +bum +bum +bum +bum +xUL +xUL +rww +rww +rww +pAN +lNU +ttU +cKD +cKD +qnC +xFZ +uKE +rnK +cKk +tEl +gcp +cwm +jGd +cKk +nNj +wMJ +hfp +cKk +nfI +tmt +goC +pFR +qck +dEk +eRt +iyq +mLP +gOr +mwQ +jDD +jDD +cAq +pqj +oaF +jJu +jJu +jJu +jJu +jJu +jJu +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +avT +avT +cZq +jfH +lJi +jfH +cZq +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(189,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +bqN +bqN +bKI +aRp +aRp +bKI +bum +bum +bum +bum +xUL +xUL +dri +dri +dri +lzh +vTk +iEj +hNv +qsm +olW +xFZ +qgm +txL +cKk +ouE +cKk +cKk +cKk +cKk +cKk +cKk +oPS +oPS +ihJ +hVN +rfk +pFR +oUV +mWJ +mWJ +nMw +dQz +ltk +qCo +iBl +egM +dQz +itN +oRc +pFR +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +avT +avT +jfH +jfH +ucO +xSP +wSI +jfH +jfH +avT +avT +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(190,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +bqN +bqN +bKI +mqT +aRp +bKI +bum +bum +bum +bum +xUL +xUL +wmB +wmB +wmB +xFZ +xFZ +hPC +sYo +xFZ +xFZ +xFZ +ohv +gjA +cFP +hPt +ixf +ixf +ixf +pDu +ixf +oLo +mRZ +xfD +dxZ +hhx +iiM +pFR +iGS +cOq +cOq +rGy +fuj +hOw +pcs +eIN +vBS +dQz +pFR +pFR +pFR +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +avT +avT +wdv +wdv +bzj +xUL +xUL +xUL +xaS +wdv +wdv +avT +avT +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(191,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +bqN +bqN +bKI +bCC +bCC +bKI +bum +bum +bum +bum +xUL +xUL +fen +cQu +dXa +bei +hIl +sdr +cQp +wKL +hjw +bKI +hpg +gNI +fyz +qgm +qgm +iuy +qgm +maG +qgm +hcu +vju +eYu +aWM +vUs +gUa +sda +sda +sda +sda +sda +sda +sda +pgG +jDD +jDD +jDD +qzz +uqa +iIQ +avT +bmX +avT +avT +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +avT +avT +avT +jfH +mNG +jph +xUL +rNn +xUL +eWH +aIf +jfH +avT +avT +avT +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(192,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +bqN +bxL +bxL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +fen +mao +sdr +pDh +sdr +sdr +cQp +wKL +hjw +bKI +bKI +lEU +dxF +bKI +mMs +mMs +mMs +qRe +mMs +mMs +fPd +eYu +xOj +jKF +jKb +wdR +sda +pAC +sxB +sde +vUE +sda +kdR +jDD +xZx +jDD +jDD +jDD +iIQ +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +avT +avT +wdv +wdv +qJs +xUL +xUL +xUL +jYS +wdv +wdv +avT +avT +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(193,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +bqN +bxL +bum +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +fen +cYq +sdr +xlX +gOW +uAu +uAu +lHl +lHl +rSF +oIq +tBl +eBq +vhT +iBL +nwz +fQM +nzK +hZy +iBL +tkq +hrc +edW +jKF +cJL +cGF +sda +rAe +rAe +taj +hBb +sda +mmY +jDD +aeH +jDD +jDD +jDD +iIQ +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +avT +avT +jfH +jfH +vaQ +rXp +ybp +lJC +lJC +avT +avT +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(194,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +bxL +bxL +bum +bum +xUL +xUL +bKI +bKI +bKI +bKI +bKI +xUL +fen +cYq +sdr +maL +ufJ +sdr +sdr +sbo +sbo +idb +egk +puf +sLN +igi +nPF +mzj +giZ +oQg +erG +nPF +sjE +pMf +pbc +cVG +iZZ +uma +usn +myZ +lWo +lWo +nEa +sda +mmY +otZ +aeH +gar +waa +uqa +iIQ +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +avT +avT +cZq +jfH +yfN +jfH +cZq +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(195,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +bqN +bxL +bum +bum +xUL +xUL +bKI +bYZ +bYZ +vgm +ccI +xUL +bKI +bKI +bKI +puo +idl +kHm +sdr +sdr +sdr +hXO +egk +pFf +sdr +xlm +bKI +mMs +nbr +ehZ +sPt +iBL +wqd +pHH +xOj +jKF +qjA +sHl +sda +uXO +kQn +qUF +vTs +sda +mZp +mZp +mZp +mZp +mZp +mZp +mZp +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +jfH +wdv +jfH +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(196,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +bxL +bxL +bum +bum +xUL +xUL +bKI +ntX +jdS +cha +luf +gNM +qHC +gCM +mOE +kHP +pnS +sLN +sLN +sLN +sLN +xdD +xKn +rxf +tEt +xeV +vLE +mMs +fFG +wTe +sPt +iBL +bnU +fNd +bDg +fKE +bnU +bnU +jWr +jWr +jWr +jWr +fFM +jWr +mZp +gPF +foi +fBS +oHl +gPF +mZp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(197,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +bxL +bxL +bum +bum +xUL +xUL +bKI +bYZ +bYZ +ciG +caS +bZU +fgj +nOk +wzF +sdr +gyE +sdr +sdr +sdr +sdr +sdr +sdr +mFg +sdr +sdr +rtJ +hMD +lAv +oob +wdu +pxS +ecI +wRN +qyc +aPw +fGl +hVh +iOp +iNi +sKN +jWr +aTY +nyp +jWr +jIk +fBS +tTO +ijL +ijL +mZp +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(198,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +bxL +bxL +xUL +xUL +xUL +xUL +bKI +bKI +bKI +bKI +bKI +bMT +fgj +nOk +lfG +sdr +gyE +sdr +sdr +sdr +sdr +sdr +wGe +sdr +sdr +sdr +ksM +mMs +dYS +tZO +dUI +hoq +oUs +oXi +gQZ +cOl +dxV +uSV +erc +rLb +kUy +jWr +cSd +vjX +jWr +umg +fBS +diD +cEq +cEq +mZp +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(199,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +bxL +bxL +xUL +xUL +xUL +xUL +bMT +bZU +bZU +bZU +bZU +kJk +uze +qBu +xUD +nOk +oai +jIc +sdr +sdr +sdr +sdr +sdr +sdr +sxJ +wGe +aDJ +mMs +wRv +xMG +rqS +hoq +cfN +tht +nRS +wjW +dbl +sxb +uap +rxc +efE +jWr +mgM +pNB +jWr +uxO +fBS +diD +cEq +cEq +mZp +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(200,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +bxL +bxL +bum +bum +bum +xUL +bOb +bKI +bKI +bKI +bKI +vzR +fhC +oWW +ohq +nFM +oai +jlf +sdr +sdr +sdr +sdr +sdr +sdr +sdr +lJp +keq +iiY +lKT +siO +mgV +iiY +oUs +sOz +gJQ +gCd +qbZ +rom +uKr +kPu +buF +jWr +jWr +jWr +mZp +dSp +fBS +vaB +fBS +uPa +mZp +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(201,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +bqN +bxL +bum +bum +bum +xUL +bOb +bKI +ccG +ckm +iro +fDt +pRV +tEt +fJg +iYF +uIZ +chd +mOE +jlf +sdr +wGe +sdr +sdr +sdr +sdr +uTK +xKN +oez +oTT +eBl +iiY +bnU +oib +bnU +wFc +gQZ +qbg +nDa +glg +rTW +cyH +rbC +lAp +mZp +hCD +fBS +jAy +fBS +wFO +mZp +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(202,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +bqN +bxL +bum +bum +bum +xUL +bOb +bKI +kaK +cBJ +iro +fDt +pRV +iYF +fJg +xwg +iYF +iYF +kVo +yky +sdr +sdr +sdr +sdr +kHm +sdr +vmN +rep +hwV +nAS +hBy +iiY +szX +rSN +bnU +mkr +uhN +kIp +dLv +bdM +bdM +bdM +bdM +kCi +oUQ +qRF +lnH +pwC +fBS +wFO +mZp +avT +avT +bmX +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(203,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +bqN +bxL +bum +bum +bum +xUL +bOb +bKI +bKI +bKI +bKI +xbp +mIl +mVf +mOE +oai +mLu +mOE +oai +jUf +mOE +mOE +spE +mOE +mOE +nft +scY +rem +xJn +krV +doV +iiY +aUG +rSN +bnU +pTq +aQA +tcW +vjV +cuO +cuO +cuO +aaP +vAF +mZp +ubQ +lVN +fBS +fBS +fBS +mZp +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(204,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +bqN +bqN +bqN +bqN +bxL +bum +bum +bum +xUL +bOb +xUL +xUL +xUL +xUL +xbp +onY +gNy +hge +ovb +gNy +qCK +ovb +nJq +evI +rDG +vKm +qGL +rDG +gNy +ulr +jJb +xfH +puE +rFQ +iiY +piR +tty +bnU +shX +fmk +vbz +lyv +fok +oJp +mmQ +gfC +fve +aWr +fqj +fqj +rXo +mzs +xiL +mZp +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(205,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +bqN +bqN +bqN +bqN +bxL +bxL +bxL +bum +bum +xUL +bOb +bum +bum +bum +bum +xbp +fen +eHK +mIl +dkD +eHK +mIl +dkD +eHK +mIl +fen +eHK +mIl +fen +eHK +mIl +rem +tEQ +iiY +iiY +iiY +oty +ijZ +bnU +gWc +gWc +npp +pKN +bnU +bnU +bnU +mDW +scH +mZp +tNX +fZA +gkJ +mzs +lHZ +mZp +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(206,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +bqN +bqN +bqN +bqN +bxL +bxL +bxL +bum +bum +bDA +bGW +bYY +bYY +bYY +bYY +eus +bYY +cSi +bGW +tpD +cSi +bGW +tpD +cSi +bGW +bYY +cSi +bGW +bYY +cSi +xGX +qtH +xUL +xUL +xUL +dKF +ijZ +ijZ +bnU +oJa +cNE +tcq +sTR +xPK +bnU +bnU +mDW +scH +mZp +mZp +mZp +mZp +mZp +mZp +mZp +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(207,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bxL +bxL +bxL +bum +bum +bFx +bOb +bKI +ccI +ccI +bKI +xbp +bKI +cZO +bRy +xWx +iOH +bRy +xWx +iOH +bRy +bKI +cZO +bRy +bKI +cZO +bRy +bKI +xUL +xUL +xUL +bnU +szX +aiU +lxL +cjH +hVt +fVT +vlC +fQc +bnU +bnU +mDW +dbN +qWs +yjp +mZp +jjC +gEh +mZp +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(208,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bqN +bqN +bxL +bum +bum +bFx +bRD +caS +ccN +esY +ccI +xbp +bKI +fni +huA +bKI +jQN +kOi +bKI +ont +qmo +bKI +ssH +tuZ +bKI +xAm +fxY +bKI +xUL +xUL +bnU +bnU +bnU +uQG +bnU +dLj +cLO +qQb +qhf +uIU +bnU +bnU +eMi +dkQ +lnW +eWg +mZp +rVB +fnQ +mZp +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(209,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bqN +bxL +bxL +bum +bum +aEF +bYY +ccD +ccN +esY +ccI +xbp +bKI +eMU +rmo +bKI +xhg +lek +bKI +piY +qED +bKI +sNb +vmJ +bKI +xGx +bcu +bKI +rGc +cly +lFN +pfb +ovI +oAX +tyF +qSR +cLO +cLO +cLO +lfd +vgI +bnU +bnU +bnU +pxX +jNw +eDE +tmI +pFo +mZp +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(210,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bqN +bxL +bxL +bum +bum +xUL +xUL +bKI +ccI +ccI +bKI +xbp +bKI +bKI +bKI +bKI +bKI +bKI +bKI +bKI +bKI +bKI +bKI +bKI +bKI +bKI +bKI +bKI +dQW +jls +ucC +cfs +vUj +cLO +nqc +cLO +cLO +cLO +cLO +jOE +nUN +sza +owk +bnU +mDW +rFB +mZp +mZp +mZp +mZp +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(211,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bqN +bqN +bxL +xUL +xUL +xUL +xUL +bum +bum +bum +bum +xbp +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +rGc +jPj +ucC +wcy +sIk +aTc +sax +bdd +bdd +bdd +whW +ebK +gel +rXn +sGC +bnU +mDW +jzc +ucC +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(212,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bqN +bqN +bxL +xUL +xUL +xUL +xUL +bum +bum +bum +bum +xbp +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +dQW +jls +ucC +wcy +mtY +rco +vQo +wbF +wbF +wbF +vQo +dTV +sNs +nht +svp +bnU +pGs +jzc +ucC +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(213,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bqN +bxL +bxL +bum +bum +xUL +xUL +xUL +xUL +xUL +xUL +nLF +alE +alE +alE +alE +alE +alE +alE +alE +alE +alE +alE +alE +alE +alE +alE +alE +pHi +nJr +hsv +qib +ktt +uLX +vQo +qeP +nCf +pxh +qha +vQo +bnU +lWP +svp +bnU +kPQ +jzc +ucC +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(214,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bqN +bxL +bxL +bum +bum +xUL +xUL +xUL +xUL +xUL +xUL +xbp +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +rGc +jls +odg +ucC +gUL +aNU +kVD +vQo +kgR +kgR +kgR +oHU +jUB +fkC +obb +svp +uXs +aYe +pLX +ucC +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(215,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bqN +bxL +bxL +bxL +bum +bum +bum +bum +bum +bum +bum +xbp +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +rGc +tdX +tdX +jPj +ucC +gUL +aNU +kVD +noQ +leT +leT +leT +iCq +leT +gkv +iNE +eOr +wku +xGy +lBH +bnU +bmX +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(216,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bxL +bxL +bxL +bum +bum +bum +bum +bum +bum +bum +xbp +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +dQW +tdX +tdX +jls +ucC +gUL +aNU +kVD +vQo +aOJ +aOJ +aOJ +prf +jVc +wVO +mKO +svp +uXs +mfm +uLV +bnU +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(217,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bqN +bxL +bxL +bum +bum +bum +bum +bum +bum +bum +xbp +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +rGc +tdX +tdX +jPj +ucC +cfs +jLF +anR +vQo +lxz +gQV +gQV +tag +vQo +bnU +mnj +svp +bnU +wjL +jzc +ucC +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(218,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bqN +bxL +bxL +bum +bum +bum +bum +bum +bum +bum +xbp +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +dQW +tdX +tdX +jls +ucC +cfs +tsi +rco +vQo +tLF +tLF +tLF +vQo +afU +eOZ +gOM +fKl +bnU +mDW +jzc +ucC +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(219,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bqN +bxL +bxL +bum +bum +bum +bum +bum +bum +bum +xbp +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +xUL +dQW +flw +flw +lFN +wRc +gxL +ftM +tbg +dGb +iYb +dGb +slc +qYN +sbS +iyL +aHt +bnU +pGs +jzc +ucC +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(220,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bqN +bqN +bxL +bum +bum +bum +bum +bum +bum +bum +xbp +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +xUL +xUL +dQW +jPj +bnU +ias +oSt +lfl +wWF +rum +wWF +rum +wWF +rum +wWF +uLa +qSS +bnU +bLc +jzc +ucC +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(221,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bqN +bxL +bxL +bum +bum +bum +bum +bum +bum +bum +xbp +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bDA +bYY +bYY +bYY +rVy +vkR +bpB +hPK +nSf +nSf +cYw +nSf +fSw +joU +eKO +wkg +vZl +bnU +mDW +jzc +ucC +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +avT +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(222,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bxL +bxL +bum +bum +bum +bum +bum +bum +bum +xbp +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +gjW +xUL +xUL +xUL +bnU +bnU +bnU +bnU +bnU +bnU +bnU +dtm +pvj +bnU +bnU +bnU +bnU +bnU +mkd +jzc +ucC +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(223,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bxL +bxL +bum +bum +bum +bum +bum +bum +bum +xbp +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +xUL +xUL +bum +bum +bum +hBq +pCv +iuP +xCe +cfn +oDn +mDX +cJH +abG +cTp +sXs +dTU +xqN +bVI +vrJ +bnU +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(224,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bxL +bxL +bxL +bum +bum +bum +bum +bum +bum +xbp +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +xUL +xUL +sTq +hBq +hBq +hBq +ral +hBq +kol +jZW +ovP +hHR +vkw +lkQ +kKY +iEz +lFu +htA +dHP +uiO +bnU +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(225,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bqN +bqN +bxL +xUL +xUL +xUL +xUL +xUL +xUL +wDd +alE +alE +alE +alE +alE +alE +alE +alE +alE +alE +alE +alE +alE +alE +alE +jAL +sTq +jeJ +uaJ +fCh +xvR +vqZ +iob +jZW +ppl +afn +ppl +jZW +eMQ +rdn +hBq +bnU +bnU +bnU +bnU +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(226,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bqN +bqN +bxL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xbp +sTq +jeJ +qSP +ptv +qUe +nCq +kpX +jZW +ppl +afn +ppl +jZW +eMQ +cOR +ioJ +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(227,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bxL +bxL +bum +bum +bum +bum +bum +bum +xUL +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +xUL +xbp +sTq +jeJ +pbS +mhG +kPi +oiM +jPb +jZW +ppl +lsh +ppl +jZW +eMQ +qpb +ioJ +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(228,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bxL +bxL +bum +bum +bum +bum +bum +bum +xUL +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +xUL +xbp +sTq +hBq +xBV +hBq +hBq +hBq +vrI +jZW +ppl +toL +eQC +kGo +eMQ +jPm +hBq +avT +avT +avT +avT +avT +bmX +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bmX +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +avT +wuf +wuf +wuf +wuf +wuf +qrR +qrR +qrR +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(229,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bxL +bxL +bxL +bum +bum +bum +bum +bum +bum +xUL +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +rGc +rvf +umD +nQd +unF +gPS +ppj +uKH +tOP +jZW +ppl +sMa +ppl +jZW +eMQ +hdn +hBq +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +wuf +avT +avT +avT +rxJ +avT +avT +avT +avT +avT +avT +avT +avT +avT +wuf +qrR +qrR +qrR +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(230,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bxL +bxL +bxL +bum +bum +bum +bum +bum +bum +xUL +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +odg +xbp +bZa +frB +bZa +frB +bZa +sZT +nSX +jZW +ppl +ppl +ppl +jZW +eMQ +cSY +hBq +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +wuf +avT +jxB +faJ +rot +avT +jxB +faJ +rot +avT +jxB +aQK +rot +avT +wuf +qrR +qrR +qrR +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(231,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bxL +bxL +bxL +bum +bum +bum +bum +bum +xUL +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +odg +xbp +sTq +sTq +lHa +nQd +umD +hBq +hMQ +jZW +ppl +ppl +ppl +jZW +eMQ +bTR +ioJ +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bBh +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +jxB +vDy +rot +avT +jxB +vDy +rot +avT +jxB +qfJ +rot +avT +wuf +qrR +qrR +qrR +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(232,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bxL +bxL +bum +bum +bum +bum +bum +xUL +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +odg +xbp +sTq +sTq +pQg +tFN +tFN +ehX +qRH +lkQ +lkQ +lkQ +lkQ +lkQ +cUd +lXT +hBq +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +jxB +vDy +rot +avT +jxB +vDy +rot +avT +jxB +qfJ +rot +avT +wuf +qrR +qrR +qrR +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(233,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +bqN +bqN +bxL +bxL +bum +bum +bum +bum +xUL +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +dQW +rvf +cly +cly +cbO +jPj +dQW +sZT +xgi +qIT +jZW +jZW +ojP +jZW +eMQ +wsj +hBq +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +jxB +vDy +rot +avT +jxB +vDy +rot +avT +jxB +qfJ +rot +avT +avT +qrR +qrR +qrR +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(234,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bqN +bqN +bqN +bqN +bxL +bxL +bxL +bum +bum +xUL +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +xUL +wDd +alE +alE +gJi +alE +alE +lrK +cCb +cCb +lPB +lPB +pCo +sVh +mAn +iax +hBq +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +wRY +wRY +wRY +wRY +gXM +avT +gkt +avT +avT +avT +avT +avT +avT +avT +jxB +vDy +rot +avT +jxB +vDy +rot +avT +jxB +qfJ +rot +avT +avT +wuf +wuf +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(235,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +bqN +bqN +bxL +bxL +bKI +bKI +bKI +bKI +xUL +xUL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +xUL +bOb +xUL +bxL +hBq +hBq +hBq +hBq +hBq +hBq +hBq +hBq +hBq +hBq +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bBh +avT +avT +wRY +ydQ +awB +spy +gXM +gXM +gXM +guD +avT +avT +avT +avT +avT +avT +avT +hGK +avT +avT +avT +hGK +avT +avT +avT +hGK +avT +avT +avT +avT +avT +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(236,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +avT +avT +avT +ccF +aRp +aRp +kBb +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +bOb +bxL +bxL +bqN +bqN +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +rUq +sXy +sXy +cUm +kkY +bfg +oBl +uyM +dUH +fUm +sXy +sXy +sXy +sXy +sXy +sXy +sXy +fNh +xUL +xUL +xUL +xUL +xUL +nyq +sXy +fNh +xUL +nyq +sXy +sXy +uRc +avT +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(237,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +avT +avT +avT +ccF +cIP +aRp +kBb +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +xUL +gtR +bxL +bqN +bqN +bqN +bqN +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +qJw +tGJ +huQ +xrW +gXM +gXM +gXM +guD +avT +avT +avT +avT +avT +avT +avT +clq +avT +avT +avT +clq +avT +avT +avT +clq +avT +avT +avT +avT +avT +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(238,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +bqN +bqN +bqN +bKI +bKI +bKI +bKI +bxL +bxL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bxL +bqN +bqN +bqN +bqN +avT +avT +avT +bmX +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +wRY +wRY +wRY +wRY +gXM +avT +mjX +avT +avT +avT +avT +avT +avT +avT +jxB +mmM +rot +avT +jxB +mmM +rot +avT +jxB +knR +rot +avT +avT +wuf +wuf +wuf +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(239,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bxL +bxL +bxL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bxL +bqN +bqN +bqN +bqN +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +jxB +mmM +rot +avT +jxB +mmM +rot +avT +jxB +knR +rot +avT +avT +qrR +qrR +qrR +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(240,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bxL +bxL +bxL +bxL +bxL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bxL +bqN +bqN +bqN +bqN +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +jxB +mmM +rot +avT +jxB +mmM +rot +avT +jxB +knR +rot +avT +wuf +qrR +qrR +qrR +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(241,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bxL +bxL +bxL +bxL +bxL +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bum +bxL +bxL +bxL +bqN +bqN +bqN +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +jxB +mmM +rot +avT +jxB +mmM +rot +avT +jxB +knR +rot +avT +wuf +qrR +qrR +qrR +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(242,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bqN +bqN +bqN +avT +avT +avT +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +avT +avT +jxB +gTh +rot +avT +jxB +gTh +rot +avT +jxB +gTh +rot +avT +wuf +qrR +qrR +qrR +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(243,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bqN +avT +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +wuf +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +avT +qrR +qrR +qrR +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(244,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +yhx +yhx +yhx +yhx +bqN +bqN +yhx +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bxL +bqN +bqN +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +avT +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +wuf +qrR +qrR +qrR +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(245,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +bqN +yhx +yhx +bqN +bqN +yhx +yhx +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +bqN +avT +avT +avT +avT +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(246,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +bqN +yhx +yhx +bqN +bqN +bqN +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(247,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(248,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(249,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(250,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +ydp +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(251,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(252,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(253,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(254,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} +(255,1,1) = {" +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +yhx +"} diff --git a/_maps/map_files/debug/multiz.dmm b/_maps/map_files/debug/multiz.dmm index 085a64bf97..4614829679 100644 --- a/_maps/map_files/debug/multiz.dmm +++ b/_maps/map_files/debug/multiz.dmm @@ -473,12 +473,6 @@ }, /turf/open/floor/plasteel, /area/engine/gravity_generator) -"bs" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/closed/wall/r_wall, -/area/engine/gravity_generator) "bt" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -654,7 +648,9 @@ pixel_x = -25 }, /obj/structure/closet/firecloset/full, -/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plasteel{ dir = 9 }, @@ -793,7 +789,9 @@ }, /area/hallway/primary/central) "cl" = ( -/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel{ dir = 8 }, @@ -1302,7 +1300,7 @@ "dO" = ( /obj/structure/table, /obj/machinery/light, -/obj/item/twohanded/fireaxe, +/obj/item/fireaxe, /obj/item/extinguisher, /turf/open/floor/plasteel, /area/storage/primary) @@ -3614,8 +3612,8 @@ ak aT ak ak -bs -bL +ak +bE bE bE cc @@ -3669,7 +3667,7 @@ aU bg bq ak -bL +bE bE bE cd @@ -3723,7 +3721,7 @@ bh bh br ak -bL +bE bE bE cc diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm index 40d02bcd0c..0a73818ab3 100644 --- a/_maps/map_files/debug/runtimestation.dmm +++ b/_maps/map_files/debug/runtimestation.dmm @@ -9437,7 +9437,7 @@ fh fh eY eR -fh +et eR fc fh diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 633a998fdb..ba1711d0ed 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -49,7 +49,7 @@ /area/holodeck/rec_center/bunker) "ak" = ( /obj/structure/table, -/obj/item/stack/medical/ointment{ +/obj/item/stack/medical/mesh{ heal_burn = 10 }, /turf/open/floor/holofloor/asteroid, @@ -58,7 +58,7 @@ /obj/structure/table/wood{ layer = 3.3 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05"; pixel_y = 4 }, @@ -294,7 +294,7 @@ /area/holodeck/rec_center/winterwonderland) "aT" = ( /obj/structure/table/wood, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-05"; pixel_y = 10 }, @@ -355,7 +355,7 @@ /area/holodeck/rec_center/lounge) "bc" = ( /obj/structure/table, -/obj/item/stack/medical/bruise_pack{ +/obj/item/stack/medical/suture{ heal_brute = 10 }, /turf/open/floor/holofloor/asteroid, @@ -1686,19 +1686,19 @@ /obj/item/melee/chainofcommand{ name = "chain whip" }, -/obj/item/twohanded/spear, +/obj/item/spear, /turf/open/floor/holofloor/asteroid, /area/holodeck/rec_center/thunderdome1218) "ez" = ( /obj/structure/table/wood, /obj/item/scythe, -/obj/item/twohanded/spear, +/obj/item/spear, /turf/open/floor/holofloor/asteroid, /area/holodeck/rec_center/thunderdome1218) "eA" = ( /obj/structure/table/wood, /obj/item/tailclub, -/obj/item/twohanded/spear, +/obj/item/spear, /turf/open/floor/holofloor/asteroid, /area/holodeck/rec_center/thunderdome1218) "eB" = ( @@ -2916,11 +2916,11 @@ /turf/open/floor/circuit/green/anim, /area/ctf) "hE" = ( -/obj/item/twohanded/ctf/blue, +/obj/item/ctf/blue, /turf/open/floor/circuit/green/anim, /area/ctf) "hF" = ( -/obj/item/twohanded/ctf/red, +/obj/item/ctf/red, /turf/open/floor/circuit/green/anim, /area/ctf) "hG" = ( @@ -4002,7 +4002,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/control) "ke" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -4106,7 +4106,7 @@ /turf/open/floor/plasteel, /area/centcom/supply) "kk" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/neutral{ @@ -4211,7 +4211,7 @@ /turf/open/floor/plasteel/grimy, /area/centcom/control) "kB" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/firealarm{ @@ -4234,7 +4234,7 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/grimy, @@ -4243,7 +4243,7 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel/grimy, @@ -4284,13 +4284,13 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel/grimy, /area/centcom/control) "kJ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/airalarm{ @@ -4733,7 +4733,7 @@ /turf/open/floor/plasteel, /area/centcom/control) "lQ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/firealarm{ @@ -5168,7 +5168,7 @@ /turf/open/floor/plasteel, /area/centcom/control) "mL" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/green{ @@ -5180,7 +5180,7 @@ /turf/open/floor/plasteel, /area/centcom/control) "mM" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -5957,7 +5957,7 @@ /obj/machinery/status_display/ai{ pixel_y = 32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-15"; pixel_x = -6; pixel_y = 12 @@ -6171,7 +6171,7 @@ /turf/open/floor/plasteel, /area/centcom/control) "oy" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -6517,7 +6517,7 @@ /turf/open/floor/plasteel/grimy, /area/centcom/ferry) "ph" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/light{ @@ -6751,7 +6751,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/control) "pw" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/structure/extinguisher_cabinet{ @@ -6998,13 +6998,13 @@ /turf/open/floor/plasteel/dark, /area/centcom/ferry) "qd" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/wood, /area/centcom/ferry) "qe" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/light_switch{ @@ -7525,7 +7525,7 @@ /turf/open/floor/plasteel, /area/centcom/ferry) "rt" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/newscaster{ @@ -7550,7 +7550,7 @@ /turf/open/floor/wood, /area/centcom/ferry) "rv" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/light{ @@ -7732,7 +7732,7 @@ /turf/open/floor/grass, /area/centcom/control) "rL" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/structure/extinguisher_cabinet{ @@ -8611,7 +8611,7 @@ /turf/open/floor/plasteel, /area/centcom/ferry) "tJ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/green{ @@ -8650,7 +8650,7 @@ /turf/open/floor/plasteel, /area/centcom/control) "tO" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/green{ @@ -8667,7 +8667,7 @@ /turf/closed/indestructible/riveted, /area/centcom/evac) "tS" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/stripes/line{ @@ -9109,7 +9109,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/ferry) "uT" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/neutral{ @@ -9139,7 +9139,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/ferry) "uV" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -10077,7 +10077,7 @@ /turf/open/floor/plating, /area/centcom/ferry) "xi" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/delivery, @@ -10147,7 +10147,7 @@ /turf/open/floor/plasteel, /area/centcom/control) "xp" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/green{ @@ -10159,7 +10159,7 @@ /turf/open/floor/plasteel, /area/centcom/control) "xq" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/green, @@ -10178,7 +10178,7 @@ /turf/open/floor/plating, /area/centcom/evac) "xs" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/stripes/line{ @@ -10568,8 +10568,8 @@ /area/wizard_station) "yD" = ( /obj/structure/table/wood, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /turf/open/floor/engine/cult, /area/wizard_station) "yE" = ( @@ -10741,7 +10741,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/ferry) "zd" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/light{ @@ -11247,7 +11247,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/ferry) "Am" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/red{ @@ -11268,7 +11268,7 @@ /turf/open/floor/plasteel, /area/centcom/control) "Ap" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/blue, @@ -11541,7 +11541,7 @@ /turf/open/floor/plasteel, /area/centcom/evac) "Ba" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/stripes/line, @@ -12161,7 +12161,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/ferry) "Cw" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/power/apc{ @@ -12198,7 +12198,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/ferry) "Cy" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/machinery/light, @@ -12219,7 +12219,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/ferry) "Cz" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/structure/extinguisher_cabinet{ @@ -12616,7 +12616,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/evac) "Df" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/structure/extinguisher_cabinet{ @@ -13008,7 +13008,7 @@ /turf/open/floor/plasteel/dark, /area/centcom/control) "DV" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/green{ @@ -13017,7 +13017,7 @@ /turf/open/floor/plasteel, /area/centcom/control) "DW" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/green, @@ -13571,7 +13571,7 @@ /turf/open/floor/plasteel, /area/tdome/tdomeobserve) "Fs" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/green{ @@ -13585,7 +13585,7 @@ }, /area/tdome/tdomeobserve) "Fu" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/green, @@ -13670,7 +13670,7 @@ /turf/open/floor/plasteel/white, /area/tdome/tdomeobserve) "FG" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/red, @@ -13750,7 +13750,7 @@ /turf/open/floor/plasteel, /area/tdome/tdomeobserve) "FQ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/green{ @@ -13848,7 +13848,7 @@ }, /area/tdome/tdomeobserve) "Gg" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/neutral{ @@ -13862,7 +13862,7 @@ }, /area/tdome/tdomeobserve) "Gh" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/red{ @@ -13871,7 +13871,7 @@ /turf/open/floor/plasteel, /area/tdome/tdomeobserve) "Gi" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/red{ @@ -13884,7 +13884,7 @@ /turf/open/floor/plasteel, /area/tdome/tdomeobserve) "Gj" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/red, @@ -13913,7 +13913,7 @@ /turf/open/floor/plasteel, /area/tdome/tdomeobserve) "Gn" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/green, @@ -13923,7 +13923,7 @@ /turf/open/floor/plasteel, /area/tdome/tdomeobserve) "Go" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/green, @@ -13936,7 +13936,7 @@ /turf/open/floor/plasteel, /area/tdome/tdomeobserve) "Gp" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/green{ @@ -14876,7 +14876,7 @@ /turf/open/floor/plasteel, /area/tdome/tdomeobserve) "HZ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral, @@ -14966,7 +14966,7 @@ /turf/open/floor/plasteel, /area/tdome/tdomeobserve) "Ig" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -15790,7 +15790,7 @@ /turf/open/floor/plasteel, /area/tdome/tdomeadmin) "JZ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/firealarm{ @@ -15822,7 +15822,7 @@ /turf/open/floor/plasteel/dark, /area/tdome/tdomeadmin) "Kc" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -17577,7 +17577,7 @@ /turf/open/floor/wood, /area/centcom/holding) "RQ" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -18850,7 +18850,7 @@ /turf/open/indestructible/binary, /area/space) "Zh" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/indestructible/hotelwood, @@ -58771,7 +58771,7 @@ iX iX jm jr -iX +iF jr jK iX diff --git a/_maps/shuttles/arrival_delta.dmm b/_maps/shuttles/arrival_delta.dmm index 62e30ef335..16fc34e62b 100644 --- a/_maps/shuttles/arrival_delta.dmm +++ b/_maps/shuttles/arrival_delta.dmm @@ -203,7 +203,7 @@ /obj/machinery/status_display/evac{ pixel_x = -32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -226,7 +226,7 @@ /obj/machinery/status_display/ai{ pixel_x = 32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral, @@ -277,7 +277,7 @@ /turf/closed/wall/mineral/titanium, /area/shuttle/arrival) "A" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -312,7 +312,7 @@ /turf/open/floor/plasteel, /area/shuttle/arrival) "E" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral, diff --git a/_maps/shuttles/arrival_omega.dmm b/_maps/shuttles/arrival_omega.dmm index f580149163..decb5f9d52 100644 --- a/_maps/shuttles/arrival_omega.dmm +++ b/_maps/shuttles/arrival_omega.dmm @@ -138,7 +138,7 @@ /turf/open/floor/plasteel, /area/shuttle/arrival) "o" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, diff --git a/_maps/shuttles/arrival_snaxi.dmm b/_maps/shuttles/arrival_snaxi.dmm new file mode 100644 index 0000000000..95d4ae973d --- /dev/null +++ b/_maps/shuttles/arrival_snaxi.dmm @@ -0,0 +1,224 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/arrival) +"c" = ( +/obj/machinery/door/airlock/titanium{ + name = "Arrivals Shuttle Airlock" + }, +/obj/structure/fans/tiny, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"d" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/arrival) +"e" = ( +/obj/structure/closet/wardrobe/black, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"f" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"g" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"h" = ( +/obj/structure/closet/wardrobe/grey, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"i" = ( +/obj/structure/closet/wardrobe/green, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"j" = ( +/obj/machinery/requests_console{ + department = "Arrival shuttle"; + name = "Arrivals Shuttle console"; + pixel_y = 30 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"k" = ( +/obj/structure/shuttle/engine/heater{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/arrival) +"m" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/closet/wardrobe/mixed, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"n" = ( +/obj/docking_port/mobile/arrivals{ + name = "Snaxi Arrivals Shuttle" + }, +/obj/structure/shuttle/engine/propulsion/burst/right{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/arrival) +"o" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular, +/obj/machinery/light/small, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"p" = ( +/obj/structure/table, +/obj/item/storage/toolbox/emergency, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"q" = ( +/obj/machinery/light, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"r" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/arrival) +"s" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 + }, +/obj/machinery/light, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"x" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/arrival) +"z" = ( +/obj/structure/shuttle/engine/propulsion/burst/right{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/arrival) + +(1,1,1) = {" +a +b +d +d +d +b +a +"} +(2,1,1) = {" +b +b +r +r +r +b +b +"} +(3,1,1) = {" +b +h +f +f +f +o +b +"} +(4,1,1) = {" +b +i +r +r +r +p +b +"} +(5,1,1) = {" +b +e +f +f +f +x +b +"} +(6,1,1) = {" +b +m +r +r +r +q +b +"} +(7,1,1) = {" +d +g +f +f +f +f +d +"} +(8,1,1) = {" +c +f +r +r +r +f +c +"} +(9,1,1) = {" +c +f +f +f +f +f +c +"} +(10,1,1) = {" +b +j +r +r +r +s +b +"} +(11,1,1) = {" +b +k +k +k +k +k +b +"} +(12,1,1) = {" +b +z +z +n +z +z +b +"} diff --git a/_maps/shuttles/emergency_bar.dmm b/_maps/shuttles/emergency_bar.dmm index 7bc7de9bf1..55fd4bd56a 100644 --- a/_maps/shuttles/emergency_bar.dmm +++ b/_maps/shuttles/emergency_bar.dmm @@ -175,7 +175,7 @@ pixel_x = 6; pixel_y = 24 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -385,7 +385,7 @@ /turf/open/floor/plasteel, /area/shuttle/escape) "bc" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -424,7 +424,7 @@ /turf/open/floor/plasteel, /area/shuttle/escape) "bg" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /obj/effect/turf_decal/tile/bar, @@ -557,7 +557,7 @@ /turf/open/floor/plating/airless, /area/shuttle/escape) "bG" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 diff --git a/_maps/shuttles/emergency_birdboat.dmm b/_maps/shuttles/emergency_birdboat.dmm index 43a6a85bf7..dcffda7ba2 100644 --- a/_maps/shuttles/emergency_birdboat.dmm +++ b/_maps/shuttles/emergency_birdboat.dmm @@ -47,7 +47,7 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "k" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/mineral/titanium/blue, @@ -144,7 +144,7 @@ /turf/open/floor/mineral/titanium/white, /area/shuttle/escape) "B" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/mineral/titanium, diff --git a/_maps/shuttles/emergency_cere.dmm b/_maps/shuttles/emergency_cere.dmm index f49e70aeb9..9608f7f28a 100644 --- a/_maps/shuttles/emergency_cere.dmm +++ b/_maps/shuttles/emergency_cere.dmm @@ -420,7 +420,7 @@ /turf/open/floor/plasteel/dark, /area/shuttle/escape) "aM" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/item/radio/intercom{ @@ -446,7 +446,7 @@ /turf/open/floor/plasteel/dark, /area/shuttle/escape) "aP" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/item/radio/intercom{ @@ -968,7 +968,7 @@ /turf/open/floor/plasteel, /area/shuttle/escape) "ca" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, @@ -994,7 +994,7 @@ /obj/machinery/light{ dir = 4 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /turf/open/floor/plasteel, diff --git a/_maps/shuttles/emergency_delta.dmm b/_maps/shuttles/emergency_delta.dmm index 564115443d..b4b22b2ff6 100644 --- a/_maps/shuttles/emergency_delta.dmm +++ b/_maps/shuttles/emergency_delta.dmm @@ -167,7 +167,7 @@ /turf/open/floor/plasteel/white, /area/shuttle/escape) "an" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -196,7 +196,7 @@ /turf/open/floor/plasteel, /area/shuttle/escape) "ap" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -800,7 +800,7 @@ /turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "bz" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/machinery/button/flasher{ @@ -814,7 +814,7 @@ /turf/open/floor/plasteel, /area/shuttle/escape) "bA" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21" }, /obj/effect/turf_decal/tile/neutral{ @@ -1018,7 +1018,7 @@ /turf/open/floor/plasteel/dark, /area/shuttle/escape) "cb" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -1338,7 +1338,7 @@ /turf/open/floor/plasteel, /area/shuttle/escape) "cA" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 diff --git a/_maps/shuttles/emergency_gorilla.dmm b/_maps/shuttles/emergency_gorilla.dmm index 0c75cd8b7e..cc2e67ee3e 100644 --- a/_maps/shuttles/emergency_gorilla.dmm +++ b/_maps/shuttles/emergency_gorilla.dmm @@ -326,10 +326,6 @@ /mob/living/simple_animal/hostile/gorilla, /turf/open/floor/plasteel/shuttle, /area/shuttle/escape) -"bn" = ( -/obj/structure/reagent_dispensers/keg/semen, -/turf/open/floor/plating, -/area/shuttle/escape) "bo" = ( /obj/structure/closet/crate/freezer/surplus_limbs, /turf/open/floor/plasteel/shuttle, @@ -539,7 +535,7 @@ aD fV Pi bm -bn +ax bs bu "} @@ -610,7 +606,7 @@ aX aD fV bi -bn +ax bl fV ab diff --git a/_maps/shuttles/emergency_imfedupwiththisworld.dmm b/_maps/shuttles/emergency_imfedupwiththisworld.dmm index 349918ef29..ca2e6059ec 100644 --- a/_maps/shuttles/emergency_imfedupwiththisworld.dmm +++ b/_maps/shuttles/emergency_imfedupwiththisworld.dmm @@ -155,7 +155,7 @@ /turf/open/floor/carpet, /area/shuttle/escape) "y" = ( -/obj/item/twohanded/required/kirbyplants, +/obj/item/kirbyplants, /turf/open/floor/wood, /area/shuttle/escape) "z" = ( diff --git a/_maps/shuttles/emergency_luxury.dmm b/_maps/shuttles/emergency_luxury.dmm index a7faface75..8a16763007 100644 --- a/_maps/shuttles/emergency_luxury.dmm +++ b/_maps/shuttles/emergency_luxury.dmm @@ -305,7 +305,7 @@ /turf/open/floor/carpet/royalblue, /area/shuttle/escape/luxury) "bg" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/carpet/red, @@ -320,7 +320,7 @@ /turf/open/floor/carpet/royalblue, /area/shuttle/escape/luxury) "bj" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -328,13 +328,13 @@ /turf/open/floor/wood, /area/shuttle/escape/luxury) "bk" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/carpet/royalblue, /area/shuttle/escape/luxury) "bl" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -437,7 +437,7 @@ dir = 4; light_range = 8 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-10" }, /turf/open/floor/carpet/red, diff --git a/_maps/shuttles/emergency_meta.dmm b/_maps/shuttles/emergency_meta.dmm index 8df487714e..cae3139c41 100644 --- a/_maps/shuttles/emergency_meta.dmm +++ b/_maps/shuttles/emergency_meta.dmm @@ -333,8 +333,8 @@ "aT" = ( /obj/structure/table, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /obj/machinery/light{ dir = 4 }, diff --git a/_maps/shuttles/emergency_omega.dmm b/_maps/shuttles/emergency_omega.dmm index bd99f35bb5..83b9c28305 100644 --- a/_maps/shuttles/emergency_omega.dmm +++ b/_maps/shuttles/emergency_omega.dmm @@ -194,7 +194,7 @@ /turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "as" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -317,7 +317,7 @@ /turf/open/floor/plasteel, /area/shuttle/escape) "aC" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -530,7 +530,7 @@ /turf/open/floor/plasteel, /area/shuttle/escape) "aS" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 diff --git a/_maps/shuttles/emergency_pubby.dmm b/_maps/shuttles/emergency_pubby.dmm index 0eea5ab1c8..7c43bef2ce 100644 --- a/_maps/shuttles/emergency_pubby.dmm +++ b/_maps/shuttles/emergency_pubby.dmm @@ -110,7 +110,7 @@ /obj/machinery/computer/security/telescreen/entertainment{ pixel_y = 32 }, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-21"; pixel_x = -3; pixel_y = 3 @@ -183,7 +183,7 @@ /area/shuttle/escape) "aB" = ( /obj/structure/window/reinforced, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-11" }, /obj/effect/turf_decal/tile/green, @@ -589,7 +589,7 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "bu" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/mineral/plastitanium/red/brig, diff --git a/_maps/shuttles/emergency_raven.dmm b/_maps/shuttles/emergency_raven.dmm index 05446968e7..daba49a238 100644 --- a/_maps/shuttles/emergency_raven.dmm +++ b/_maps/shuttles/emergency_raven.dmm @@ -1014,7 +1014,7 @@ /turf/open/floor/plasteel/dark, /area/shuttle/escape) "bV" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/green{ @@ -1029,7 +1029,7 @@ /turf/open/floor/plasteel/dark, /area/shuttle/escape) "bW" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/green{ @@ -1094,7 +1094,7 @@ /turf/open/floor/plasteel/dark, /area/shuttle/escape) "cd" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/green{ @@ -1107,7 +1107,7 @@ /turf/open/floor/plasteel/dark, /area/shuttle/escape) "ce" = ( -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /obj/effect/turf_decal/tile/green, diff --git a/_maps/shuttles/emergency_russiafightpit.dmm b/_maps/shuttles/emergency_russiafightpit.dmm index 65fc7e30a2..206ebc4687 100644 --- a/_maps/shuttles/emergency_russiafightpit.dmm +++ b/_maps/shuttles/emergency_russiafightpit.dmm @@ -365,11 +365,11 @@ /area/shuttle/escape) "bi" = ( /obj/structure/table, -/obj/item/stack/medical/bruise_pack{ +/obj/item/stack/medical/suture{ pixel_x = 5; pixel_y = 5 }, -/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/suture, /turf/open/floor/mineral/plastitanium, /area/shuttle/escape) "bj" = ( diff --git a/_maps/shuttles/emergency_scrapheap.dmm b/_maps/shuttles/emergency_scrapheap.dmm index 4bd8f07c8e..cc51c2b8f8 100644 --- a/_maps/shuttles/emergency_scrapheap.dmm +++ b/_maps/shuttles/emergency_scrapheap.dmm @@ -194,7 +194,7 @@ /turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "aF" = ( -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/mineral/titanium/blue, /area/shuttle/escape) "aG" = ( diff --git a/_maps/shuttles/emergency_syndicate.dmm b/_maps/shuttles/emergency_syndicate.dmm index 85048b9d89..3c2c3cb19b 100644 --- a/_maps/shuttles/emergency_syndicate.dmm +++ b/_maps/shuttles/emergency_syndicate.dmm @@ -1351,7 +1351,7 @@ dir = 1 }, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel/dark, @@ -1842,7 +1842,7 @@ dir = 1 }, /obj/effect/turf_decal/tile/neutral, -/obj/item/twohanded/required/kirbyplants{ +/obj/item/kirbyplants{ icon_state = "plant-22" }, /turf/open/floor/plasteel/dark, diff --git a/_maps/shuttles/ferry_lighthouse.dmm b/_maps/shuttles/ferry_lighthouse.dmm index a12e8858cb..1b4e685bd0 100644 --- a/_maps/shuttles/ferry_lighthouse.dmm +++ b/_maps/shuttles/ferry_lighthouse.dmm @@ -236,7 +236,7 @@ /turf/open/floor/wood, /area/shuttle/transport) "bd" = ( -/obj/item/twohanded/required/kirbyplants/dead{ +/obj/item/kirbyplants/dead{ desc = "It doesn't look very healthy..."; name = "potted plant" }, diff --git a/_maps/shuttles/hunter_bounty.dmm b/_maps/shuttles/hunter_bounty.dmm new file mode 100644 index 0000000000..034747f85d --- /dev/null +++ b/_maps/shuttles/hunter_bounty.dmm @@ -0,0 +1,490 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/hunter) +"c" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external, +/turf/open/floor/plating, +/area/shuttle/hunter) +"d" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/hunter) +"e" = ( +/obj/structure/shuttle/engine/propulsion{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/hunter) +"f" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/shuttle/hunter) +"g" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/hunter) +"h" = ( +/turf/open/floor/plating, +/area/shuttle/hunter) +"i" = ( +/obj/structure/grille, +/obj/structure/window/plastitanium, +/turf/open/floor/plating, +/area/shuttle/hunter) +"j" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/shuttle/hunter) +"k" = ( +/obj/structure/sign/poster/contraband/bountyhunters, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/hunter) +"l" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external, +/turf/open/floor/plating, +/area/shuttle/hunter) +"m" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/pod/light, +/area/shuttle/hunter) +"n" = ( +/obj/structure/table, +/turf/open/floor/pod/light, +/area/shuttle/hunter) +"o" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/pod/light, +/area/shuttle/hunter) +"p" = ( +/obj/effect/mob_spawn/human/fugitive/bounty/hook{ + short_desc = null + }, +/turf/open/floor/pod/light, +/area/shuttle/hunter) +"q" = ( +/obj/structure/shuttle/engine/heater{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/hunter) +"r" = ( +/obj/machinery/computer/launchpad{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/shuttle/hunter) +"s" = ( +/turf/open/floor/pod/dark, +/area/shuttle/hunter) +"t" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/pod/dark, +/area/shuttle/hunter) +"v" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/shuttle/hunter) +"w" = ( +/obj/structure/table, +/obj/item/phone, +/turf/open/floor/pod/dark, +/area/shuttle/hunter) +"x" = ( +/obj/structure/table, +/turf/open/floor/pod/dark, +/area/shuttle/hunter) +"y" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/pod/dark, +/area/shuttle/hunter) +"z" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/shuttle/hunter) +"A" = ( +/obj/machinery/computer/shuttle/hunter{ + dir = 8 + }, +/turf/open/floor/pod/dark, +/area/shuttle/hunter) +"B" = ( +/obj/machinery/launchpad, +/turf/open/floor/pod/dark, +/area/shuttle/hunter) +"C" = ( +/obj/item/multitool, +/turf/open/floor/pod/dark, +/area/shuttle/hunter) +"D" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/pod/dark, +/area/shuttle/hunter) +"E" = ( +/obj/structure/window/plastitanium, +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/hunter) +"F" = ( +/obj/machinery/power/smes, +/turf/open/floor/pod/dark, +/area/shuttle/hunter) +"G" = ( +/obj/machinery/fugitive_capture, +/turf/open/floor/pod/dark, +/area/shuttle/hunter) +"H" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/pod/dark, +/area/shuttle/hunter) +"I" = ( +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/hunter{ + dir = 8 + }, +/turf/open/floor/pod/dark, +/area/shuttle/hunter) +"J" = ( +/obj/structure/table, +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/pod/light, +/area/shuttle/hunter) +"K" = ( +/obj/machinery/suit_storage_unit/standard_unit{ + storage_type = /obj/item/tank/internals/oxygen/yellow + }, +/turf/open/floor/pod/light, +/area/shuttle/hunter) +"L" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external, +/obj/docking_port/stationary{ + dwidth = 11; + height = 16; + id = "pirateship_home"; + name = "Deep Space"; + width = 17 + }, +/obj/docking_port/mobile{ + dheight = 3; + dwidth = 3; + height = 13; + id = "huntership"; + movement_force = list("KNOCKDOWN" = 0, "THROW" = 0); + name = "hunter shuttle"; + width = 15 + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/shuttle/hunter) +"M" = ( +/obj/effect/mob_spawn/human/fugitive/bounty/armor{ + dir = 1; + short_desc = null + }, +/turf/open/floor/pod/light, +/area/shuttle/hunter) +"P" = ( +/obj/structure/fluff/empty_sleeper{ + dir = 1 + }, +/turf/open/floor/pod/light, +/area/shuttle/hunter) +"U" = ( +/obj/structure/grille, +/obj/structure/window/plastitanium, +/obj/structure/window/plastitanium, +/turf/open/floor/plating, +/area/shuttle/hunter) +"Z" = ( +/obj/effect/mob_spawn/human/fugitive/bounty/synth{ + short_desc = null + }, +/turf/open/floor/pod/light, +/area/shuttle/hunter) + +(1,1,1) = {" +a +a +a +b +a +a +a +a +a +b +a +a +a +"} +(2,1,1) = {" +a +a +a +b +a +a +a +a +a +b +a +a +a +"} +(3,1,1) = {" +b +a +a +b +a +e +a +e +a +b +a +a +b +"} +(4,1,1) = {" +b +a +e +b +b +q +i +q +b +b +e +a +b +"} +(5,1,1) = {" +b +b +q +b +b +r +B +F +b +b +q +b +b +"} +(6,1,1) = {" +b +b +g +b +b +s +C +G +b +b +g +b +b +"} +(7,1,1) = {" +f +d +h +j +l +t +D +H +c +d +h +j +L +"} +(8,1,1) = {" +b +b +i +b +b +s +s +s +b +b +i +b +b +"} +(9,1,1) = {" +a +b +i +b +m +v +s +s +K +b +i +b +a +"} +(10,1,1) = {" +a +a +i +k +n +w +x +s +K +b +i +a +a +"} +(11,1,1) = {" +a +a +a +b +J +x +x +s +K +b +a +a +a +"} +(12,1,1) = {" +a +a +a +E +o +y +s +s +K +b +a +a +a +"} +(13,1,1) = {" +a +a +a +i +b +s +s +s +b +i +a +a +a +"} +(14,1,1) = {" +a +a +a +U +p +s +s +s +P +i +a +a +a +"} +(15,1,1) = {" +a +a +a +i +Z +z +s +z +M +i +a +a +a +"} +(16,1,1) = {" +a +a +a +E +i +A +n +I +i +b +a +a +a +"} +(17,1,1) = {" +a +a +a +a +i +i +i +i +i +a +a +a +a +"} diff --git a/_maps/shuttles/hunter_russian.dmm b/_maps/shuttles/hunter_russian.dmm new file mode 100644 index 0000000000..a053d952ef --- /dev/null +++ b/_maps/shuttles/hunter_russian.dmm @@ -0,0 +1,501 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/turf/closed/wall, +/area/shuttle/hunter) +"c" = ( +/obj/structure/shuttle/engine/propulsion{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/shuttle/hunter) +"d" = ( +/obj/structure/shuttle/engine/heater{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/hunter) +"e" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/turf/open/floor/plating, +/area/shuttle/hunter) +"f" = ( +/obj/machinery/power/smes, +/turf/open/floor/plating, +/area/shuttle/hunter) +"g" = ( +/turf/open/floor/plating, +/area/shuttle/hunter) +"h" = ( +/obj/machinery/door/airlock/security/glass, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/hunter) +"i" = ( +/obj/machinery/door/airlock/security/glass, +/obj/structure/fans/tiny, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/hunter) +"j" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/shuttle/hunter) +"k" = ( +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/hunter) +"m" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/item/weldingtool/largetank, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/hunter) +"n" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/reagent_dispensers/watertank, +/obj/item/reagent_containers/glass/bucket, +/obj/item/mop, +/obj/item/storage/bag/trash{ + pixel_x = 6 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/hunter) +"o" = ( +/obj/effect/mob_spawn/human/fugitive/russian{ + dir = 4; + short_desc = null + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/hunter) +"p" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/turf/open/floor/plating, +/area/shuttle/hunter) +"q" = ( +/turf/open/floor/mineral/plastitanium, +/area/shuttle/hunter) +"r" = ( +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/hunter) +"s" = ( +/obj/structure/table, +/obj/item/storage/fancy/cigarettes/cigars/cohiba{ + pixel_y = 6 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/hunter) +"t" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/large{ + icon_state = "crittercrate" + }, +/turf/open/floor/plating, +/area/shuttle/hunter) +"u" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/hunter) +"v" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/shuttle/hunter) +"w" = ( +/obj/machinery/fugitive_capture, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/hunter) +"x" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/shuttle/hunter) +"y" = ( +/turf/template_noop, +/area/shuttle/hunter) +"z" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/hunter) +"A" = ( +/obj/machinery/computer/shuttle/hunter{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/hunter) +"B" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/turf/open/floor/plating, +/area/shuttle/hunter) +"C" = ( +/obj/machinery/computer/camera_advanced{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/hunter) +"D" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/hunter) +"E" = ( +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/hunter{ + dir = 8; + x_offset = 0; + y_offset = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/hunter) +"F" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/engineering{ + icon_state = "engi_crateopen" + }, +/turf/open/floor/plating, +/area/shuttle/hunter) +"G" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/bottle/vodka, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/hunter) +"H" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate/coffin{ + icon_state = "coffinopen" + }, +/turf/open/floor/plating, +/area/shuttle/hunter) +"I" = ( +/obj/effect/turf_decal/bot, +/obj/structure/mecha_wreckage/ripley, +/turf/open/floor/plating, +/area/shuttle/hunter) +"J" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/hunter) +"K" = ( +/obj/machinery/door/airlock/security/glass, +/obj/structure/fans/tiny, +/obj/docking_port/stationary{ + dwidth = 11; + height = 16; + id = "pirateship_home"; + name = "Deep Space"; + width = 17 + }, +/obj/docking_port/mobile{ + dheight = 3; + dwidth = 3; + height = 13; + id = "huntership"; + movement_force = list("KNOCKDOWN" = 0, "THROW" = 0); + name = "hunter shuttle"; + width = 15 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/hunter) +"L" = ( +/obj/effect/mob_spawn/human/fugitive/russian{ + dir = 1; + short_desc = null + }, +/turf/open/floor/plating, +/area/shuttle/hunter) +"N" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/hunter) +"Q" = ( +/obj/item/book/manual/ripley_build_and_repair, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/hunter) +"Y" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/hunter) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +b +c +c +b +a +a +a +a +a +a +"} +(3,1,1) = {" +a +c +c +a +b +b +b +d +d +b +b +b +a +c +c +a +"} +(4,1,1) = {" +b +d +d +b +b +p +t +x +B +B +F +b +b +d +d +b +"} +(5,1,1) = {" +b +e +g +b +j +q +u +q +q +u +u +H +b +g +L +b +"} +(6,1,1) = {" +b +e +g +h +k +k +k +k +k +D +k +k +h +g +L +b +"} +(7,1,1) = {" +b +f +g +b +x +k +Y +Y +Y +Y +Q +I +b +g +L +b +"} +(8,1,1) = {" +b +b +b +b +b +h +b +b +b +b +h +b +b +b +b +b +"} +(9,1,1) = {" +a +b +b +b +m +k +b +y +y +b +k +N +b +b +b +a +"} +(10,1,1) = {" +a +a +a +i +k +k +v +y +y +v +k +k +K +a +a +a +"} +(11,1,1) = {" +a +a +a +b +n +r +b +y +y +b +r +J +b +a +a +a +"} +(12,1,1) = {" +a +a +a +b +b +h +b +b +b +b +h +b +b +a +a +a +"} +(13,1,1) = {" +a +a +a +b +o +k +r +z +z +k +k +o +b +a +a +a +"} +(14,1,1) = {" +a +a +a +b +b +s +w +A +C +E +G +b +b +a +a +a +"} +(15,1,1) = {" +a +a +a +a +b +b +v +v +v +v +b +b +a +a +a +a +"} diff --git a/_maps/shuttles/hunter_space_cop.dmm b/_maps/shuttles/hunter_space_cop.dmm new file mode 100644 index 0000000000..44eb5052b2 --- /dev/null +++ b/_maps/shuttles/hunter_space_cop.dmm @@ -0,0 +1,250 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/hunter{ + dir = 8; + view_range = 7; + x_offset = 6 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/hunter) +"ab" = ( +/obj/machinery/computer/shuttle/hunter{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/hunter) +"ac" = ( +/obj/structure/fans/tiny, +/obj/docking_port/stationary{ + dir = 4; + dwidth = 3; + height = 12; + id = "huntership_home"; + name = "Deep Space"; + width = 7 + }, +/obj/docking_port/mobile{ + dir = 4; + dwidth = 3; + height = 12; + id = "huntership"; + name = "hunter shuttle"; + width = 7 + }, +/obj/machinery/door/poddoor/shutters{ + id = "Interpolship" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/hunter) +"ae" = ( +/obj/machinery/button/door{ + id = "Interpolship"; + pixel_y = 26 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/hunter) +"af" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/hunter) +"ag" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/hunter) +"ah" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/hunter) +"aj" = ( +/obj/structure/closet/crate/eva, +/obj/effect/turf_decal/box, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/hunter) +"ak" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/effect/mob_spawn/human/fugitive/spacepol{ + dir = 1; + short_desc = null + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/hunter) +"al" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/turf_decal/caution{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/hunter) +"bY" = ( +/obj/structure/chair/comfy/shuttle, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/hunter) +"gi" = ( +/obj/structure/table, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/hunter) +"hB" = ( +/obj/structure/shuttle/engine/propulsion{ + dir = 8 + }, +/turf/closed/wall/mineral/titanium, +/area/shuttle/hunter) +"hJ" = ( +/obj/structure/window/shuttle, +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/hunter) +"ku" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/hunter) +"lp" = ( +/obj/machinery/fugitive_capture, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/hunter) +"rR" = ( +/obj/machinery/door/airlock/titanium, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/hunter) +"te" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor/shutters{ + id = "Interpolship" + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/hunter) +"An" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/shuttle/hunter) +"Pq" = ( +/turf/template_noop, +/area/template_noop) +"Rz" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/hunter) +"RO" = ( +/turf/open/floor/mineral/titanium/blue, +/area/shuttle/hunter) + +(1,1,1) = {" +Pq +ku +te +ac +te +ku +Pq +"} +(2,1,1) = {" +Pq +ku +ae +al +af +ku +Pq +"} +(3,1,1) = {" +Pq +ku +bY +RO +ak +ku +Pq +"} +(4,1,1) = {" +hB +ku +bY +RO +ak +ku +hB +"} +(5,1,1) = {" +ku +ku +bY +RO +ak +ku +ku +"} +(6,1,1) = {" +Pq +hJ +ag +RO +RO +hJ +Pq +"} +(7,1,1) = {" +Pq +hJ +ah +RO +aj +hJ +Pq +"} +(8,1,1) = {" +Pq +ku +lp +RO +aj +ku +Pq +"} +(9,1,1) = {" +hB +ku +ku +rR +ku +ku +hB +"} +(10,1,1) = {" +ku +ku +RO +Rz +RO +ku +ku +"} +(11,1,1) = {" +Pq +An +aa +gi +ab +An +Pq +"} +(12,1,1) = {" +Pq +ku +An +An +An +ku +Pq +"} diff --git a/_maps/shuttles/infiltrator_basic.dmm b/_maps/shuttles/infiltrator_basic.dmm index d2effaa35b..42fe684e05 100644 --- a/_maps/shuttles/infiltrator_basic.dmm +++ b/_maps/shuttles/infiltrator_basic.dmm @@ -342,11 +342,6 @@ }, /turf/open/floor/plasteel/dark, /area/shuttle/syndicate/eva) -"aN" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/plasteel/dark, -/area/shuttle/syndicate/eva) "aO" = ( /obj/structure/chair/comfy/shuttle{ dir = 4; @@ -385,8 +380,9 @@ /turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate/eva) "aS" = ( -/obj/structure/tank_dispenser/oxygen, /obj/effect/turf_decal/bot_white, +/obj/vehicle/ridden/atv/snowmobile, +/obj/item/key, /turf/open/floor/plasteel/dark, /area/shuttle/syndicate/eva) "aT" = ( @@ -612,8 +608,8 @@ "bu" = ( /obj/structure/table/reinforced, /obj/item/stack/medical/gauze, -/obj/item/stack/medical/bruise_pack, -/obj/item/stack/medical/ointment, +/obj/item/stack/medical/suture, +/obj/item/stack/medical/mesh, /obj/effect/turf_decal/bot_white, /turf/open/floor/plasteel/dark, /area/shuttle/syndicate/medical) @@ -1172,15 +1168,37 @@ }, /turf/closed/wall/r_wall/syndicate, /area/shuttle/syndicate/armory) +"gZ" = ( +/obj/effect/turf_decal/bot_white, +/obj/vehicle/ridden/atv/snowmobile, +/obj/item/key, +/turf/open/floor/plasteel/dark, +/area/shuttle/syndicate/airlock) "pd" = ( /obj/machinery/porta_turret/syndicate/shuttle{ dir = 5 }, /turf/closed/wall/r_wall/syndicate, /area/shuttle/syndicate/bridge) -"vv" = ( -/obj/structure/reagent_dispensers/fueltank, +"qk" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /obj/effect/turf_decal/bot_white, +/obj/vehicle/ridden/atv/snowmobile, +/obj/item/key, +/turf/open/floor/plasteel/dark, +/area/shuttle/syndicate/airlock) +"vv" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/tank_dispenser/oxygen, /turf/open/floor/plasteel/dark, /area/shuttle/syndicate/eva) "In" = ( @@ -1195,6 +1213,14 @@ }, /turf/closed/wall/r_wall/syndicate, /area/shuttle/syndicate/medical) +"Sz" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/dark, +/area/shuttle/syndicate/armory) (1,1,1) = {" aa @@ -1330,7 +1356,7 @@ ac ad aa ax -aN +aS aS aU aZ @@ -1480,7 +1506,7 @@ ac In aa aB -aO +gZ aO aX bc @@ -1505,7 +1531,7 @@ ac aa aa aB -aP +qk aP aP aP @@ -1530,7 +1556,7 @@ aa aa aa aB -aP +qk aP aP aP @@ -1587,7 +1613,7 @@ bd aB bm bB -bG +Sz bQ bX ci diff --git a/_maps/shuttles/snow_taxi.dmm b/_maps/shuttles/snow_taxi.dmm new file mode 100644 index 0000000000..55259fa1fe --- /dev/null +++ b/_maps/shuttles/snow_taxi.dmm @@ -0,0 +1,116 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/mineral/titanium, +/area/shuttle/snowtaxi) +"b" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plating, +/area/shuttle/snowtaxi) +"c" = ( +/obj/machinery/door/airlock/titanium{ + name = "Mining Shuttle Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/shuttle/snowtaxi) +"e" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plating, +/area/shuttle/snowtaxi) +"f" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/snowtaxi) +"g" = ( +/obj/machinery/door/airlock/titanium{ + name = "Mining Shuttle Airlock" + }, +/obj/docking_port/mobile{ + dwidth = 3; + height = 4; + id = "snow_taxi"; + name = "snow taxi"; + port_direction = 8; + width = 6 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/shuttle/snowtaxi) +"i" = ( +/obj/machinery/light, +/obj/machinery/computer/shuttle/snow_taxi{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/snowtaxi) +"j" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/shuttle/snowtaxi) +"k" = ( +/turf/open/floor/mineral/titanium, +/area/shuttle/snowtaxi) +"l" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plating/airless, +/area/shuttle/snowtaxi) +"u" = ( +/obj/structure/chair/comfy/shuttle, +/turf/open/floor/mineral/titanium, +/area/shuttle/snowtaxi) + +(1,1,1) = {" +a +e +e +a +"} +(2,1,1) = {" +a +f +i +a +"} +(3,1,1) = {" +e +u +j +l +"} +(4,1,1) = {" +c +k +k +g +"} +(5,1,1) = {" +a +u +j +a +"} +(6,1,1) = {" +a +b +b +a +"} diff --git a/_maps/shuttles/whiteship_cog.dmm b/_maps/shuttles/whiteship_cog.dmm index 9410682219..9e4463df6b 100644 --- a/_maps/shuttles/whiteship_cog.dmm +++ b/_maps/shuttles/whiteship_cog.dmm @@ -32,11 +32,6 @@ "g" = ( /turf/closed/wall/mineral/titanium/nodiagonal, /area/shuttle/abandoned) -"h" = ( -/obj/machinery/door/airlock/external, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/shuttle/abandoned) "i" = ( /obj/machinery/suit_storage_unit/security, /obj/machinery/light/small{ @@ -64,6 +59,7 @@ /area/shuttle/abandoned) "m" = ( /obj/structure/bed, +/obj/item/bedsheet/orange, /turf/open/floor/plasteel, /area/shuttle/abandoned) "n" = ( @@ -130,7 +126,6 @@ /area/shuttle/abandoned) "x" = ( /obj/machinery/door/firedoor/border_only/closed{ - icon_state = "door_closed"; dir = 4 }, /obj/machinery/door/window/eastright, @@ -174,12 +169,12 @@ dir = 8 }, /obj/structure/closet/crate/secure/weapon, -/obj/item/gun/energy/laser/carbine, /obj/machinery/button/flasher{ id = "cogws"; pixel_x = -24; pixel_y = 8 }, +/obj/item/gun/energy/laser/retro, /turf/open/floor/plasteel, /area/shuttle/abandoned) "D" = ( @@ -191,7 +186,7 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/item/gun/energy/e_gun/stun, +/obj/item/gun/energy/laser/retro, /turf/open/floor/plasteel, /area/shuttle/abandoned) "E" = ( @@ -228,12 +223,14 @@ "I" = ( /obj/structure/table/reinforced, /obj/item/clothing/glasses/sunglasses, +/obj/item/gps{ + gpstag = "NTPRS" + }, /turf/open/floor/plasteel/grimy, /area/shuttle/abandoned) "J" = ( /obj/structure/curtain, /obj/machinery/shower{ - name = "shower"; pixel_y = 12 }, /obj/item/soap/nanotrasen, @@ -329,13 +326,13 @@ d "} (5,1,1) = {" d -h +g n n B H n -h +g d "} (6,1,1) = {" diff --git a/_maps/snaxi.dm b/_maps/snaxi.dm new file mode 100644 index 0000000000..9f6400a5e1 --- /dev/null +++ b/_maps/snaxi.dm @@ -0,0 +1 @@ +#define FORCE_MAP "_maps/snaxi.json" diff --git a/_maps/icebox.json b/_maps/snaxi.json similarity index 84% rename from _maps/icebox.json rename to _maps/snaxi.json index 89777d0a6b..cb1917b6f6 100644 --- a/_maps/icebox.json +++ b/_maps/snaxi.json @@ -1,10 +1,10 @@ { - "map_name":"Ice Box Station", - "map_path":"map_files/IceBoxStation", + "map_name":"Snow Taxi", + "map_path":"map_files/Snaxi", "map_file":[ "IcemoonUnderground_Below.dmm", "IcemoonUnderground_Above.dmm", - "IceBoxStation.dmm" + "Snaxi.dmm" ], "station_ruin_budget":0, "space_ruin_levels":0, @@ -18,8 +18,8 @@ "traits":[ { "Up":1, - "Mining":true, - "Station":false, + "Station":0, + "Mining":true, "Linkage":null, "Gravity":true, "Ice Ruins Underground":true, @@ -28,8 +28,8 @@ { "Down":-1, "Up":1, - "Mining":true, - "Station":false, + "Station":0, + "Mining":true, "Linkage":null, "Gravity":true, "Ice Ruins Underground":true, diff --git a/_maps/templates/shelter_2.dmm b/_maps/templates/shelter_2.dmm index 825cb26e3a..0a25527358 100644 --- a/_maps/templates/shelter_2.dmm +++ b/_maps/templates/shelter_2.dmm @@ -93,7 +93,7 @@ /area/survivalpod) "q" = ( /obj/structure/tubes, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/kirbyplants/random, /turf/open/floor/pod, /area/survivalpod) "r" = ( diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/_flags/_flags.dm similarity index 52% rename from code/__DEFINES/flags.dm rename to code/__DEFINES/_flags/_flags.dm index 396cf25be1..7daf9fa8a3 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/_flags/_flags.dm @@ -20,26 +20,41 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define DF_ISPROCESSING (1<<2) //FLAGS BITMASK - -#define HEAR_1 (1<<3) // This flag is what recursive_hear_check() uses to determine wether to add an item to the hearer list or not. -#define CHECK_RICOCHET_1 (1<<4) // Projectiels will check ricochet on things impacted that have this. -#define CONDUCT_1 (1<<5) // conducts electricity (metal etc.) -#define NODECONSTRUCT_1 (1<<7) // For machines and structures that should not break into parts, eg, holodeck stuff -#define OVERLAY_QUEUED_1 (1<<8) // atom queued to SSoverlay -#define ON_BORDER_1 (1<<9) // item has priority to check when entering or leaving -#define PREVENT_CLICK_UNDER_1 (1<<11) //Prevent clicking things below it on the same turf eg. doors/ fulltile windows +///This flag is what recursive_hear_check() uses to determine wether to add an item to the hearer list or not. +#define HEAR_1 (1<<3) +///Projectiles will use default chance-based ricochet handling on things with this. +#define DEFAULT_RICOCHET_1 (1<<4) +///Conducts electricity (metal etc.). +#define CONDUCT_1 (1<<5) +///For machines and structures that should not break into parts, eg, holodeck stuff. +#define NODECONSTRUCT_1 (1<<7) +///Atom queued to SSoverlay. +#define OVERLAY_QUEUED_1 (1<<8) +///Item has priority to check when entering or leaving. +#define ON_BORDER_1 (1<<9) +///Prevent clicking things below it on the same turf eg. doors/ fulltile windows. +#define PREVENT_CLICK_UNDER_1 (1<<11) #define HOLOGRAM_1 (1<<12) -#define TESLA_IGNORE_1 (1<<13) // TESLA_IGNORE grants immunity from being targeted by tesla-style electricity -#define INITIALIZED_1 (1<<14) //Whether /atom/Initialize() has already run for the object -#define ADMIN_SPAWNED_1 (1<<15) //was this spawned by an admin? used for stat tracking stuff. -#define PREVENT_CONTENTS_EXPLOSION_1 (1<<16) /// should not get harmed if this gets caught by an explosion? +///Prevents mobs from getting chainshocked by teslas and the supermatter. +#define SHOCKED_1 (1<<13) +///Whether /atom/Initialize() has already run for the object. +#define INITIALIZED_1 (1<<14) +///was this spawned by an admin? used for stat tracking stuff. +#define ADMIN_SPAWNED_1 (1<<15) +/// should not get harmed if this gets caught by an explosion? +#define PREVENT_CONTENTS_EXPLOSION_1 (1<<16) +/// Early returns mob.face_atom() +#define BLOCK_FACE_ATOM_1 (1<<17) //turf-only flags #define NOJAUNT_1 (1<<0) #define UNUSED_RESERVATION_TURF_1 (1<<1) -#define CAN_BE_DIRTY_1 (1<<2) // If a turf can be made dirty at roundstart. This is also used in areas. -#define NO_LAVA_GEN_1 (1<<6) //Blocks lava rivers being generated on the turf -#define NO_RUINS_1 (1<<10) //Blocks ruins spawning on the turf +///If a turf can be made dirty at roundstart. This is also used in areas. +#define CAN_BE_DIRTY_1 (1<<2) +///Blocks lava rivers being generated on the turf. +#define NO_LAVA_GEN_1 (1<<6) +///Blocks ruins spawning on the turf. +#define NO_RUINS_1 (1<<10) /* These defines are used specifically with the atom/pass_flags bitmask @@ -59,8 +74,10 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define FLYING (1<<1) #define VENTCRAWLING (1<<2) #define FLOATING (1<<3) -#define UNSTOPPABLE (1<<4) //When moving, will Bump()/Cross()/Uncross() everything, but won't be stopped. -#define CRAWLING (1<<5) //Applied if you're crawling around on the ground/resting. +///When moving, will Bump()/Cross()/Uncross() everything, but won't be stopped. +#define UNSTOPPABLE (1<<4) +///Applied if you're crawling around on the ground/resting. +#define CRAWLING (1<<5) //Fire and Acid stuff, for resistance_flags #define LAVA_PROOF (1<<0) @@ -75,14 +92,15 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define GOLIATH_WEAKNESS (1<<9) //CIT CHANGE //tesla_zap -#define TESLA_MACHINE_EXPLOSIVE (1<<0) -#define TESLA_ALLOW_DUPLICATES (1<<1) -#define TESLA_OBJ_DAMAGE (1<<2) -#define TESLA_MOB_DAMAGE (1<<3) -#define TESLA_MOB_STUN (1<<4) +#define ZAP_MACHINE_EXPLOSIVE (1<<0) +#define ZAP_ALLOW_DUPLICATES (1<<1) +#define ZAP_OBJ_DAMAGE (1<<2) +#define ZAP_MOB_DAMAGE (1<<3) +#define ZAP_MOB_STUN (1<<4) -#define TESLA_DEFAULT_FLAGS ALL -#define TESLA_FUSION_FLAGS TESLA_OBJ_DAMAGE | TESLA_MOB_DAMAGE | TESLA_MOB_STUN +#define ZAP_DEFAULT_FLAGS ALL +#define ZAP_FUSION_FLAGS ZAP_OBJ_DAMAGE | ZAP_MOB_DAMAGE | ZAP_MOB_STUN +#define ZAP_SUPERMATTER_FLAGS NONE //EMP protection #define EMP_PROTECT_SELF (1<<0) @@ -119,3 +137,27 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define MOBILITY_FLAGS_DEFAULT (MOBILITY_MOVE | MOBILITY_STAND | MOBILITY_PICKUP | MOBILITY_USE | MOBILITY_UI | MOBILITY_STORAGE | MOBILITY_PULL | MOBILITY_RESIST) #define MOBILITY_FLAGS_ANY_INTERACTION (MOBILITY_USE | MOBILITY_PICKUP | MOBILITY_UI | MOBILITY_STORAGE) + +// melee_attack_chain() attackchain_flags +/// The attack is from a parry counterattack. +#define ATTACKCHAIN_PARRY_COUNTERATTACK (1<<0) + +/// If the thing can reflect light (lasers/energy) +#define RICOCHET_SHINY (1<<0) +/// If the thing can reflect matter (bullets/bomb shrapnel) +#define RICOCHET_HARD (1<<1) + +#define KEEP_TOGETHER_ORIGINAL "keep_together_original" + +//setter for KEEP_TOGETHER to allow for multiple sources to set and unset it +#define ADD_KEEP_TOGETHER(x, source)\ + if ((x.appearance_flags & KEEP_TOGETHER) && !HAS_TRAIT(x, TRAIT_KEEP_TOGETHER)) ADD_TRAIT(x, TRAIT_KEEP_TOGETHER, KEEP_TOGETHER_ORIGINAL); \ + ADD_TRAIT(x, TRAIT_KEEP_TOGETHER, source);\ + x.appearance_flags |= KEEP_TOGETHER + +#define REMOVE_KEEP_TOGETHER(x, source)\ + REMOVE_TRAIT(x, TRAIT_KEEP_TOGETHER, source);\ + if(HAS_TRAIT_FROM_ONLY(x, TRAIT_KEEP_TOGETHER, KEEP_TOGETHER_ORIGINAL))\ + REMOVE_TRAIT(x, TRAIT_KEEP_TOGETHER, KEEP_TOGETHER_ORIGINAL);\ + else if(!HAS_TRAIT(x, TRAIT_KEEP_TOGETHER))\ + x.appearance_flags &= ~KEEP_TOGETHER diff --git a/code/__DEFINES/_flags/item_flags.dm b/code/__DEFINES/_flags/item_flags.dm new file mode 100644 index 0000000000..b3b65bcf59 --- /dev/null +++ b/code/__DEFINES/_flags/item_flags.dm @@ -0,0 +1,55 @@ +// Flags for the item_flags var on /obj/item + +#define BEING_REMOVED (1<<0) +///is this item equipped into an inventory slot or hand of a mob? used for tooltips +#define IN_INVENTORY (1<<1) +///used for tooltips +#define FORCE_STRING_OVERRIDE (1<<2) +///Used by security bots to determine if this item is safe for public use. +#define NEEDS_PERMIT (1<<3) +#define SLOWS_WHILE_IN_HAND (1<<4) +///Stops you from putting things like an RCD or other items into an ORM or protolathe for materials. +#define NO_MAT_REDEMPTION (1<<5) +///When dropped, it calls qdel on itself +#define DROPDEL (1<<6) +///when an item has this it produces no "X has been hit by Y with Z" message in the default attackby() +#define NOBLUDGEON (1<<7) +///for all things that are technically items but used for various different stuff +#define ABSTRACT (1<<8) +///When players should not be able to change the slowdown of the item (Speed potions, ect) +#define IMMUTABLE_SLOW (1<<9) +///Tool commonly used for surgery: won't attack targets in an active surgical operation on help intent (in case of mistakes) +#define SURGICAL_TOOL (1<<10) +///Can be worn on certain slots (currently belt and id) that would otherwise require an uniform. +#define NO_UNIFORM_REQUIRED (1<<11) +///Damage when attacking people is not affected by combat mode. +#define NO_COMBAT_MODE_FORCE_MODIFIER (1<<12) +/// This item can be used to parry. Only a basic check used to determine if we should proceed with parry chain at all. +#define ITEM_CAN_PARRY (1<<13) +/// This item can be used in the directional blocking system. Only a basic check used to determine if we should proceed with directional block handling at all. +#define ITEM_CAN_BLOCK (1<<14) + +// Flags for the clothing_flags var on /obj/item/clothing + +#define LAVAPROTECT (1<<0) +#define STOPSPRESSUREDAMAGE (1<<1) //SUIT and HEAD items which stop pressure damage. To stop you taking all pressure damage you must have both a suit and head item with this flag. +#define BLOCK_GAS_SMOKE_EFFECT (1<<2) //blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY! +#define ALLOWINTERNALS (1<<3) //mask allows internals +#define NOSLIP (1<<4) //prevents from slipping on wet floors, in space etc +#define NOSLIP_ICE (1<<5) //prevents from slipping on frozen floors +#define THICKMATERIAL (1<<6) //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body. +#define VOICEBOX_TOGGLABLE (1<<7) //The voicebox in this clothing can be toggled. +#define VOICEBOX_DISABLED (1<<8) //The voicebox is currently turned off. +#define IGNORE_HAT_TOSS (1<<9) //Hats with negative effects when worn (i.e the tinfoil hat). +#define SCAN_REAGENTS (1<<10) // Allows helmets and glasses to scan reagents. + +// Flags for the organ_flags var on /obj/item/organ + +#define ORGAN_SYNTHETIC (1<<0) //Synthetic organs, or cybernetic organs. Reacts to EMPs and don't deteriorate or heal +#define ORGAN_FROZEN (1<<1) //Frozen organs, don't deteriorate +#define ORGAN_FAILING (1<<2) //Failing organs perform damaging effects until replaced or fixed +#define ORGAN_EXTERNAL (1<<3) //Was this organ implanted/inserted/etc, if true will not be removed during species change. +#define ORGAN_VITAL (1<<4) //Currently only the brain +#define ORGAN_NO_SPOIL (1<<5) //Do not spoil under any circumstances +#define ORGAN_NO_DISMEMBERMENT (1<<6) //Immune to disembowelment. +#define ORGAN_EDIBLE (1<<5) //is a snack? :D \ No newline at end of file diff --git a/code/__DEFINES/_flags/obj_flags.dm b/code/__DEFINES/_flags/obj_flags.dm new file mode 100644 index 0000000000..ebb9b4bda0 --- /dev/null +++ b/code/__DEFINES/_flags/obj_flags.dm @@ -0,0 +1,15 @@ +// Flags for the obj_flags var on /obj + +#define EMAGGED (1<<0) +#define IN_USE (1<<1) //If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING! +#define CAN_BE_HIT (1<<2) //can this be bludgeoned by items? +#define BEING_SHOCKED (1<<3) //Whether this thing is currently (already) being shocked by a tesla +#define DANGEROUS_POSSESSION (1<<4) //Admin possession yes/no +#define ON_BLUEPRINTS (1<<5) //Are we visible on the station blueprints at roundstart? +#define UNIQUE_RENAME (1<<6) //can you customize the description/name of the thing? +#define USES_TGUI (1<<7) //put on things that use tgui on ui_interact instead of custom/old UI. +#define FROZEN (1<<8) +#define SHOVABLE_ONTO (1<<9) //called on turf.shove_act() to consider whether an object should have a niche effect (defined in their own shove_act()) when someone is pushed onto it, or do a sanity CanPass() check. +#define BLOCK_Z_FALL (1<<10) + +// If you add new ones, be sure to add them to /obj/Initialize as well for complete mapping support diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index 0b46f21a97..e8e75c132a 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -83,10 +83,3 @@ #define SPAM_TRIGGER_WARNING 5 //Number of identical messages required before the spam-prevention will warn you to stfu #define SPAM_TRIGGER_AUTOMUTE 10 //Number of identical messages required before the spam-prevention will automute you - -///Max length of a keypress command before it's considered to be a forged packet/bogus command -#define MAX_KEYPRESS_COMMANDLENGTH 16 -///Max amount of keypress messages per second over two seconds before client is autokicked -#define MAX_KEYPRESS_AUTOKICK 100 -///Length of max held keys -#define MAX_HELD_KEYS 15 diff --git a/code/__DEFINES/admin/keybindings.dm b/code/__DEFINES/admin/keybindings.dm new file mode 100644 index 0000000000..3efc26c7d5 --- /dev/null +++ b/code/__DEFINES/admin/keybindings.dm @@ -0,0 +1,18 @@ +// Defines for managed input/keybinding system. +/// Max length of a keypress command before it's considered to be a forged packet/bogus command +#define MAX_KEYPRESS_COMMANDLENGTH 16 +/// Maximum keys that can be bound to one button +#define MAX_COMMANDS_PER_KEY 5 +/// Maximum keys per keybind +#define MAX_KEYS_PER_KEYBIND 3 +/// Max amount of keypress messages per second over two seconds before client is autokicked +#define MAX_KEYPRESS_AUTOKICK 100 +/// Max keys that can be held down at once by a client +#define MAX_HELD_KEYS 15 + +/// Macroset name of hotkeys/keybind only/modern mode +#define SKIN_MACROSET_HOTKEYS "hotkeys" +/// Macroset name of classic hotkey mode +#define SKIN_MACROSET_CLASSIC_HOTKEYS "oldhotkeys" +/// Macroset name of classic input mode +#define SKIN_MACROSET_CLASSIC_INPUT "oldinput" diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index ea380cf49b..b883a54209 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -11,6 +11,17 @@ #define NUKE_RESULT_WRONG_STATION 7 #define NUKE_RESULT_WRONG_STATION_DEAD 8 +//fugitive end results +#define FUGITIVE_RESULT_BADASS_HUNTER 0 +#define FUGITIVE_RESULT_POSTMORTEM_HUNTER 1 +#define FUGITIVE_RESULT_MAJOR_HUNTER 2 +#define FUGITIVE_RESULT_HUNTER_VICTORY 3 +#define FUGITIVE_RESULT_MINOR_HUNTER 4 +#define FUGITIVE_RESULT_STALEMATE 5 +#define FUGITIVE_RESULT_MINOR_FUGITIVE 6 +#define FUGITIVE_RESULT_FUGITIVE_VICTORY 7 +#define FUGITIVE_RESULT_MAJOR_FUGITIVE 8 + #define APPRENTICE_DESTRUCTION "destruction" #define APPRENTICE_BLUESPACE "bluespace" #define APPRENTICE_ROBELESS "robeless" diff --git a/code/__DEFINES/atom_hud.dm b/code/__DEFINES/atom_hud.dm index 322a150617..01f14c748e 100644 --- a/code/__DEFINES/atom_hud.dm +++ b/code/__DEFINES/atom_hud.dm @@ -59,6 +59,7 @@ #define ANTAG_HUD_CLOCKWORK 22 #define ANTAG_HUD_BROTHER 23 #define ANTAG_HUD_BLOODSUCKER 24 +#define ANTAG_HUD_FUGITIVE 25 // Notification action types #define NOTIFY_JUMP "jump" diff --git a/code/__DEFINES/cargo.dm b/code/__DEFINES/cargo.dm index 52a2d56697..bba5b5c5ed 100644 --- a/code/__DEFINES/cargo.dm +++ b/code/__DEFINES/cargo.dm @@ -32,4 +32,8 @@ list("", "\improper S.T.E.A.L.T.H. pod MKVII", "A supply pod that, under normal circumstances, is completely invisible to conventional methods of detection. How are you even seeing this?"),\ list("gondolapod", "gondola", "The silent walker. This one seems to be part of a delivery agency."),\ list("", "", "")\ -) \ No newline at end of file +) + +#define PACK_GOODY_NONE 0 +#define PACK_GOODY_PUBLIC 1 //can be bought by both privates and cargo +#define PACK_GOODY_PRIVATE 2 //can be bought only by privates \ No newline at end of file diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm index 82dc87e465..07f24fd8a3 100644 --- a/code/__DEFINES/citadel_defines.dm +++ b/code/__DEFINES/citadel_defines.dm @@ -101,8 +101,5 @@ #define TOGGLES_CITADEL 0 -//component stuff -#define COMSIG_VORE_TOGGLED "voremode_toggled" // totally not copypasta - //belly sound pref things #define NORMIE_HEARCHECK 4 diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index 6ef8b07ddd..dff52f4748 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -29,38 +29,38 @@ #define EFFECT_DROWSY "drowsy" #define EFFECT_JITTER "jitter" -// /mob/living/combat_flags -#define CAN_TOGGLE_COMBAT_MODE(mob) FORCE_BOOLEAN((mob.stat == CONSCIOUS) && !(mob.combat_flags & COMBAT_FLAG_HARD_STAMCRIT)) +// mob/living/var/combat_flags variable. +/// Default combat flags for those affected by sprinting (combat mode has been made into its own component) +#define COMBAT_FLAGS_DEFAULT (COMBAT_FLAG_PARRY_CAPABLE | COMBAT_FLAG_BLOCK_CAPABLE) +/// Default combat flags for everyone else (so literally everyone but humans). +#define COMBAT_FLAGS_SPRINT_EXEMPT (COMBAT_FLAG_SPRINT_ACTIVE | COMBAT_FLAG_SPRINT_TOGGLED | COMBAT_FLAG_SPRINT_FORCED | COMBAT_FLAG_PARRY_CAPABLE | COMBAT_FLAG_BLOCK_CAPABLE) -/// Default combat flags for those affected by ((stamina combat)) -#define COMBAT_FLAGS_DEFAULT NONE -/// Default combat flags for everyone else (so literally everyone but humans) -#define COMBAT_FLAGS_STAMSYSTEM_EXEMPT (COMBAT_FLAG_SPRINT_ACTIVE | COMBAT_FLAG_COMBAT_ACTIVE | COMBAT_FLAG_SPRINT_TOGGLED | COMBAT_FLAG_COMBAT_TOGGLED | COMBAT_FLAG_SPRINT_FORCED | COMBAT_FLAG_COMBAT_FORCED) -/// Default combat flags for those only affected by sprint (so just silicons) -#define COMBAT_FLAGS_STAMEXEMPT_YESSPRINT (COMBAT_FLAG_COMBAT_ACTIVE | COMBAT_FLAG_COMBAT_TOGGLED | COMBAT_FLAG_COMBAT_FORCED) - -/// The user wants combat mode on -#define COMBAT_FLAG_COMBAT_TOGGLED (1<<0) /// The user wants sprint mode on -#define COMBAT_FLAG_SPRINT_TOGGLED (1<<1) -/// Combat mode is currently active -#define COMBAT_FLAG_COMBAT_ACTIVE (1<<2) +#define COMBAT_FLAG_SPRINT_TOGGLED (1<<0) /// Sprint is currently active -#define COMBAT_FLAG_SPRINT_ACTIVE (1<<3) +#define COMBAT_FLAG_SPRINT_ACTIVE (1<<1) /// Currently attempting to crawl under someone -#define COMBAT_FLAG_ATTEMPTING_CRAWL (1<<4) +#define COMBAT_FLAG_ATTEMPTING_CRAWL (1<<2) /// Currently stamcritted -#define COMBAT_FLAG_HARD_STAMCRIT (1<<5) +#define COMBAT_FLAG_HARD_STAMCRIT (1<<3) /// Currently attempting to resist up from the ground -#define COMBAT_FLAG_RESISTING_REST (1<<6) +#define COMBAT_FLAG_RESISTING_REST (1<<4) /// Intentionally resting -#define COMBAT_FLAG_INTENTIONALLY_RESTING (1<<7) +#define COMBAT_FLAG_INTENTIONALLY_RESTING (1<<5) /// Currently stamcritted but not as violently -#define COMBAT_FLAG_SOFT_STAMCRIT (1<<8) -/// Force combat mode on at all times, overrides everything including combat disable traits. -#define COMBAT_FLAG_COMBAT_FORCED (1<<9) +#define COMBAT_FLAG_SOFT_STAMCRIT (1<<6) /// Force sprint mode on at all times, overrides everything including sprint disable traits. -#define COMBAT_FLAG_SPRINT_FORCED (1<<10) +#define COMBAT_FLAG_SPRINT_FORCED (1<<7) +/// This mob is capable of using the active parrying system. +#define COMBAT_FLAG_PARRY_CAPABLE (1<<8) +/// This mob is capable of using the active blocking system. +#define COMBAT_FLAG_BLOCK_CAPABLE (1<<9) +/// This mob is capable of unarmed parrying +#define COMBAT_FLAG_UNARMED_PARRY (1<<10) +/// This mob is currently actively blocking +#define COMBAT_FLAG_ACTIVE_BLOCKING (1<<11) +/// This mob is currently starting an active block +#define COMBAT_FLAG_ACTIVE_BLOCK_STARTING (1<<12) // Helpers for getting someone's stamcrit state. Cast to living. #define NOT_STAMCRIT 0 @@ -72,10 +72,18 @@ #define CHECK_STAMCRIT(mob) ((mob.combat_flags & COMBAT_FLAG_HARD_STAMCRIT)? HARD_STAMCRIT : ((mob.combat_flags & COMBAT_FLAG_SOFT_STAMCRIT)? SOFT_STAMCRIT : NOT_STAMCRIT)) //stamina stuff -#define STAMINA_SOFTCRIT 100 //softcrit for stamina damage. prevents standing up, prevents performing actions that cost stamina, etc, but doesn't force a rest or stop movement -#define STAMINA_CRIT 140 //crit for stamina damage. forces a rest, and stops movement until stamina goes back to stamina softcrit -#define STAMINA_SOFTCRIT_TRADITIONAL 0 //same as STAMINA_SOFTCRIT except for the more traditional health calculations -#define STAMINA_CRIT_TRADITIONAL -40 //ditto, but for STAMINA_CRIT +///Threshold over which attacks start being hindered. +#define STAMINA_NEAR_SOFTCRIT 90 +///softcrit for stamina damage. prevents standing up, some actions that cost stamina, etc, but doesn't force a rest or stop movement +#define STAMINA_SOFTCRIT 100 +///sanity cap to prevent stamina actions (that are still performable) from sending you into crit. +#define STAMINA_NEAR_CRIT 130 +///crit for stamina damage. forces a rest, and stops movement until stamina goes back to stamina softcrit +#define STAMINA_CRIT 140 +///same as STAMINA_SOFTCRIT except for the more traditional health calculations +#define STAMINA_SOFTCRIT_TRADITIONAL 0 +///ditto, but for STAMINA_CRIT +#define STAMINA_CRIT_TRADITIONAL -40 #define CRAWLUNDER_DELAY 30 //Delay for crawling under a standing mob @@ -115,18 +123,6 @@ #define GRAB_NECK 2 #define GRAB_KILL 3 -/// Attack types for check_block()/run_block(). Flags, combinable. -/// Attack was melee, whether or not armed. -#define ATTACK_TYPE_MELEE (1<<0) -/// Attack was with a gun or something that should count as a gun (but not if a gun shouldn't count for a gun, crazy right?) -#define ATTACK_TYPE_PROJECTILE (1<<1) -/// Attack was unarmed.. this usually means hand to hand combat. -#define ATTACK_TYPE_UNARMED (1<<2) -/// Attack was a thrown atom hitting the victim. -#define ATTACK_TYPE_THROWN (1<<3) -/// Attack was a bodyslam/leap/tackle. See: Xenomorph leap tackles. -#define ATTACK_TYPE_TACKLE (1<<4) - //attack visual effects #define ATTACK_EFFECT_PUNCH "punch" #define ATTACK_EFFECT_KICK "kick" @@ -167,9 +163,8 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list( /obj/item/gun))) -//Combat object defines - //Embedded objects + #define EMBEDDED_PAIN_CHANCE 15 //Chance for embedded objects to cause pain (damage user) #define EMBEDDED_ITEM_FALLOUT 5 //Chance for embedded object to fall out (causing pain but removing the object) #define EMBED_CHANCE 45 //Chance for an object to embed into somebody when thrown (if it's sharp) @@ -178,7 +173,16 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list( #define EMBEDDED_IMPACT_PAIN_MULTIPLIER 4 //Coefficient of multiplication for the damage the item does when it first embeds (this*item.w_class) #define EMBED_THROWSPEED_THRESHOLD 4 //The minimum value of an item's throw_speed for it to embed (Unless it has embedded_ignore_throwspeed_threshold set to 1) #define EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER 8 //Coefficient of multiplication for the damage the item does when removed without a surgery (this*item.w_class) -#define EMBEDDED_UNSAFE_REMOVAL_TIME 150 //A Time in ticks, total removal time = (this/item.w_class) +#define EMBEDDED_UNSAFE_REMOVAL_TIME 30 //A Time in ticks, total removal time = (this*item.w_class) +#define EMBEDDED_JOSTLE_CHANCE 5 //Chance for embedded objects to cause pain every time they move (jostle) +#define EMBEDDED_JOSTLE_PAIN_MULTIPLIER 1 //Coefficient of multiplication for the damage the item does while +#define EMBEDDED_PAIN_STAM_PCT 0.0 //This percentage of all pain will be dealt as stam damage rather than brute (0-1) +#define EMBED_CHANCE_TURF_MOD -15 //You are this many percentage points less likely to embed into a turf (good for things glass shards and spears vs walls) + +#define EMBED_HARMLESS list("pain_mult" = 0, "jostle_pain_mult" = 0, "ignore_throwspeed_threshold" = TRUE) +#define EMBED_HARMLESS_SUPERIOR list("pain_mult" = 0, "jostle_pain_mult" = 0, "ignore_throwspeed_threshold" = TRUE, "embed_chance" = 100, "fall_chance" = 0.1) +#define EMBED_POINTY list("ignore_throwspeed_threshold" = TRUE) +#define EMBED_POINTY_SUPERIOR list("embed_chance" = 100, "ignore_throwspeed_threshold" = TRUE) //Gun weapon weight #define WEAPON_LIGHT 1 @@ -193,6 +197,17 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list( #define EGUN_SELFCHARGE 1 #define EGUN_SELFCHARGE_BORG 2 +//Gun suppression +#define SUPPRESSED_NONE 0 +#define SUPPRESSED_QUIET 1 ///standard suppressed +#define SUPPRESSED_VERY 2 /// no message + +//Nice shot bonus +#define NICE_SHOT_RICOCHET_BONUS 10 //if the shooter has the NICE_SHOT trait and they fire a ricocheting projectile, add this to the ricochet chance and auto aim angle + +///Time to spend without clicking on other things required for your shots to become accurate. +#define GUN_AIMING_TIME (2 SECONDS) + //Object/Item sharpness #define IS_BLUNT 0 #define IS_SHARP 1 @@ -254,76 +269,30 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list( //stamina cost defines. #define STAM_COST_ATTACK_OBJ_MULT 1.2 -#define STAM_COST_ATTACK_MOB_MULT 0.8 +#define STAM_COST_ATTACK_MOB_MULT 1 #define STAM_COST_BATON_MOB_MULT 1 #define STAM_COST_NO_COMBAT_MULT 1.25 #define STAM_COST_W_CLASS_MULT 1.25 #define STAM_COST_THROW_MULT 2 +#define STAM_COST_THROW_MOB 2.5 //multiplied by (mob size + 1)^2. +///Multiplier of the (STAMINA_NEAR_CRIT - user current stamina loss) : (STAMINA_NEAR_CRIT - STAMINA_SOFTCRIT) ratio used in damage penalties when stam soft-critted. +#define STAM_CRIT_ITEM_ATTACK_PENALTY 0.66 +/// changeNext_move penalty multiplier of the above. +#define STAM_CRIT_ITEM_ATTACK_DELAY 1.75 +/// Damage penalty when fighting prone. +#define LYING_DAMAGE_PENALTY 0.5 +/// Added delay when firing guns stam-softcritted. Summed with a hardset CLICK_CD_RANGE delay, similar to STAM_CRIT_DAMAGE_DELAY otherwise. +#define STAM_CRIT_GUN_DELAY 2.75 -//bullet_act() return values -#define BULLET_ACT_HIT "HIT" //It's a successful hit, whatever that means in the context of the thing it's hitting. -#define BULLET_ACT_BLOCK "BLOCK" //It's a blocked hit, whatever that means in the context of the thing it's hitting. -#define BULLET_ACT_FORCE_PIERCE "PIERCE" //It pierces through the object regardless of the bullet being piercing by default. -#define BULLET_ACT_TURF "TURF" //It hit us but it should hit something on the same turf too. Usually used for turfs. +//stamina recovery defines. Blocked if combat mode is on. +#define STAM_RECOVERY_STAM_CRIT -7.5 +#define STAM_RECOVERY_RESTING -6 +#define STAM_RECOVERY_NORMAL -3 +#define STAM_RECOVERY_LIMB 4 //limbs recover stamina separately from handle_status_effects(), and aren't blocked by combat mode. -/// Check whether or not we can block, without "triggering" a block. Basically run checks without effects like depleting shields. -/// Wrapper for do_run_block(). The arguments on that means the same as for this. -#define mob_check_block(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list)\ - do_run_block(FALSE, object, damage, attack_text, attack_type, armour_penetration, attacker, check_zone(def_zone), return_list) - -/// Runs a block "sequence", effectively checking and then doing effects if necessary. -/// Wrapper for do_run_block(). The arguments on that means the same as for this. -#define mob_run_block(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list)\ - do_run_block(TRUE, object, damage, attack_text, attack_type, armour_penetration, attacker, check_zone(def_zone), return_list) - -/// Bitflags for check_block() and run_block(). Meant to be combined. You can be hit and still reflect, for example, if you do not use BLOCK_SUCCESS. -/// Attack was not blocked -#define BLOCK_NONE NONE -/// Attack was blocked, do not do damage. THIS FLAG MUST BE THERE FOR DAMAGE/EFFECT PREVENTION! -#define BLOCK_SUCCESS (1<<1) - -/// The below are for "metadata" on "how" the attack was blocked. - -/// Attack was and should be redirected according to list argument REDIRECT_METHOD (NOTE: the SHOULD here is important, as it says "the thing blocking isn't handling the reflecting for you so do it yourself"!) -#define BLOCK_SHOULD_REDIRECT (1<<2) -/// Attack was redirected (whether by us or by SHOULD_REDIRECT flagging for automatic handling) -#define BLOCK_REDIRECTED (1<<3) -/// Attack was blocked by something like a shield. -#define BLOCK_PHYSICAL_EXTERNAL (1<<4) -/// Attack was blocked by something worn on you. -#define BLOCK_PHYSICAL_INTERNAL (1<<5) -/// Attack outright missed because the target dodged. Should usually be combined with redirection passthrough or something (see martial arts) -#define BLOCK_TARGET_DODGED (1<<7) -/// Meta-flag for run_block/do_run_block : By default, BLOCK_SUCCESS tells do_run_block() to assume the attack is completely blocked and not continue the block chain. If this is present, it will continue to check other items in the chain rather than stopping. -#define BLOCK_CONTINUE_CHAIN (1<<8) - -/// For keys in associative list/block_return as we don't want to saturate our (somewhat) limited flags. -#define BLOCK_RETURN_REDIRECT_METHOD "REDIRECT_METHOD" - /// Pass through victim - #define REDIRECT_METHOD_PASSTHROUGH "passthrough" - /// Deflect at randomish angle - #define REDIRECT_METHOD_DEFLECT "deflect" - /// reverse 180 angle, basically (as opposed to "realistic" wall reflections) - #define REDIRECT_METHOD_REFLECT "reflect" - /// "do not taser the bad man with the desword" - actually aims at the firer/attacker rather than just reversing - #define REDIRECT_METHOD_RETURN_TO_SENDER "no_you" - -/// These keys are generally only applied to the list if real_attack is FALSE. Used incase we want to make "smarter" mob AI in the future or something. -/// Tells the caller how likely from 0 (none) to 100 (always) we are to reflect energy projectiles -#define BLOCK_RETURN_REFLECT_PROJECTILE_CHANCE "reflect_projectile_chance" -/// Tells the caller how likely we are to block attacks from 0 to 100 in general -#define BLOCK_RETURN_NORMAL_BLOCK_CHANCE "normal_block_chance" -/// Tells the caller about how many hits we can soak on average before our blocking fails. -#define BLOCK_RETURN_BLOCK_CAPACITY "block_capacity" - -/// Default if the above isn't set in the list. -#define DEFAULT_REDIRECT_METHOD_PROJECTILE REDIRECT_METHOD_DEFLECT - -/// Block priorities -#define BLOCK_PRIORITY_HELD_ITEM 100 -#define BLOCK_PRIORITY_WEAR_SUIT 75 -#define BLOCK_PRIORITY_CLOTHING 50 -#define BLOCK_PRIORITY_UNIFORM 25 - -#define BLOCK_PRIORITY_DEFAULT BLOCK_PRIORITY_HELD_ITEM +/** + * should the current-attack-damage be lower than the item force multiplied by this value, + * a "inefficiently" prefix will be added to the message. + */ +#define FEEBLE_ATTACK_MSG_THRESHOLD 0.5 diff --git a/code/__DEFINES/combat/attack_types.dm b/code/__DEFINES/combat/attack_types.dm new file mode 100644 index 0000000000..a401c0f2ee --- /dev/null +++ b/code/__DEFINES/combat/attack_types.dm @@ -0,0 +1,32 @@ +// Attack types for check_block()/run_block(). Flags, combinable. +/// Attack was melee, whether or not armed. +#define ATTACK_TYPE_MELEE (1<<0) +/// Attack was with a gun or something that should count as a gun (but not if a gun shouldn't count for a gun, crazy right?) +#define ATTACK_TYPE_PROJECTILE (1<<1) +/// Attack was unarmed.. this usually means hand to hand combat. +#define ATTACK_TYPE_UNARMED (1<<2) +/// Attack was a thrown atom hitting the victim. +#define ATTACK_TYPE_THROWN (1<<3) +/// Attack was a bodyslam/leap/tackle. See: Xenomorph leap tackles. +#define ATTACK_TYPE_TACKLE (1<<4) +/// Attack was from a parry counterattack. Do not attempt to parry-this! +#define ATTACK_TYPE_PARRY_COUNTERATTACK (1<<5) + +// Requires for datum definitions to not error with must be a constant statement when used in lists as text associative keys. +// KEEP IN SYNC WITH ABOVE! + +#define TEXT_ATTACK_TYPE_MELEE "1" +#define TEXT_ATTACK_TYPE_PROJECTILE "2" +#define TEXT_ATTACK_TYPE_UNARMED "4" +#define TEXT_ATTACK_TYPE_THROWN "8" +#define TEXT_ATTACK_TYPE_TACKLE "16" +#define TEXT_ATTACK_TYPE_PARRY_COUNTERATTACK "32" + +GLOBAL_LIST_INIT(attack_type_names, list( + TEXT_ATTACK_TYPE_MELEE = "Melee", + TEXT_ATTACK_TYPE_PROJECTILE = "Projectile", + TEXT_ATTACK_TYPE_UNARMED = "Unarmed", + TEXT_ATTACK_TYPE_THROWN = "Thrown", + TEXT_ATTACK_TYPE_TACKLE = "Tackle", + TEXT_ATTACK_TYPE_PARRY_COUNTERATTACK = "Parry Counterattack" +)) diff --git a/code/__DEFINES/combat/block.dm b/code/__DEFINES/combat/block.dm new file mode 100644 index 0000000000..bc85947d71 --- /dev/null +++ b/code/__DEFINES/combat/block.dm @@ -0,0 +1,80 @@ +/// Check whether or not we can block, without "triggering" a block. Basically run checks without effects like depleting shields. +/// Wrapper for do_run_block(). The arguments on that means the same as for this. +#define mob_check_block(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list)\ + do_run_block(FALSE, object, damage, attack_text, attack_type, armour_penetration, attacker, check_zone(def_zone), return_list) + +/// Runs a block "sequence", effectively checking and then doing effects if necessary. +/// Wrapper for do_run_block(). The arguments on that means the same as for this. +#define mob_run_block(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list)\ + do_run_block(TRUE, object, damage, attack_text, attack_type, armour_penetration, attacker, check_zone(def_zone), return_list) + +// Don't ask why there's block_parry.dm and this. This is for the run_block() system, which is the "parent" system of the directional block and parry systems. + +/// Bitflags for check_block() and handle_block(). Meant to be combined. You can be hit and still reflect, for example, if you do not use BLOCK_SUCCESS. +/// Attack was not blocked +#define BLOCK_NONE NONE +/// Attack was blocked, do not do damage. THIS FLAG MUST BE THERE FOR DAMAGE/EFFECT PREVENTION! +#define BLOCK_SUCCESS (1<<1) + +/// The below are for "metadata" on "how" the attack was blocked. + +/// Attack was and should be redirected according to list argument REDIRECT_METHOD (NOTE: the SHOULD here is important, as it says "the thing blocking isn't handling the reflecting for you so do it yourself"!) +#define BLOCK_SHOULD_REDIRECT (1<<2) +/// Attack was redirected (whether by us or by SHOULD_REDIRECT flagging for automatic handling) +#define BLOCK_REDIRECTED (1<<3) +/// Attack was blocked by something like a shield. +#define BLOCK_PHYSICAL_EXTERNAL (1<<4) +/// Attack was blocked by something worn on you. +#define BLOCK_PHYSICAL_INTERNAL (1<<5) +/// Attack outright missed because the target dodged. Should usually be combined with redirection passthrough or something (see martial arts) +#define BLOCK_TARGET_DODGED (1<<7) +/// Meta-flag for run_block/do_run_block : By default, BLOCK_SUCCESS tells do_run_block() to assume the attack is completely blocked and not continue the block chain. If this is present, it will continue to check other items in the chain rather than stopping. +#define BLOCK_CONTINUE_CHAIN (1<<8) +/// Attack should change the amount of damage incurred. This means something calling run_block() has to handle it! +#define BLOCK_SHOULD_CHANGE_DAMAGE (1<<9) +/// Attack should scale by this percent, 0 for no block and 100 for full blocked +#define BLOCK_SHOULD_PARTIAL_MITIGATE (1<<10) + +/// For keys in associative list/block_return as we don't want to saturate our (somewhat) limited flags. +#define BLOCK_RETURN_REDIRECT_METHOD "REDIRECT_METHOD" + /// Pass through victim + #define REDIRECT_METHOD_PASSTHROUGH "passthrough" + /// Deflect at randomish angle + #define REDIRECT_METHOD_DEFLECT "deflect" + /// reverse 180 angle, basically (as opposed to "realistic" wall reflections) + #define REDIRECT_METHOD_REFLECT "reflect" + /// "do not taser the bad man with the desword" - actually aims at the firer/attacker rather than just reversing + #define REDIRECT_METHOD_RETURN_TO_SENDER "no_you" + +/// These keys are generally only applied to the list if real_attack is FALSE. Used incase we want to make "smarter" mob AI in the future or something. +/// Tells the caller how likely from 0 (none) to 100 (always) we are to reflect energy projectiles +#define BLOCK_RETURN_REFLECT_PROJECTILE_CHANCE "reflect_projectile_chance" +/// Tells the caller how likely we are to block attacks from 0 to 100 in general +#define BLOCK_RETURN_NORMAL_BLOCK_CHANCE "normal_block_chance" +/// Tells the caller about how many hits we can soak on average before our blocking fails. +#define BLOCK_RETURN_BLOCK_CAPACITY "block_capacity" +/// Tells the caller we got blocked by active directional block. +#define BLOCK_RETURN_ACTIVE_BLOCK "active_block" +/// Tells the caller our damage mitigation for their attack. +#define BLOCK_RETURN_ACTIVE_BLOCK_DAMAGE_MITIGATED "damage_mitigated" +/// For [BLOCK_CHANGE_DAMAGE]. Set damage to this. +#define BLOCK_RETURN_SET_DAMAGE_TO "set_damage_to" +/// For [BLOCK_SHOULD_PARTIAL_MITIGATE]. Percentage mitigation. +#define BLOCK_RETURN_MITIGATION_PERCENT "partial_mitigation" +/// Used internally by run_parry proc, use on an on_active_parry() proc to override parrying efficiency. +#define BLOCK_RETURN_OVERRIDE_PARRY_EFFICIENCY "override_parry_efficiency" +/// Always set to 100 by run_block() if BLOCK_SUCCESS is in return value. Otherwise, defaults to mitigation percent if not set. Used by projectile/proc/on_hit(). +#define BLOCK_RETURN_PROJECTILE_BLOCK_PERCENTAGE "projectile_block_percentage" + +/// Default if the above isn't set in the list. +#define DEFAULT_REDIRECT_METHOD_PROJECTILE REDIRECT_METHOD_DEFLECT + +/// Block priorities. Higher means it's checked sooner. +// THESE MUST NEVER BE 0! Block code uses ! instead of isnull for the speed boost. +#define BLOCK_PRIORITY_ACTIVE_BLOCK 200 +#define BLOCK_PRIORITY_HELD_ITEM 100 +#define BLOCK_PRIORITY_CLOTHING 50 +#define BLOCK_PRIORITY_WEAR_SUIT 75 +#define BLOCK_PRIORITY_UNIFORM 25 + +#define BLOCK_PRIORITY_DEFAULT BLOCK_PRIORITY_HELD_ITEM diff --git a/code/__DEFINES/combat/block_parry.dm b/code/__DEFINES/combat/block_parry.dm new file mode 100644 index 0000000000..d48d7c8713 --- /dev/null +++ b/code/__DEFINES/combat/block_parry.dm @@ -0,0 +1,72 @@ +// We can't determine things like NORTHEAST vs NORTH *and* EAST without making our own flags :( +#define BLOCK_DIR_NORTH (1<<0) +#define BLOCK_DIR_NORTHEAST (1<<1) +#define BLOCK_DIR_NORTHWEST (1<<2) +#define BLOCK_DIR_WEST (1<<3) +#define BLOCK_DIR_EAST (1<<4) +#define BLOCK_DIR_SOUTH (1<<5) +#define BLOCK_DIR_SOUTHEAST (1<<6) +#define BLOCK_DIR_SOUTHWEST (1<<7) +#define BLOCK_DIR_ONTOP (1<<8) + +GLOBAL_LIST_INIT(dir2blockdir, list( + "[NORTH]" = BLOCK_DIR_NORTH, + "[NORTHEAST]" = BLOCK_DIR_NORTHEAST, + "[NORTHWEST]" = BLOCK_DIR_NORTHWEST, + "[WEST]" = BLOCK_DIR_WEST, + "[EAST]" = BLOCK_DIR_EAST, + "[SOUTH]" = BLOCK_DIR_SOUTH, + "[SOUTHEAST]" = BLOCK_DIR_SOUTHEAST, + "[SOUTHWEST]" = BLOCK_DIR_SOUTHWEST, + "[NONE]" = BLOCK_DIR_ONTOP + )) + +#define DIR2BLOCKDIR(d) (GLOB.dir2blockdir["[d]"]) + +GLOBAL_LIST_INIT(block_direction_names, list( + "[BLOCK_DIR_NORTH]" = "Front", + "[BLOCK_DIR_NORTHEAST]" = "Front Right", + "[BLOCK_DIR_NORTHWEST]" = "Front Left", + "[BLOCK_DIR_WEST]" = "Left", + "[BLOCK_DIR_EAST]" = "Right", + "[BLOCK_DIR_SOUTH]" = "Behind", + "[BLOCK_DIR_SOUTHEAST]" = "Behind Right", + "[BLOCK_DIR_SOUTHWEST]" = "Behind Left", + "[BLOCK_DIR_ONTOP]" = "Ontop" +)) + +/// If this is the value of active_block_starting it signals we want to interrupt the start +#define ACTIVE_BLOCK_STARTING_INTERRUPT "INTERRUPT" + +/// ""types"" of parry "items" +#define UNARMED_PARRY "unarmed" +#define MARTIAL_PARRY "martial" +#define ITEM_PARRY "item" + +/// Parry phase we're in +#define NOT_PARRYING 0 +#define PARRY_WINDUP 1 +#define PARRY_ACTIVE 2 +#define PARRY_SPINDOWN 3 + +// /datum/block_parry_data/var/parry_flags +/// Default handling for audio/visual feedback +#define PARRY_DEFAULT_HANDLE_FEEDBACK (1<<0) +/// Lock sprinting while parrying +#define PARRY_LOCK_SPRINTING (1<<1) +/// Lock attacking while parrying +#define PARRY_LOCK_ATTACKING (1<<2) + +/// Parry effects. +/// Automatically melee attacks back normally, LMB equivalent action of an harm intent attack. List association should be defaulting to 1, being the attack damage multiplier for said counterattack +#define PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN "melee_counterattack_chain" +/// List association should be TRUE. +#define PARRY_DISARM_ATTACKER "disarm_attacker" +/// List association should be duration or null for just plain knockdown. +#define PARRY_KNOCKDOWN_ATTACKER "knockdown_attacker" +/// List association should be duration. +#define PARRY_STAGGER_ATTACKER "stagger_attacker" +/// List association should be amount of time to daze attacker. +#define PARRY_DAZE_ATTACKER "daze_attacker" +/// Set to TRUE in list association to ignore adjacency checks +#define PARRY_COUNTERATTACK_IGNORE_ADJACENCY "ignore_adjacency" diff --git a/code/__DEFINES/construction.dm b/code/__DEFINES/construction.dm index 77ec97f47e..683681a9a6 100644 --- a/code/__DEFINES/construction.dm +++ b/code/__DEFINES/construction.dm @@ -67,8 +67,11 @@ //tablecrafting defines #define CAT_NONE "" #define CAT_WEAPONRY "Weaponry" -#define CAT_WEAPON "Weapons" +#define CAT_WEAPON "Ranged Weapons" +#define CAT_MELEE "Melee Weapons" +#define CAT_OTHER "Misc" #define CAT_AMMO "Ammunition" +#define CAT_PARTS "Weapon Parts" #define CAT_ROBOT "Robots" #define CAT_MISC "Misc" #define CAT_MISCELLANEOUS "Miscellaneous" @@ -103,4 +106,9 @@ #define RCD_COMPUTER 16 #define RCD_UPGRADE_FRAMES 1 -#define RCD_UPGRADE_SIMPLE_CIRCUITS 2 \ No newline at end of file +#define RCD_UPGRADE_SIMPLE_CIRCUITS 2 + +//Electrochromatic window defines. +#define NOT_ELECTROCHROMATIC 0 +#define ELECTROCHROMATIC_OFF 1 +#define ELECTROCHROMATIC_DIMMED 2 diff --git a/code/__DEFINES/cooldowns.dm b/code/__DEFINES/cooldowns.dm new file mode 100644 index 0000000000..29c7a25dad --- /dev/null +++ b/code/__DEFINES/cooldowns.dm @@ -0,0 +1,71 @@ +//// COOLDOWN SYSTEMS +/* + * We have 2 cooldown systems: timer cooldowns (divided between stoppable and regular) and world.time cooldowns. + * + * When to use each? + * + * * Adding a commonly-checked cooldown, like on a subsystem to check for processing + * * * Use the world.time ones, as they are cheaper. + * + * * Adding a rarely-used one for special situations, such as giving an uncommon item a cooldown on a target. + * * * Timer cooldown, as adding a new variable on each mob to track the cooldown of said uncommon item is going too far. + * + * * Triggering events at the end of a cooldown. + * * * Timer cooldown, registering to its signal. + * + * * Being able to check how long left for the cooldown to end. + * * * Either world.time or stoppable timer cooldowns, depending on the other factors. Regular timer cooldowns do not support this. + * + * * Being able to stop the timer before it ends. + * * * Either world.time or stoppable timer cooldowns, depending on the other factors. Regular timer cooldowns do not support this. +*/ + + +/* + * Cooldown system based on an datum-level associative lazylist using timers. +*/ + +//INDEXES +#define COOLDOWN_EMPLOYMENT_CABINET "employment cabinet" + + +//TIMER COOLDOWN MACROS + +#define COMSIG_CD_STOP(cd_index) "cooldown_[cd_index]" +#define COMSIG_CD_RESET(cd_index) "cd_reset_[cd_index]" + +#define TIMER_COOLDOWN_START(cd_source, cd_index, cd_time) LAZYSET(cd_source.cooldowns, cd_index, addtimer(CALLBACK(GLOBAL_PROC, /proc/end_cooldown, cd_source, cd_index), cd_time)) + +#define TIMER_COOLDOWN_CHECK(cd_source, cd_index) LAZYACCESS(cd_source.cooldowns, cd_index) + +#define TIMER_COOLDOWN_END(cd_source, cd_index) LAZYREMOVE(cd_source.cooldowns, cd_index) + +/* + * Stoppable timer cooldowns. + * Use indexes the same as the regular tiemr cooldowns. + * They make use of the TIMER_COOLDOWN_CHECK() and TIMER_COOLDOWN_END() macros the same, just not the TIMER_COOLDOWN_START() one. + * A bit more expensive than the regular timers, but can be reset before they end and the time left can be checked. +*/ + +#define S_TIMER_COOLDOWN_START(cd_source, cd_index, cd_time) LAZYSET(cd_source.cooldowns, cd_index, addtimer(CALLBACK(GLOBAL_PROC, /proc/end_cooldown, cd_source, cd_index), cd_time, TIMER_STOPPABLE)) + +#define S_TIMER_COOLDOWN_RESET(cd_source, cd_index) reset_cooldown(cd_source, cd_index) + +#define S_TIMER_COOLDOWN_TIMELEFT(cd_source, cd_index) (timeleft(TIMER_COOLDOWN_CHECK(cd_source, cd_index))) + + +/* + * Cooldown system based on storing world.time on a variable, plus the cooldown time. + * Better performance over timer cooldowns, lower control. Same functionality. +*/ + +#define COOLDOWN_DECLARE(cd_index) var/##cd_index = 0 + +#define COOLDOWN_START(cd_source, cd_index, cd_time) (cd_source.cd_index = world.time + cd_time) + +//Returns true if the cooldown has run its course, false otherwise +#define COOLDOWN_FINISHED(cd_source, cd_index) (cd_source.cd_index < world.time) + +#define COOLDOWN_RESET(cd_source, cd_index) cd_source.cd_index = 0 + +#define COOLDOWN_TIMELEFT(cd_source, cd_index) (max(0, cd_source.cd_index - world.time)) diff --git a/code/__DEFINES/dcs/flags.dm b/code/__DEFINES/dcs/flags.dm index 59c0c58b8d..2dbd4874d9 100644 --- a/code/__DEFINES/dcs/flags.dm +++ b/code/__DEFINES/dcs/flags.dm @@ -75,3 +75,11 @@ #define ID_COMPONENT_KNOWLEDGE_NONE 0 /// Has full knowledge #define ID_COMPONENT_KNOWLEDGE_FULL 1 + +// Combat mode flags. +/// The user wants combat mode on +#define COMBAT_MODE_TOGGLED (1<<0) +/// combat mode is active. +#define COMBAT_MODE_ACTIVE (1<<1) +/// combat mode is not active +#define COMBAT_MODE_INACTIVE (1<<2) \ No newline at end of file diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index c74a8cdb05..d9a6452f38 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -26,10 +26,16 @@ #define COMPONENT_ADD_TRAIT (1<<0) #define COMPONENT_REMOVE_TRAIT (1<<1) +/// fires on the target datum when an element is attached to it (/datum/element) +#define COMSIG_ELEMENT_ATTACH "element_attach" +/// fires on the target datum when an element is attached to it (/datum/element) +#define COMSIG_ELEMENT_DETACH "element_detach" + // /atom signals #define COMSIG_PARENT_ATTACKBY "atom_attackby" //from base of atom/attackby(): (/obj/item, /mob/living, params) #define COMPONENT_NO_AFTERATTACK 1 //Return this in response if you don't want afterattack to be called #define COMSIG_ATOM_HULK_ATTACK "hulk_attack" //from base of atom/attack_hulk(): (/mob/living/carbon/human) +#define COMSIG_ATOM_ATTACK_ANIMAL "attack_animal" //from base of atom/animal_attack(): (/mob/user) #define COMSIG_PARENT_EXAMINE "atom_examine" //from base of atom/examine(): (/mob, list/examine_return_text) #define COMSIG_ATOM_GET_EXAMINE_NAME "atom_examine_name" //from base of atom/get_examine_name(): (/mob, list/overrides) //Positions for overrides list @@ -89,7 +95,7 @@ #define COMSIG_EXIT_AREA "exit_area" //from base of area/Exited(): (/area) #define COMSIG_CLICK "atom_click" //from base of atom/Click(): (location, control, params, mob/user) -#define COMSIG_CLICK_SHIFT "shift_click" //from base of atom/ShiftClick(): (/mob) +#define COMSIG_CLICK_SHIFT "shift_click" //from base of atom/ShiftClick(): (/mob), return flags also used by other signals. #define COMPONENT_ALLOW_EXAMINATE 1 #define COMPONENT_DENY_EXAMINATE 2 //Higher priority compared to the above one @@ -135,19 +141,24 @@ #define HEARING_SPEAKER 2 // #define HEARING_LANGUAGE 3 #define HEARING_RAW_MESSAGE 4 - /* #define HEARING_RADIO_FREQ 5 - #define HEARING_SPANS 6 +// #define HEARING_RADIO_FREQ 5 +// #define HEARING_SPANS 6 #define HEARING_MESSAGE_MODE 7 - #define HEARING_SOURCE 8*/ +// #define HEARING_SOURCE 8 #define COMSIG_MOVABLE_DISPOSING "movable_disposing" //called when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source) #define COMSIG_MOVABLE_TELEPORTED "movable_teleported" //from base of do_teleport(): (channel, turf/origin, turf/destination) + // /mind signals #define COMSIG_PRE_MIND_TRANSFER "pre_mind_transfer" //from base of mind/transfer_to() before it's done: (new_character, old_character) #define COMPONENT_STOP_MIND_TRANSFER 1 //stops the mind transfer from happening. #define COMSIG_MIND_TRANSFER "mind_transfer" //from base of mind/transfer_to() when it's done: (new_character, old_character) // /mob signals -#define COMSIG_MOB_EXAMINATE "mob_examinate" //from base of /mob/verb/examinate(): (atom/A) +#define COMSIG_MOB_CLICKED_SHIFT_ON "mob_shift_click_on" //from base of /atom/ShiftClick(): (atom/A), for return values, see COMSIG_CLICK_SHIFT +#define COMSIG_MOB_FOV_VIEW "mob_visible_atoms" //from base of /mob/fov_view(): (list/visible_atoms) +#define COMSIG_MOB_POINTED "mob_pointed" //from base of /mob/verb/pointed(): (atom/A) +#define COMSIG_MOB_EXAMINATE "mob_examinate" //from base of /mob/verb/examinate(): (atom/A), for return values, see COMSIG_CLICK_SHIFT + #define COMPONENT_EXAMINATE_BLIND 3 //outputs the "something is there but you can't see it" message. #define COMSIG_MOB_DEATH "mob_death" //from base of mob/death(): (gibbed) #define COMPONENT_BLOCK_DEATH_BROADCAST 1 //stops the death from being broadcasted in deadchat. #define COMSIG_MOB_CLICKON "mob_clickon" //from base of mob/clickon(): (atom/A, params) @@ -181,30 +192,21 @@ #define SPEECH_LANGUAGE 5 // #define SPEECH_IGNORE_SPAM 6 // #define SPEECH_FORCED 7 +#define COMSIG_MOB_FOV_VIEWER "mob_is_viewer" //from base of /fov_viewers(): (atom/center, depth, viewers_list) +#define COMSIG_MOB_GET_VISIBLE_MESSAGE "mob_get_visible_message" //from base of atom/visible_message(): (atom/A, msg, range, ignored_mobs) + #define COMPONENT_NO_VISIBLE_MESSAGE 1 //exactly what's said on the tin. #define COMSIG_MOB_ANTAG_ON_GAIN "mob_antag_on_gain" //from base of /datum/antagonist/on_gain(): (antag_datum) #define COMSIG_MOB_SPELL_CAN_CAST "mob_spell_can_cast" //from base of /obj/effect/proc_holder/spell/can_cast(): (spell) +#define COMSIG_MOB_SWAP_HANDS "mob_swap_hands" //from base of mob/swap_hand(): (obj/item) + #define COMPONENT_BLOCK_SWAP 1 -#define COMSIG_MOB_ACTION_SKILL_MOD "mob_action_skill_mod" //from base of /datum/skill_holder/action_skills_mod() : (proc args list, list/mod_values) - #define ACTION_SKILL_MOD_SKILL 1 //redundancy. - #define ACTION_SKILL_MOD_VALUE 2 - #define ACTION_SKILL_MOD_THRESHOLD 3 - #define ACTION_SKILL_MOD_IS_MULTI 4 - //other mod values, kept separate from the args - #define MOD_VALUES_SKILL_MOD 1 - -#define COMSIG_MOB_ITEM_ACTION_SKILLS_MOD "mob_item_action_skills_mod" //from base of /datum/skill_holder/item_action_skills_mod() : (proc args list, mod_values) - #define ITEM_SKILLS_MOD_ITEM 1 //redundancy - #define ITEM_SKILLS_MOD_VALUE 2 - #define ITEM_SKILLS_MOD_FLAGS 3 - #define ITEM_SKILLS_MOD_BAD_FLAGS 4 - #define ITEM_SKILLS_MOD_IS_MULTI 5 - //other mod values, kept separate from the args - #define MOD_VALUES_ITEM_SKILLS_SUM 1 - #define MOD_VALUES_ITEM_SKILLS_DIV 2 - #define MOD_VALUES_ITEM_SKILLS_CHECKED 3 - -#define COMSIG_MOB_SKILL_GET_AFFINITY "mob_skill_get_affinity" //from base of /datum/skill_holder/get_skill_affinity(): (skill_path, list/return_value) +// /client signals +#define COMSIG_MOB_CLIENT_LOGIN "mob_client_login" //sent when a mob/login() finishes: (client) +#define COMSIG_MOB_CLIENT_LOGOUT "mob_client_logout" //sent when a mob/logout() starts: (client) +#define COMSIG_MOB_CLIENT_MOVE "mob_client_move" //sent when client/Move() finishes with no early returns: (client, direction, n, oldloc) +#define COMSIG_MOB_CLIENT_CHANGE_VIEW "mob_client_change_view" //from base of /client/change_view(): (client, old_view, view) +#define COMSIG_MOB_CLIENT_MOUSEMOVE "mob_client_mousemove" //from base of /client/MouseMove(): (object, location, control, params) // /mob/living signals #define COMSIG_LIVING_REGENERATE_LIMBS "living_regenerate_limbs" //from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs) @@ -212,18 +214,21 @@ #define COMSIG_LIVING_IGNITED "living_ignite" //from base of mob/living/IgniteMob() (/mob/living) #define COMSIG_LIVING_EXTINGUISHED "living_extinguished" //from base of mob/living/ExtinguishMob() (/mob/living) #define COMSIG_LIVING_ELECTROCUTE_ACT "living_electrocute_act" //from base of mob/living/electrocute_act(): (shock_damage, source, siemens_coeff, flags) +#define COMSIG_LIVING_SHOCK_PREVENTED "living_shock_prevented" //sent when items with siemen coeff. of 0 block a shock: (power_source, source, siemens_coeff, dist_check) #define COMSIG_LIVING_MINOR_SHOCK "living_minor_shock" //sent by stuff like stunbatons and tasers: () #define COMSIG_LIVING_REVIVE "living_revive" //from base of mob/living/revive() (full_heal, admin_revive) -#define COMSIG_MOB_CLIENT_LOGIN "comsig_mob_client_login" //sent when a mob/login() finishes: (client) -#define COMSIG_MOB_CLIENT_LOGOUT "comsig_mob_client_logout" //sent when a mob/logout() starts: (client) -#define COMSIG_MOB_CLIENT_MOVE "comsig_mob_client_move" //sent when client/Move() finishes with no early returns: (client, direction, n, oldloc) + +#define COMSIG_MOB_RESET_PERSPECTIVE "mob_reset_perspective" //from base of /mob/reset_perspective(): (atom/target) #define COMSIG_LIVING_GUN_PROCESS_FIRE "living_gun_process_fire" //from base of /obj/item/gun/proc/process_fire(): (atom/target, params, zone_override) // This returns flags as defined for block in __DEFINES/combat.dm! #define COMSIG_LIVING_RUN_BLOCK "living_do_run_block" //from base of mob/living/do_run_block(): (real_attack, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone) -#define COMSIG_LIVING_COMBAT_ENABLED "combatmode_enabled" //from base of mob/living/enable_combat_mode() (was_forced) -#define COMSIG_LIVING_COMBAT_DISABLED "combatmode_disabled" //from base of mob/living/disable_combat_mode() (was_forced) #define COMSIG_LIVING_GET_BLOCKING_ITEMS "get_blocking_items" //from base of mob/living/get_blocking_items(): (list/items) +#define COMSIG_LIVING_ACTIVE_BLOCK_START "active_block_start" //from base of mob/living/keybind_start_active_blocking(): (obj/item/blocking_item, list/backup_items) + #define COMPONENT_PREVENT_BLOCK_START 1 +#define COMSIG_LIVING_ACTIVE_PARRY_START "active_parry_start" //from base of mob/living/initiate_parry_sequence(): (parrying_method, datum/parrying_item_mob_or_art, list/backup_items) + #define COMPONENT_PREVENT_PARRY_START 1 + //ALL OF THESE DO NOT TAKE INTO ACCOUNT WHETHER AMOUNT IS 0 OR LOWER AND ARE SENT REGARDLESS! #define COMSIG_LIVING_STATUS_STUN "living_stun" //from base of mob/living/Stun() (amount, update, ignore) #define COMSIG_LIVING_STATUS_KNOCKDOWN "living_knockdown" //from base of mob/living/Knockdown() (amount, update, ignore) @@ -235,10 +240,20 @@ #define COMSIG_LIVING_STATUS_STAGGER "living_stagger" //from base of mob/living/Stagger() (amount, update, ignore) #define COMPONENT_NO_STUN 1 //For all of them +#define COMSIG_LIVING_LIFE "life_tick" //from base of mob/living/Life() (seconds, times_fired) + #define COMPONENT_INTERRUPT_LIFE_BIOLOGICAL 1 // interrupt biological processes + #define COMPONENT_INTERRUPT_LIFE_PHYSICAL 2 // interrupt physical handling + // /mob/living/carbon signals #define COMSIG_CARBON_SOUNDBANG "carbon_soundbang" //from base of mob/living/carbon/soundbang_act(): (list(intensity)) #define COMSIG_CARBON_IDENTITY_TRANSFERRED_TO "carbon_id_transferred_to" //from datum/dna/transfer_identity(): (datum/dna, transfer_SE) #define COMSIG_CARBON_TACKLED "carbon_tackled" //sends from tackle.dm on tackle completion +#define COMSIG_CARBON_EMBED_RIP "item_embed_start_rip" // defined twice, in carbon and human's topics, fired when interacting with a valid embedded_object to pull it out (mob/living/carbon/target, /obj/item, /obj/item/bodypart/L) +#define COMSIG_CARBON_EMBED_REMOVAL "item_embed_remove_safe" // called when removing a given item from a mob, from mob/living/carbon/remove_embedded_object(mob/living/carbon/target, /obj/item) + +// /mob/living/silicon signals +#define COMSIG_ROBOT_UPDATE_ICONS "robot_update_icons" //from base of robot/update_icons(): () + // /mob/living/simple_animal/hostile signals #define COMSIG_HOSTILE_ATTACKINGTARGET "hostile_attackingtarget" #define COMPONENT_HOSTILE_NO_ATTACK 1 @@ -247,6 +262,9 @@ #define COMSIG_OBJ_DECONSTRUCT "obj_deconstruct" //from base of obj/deconstruct(): (disassembled) #define COMSIG_OBJ_BREAK "obj_break" //from base of /obj/obj_break(): (damage_flag) #define COMSIG_OBJ_SETANCHORED "obj_setanchored" //called in /obj/structure/setAnchored(): (value) +#define COMSIG_OBJ_ATTACK_GENERIC "obj_attack_generic" //from base of atom/animal_attack(): (/mob/user) + #define COMPONENT_STOP_GENERIC_ATTACK 1 + // /machinery signals #define COMSIG_MACHINE_EJECT_OCCUPANT "eject_occupant" //from base of obj/machinery/dropContents() (occupant) @@ -272,15 +290,30 @@ #define COMSIG_ITEM_ATTACK_ZONE "item_attack_zone" //from base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone) #define COMSIG_ITEM_IMBUE_SOUL "item_imbue_soul" //return a truthy value to prevent ensouling, checked in /obj/effect/proc_holder/spell/targeted/lichdom/cast(): (mob/user) #define COMSIG_ITEM_HIT_REACT "item_hit_react" //from base of obj/item/hit_reaction(): (list/args) -#define COMSIG_ITEM_WEARERCROSSED "wearer_crossed" //called on item when crossed by something (): (/atom/movable) +#define COMSIG_ITEM_WEARERCROSSED "wearer_crossed" //called on item when crossed by something (): (/atom/movable) +#define COMSIG_ITEM_SHARPEN_ACT "sharpen_act" //from base of item/sharpener/attackby(): (amount, max) + #define COMPONENT_BLOCK_SHARPEN_APPLIED 1 + #define COMPONENT_BLOCK_SHARPEN_BLOCKED 2 + #define COMPONENT_BLOCK_SHARPEN_ALREADY 4 + #define COMPONENT_BLOCK_SHARPEN_MAXED 8 +#define COMSIG_ITEM_MICROWAVE_ACT "microwave_act" //called on item when microwaved (): (obj/machinery/microwave/M) #define COMSIG_ITEM_WORN_OVERLAYS "item_worn_overlays" //from base of obj/item/worn_overlays(): (isinhands, icon_file, used_state, style_flags, list/overlays) // THE FOLLOWING TWO BLOCKS SHOULD RETURN BLOCK FLAGS AS DEFINED IN __DEFINES/combat.dm! #define COMSIG_ITEM_CHECK_BLOCK "check_block" //from base of obj/item/check_block(): (mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) #define COMSIG_ITEM_RUN_BLOCK "run_block" //from base of obj/item/run_block(): (mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) +// Item mouse siganls +#define COMSIG_ITEM_MOUSE_EXIT "item_mouse_exit" //from base of obj/item/MouseExited(): (location, control, params) +#define COMSIG_ITEM_MOUSE_ENTER "item_mouse_enter" //from base of obj/item/MouseEntered(): (location, control, params) #define COMSIG_ITEM_DECONSTRUCTOR_DEEPSCAN "deconstructor_deepscan" //Called by deconstructive analyzers deepscanning an item: (obj/machinery/rnd/destructive_analyzer/analyzer_machine, mob/user, list/information_list) +#define COMSIG_ITEM_DISABLE_EMBED "item_disable_embed" ///from [/obj/item/proc/disableEmbedding]: +#define COMSIG_MINE_TRIGGERED "minegoboom" ///from [/obj/effect/mine/proc/triggermine]: // Uncovered information #define COMPONENT_DEEPSCAN_UNCOVERED_INFORMATION 1 +// /obj/item/grenade signals +#define COMSIG_GRENADE_PRIME "grenade_prime" //called in /obj/item/gun/process_fire (user, target, params, zone_override) +#define COMSIG_GRENADE_ARMED "grenade_armed" //called in /obj/item/gun/process_fire (user, target, params, zone_override) + // /obj/item/clothing signals #define COMSIG_SHOES_STEP_ACTION "shoes_step_action" //from base of obj/item/clothing/shoes/proc/step_action(): () #define COMSIG_SUIT_MADE_HELMET "suit_made_helmet" //from base of obj/item/clothing/suit/MakeHelmet(): (helmet) @@ -308,8 +341,15 @@ #define COMSIG_PEN_ROTATED "pen_rotated" //called after rotation in /obj/item/pen/attack_self(): (rotation, mob/living/carbon/user) // /obj/item/projectile signals (sent to the firer) +#define COMSIG_PROJECTILE_SELF_ON_HIT "projectile_self_on_hit" // from base of /obj/item/projectile/proc/on_hit(): (atom/movable/firer, atom/target, Angle) #define COMSIG_PROJECTILE_ON_HIT "projectile_on_hit" // from base of /obj/item/projectile/proc/on_hit(): (atom/movable/firer, atom/target, Angle) #define COMSIG_PROJECTILE_BEFORE_FIRE "projectile_before_fire" // from base of /obj/item/projectile/proc/fire(): (obj/item/projectile, atom/original_target) +#define COMSIG_PROJECTILE_FIRE "projectile_fire" ///from the base of /obj/projectile/proc/fire(): () +#define COMSIG_PROJECTILE_RANGE_OUT "projectile_range_out" // sent to targets during the process_hit proc of projectiles +#define COMSIG_EMBED_TRY_FORCE "item_try_embed" // sent when trying to force an embed (mainly for projectiles, only used in the embed element) +#define COMSIG_PROJECTILE_PREHIT "com_proj_prehit" ///sent to targets during the process_hit proc of projectiles + +#define COMSIG_PELLET_CLOUD_INIT "pellet_cloud_init" // sent to targets during the process_hit proc of projectiles // /mob/living/carbon/human signals #define COMSIG_HUMAN_MELEE_UNARMED_ATTACK "human_melee_unarmed_attack" //from mob/living/carbon/human/UnarmedAttack(): (atom/target) @@ -323,6 +363,9 @@ #define COMSIG_SPECIES_GAIN "species_gain" //from datum/species/on_species_gain(): (datum/species/new_species, datum/species/old_species) #define COMSIG_SPECIES_LOSS "species_loss" //from datum/species/on_species_loss(): (datum/species/lost_species) +// /datum/mutation signals +#define COMSIG_HUMAN_MUTATION_LOSS "human_mutation_loss" //from datum/mutation/human/on_losing(): (datum/mutation/human/lost_mutation) + /*******Component Specific Signals*******/ //Janitor #define COMSIG_TURF_IS_WET "check_turf_wet" //(): Returns bitflags of wet values. @@ -343,6 +386,14 @@ //NTnet #define COMSIG_COMPONENT_NTNET_RECEIVE "ntnet_receive" //called on an object by its NTNET connection component on receive. (sending_id(number), sending_netname(text), data(datum/netdata)) +//Combat mode +#define COMSIG_TOGGLE_COMBAT_MODE "toggle_combat_mode" //safely toggles combat mode. +#define COMSIG_DISABLE_COMBAT_MODE "disable_combat_mode" //safely disables combat mode. +#define COMSIG_ENABLE_COMBAT_MODE "enable_combat_mode" //safely enables combat mode. +#define COMSIG_LIVING_COMBAT_ENABLED "combatmode_enabled" //from base of datum/component/combat_mode/enable_combat_mode() (was_forced) +#define COMSIG_LIVING_COMBAT_DISABLED "combatmode_disabled" //from base of datum/component/combat_mode/disable_combat_mode() (was_forced) +#define COMSIG_COMBAT_MODE_CHECK "combatmode_check" //called when checking the combat mode flags (enabled/disabled/forced) + //Nanites #define COMSIG_HAS_NANITES "has_nanites" //() returns TRUE if nanites are found #define COMSIG_NANITE_IS_STEALTHY "nanite_is_stealthy" //() returns TRUE if nanites have stealth @@ -380,6 +431,11 @@ #define COMSIG_TRY_STORAGE_RETURN_INVENTORY "storage_return_inventory" //(list/list_to_inject_results_into, recursively_search_inside_storages = TRUE) #define COMSIG_TRY_STORAGE_CAN_INSERT "storage_can_equip" //(obj/item/insertion_candidate, mob/user, silent) - returns bool +// /datum/component/two_handed signals +#define COMSIG_TWOHANDED_WIELD "twohanded_wield" //from base of datum/component/two_handed/proc/wield(mob/living/carbon/user): (/mob/user) + #define COMPONENT_TWOHANDED_BLOCK_WIELD 1 +#define COMSIG_TWOHANDED_UNWIELD "twohanded_unwield" //from base of datum/component/two_handed/proc/unwield(mob/living/carbon/user): (/mob/user) + // /datum/action signals #define COMSIG_ACTION_TRIGGER "action_trigger" //from base of datum/action/proc/Trigger(): (datum/action) #define COMPONENT_ACTION_BLOCK_TRIGGER 1 diff --git a/code/__DEFINES/economy.dm b/code/__DEFINES/economy.dm index bc9534f527..746267c15b 100644 --- a/code/__DEFINES/economy.dm +++ b/code/__DEFINES/economy.dm @@ -33,3 +33,19 @@ #define ID_NO_BANK_ACCOUNT 0 #define ID_FREE_BANK_ACCOUNT 1 #define ID_LOCKED_BANK_ACCOUNT 2 + +//Some price defines to help standarize the intended vending value of items. Do not bother adding too many examples. +#define PRICE_FREE 0 // Sustainance/soviet vendor stuff. +#define PRICE_CHEAP_AS_FREE 10 // Cheap lighters, syringes, soft drinks etc. +#define PRICE_REALLY_CHEAP 20 // Snacks, hot drinks, tools. +#define PRICE_PRETTY_CHEAP 30 // Some snacks, beer. +#define PRICE_CHEAP 40 // Clothings. some electronics +#define PRICE_ALMOST_CHEAP 60 // Fancy clothing, cig packs, booze-o-mat, seeds, medical. +#define PRICE_BELOW_NORMAL 80 // Clothesmate and kinkmate premium stuff. +#define PRICE_NORMAL 100 // Kitchen knife, other stuff. +#define PRICE_ABOVE_NORMAL 150 // Liberation (capitalism ahoy) and donksoft vendors. +#define PRICE_ALMOST_EXPENSIVE 200 // Butcher knife, cartridges, some premium stuff. +#define PRICE_EXPENSIVE 325 // Premium stuff. +#define PRICE_ABOVE_EXPENSIVE 500 // RCD, Crew pinpointer/monitor, galoshes +#define PRICE_REALLY_EXPENSIVE 700 // More premium stuff. +#define PRICE_ALMOST_ONE_GRAND 900 // $$$ Insulated gloves, backpack water-tank spray $$$ diff --git a/code/__DEFINES/flags/do_after.dm b/code/__DEFINES/flags/do_after.dm new file mode 100644 index 0000000000..26802736cf --- /dev/null +++ b/code/__DEFINES/flags/do_after.dm @@ -0,0 +1,32 @@ +/// Requires absolute stillness from the user +#define DO_AFTER_DISALLOW_MOVING_ABSOLUTE_USER (1<<0) +/// Requires absolute stillness from the target +#define DO_AFTER_DISALLOW_MOVING_ABSOLUTE_TARGET (1<<1) +/// Requires that the user is on a turf. +#define DO_AFTER_REQUIRES_USER_ON_TURF (1<<2) +/// Requires relative stillness to our target via dx and dy coordinate difference but only if both are spacedrifting. Specify DO_AFTER_ALLOW_NONSPACEDRIFT_RELATIVITY to say otherwise. +#define DO_AFTER_DISALLOW_MOVING_RELATIVE (1<<3) +/// Breaks if active hand item changes. Requires a tool be specified, otherwise defaults to active item +#define DO_AFTER_DISALLOW_ACTIVE_ITEM_CHANGE (1<<4) +/// Breaks if the user has no free hands. If a tool is specified, allows that as well. +#define DO_AFTER_REQUIRE_FREE_HAND_OR_TOOL (1<<5) +/// Do not display progressbar. +#define DO_AFTER_NO_PROGRESSBAR (1<<6) +/// Do not check do_after_coefficient() +#define DO_AFTER_NO_COEFFICIENT (1<<7) +/// For relative stillness, allow non spacedrift relative movement +#define DO_AFTER_ALLOW_NONSPACEDRIFT_RELATIVITY (1<<8) + +/// Ignores checks. +#define DO_AFTER_PROCEED "PROCEED" +/// Uses all other checks +#define DO_AFTER_CONTINUE "CONTINUE" +/// Breaks +#define DO_AFTER_STOP "STOP" + +/// Stage - initiating a do_after +#define DO_AFTER_STARTING 1 +/// Stage - main loop of a do_after +#define DO_AFTER_PROGRESSING 2 +/// Stage - Last check of a do_after +#define DO_AFTER_FINISHING 3 diff --git a/code/__DEFINES/food.dm b/code/__DEFINES/food.dm index a347fd7327..77e8d82aca 100644 --- a/code/__DEFINES/food.dm +++ b/code/__DEFINES/food.dm @@ -18,4 +18,8 @@ #define DRINK_VERYGOOD 3 #define DRINK_FANTASTIC 4 #define FOOD_AMAZING 5 -#define RACE_DRINK 6 \ No newline at end of file +#define RACE_DRINK 6 + +#define FOOD_IN_CONTAINER (1<<0) + +#define STOP_SERVING_BREAKFAST (15 MINUTES) diff --git a/code/__DEFINES/footsteps.dm b/code/__DEFINES/footsteps.dm index 16d763606b..2dd66b9833 100644 --- a/code/__DEFINES/footsteps.dm +++ b/code/__DEFINES/footsteps.dm @@ -6,6 +6,7 @@ #define FOOTSTEP_GRASS "grass" #define FOOTSTEP_WATER "water" #define FOOTSTEP_LAVA "lava" +#define FOOTSTEP_MEAT "meat" //barefoot sounds #define FOOTSTEP_WOOD_BAREFOOT "woodbarefoot" #define FOOTSTEP_WOOD_CLAW "woodclaw" @@ -24,6 +25,15 @@ #define FOOTPRINT_SNAKE "snake" #define FOOTPRINT_DRAG "drag" +//footstep mob defines +#define FOOTSTEP_MOB_CLAW 1 +#define FOOTSTEP_MOB_BAREFOOT 2 +#define FOOTSTEP_MOB_HEAVY 3 +#define FOOTSTEP_MOB_SHOE 4 +#define FOOTSTEP_MOB_HUMAN 5 //Warning: Only works on /mob/living/carbon/human +#define FOOTSTEP_MOB_SLIME 6 +#define FOOTSTEP_MOB_CRAWL 7 + /* id = list( @@ -80,6 +90,8 @@ GLOBAL_LIST_INIT(footstep, list( 'sound/effects/footstep/lava1.ogg', 'sound/effects/footstep/lava2.ogg', 'sound/effects/footstep/lava3.ogg'), 100, 0), + FOOTSTEP_MEAT = list(list( + 'sound/effects/meatslap.ogg'), 100, 0) )) //bare footsteps lists @@ -122,6 +134,8 @@ GLOBAL_LIST_INIT(barefootstep, list( 'sound/effects/footstep/lava1.ogg', 'sound/effects/footstep/lava2.ogg', 'sound/effects/footstep/lava3.ogg'), 100, 0), + FOOTSTEP_MEAT = list(list( + 'sound/effects/meatslap.ogg'), 100, 0) )) //claw footsteps lists @@ -164,6 +178,8 @@ GLOBAL_LIST_INIT(clawfootstep, list( 'sound/effects/footstep/lava1.ogg', 'sound/effects/footstep/lava2.ogg', 'sound/effects/footstep/lava3.ogg'), 100, 0), + FOOTSTEP_MEAT = list(list( + 'sound/effects/meatslap.ogg'), 100, 0) )) //heavy footsteps list @@ -180,4 +196,6 @@ GLOBAL_LIST_INIT(heavyfootstep, list( 'sound/effects/footstep/lava1.ogg', 'sound/effects/footstep/lava2.ogg', 'sound/effects/footstep/lava3.ogg'), 100, 0), + FOOTSTEP_MEAT = list(list( + 'sound/effects/meatslap.ogg'), 100, 0) )) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 122ba67402..90c7c34f8d 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -1,3 +1,6 @@ +/// Checks if something is a BYOND object datatype rather than a primitive, or whatever's closest to one. +#define is_object_datatype(object) (object && !ispath(object) && !istext(object) && !isnum(object)) + // simple is_type and similar inline helpers #define in_range(source, user) (get_dist(source, user) <= 1 && (get_step(source, 0)?:z) == (get_step(user, 0)?:z)) @@ -132,6 +135,8 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list( #define iscat(A) (istype(A, /mob/living/simple_animal/pet/cat)) +#define isdog(A) (istype(A, /mob/living/simple_animal/pet/dog)) + #define iscorgi(A) (istype(A, /mob/living/simple_animal/pet/dog/corgi)) #define ishostile(A) (istype(A, /mob/living/simple_animal/hostile)) @@ -148,50 +153,6 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list( #define isclown(A) (istype(A, /mob/living/simple_animal/hostile/retaliate/clown)) -GLOBAL_LIST_INIT(shoefootmob, typecacheof(list( - /mob/living/carbon/human/, - /mob/living/simple_animal/cow, - /mob/living/simple_animal/hostile/cat_butcherer, - /mob/living/simple_animal/hostile/faithless, - /mob/living/simple_animal/hostile/nanotrasen, - /mob/living/simple_animal/hostile/pirate, - /mob/living/simple_animal/hostile/russian, - /mob/living/simple_animal/hostile/syndicate, - /mob/living/simple_animal/hostile/wizard, - /mob/living/simple_animal/hostile/zombie, - /mob/living/simple_animal/hostile/retaliate/clown, - /mob/living/simple_animal/hostile/retaliate/spaceman, - /mob/living/simple_animal/hostile/retaliate/nanotrasenpeace, - /mob/living/simple_animal/hostile/retaliate/goat, - /mob/living/carbon/true_devil, - ))) - -GLOBAL_LIST_INIT(clawfootmob, typecacheof(list( - /mob/living/carbon/alien/humanoid, - /mob/living/simple_animal/hostile/alien, - /mob/living/simple_animal/pet/cat, - /mob/living/simple_animal/pet/dog, - /mob/living/simple_animal/pet/fox, - /mob/living/simple_animal/chicken, - /mob/living/simple_animal/hostile/bear, - /mob/living/simple_animal/hostile/jungle/mega_arachnid, - /mob/living/simple_animal/hostile/asteroid/ice_whelp, - /mob/living/simple_animal/hostile/asteroid/wolf, - /mob/living/simple_animal/hostile/asteroid/polarbear - ))) - -GLOBAL_LIST_INIT(barefootmob, typecacheof(list( - /mob/living/carbon/monkey, - /mob/living/simple_animal/pet/penguin, - /mob/living/simple_animal/hostile/gorilla, - /mob/living/simple_animal/hostile/jungle/mook - ))) - -GLOBAL_LIST_INIT(heavyfootmob, typecacheof(list( - /mob/living/simple_animal/hostile/megafauna, - /mob/living/simple_animal/hostile/jungle/leaper - ))) - //Misc mobs #define isobserver(A) (istype(A, /mob/dead/observer)) @@ -221,6 +182,12 @@ GLOBAL_LIST_INIT(heavyfootmob, typecacheof(list( #define isitem(A) (istype(A, /obj/item)) +#define isgrenade(A) (istype(A, /obj/item/grenade)) + +#define islandmine(A) (istype(A, /obj/effect/mine)) + +#define isammocasing(A) (istype(A, /obj/item/ammo_casing)) + #define isidcard(I) (istype(I, /obj/item/card/id)) #define isstructure(A) (istype(A, /obj/structure)) diff --git a/code/__DEFINES/layers_planes.dm b/code/__DEFINES/layers_planes.dm index a6c31bf965..6f33bb1a0e 100644 --- a/code/__DEFINES/layers_planes.dm +++ b/code/__DEFINES/layers_planes.dm @@ -11,16 +11,38 @@ #define PLANE_SPACE_PARALLAX_RENDER_TARGET "PLANE_SPACE_PARALLAX" #define OPENSPACE_LAYER 17 //Openspace layer over all -#define OPENSPACE_PLANE -4 //Openspace plane below all turfs -#define OPENSPACE_BACKDROP_PLANE -3 //Black square just over openspace plane to guaranteed cover all in openspace turf +#define OPENSPACE_PLANE -10 //Openspace plane below all turfs +#define OPENSPACE_BACKDROP_PLANE -9 //Black square just over openspace plane to guaranteed cover all in openspace turf -#define FLOOR_PLANE -2 +#define FLOOR_PLANE -8 #define FLOOR_PLANE_RENDER_TARGET "FLOOR_PLANE" -#define GAME_PLANE -1 + +#define WALL_PLANE -7 +#define WALL_PLANE_RENDER_TARGET "WALL_PLANE" + +#define ABOVE_WALL_PLANE -6 +#define ABOVE_WALL_PLANE_RENDER_TARGET "ABOVE_WALL_PLANE" + +#define FIELD_OF_VISION_BLOCKER_PLANE -5 +#define FIELD_OF_VISION_BLOCKER_RENDER_TARGET "*FIELD_OF_VISION_BLOCKER_PLANE" + +#define FIELD_OF_VISION_PLANE -4 +#define FIELD_OF_VISION_RENDER_TARGET "*FIELD_OF_VISION_PLANE" +#define FIELD_OF_VISION_LAYER 17 //used to place the visual (not the mask) shadow cone above any other floor plane stuff. + +#define GAME_PLANE -3 #define GAME_PLANE_RENDER_TARGET "GAME_PLANE" + +#define FIELD_OF_VISION_VISUAL_PLANE -2 //Yea, FoV does require quite a few planes to work with 513 filters to a decent degree. +#define FIELD_OF_VISION_VISUAL_RENDER_TARGET "FIELD_OF_VISION_VISUAL_PLANE" + +#define CHAT_PLANE -1 //We don't want heard messages to be hidden by FoV. +#define CHAT_LAYER 12.1 //Legacy, it doesn't matter that much because we are displayed above the game plane anyway. + #define BLACKNESS_PLANE 0 //To keep from conflicts with SEE_BLACKNESS internals #define BLACKNESS_PLANE_RENDER_TARGET "BLACKNESS_PLANE" +///Layers most often used by atoms of plane lower than GAME_PLANE #define SPACE_LAYER 1.8 //#define TURF_LAYER 2 //For easy recordkeeping; this is a byond define #define MID_TURF_LAYER 2.02 @@ -40,11 +62,12 @@ #define GAS_PIPE_VISIBLE_LAYER 2.47 #define GAS_FILTER_LAYER 2.48 #define GAS_PUMP_LAYER 2.49 + #define LOW_OBJ_LAYER 2.5 #define LOW_SIGIL_LAYER 2.52 #define SIGIL_LAYER 2.54 #define HIGH_SIGIL_LAYER 2.56 - +///Layers most often used by atoms of plane equal or higher than GAME_PLANE #define BELOW_OPEN_DOOR_LAYER 2.6 #define BLASTDOOR_LAYER 2.65 #define OPEN_DOOR_LAYER 2.7 @@ -80,8 +103,9 @@ #define SPACEVINE_LAYER 4.8 #define SPACEVINE_MOB_LAYER 4.9 //#define FLY_LAYER 5 //For easy recordkeeping; this is a byond define -#define GASFIRE_LAYER 5.05 -#define RIPPLE_LAYER 5.1 +#define ABOVE_FLY_LAYER 5.1 +#define GASFIRE_LAYER 5.2 +#define RIPPLE_LAYER 5.3 #define GHOST_LAYER 6 #define LOW_LANDMARK_LAYER 9 @@ -91,8 +115,6 @@ #define MASSIVE_OBJ_LAYER 11 #define POINT_LAYER 12 -#define CHAT_LAYER 12.1 - #define EMISSIVE_BLOCKER_PLANE 12 #define EMISSIVE_BLOCKER_LAYER 12 #define EMISSIVE_BLOCKER_RENDER_TARGET "*EMISSIVE_BLOCKER_PLANE" @@ -136,19 +158,20 @@ #define HUD_LAYER 21 #define HUD_RENDER_TARGET "HUD_PLANE" -#define VOLUMETRIC_STORAGE_BOX_PLANE 23 -#define VOLUMETRIC_STORAGE_BOX_LAYER 23 +#define VOLUMETRIC_STORAGE_BOX_PLANE 22 +#define VOLUMETRIC_STORAGE_BOX_LAYER 22 #define VOLUMETRIC_STORAGE_BOX_RENDER_TARGET "VOLUME_STORAGE_BOX_PLANE" -#define VOLUMETRIC_STORAGE_ITEM_PLANE 24 -#define VOLUMETRIC_STORAGE_ITEM_LAYER 24 +#define VOLUMETRIC_STORAGE_ITEM_PLANE 23 +#define VOLUMETRIC_STORAGE_ITEM_LAYER 23 +#define VOLUMETRIC_STORAGE_ACTIVE_ITEM_LAYER 25 +#define VOLUMETRIC_STORAGE_ACTIVE_ITEM_PLANE 25 #define VOLUMETRIC_STORAGE_ITEM_RENDER_TARGET "VOLUME_STORAGE_ITEM_PLANE" -#define ABOVE_HUD_PLANE 25 -#define ABOVE_HUD_LAYER 25 +#define ABOVE_HUD_PLANE 30 +#define ABOVE_HUD_LAYER 30 #define ABOVE_HUD_RENDER_TARGET "ABOVE_HUD_PLANE" -#define SPLASHSCREEN_LAYER 30 -#define SPLASHSCREEN_PLANE 30 +#define SPLASHSCREEN_LAYER 90 +#define SPLASHSCREEN_PLANE 90 #define SPLASHSCREEN_RENDER_TARGET "SPLASHSCREEN_PLANE" - diff --git a/code/__DEFINES/lighting.dm b/code/__DEFINES/lighting.dm index 5ba696b274..3fba27ba52 100644 --- a/code/__DEFINES/lighting.dm +++ b/code/__DEFINES/lighting.dm @@ -88,3 +88,28 @@ #define EMISSIVE_BLOCK_GENERIC 1 /// Uses a dedicated render_target object to copy the entire appearance in real time to the blocking layer. For things that can change in appearance a lot from the base state, like humans. #define EMISSIVE_BLOCK_UNIQUE 2 + + +/// Returns the red part of a #RRGGBB hex sequence as number +#define GETREDPART(hexa) hex2num(copytext(hexa, 2, 4)) + +/// Returns the green part of a #RRGGBB hex sequence as number +#define GETGREENPART(hexa) hex2num(copytext(hexa, 4, 6)) + +/// Returns the blue part of a #RRGGBB hex sequence as number +#define GETBLUEPART(hexa) hex2num(copytext(hexa, 6, 8)) + +/// Parse the hexadecimal color into lumcounts of each perspective. +#define PARSE_LIGHT_COLOR(source) \ +do { \ + if (source.light_color) { \ + var/__light_color = source.light_color; \ + source.lum_r = GETREDPART(__light_color) / 255; \ + source.lum_g = GETGREENPART(__light_color) / 255; \ + source.lum_b = GETBLUEPART(__light_color) / 255; \ + } else { \ + source.lum_r = 1; \ + source.lum_g = 1; \ + source.lum_b = 1; \ + }; \ +} while (FALSE) diff --git a/code/__DEFINES/logging.dm b/code/__DEFINES/logging.dm index 9693d46d00..7e1559cede 100644 --- a/code/__DEFINES/logging.dm +++ b/code/__DEFINES/logging.dm @@ -18,6 +18,7 @@ #define INVESTIGATE_CIRCUIT "circuit" #define INVESTIGATE_FERMICHEM "fermichem" #define INVESTIGATE_RCD "rcd" +#define INVESTIGATE_CRYOGENICS "cryogenics" // Logging types for log_message() #define LOG_ATTACK (1 << 0) diff --git a/code/__DEFINES/machines.dm b/code/__DEFINES/machines.dm index 5a26feb624..0e8e34d20e 100644 --- a/code/__DEFINES/machines.dm +++ b/code/__DEFINES/machines.dm @@ -115,3 +115,7 @@ //these flags are used to tell the DNA modifier if a plant gene cannot be extracted or modified. #define PLANT_GENE_REMOVABLE (1<<0) #define PLANT_GENE_EXTRACTABLE (1<<1) + +#define CLONEPOD_GET_MIND 1 +#define CLONEPOD_POLL_MIND 2 +#define CLONEPOD_NO_MIND 3 \ No newline at end of file diff --git a/code/__DEFINES/materials.dm b/code/__DEFINES/materials.dm index e2ae22345f..72e827a7c8 100644 --- a/code/__DEFINES/materials.dm +++ b/code/__DEFINES/materials.dm @@ -4,8 +4,12 @@ /// Hard materials, such as iron or metal #define MAT_CATEGORY_RIGID "rigid material" +///Use this flag on TRUE if you want the basic recipes +#define MAT_CATEGORY_BASE_RECIPES "basic recipes" + /// Flag for atoms, this flag ensures it isn't re-colored by materials. Useful for snowflake icons such as default toolboxes. #define MATERIAL_COLOR (1<<0) #define MATERIAL_ADD_PREFIX (1<<1) -#define MATERIAL_EFFECTS (1<<2) -#define MATERIAL_AFFECT_STATISTICS (1<<3) \ No newline at end of file +#define MATERIAL_AFFECT_STATISTICS (1<<2) + +#define MATERIAL_SOURCE(mat) "[mat.name]_material" \ No newline at end of file diff --git a/code/__DEFINES/maths.dm b/code/__DEFINES/maths.dm index e418b8b4c6..24726b8058 100644 --- a/code/__DEFINES/maths.dm +++ b/code/__DEFINES/maths.dm @@ -209,3 +209,5 @@ /// Make sure something is a boolean TRUE/FALSE 1/0 value, since things like bitfield & bitflag doesn't always give 1s and 0s. #define FORCE_BOOLEAN(x) ((x)? TRUE : FALSE) + +#define TILES_TO_PIXELS(tiles) (tiles * PIXELS) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 5fbe66808f..90874a60bf 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -11,6 +11,8 @@ /// Inverse direction, taking into account UP|DOWN if necessary. #define REVERSE_DIR(dir) ( ((dir & 85) << 1) | ((dir & 170) >> 1) ) +/// world.icon_size +#define PIXELS 32 //These get to go at the top, because they're special //You can use these defines to get the typepath of the currently running proc/verb (yes procs + verbs are objects) @@ -30,31 +32,32 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s //Human Overlays Indexes///////// //LOTS OF CIT CHANGES HERE. BE CAREFUL WHEN UPSTREAM ADDS MORE LAYERS -#define MUTATIONS_LAYER 32 //mutations. Tk headglows, cold resistance glow, etc -#define GENITALS_BEHIND_LAYER 31 //Some genitalia needs to be behind everything, such as with taurs (Taurs use body_behind_layer -#define BODY_BEHIND_LAYER 30 //certain mutantrace features (tail when looking south) that must appear behind the body parts -#define BODYPARTS_LAYER 29 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag -#define MARKING_LAYER 28 //Matrixed body markings because clashing with snouts? -#define BODY_ADJ_LAYER 27 //certain mutantrace features (snout, body markings) that must appear above the body parts -#define GENITALS_FRONT_LAYER 26 //Draws some genitalia above clothes and the TAUR body if need be. -#define BODY_LAYER 25 //underwear, undershirts, socks, eyes, lips(makeup) -#define BODY_ADJ_UPPER_LAYER 24 -#define FRONT_MUTATIONS_LAYER 23 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes) -#define DAMAGE_LAYER 22 //damage indicators (cuts and burns) -#define UNIFORM_LAYER 21 -#define ID_LAYER 20 -#define HANDS_PART_LAYER 19 -#define SHOES_LAYER 18 -#define GLOVES_LAYER 17 -#define EARS_LAYER 16 -#define SUIT_LAYER 15 -#define GENITALS_EXPOSED_LAYER 14 -#define GLASSES_LAYER 13 -#define BELT_LAYER 12 //Possible make this an overlay of somethign required to wear a belt? -#define SUIT_STORE_LAYER 11 -#define NECK_LAYER 10 -#define BACK_LAYER 9 -#define HAIR_LAYER 8 //TODO: make part of head layer? +#define MUTATIONS_LAYER 33 //mutations. Tk headglows, cold resistance glow, etc +#define GENITALS_BEHIND_LAYER 32 //Some genitalia needs to be behind everything, such as with taurs (Taurs use body_behind_layer +#define BODY_BEHIND_LAYER 31 //certain mutantrace features (tail when looking south) that must appear behind the body parts +#define BODYPARTS_LAYER 30 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag +#define MARKING_LAYER 29 //Matrixed body markings because clashing with snouts? +#define BODY_ADJ_LAYER 28 //certain mutantrace features (snout, body markings) that must appear above the body parts +#define GENITALS_FRONT_LAYER 27 //Draws some genitalia above clothes and the TAUR body if need be. +#define BODY_LAYER 26 //underwear, undershirts, socks, eyes, lips(makeup) +#define BODY_ADJ_UPPER_LAYER 25 +#define FRONT_MUTATIONS_LAYER 24 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes) +#define DAMAGE_LAYER 23 //damage indicators (cuts and burns) +#define UNIFORM_LAYER 22 +#define ID_LAYER 21 +#define HANDS_PART_LAYER 20 +#define SHOES_LAYER 19 +#define GLOVES_LAYER 18 +#define EARS_LAYER 17 +#define SUIT_LAYER 16 +#define GENITALS_EXPOSED_LAYER 15 +#define GLASSES_LAYER 14 +#define BELT_LAYER 13 //Possible make this an overlay of somethign required to wear a belt? +#define SUIT_STORE_LAYER 12 +#define NECK_LAYER 11 +#define BACK_LAYER 10 +#define HAIR_LAYER 9 //TODO: make part of head layer? +#define HORNS_LAYER 8 #define FACEMASK_LAYER 7 #define HEAD_LAYER 6 #define HANDCUFF_LAYER 5 @@ -62,7 +65,7 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s #define HANDS_LAYER 3 #define BODY_FRONT_LAYER 2 #define FIRE_LAYER 1 //If you're on fire -#define TOTAL_LAYERS 32 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_; +#define TOTAL_LAYERS 33 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_; //Human Overlay Index Shortcuts for alternate_worn_layer, layers //Because I *KNOW* somebody will think layer+1 means "above" @@ -431,6 +434,7 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S //text files #define BRAIN_DAMAGE_FILE "traumas.json" #define ION_FILE "ion_laws.json" +#define REDPILL_FILE "redpill.json" #define PIRATE_NAMES_FILE "pirates.json" @@ -460,13 +464,13 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S #define EGG_LAYING_MESSAGES list("lays an egg.","squats down and croons.","begins making a huge racket.","begins clucking raucously.") // list of all null rod weapons -#define HOLY_WEAPONS /obj/item/nullrod, /obj/item/twohanded/dualsaber/hypereutactic/chaplain, /obj/item/gun/energy/laser/redtag/hitscan/chaplain, /obj/item/multitool/chaplain, /obj/item/clothing/gloves/fingerless/pugilist/chaplain, /obj/item/melee/baseball_bat/chaplain +#define HOLY_WEAPONS /obj/item/nullrod, /obj/item/dualsaber/hypereutactic/chaplain, /obj/item/gun/energy/laser/redtag/hitscan/chaplain, /obj/item/multitool/chaplain, /obj/item/clothing/gloves/fingerless/pugilist/chaplain, /obj/item/melee/baseball_bat/chaplain // Used by PDA and cartridge code to reduce repetitiveness of spritesheets #define PDAIMG(what) {""} //Filters -#define AMBIENT_OCCLUSION list("type"="drop_shadow","x"=0,"y"=-2,"size"=4,"color"="#04080FAA") +#define AMBIENT_OCCLUSION(_size, _color) list("type"="drop_shadow","x"=0,"y"=-2,"size"=_size,"color"=_color) #define EYE_BLUR(size) list("type"="blur", "size"=size) #define GRAVITY_MOTION_BLUR list("type"="motion_blur","x"=0,"y"=0) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index e0df69bfe9..fa7758be1f 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -98,6 +98,7 @@ #define BRAIN_TRAUMA_MILD /datum/brain_trauma/mild #define BRAIN_TRAUMA_SEVERE /datum/brain_trauma/severe #define BRAIN_TRAUMA_SPECIAL /datum/brain_trauma/special +#define BRAIN_TRAUMA_MAGIC /datum/brain_trauma/magic #define TRAUMA_RESILIENCE_BASIC 1 //Curable with chems #define TRAUMA_RESILIENCE_SURGERY 2 //Curable with brain surgery @@ -126,6 +127,13 @@ #define SCREWYHUD_DEAD 2 #define SCREWYHUD_HEALTHY 3 +//Threshold levels for beauty for humans +#define BEAUTY_LEVEL_HORRID -66 +#define BEAUTY_LEVEL_BAD -33 +#define BEAUTY_LEVEL_DECENT 33 +#define BEAUTY_LEVEL_GOOD 66 +#define BEAUTY_LEVEL_GREAT 100 + //Moods levels for humans #define MOOD_LEVEL_HAPPY4 15 #define MOOD_LEVEL_HAPPY3 10 @@ -290,8 +298,15 @@ #define HUMAN_FIRE_STACK_ICON_NUM 3 +#define TYPING_INDICATOR_TIMEOUT 5 MINUTES + #define GRAB_PIXEL_SHIFT_PASSIVE 6 #define GRAB_PIXEL_SHIFT_AGGRESSIVE 12 #define GRAB_PIXEL_SHIFT_NECK 16 #define SLEEP_CHECK_DEATH(X) sleep(X); if(QDELETED(src) || stat == DEAD) return; + +/// Field of vision defines. +#define FOV_90_DEGREES 90 +#define FOV_180_DEGREES 180 +#define FOV_270_DEGREES 270 diff --git a/code/__DEFINES/mobs/slowdowns.dm b/code/__DEFINES/mobs/slowdowns.dm index 2d858e9509..4d9b4a0259 100644 --- a/code/__DEFINES/mobs/slowdowns.dm +++ b/code/__DEFINES/mobs/slowdowns.dm @@ -3,7 +3,7 @@ /// How much someone is slowed from fireman carrying a human #define FIREMAN_CARRY_SLOWDOWN 0 /// How much someone is slowed by piggybacking a human -#define PIGGYBACK_CARRY_SLOWDOWN 1 +#define PIGGYBACK_CARRY_SLOWDOWN 0 /// slowdown when in softcrit. Note that crawling slowdown will also apply at the same time! #define SOFTCRIT_ADD_SLOWDOWN 2 /// slowdown when crawling diff --git a/code/__DEFINES/movespeed_modification.dm b/code/__DEFINES/movespeed_modification.dm index 1f3ae63940..699f39e79f 100644 --- a/code/__DEFINES/movespeed_modification.dm +++ b/code/__DEFINES/movespeed_modification.dm @@ -8,5 +8,68 @@ //ids #define MOVESPEED_ID_SANITY "mood_sanity" -#define MOVESPEED_ID_MOB_GRAB_STATE "mob_grab_state" +#define MOVESPEED_ID_MOB_WALK_RUN_CONFIG_SPEED "MOB_WALK_RUN" +#define MOVESPEED_ID_MOB_GRAB_STATE "MOB_GRAB_STATE" +#define MOVESPEED_ID_MOB_EQUIPMENT "MOB_EQUIPMENT" +#define MOVESPEED_ID_MOB_GRAVITY "MOB_GRAVITY" +#define MOVESPEED_ID_CONFIG_SPEEDMOD "MOB_CONFIG_MODIFIER" + +#define MOVESPEED_ID_SLIME_REAGENTMOD "SLIME_REAGENT_MODIFIER" +#define MOVESPEED_ID_SLIME_HEALTHMOD "SLIME_HEALTH_MODIFIER" +#define MOVESPEED_ID_SLIME_TEMPMOD "SLIME_TEMPERATURE_MODIFIER" + +#define MOVESPEED_ID_SLIME_STATUS "SLIME_STATUS" + +#define MOVESPEED_ID_TARANTULA_WEB "TARANTULA_WEB" + +#define MOVESPEED_ID_LIVING_TURF_SPEEDMOD "LIVING_TURF_SPEEDMOD" +#define MOVESPEED_ID_LIVING_LIMBLESS "LIVING_LIMBLESS" + +#define MOVESPEED_ID_CARBON_SOFTCRIT "CARBON_SOFTCRIT" +#define MOVESPEED_ID_CARBON_OLDSPEED "CARBON_DEPRECATED_SPEED" + +#define MOVESPEED_ID_DNA_VAULT "DNA_VAULT" + +#define MOVESPEED_ID_YELLOW_ORB "YELLOW_ORB" + +#define MOVESPEED_ID_TARFOOT "TARFOOT" + +#define MOVESPEED_ID_SEPIA "SEPIA" + +#define MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD "MONKEY_REAGENT_SPEEDMOD" +#define MOVESPEED_ID_MONKEY_TEMPERATURE_SPEEDMOD "MONKEY_TEMPERATURE_SPEEDMOD" +#define MOVESPEED_ID_MONKEY_HEALTH_SPEEDMOD "MONKEY_HEALTH_SPEEDMOD" + +#define MOVESPEED_ID_CHANGELING_MUSCLES "CHANGELING_MUSCLES" + +#define MOVESPEED_ID_SIMPLEMOB_VARSPEED "SIMPLEMOB_VARSPEED_MODIFIER" +#define MOVESPEED_ID_ADMIN_VAREDIT "ADMIN_VAREDIT_MODIFIER" + +#define MOVESPEED_ID_PAI_SPACEWALK_SPEEDMOD "PAI_SPACEWALK_MODIFIER" + +#define MOVESPEED_ID_SPECIES "SPECIES_SPEED_MOD" + +#define MOVESPEED_ID_PRONE_DRAGGING "PRONE_DRAG" +#define MOVESPEED_ID_HUMAN_CARRYING "HUMAN_CARRY" +#define MOVESPEED_ID_SHRINK_RAY "SHRUNKEN_SPEED_MODIFIER" + +#define MOVESPEED_ID_SLAUGHTER "SLAUGHTER" + +#define MOVESPEED_ID_CYBER_THRUSTER "CYBER_IMPLANT_THRUSTER" +#define MOVESPEED_ID_JETPACK "JETPACK" + +#define MOVESPEED_ID_MKULTRA "MKULTRA" + +#define MOVESPEED_ID_TASED_STATUS "TASED" +#define MOVESPEED_ID_ELECTROSTAFF "ELECTROSTAFF" + +#define MOVESPEED_ID_SHOVE "SHOVE" +#define MOVESPEED_ID_FAT "FAT" +#define MOVESPEED_ID_COLD "COLD" +#define MOVESPEED_ID_HUNGRY "HUNGRY" +#define MOVESPEED_ID_DAMAGE_SLOWDOWN "DAMAGE" +#define MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING "FLYING" + +#define MOVESPEED_ID_ACTIVE_BLOCK "ACTIVE_BLOCK" + #define MOVESPEED_ID_MOB_WALK_RUN "mob_walk_run" diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm deleted file mode 100644 index 507126867f..0000000000 --- a/code/__DEFINES/obj_flags.dm +++ /dev/null @@ -1,56 +0,0 @@ -// Flags for the obj_flags var on /obj - - -#define EMAGGED (1<<0) -#define IN_USE (1<<1) //If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING! -#define CAN_BE_HIT (1<<2) //can this be bludgeoned by items? -#define BEING_SHOCKED (1<<3) //Whether this thing is currently (already) being shocked by a tesla -#define DANGEROUS_POSSESSION (1<<4) //Admin possession yes/no -#define ON_BLUEPRINTS (1<<5) //Are we visible on the station blueprints at roundstart? -#define UNIQUE_RENAME (1<<6) //can you customize the description/name of the thing? -#define USES_TGUI (1<<7) //put on things that use tgui on ui_interact instead of custom/old UI. -#define FROZEN (1<<8) -#define SHOVABLE_ONTO (1<<9) //called on turf.shove_act() to consider whether an object should have a niche effect (defined in their own shove_act()) when someone is pushed onto it, or do a sanity CanPass() check. -#define BLOCK_Z_FALL (1<<10) - -// If you add new ones, be sure to add them to /obj/Initialize as well for complete mapping support - -// Flags for the item_flags var on /obj/item - -#define BEING_REMOVED (1<<0) -#define IN_INVENTORY (1<<1) //is this item equipped into an inventory slot or hand of a mob? used for tooltips -#define FORCE_STRING_OVERRIDE (1<<2) //used for tooltips -#define NEEDS_PERMIT (1<<3) //Used by security bots to determine if this item is safe for public use. -#define SLOWS_WHILE_IN_HAND (1<<4) -#define NO_MAT_REDEMPTION (1<<5) //Stops you from putting things like an RCD or other items into an ORM or protolathe for materials. -#define DROPDEL (1<<6) //When dropped, it calls qdel on itself -#define NOBLUDGEON (1<<7) //when an item has this it produces no "X has been hit by Y with Z" message in the default attackby() -#define ABSTRACT (1<<8) //for all things that are technically items but used for various different stuff -#define IMMUTABLE_SLOW (1<<9) //When players should not be able to change the slowdown of the item (Speed potions, ect) -#define SURGICAL_TOOL (1<<10) //Tool commonly used for surgery: won't attack targets in an active surgical operation on help intent (in case of mistakes) -#define NO_UNIFORM_REQUIRED (1<<11) //Can be worn on certain slots (currently belt and id) that would otherwise require an uniform. -#define NO_ATTACK_CHAIN_SOFT_STAMCRIT (1<<12) //Entirely blocks melee_attack_chain() if user is soft stamcritted. Uses getStaminaLoss() to check at this point in time. THIS DOES NOT BLOCK RANGED AFTERATTACK()S, ONLY MELEE RANGE AFTERATTACK()S. - -// Flags for the clothing_flags var on /obj/item/clothing - -#define LAVAPROTECT (1<<0) -#define STOPSPRESSUREDAMAGE (1<<1) //SUIT and HEAD items which stop pressure damage. To stop you taking all pressure damage you must have both a suit and head item with this flag. -#define BLOCK_GAS_SMOKE_EFFECT (1<<2) //blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY! -#define ALLOWINTERNALS (1<<3) //mask allows internals -#define NOSLIP (1<<4) //prevents from slipping on wet floors, in space etc -#define NOSLIP_ICE (1<<5) //prevents from slipping on frozen floors -#define THICKMATERIAL (1<<6) //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body. -#define VOICEBOX_TOGGLABLE (1<<7) //The voicebox in this clothing can be toggled. -#define VOICEBOX_DISABLED (1<<8) //The voicebox is currently turned off. -#define IGNORE_HAT_TOSS (1<<9) //Hats with negative effects when worn (i.e the tinfoil hat). -#define SCAN_REAGENTS (1<<10) // Allows helmets and glasses to scan reagents. - -// Flags for the organ_flags var on /obj/item/organ - -#define ORGAN_SYNTHETIC (1<<0) //Synthetic organs, or cybernetic organs. Reacts to EMPs and don't deteriorate or heal -#define ORGAN_FROZEN (1<<1) //Frozen organs, don't deteriorate -#define ORGAN_FAILING (1<<2) //Failing organs perform damaging effects until replaced or fixed -#define ORGAN_EXTERNAL (1<<3) //Was this organ implanted/inserted/etc, if true will not be removed during species change. -#define ORGAN_VITAL (1<<4) //Currently only the brain -#define ORGAN_NO_SPOIL (1<<5) //Do not spoil under any circumstances -#define ORGAN_NO_DISMEMBERMENT (1<<6) //Immune to disembowelment. diff --git a/code/__DEFINES/profile.dm b/code/__DEFINES/profile.dm index 8929e0f05e..5fc8478901 100644 --- a/code/__DEFINES/profile.dm +++ b/code/__DEFINES/profile.dm @@ -26,4 +26,4 @@ #define PROFILE_ITEM_LEN 2 #define PROFILE_ITEM_TIME 1 -#define PROFILE_ITEM_COUNT 2 \ No newline at end of file +#define PROFILE_ITEM_COUNT 2 diff --git a/code/__DEFINES/projectiles.dm b/code/__DEFINES/projectiles.dm new file mode 100644 index 0000000000..1bd67fbe02 --- /dev/null +++ b/code/__DEFINES/projectiles.dm @@ -0,0 +1,14 @@ +/// This atom should be ricocheted off of from its inherent properties using standard % chance handling. +#define PROJECTILE_RICOCHET_YES 1 +/// This atom should not be ricocheted off of from its inherent properties. +#define PROJECTILE_RICOCHET_NO 2 +/// This atom should prevent any kind of projectile ricochet from its inherent properties. +#define PROJECTILE_RICOCHET_PREVENT 3 +/// This atom should force a projectile ricochet from its inherent properties. +#define PROJECTILE_RICOCHET_FORCE 4 + +//bullet_act() return values +#define BULLET_ACT_HIT "HIT" //It's a successful hit, whatever that means in the context of the thing it's hitting. +#define BULLET_ACT_BLOCK "BLOCK" //It's a blocked hit, whatever that means in the context of the thing it's hitting. +#define BULLET_ACT_FORCE_PIERCE "PIERCE" //It pierces through the object regardless of the bullet being piercing by default. +#define BULLET_ACT_TURF "TURF" //It hit us but it should hit something on the same turf too. Usually used for turfs. diff --git a/code/__DEFINES/robots.dm b/code/__DEFINES/robots.dm index affa23d30a..a0fded3798 100644 --- a/code/__DEFINES/robots.dm +++ b/code/__DEFINES/robots.dm @@ -27,6 +27,7 @@ #define BOT_NAV 15 // computing navigation #define BOT_WAIT_FOR_NAV 16 // waiting for nav computation #define BOT_NO_ROUTE 17 // no destination beacon found (or no route) +#define BOT_TIPPED 18 // someone tipped a medibot over ;_; //Bot types #define SEC_BOT (1<<0) // Secutritrons (Beepsky) and ED-209s @@ -51,6 +52,19 @@ #define ASSEMBLY_FOURTH_STEP 3 #define ASSEMBLY_FIFTH_STEP 4 +//Bot Upgrade defines +#define UPGRADE_CLEANER_ADVANCED_MOP (1<<0) +#define UPGRADE_CLEANER_BROOM (1<<1) + +#define UPGRADE_MEDICAL_HYPOSPRAY (1<<0) +#define UPGRADE_MEDICAL_CHEM_BOARD (1<<1) +#define UPGRADE_MEDICAL_CRYO_BOARD (1<<2) +#define UPGRADE_MEDICAL_CHEM_MASTER (1<<3) +#define UPGRADE_MEDICAL_SLEEP_BOARD (1<<4) +#define UPGRADE_MEDICAL_PIERERCING (1<<5) + +#define UPGRADE_FLOOR_ARTBOX (1<<0) +#define UPGRADE_FLOOR_SYNDIBOX (1<<1) //Checks to determine borg availability depending on the server's config. These are defines in the interest of reducing copypasta #define BORG_SEC_AVAILABLE (!CONFIG_GET(flag/disable_secborg) && GLOB.security_level >= CONFIG_GET(number/minimum_secborg_alert)) diff --git a/code/__DEFINES/rust_g.config.dm b/code/__DEFINES/rust_g.config.dm deleted file mode 100644 index 68a1b42fb1..0000000000 --- a/code/__DEFINES/rust_g.config.dm +++ /dev/null @@ -1 +0,0 @@ -#define RUSTG_OVERRIDE_BUILTINS \ No newline at end of file diff --git a/code/__DEFINES/rust_g.dm b/code/__DEFINES/rust_g.dm index ccd5b92c79..aeacdb7c51 100644 --- a/code/__DEFINES/rust_g.dm +++ b/code/__DEFINES/rust_g.dm @@ -1,10 +1,27 @@ // rust_g.dm - DM API for rust_g extension library #define RUST_G "rust_g" +#define RUSTG_JOB_NO_RESULTS_YET "NO RESULTS YET" +#define RUSTG_JOB_NO_SUCH_JOB "NO SUCH JOB" +#define RUSTG_JOB_ERROR "JOB PANICKED" + #define rustg_dmi_strip_metadata(fname) call(RUST_G, "dmi_strip_metadata")(fname) +#define rustg_dmi_create_png(fname,width,height,data) call(RUST_G, "dmi_create_png")(fname,width,height,data) #define rustg_git_revparse(rev) call(RUST_G, "rg_git_revparse")(rev) #define rustg_git_commit_date(rev) call(RUST_G, "rg_git_commit_date")(rev) -#define rustg_log_write(fname, text) call(RUST_G, "log_write")(fname, text) +#define rustg_log_write(fname, text, format) call(RUST_G, "log_write")(fname, text, format) /proc/rustg_log_close_all() return call(RUST_G, "log_close_all")() + +// RUST-G defines & procs for HTTP component +#define RUSTG_HTTP_METHOD_GET "get" +#define RUSTG_HTTP_METHOD_POST "post" +#define RUSTG_HTTP_METHOD_PUT "put" +#define RUSTG_HTTP_METHOD_DELETE "delete" +#define RUSTG_HTTP_METHOD_PATCH "patch" +#define RUSTG_HTTP_METHOD_HEAD "head" + +#define rustg_http_request_blocking(method, url, body, headers) call(RUST_G, "http_request_blocking")(method, url, body, headers) +#define rustg_http_request_async(method, url, body, headers) call(RUST_G, "http_request_async")(method, url, body, headers) +#define rustg_http_check_request(req_id) call(RUST_G, "http_check_request")(req_id) diff --git a/code/__DEFINES/shuttles.dm b/code/__DEFINES/shuttles.dm index 36ecebb699..80983b34be 100644 --- a/code/__DEFINES/shuttles.dm +++ b/code/__DEFINES/shuttles.dm @@ -7,6 +7,8 @@ #define SHUTTLE_STRANDED "stranded" #define SHUTTLE_ESCAPE "escape" #define SHUTTLE_ENDGAME "endgame: game over" +#define SHUTTLE_RECHARGING "recharging" +#define SHUTTLE_PREARRIVAL "landing" #define EMERGENCY_IDLE_OR_RECALLED (SSshuttle.emergency && ((SSshuttle.emergency.mode == SHUTTLE_IDLE) || (SSshuttle.emergency.mode == SHUTTLE_RECALL))) #define EMERGENCY_ESCAPED_OR_ENDGAMED (SSshuttle.emergency && ((SSshuttle.emergency.mode == SHUTTLE_ESCAPE) || (SSshuttle.emergency.mode == SHUTTLE_ENDGAME))) diff --git a/code/__DEFINES/skills/defines.dm b/code/__DEFINES/skills/defines.dm index 73be86e128..47aaeeb1dc 100644 --- a/code/__DEFINES/skills/defines.dm +++ b/code/__DEFINES/skills/defines.dm @@ -8,46 +8,47 @@ /// Levels #define SKILL_PROGRESSION_LEVEL 4 - -/// Max value of skill for numerical skills -#define SKILL_NUMERICAL_MAX 100 -/// Min value of skill for numerical skills -#define SKILL_NUMERICAL_MIN 0 - // Standard values for job starting skills #define STARTING_SKILL_SURGERY_MEDICAL 35 //out of SKILL_NUMERICAL_MAX // Standard values for job starting skill affinities -#define STARTING_SKILL_AFFINITY_SURGERY_MEDICAL 1.2 - -#define STARTING_SKILL_AFFINITY_WIRING_ENGI_ROBO 1.2 +#define STARTING_SKILL_AFFINITY_DEF_JOB 1.2 // Standard values for skill gain (this is multiplied by affinity) #define DEF_SKILL_GAIN 1 #define SKILL_GAIN_SURGERY_PER_STEP 0.25 +#define STD_USE_TOOL_MULT 1 +#define EASY_USE_TOOL_MULT 0.75 +#define TRIVIAL_USE_TOOL_MULT 0.5 +#define BARE_USE_TOOL_MULT 0.25 -#define SKILL_AFFINITY_MOOD_BONUS 1.25 +//multiplier of the difference of max_value and min_value. Mostly for balance purposes between numerical and level-based skills. +#define STD_NUM_SKILL_ITEM_GAIN_MULTI 0.002 -///Items skill_flags and other defines -#define SKILL_USE_TOOL (1<<0) -#define SKILL_TRAINING_TOOL (1<<1) -#define SKILL_ATTACK_MOB (1<<2) -#define SKILL_TRAIN_ATTACK_MOB (1<<3) -#define SKILL_ATTACK_OBJ (1<<4) -#define SKILL_TRAIN_ATTACK_OBJ (1<<5) -#define SKILL_STAMINA_COST (1<<6) //Influences the stamina cost from weapon usage. -#define SKILL_THROW_STAM_COST (1<<7) -#define SKILL_COMBAT_MODE (1<<8) //The user must have combat mode on. -#define SKILL_USE_MOOD (1<<9) //Is the skill negatively affected by bad mood. -#define SKILL_TRAIN_MOOD (1<<10) //Is this skill training affected by good mood. +//An extra point for each few seconds of delay when using a tool. Before the multiplier. +#define SKILL_GAIN_DELAY_DIVISOR 3 SECONDS -///competency_threshold index defines -#define THRESHOLD_COMPETENT 1 -#define THRESHOLD_EXPERT 2 -#define THRESHOLD_MASTER 3 +///Items skill_traits and other defines +#define SKILL_USE_TOOL "use_tool" +#define SKILL_TRAINING_TOOL "training_tool" +#define SKILL_ATTACK_MOB "attack_mob" +#define SKILL_TRAIN_ATTACK_MOB "train_attack_mob" +#define SKILL_ATTACK_OBJ "attack_obj" +#define SKILL_TRAIN_ATTACK_OBJ "train_attack_obj" +#define SKILL_STAMINA_COST "stamina_cost" //Influences the stamina cost from weapon usage. +#define SKILL_THROW_STAM_COST "throw_stam_cost" +#define SKILL_COMBAT_MODE "combat_mode" //The user must have combat mode on. +#define SKILL_SANITY "sanity" //Is the skill affected by (in)sanity. +#define SKILL_INTELLIGENCE "intelligence" //Is the skill affected by brain damage? + +///competency_threshold defines +#define THRESHOLD_UNTRAINED "untrained" +#define THRESHOLD_COMPETENT "competent" +#define THRESHOLD_EXPERT "expert" +#define THRESHOLD_MASTER "master" /// Level/Experience skills defines. #define STD_XP_LVL_UP 100 @@ -75,3 +76,35 @@ #define DORF_SKILL_COMPETENT 3 #define DORF_SKILL_EXPERT 8 #define DORF_SKILL_MASTER 12 + +/// Skill modifier defines and flags. +#define MODIFIER_SKILL_VALUE (1<<0) +#define MODIFIER_SKILL_AFFINITY (1<<1) +#define MODIFIER_SKILL_LEVEL (1<<2) +///makes the skill modifier a multiplier, not an addendum. +#define MODIFIER_SKILL_MULT (1<<3) +///Sets the skill to the defined value if lower than that. Highly reccomended you don't use it with MODIFIER_SKILL_MULT. +#define MODIFIER_SKILL_VIRTUE (1<<4) +///Does the opposite of the above. combining both effectively results in the skill being locked to the specified value. +#define MODIFIER_SKILL_HANDICAP (1<<5) +///Makes it untransferred by mind.transfer_to() +#define MODIFIER_SKILL_BODYBOUND (1<<6) +///Adds the difference of the current value and the value stored at the time the modifier was added to the result. +#define MODIFIER_SKILL_ORIGIN_DIFF (1<<7) +///Will this skill use competency thresholds instead of preset values +#define MODIFIER_USE_THRESHOLDS (1<<8) + +#define MODIFIER_TARGET_VALUE "value" +#define MODIFIER_TARGET_LEVEL "level" +#define MODIFIER_TARGET_AFFINITY "affinity" + +///Ascending priority defines. +#define MODIFIER_SKILL_PRIORITY_LOW 100 +#define MODIFIER_SKILL_PRIORITY_DEF 50 +#define MODIFIER_SKILL_PRIORITY_MAX 1 //max priority, meant for job/antag modifiers so they don't null out other (de)buffs + +// UI Defines +///Categories of skills, these will be displayed alphabetically. +#define SKILL_UI_CAT_ENG "Engineering" +#define SKILL_UI_CAT_MED "Medical" +#define SKILL_UI_CAT_MISC "Misc" diff --git a/code/__DEFINES/skills/helpers.dm b/code/__DEFINES/skills/helpers.dm index 23669b3739..dde412fd7d 100644 --- a/code/__DEFINES/skills/helpers.dm +++ b/code/__DEFINES/skills/helpers.dm @@ -6,3 +6,43 @@ //More experience value getter macros #define GET_STANDARD_LVL(lvl) XP_LEVEL(STD_XP_LVL_UP, STD_XP_LVL_MULTI, lvl) #define GET_DORF_LVL(lvl) DORF_XP_LEVEL(DORF_XP_LVL_UP, DORF_XP_LVL_MULTI, lvl) + +#define IS_SKILL_VALUE_GREATER(path, existing, new_value) GLOB.skill_datums[path].is_value_greater(existing, new_value) + +#define SANITIZE_SKILL_VALUE(path, value) GLOB.skill_datums[path].sanitize_value(value) + +///Doesn't automatically round the value. +#define SANITIZE_SKILL_LEVEL(path, lvl) clamp(lvl, 0, GLOB.skill_datums[path].max_levels) + +/// Simple generic identifier macro. +#define GET_SKILL_MOD_ID(path, id) (id ? "[path]&[id]" : path) + +/** + * A simple universal comsig for body bound skill modifiers. + * Technically they are still bound to the mind, but other signal procs will take care of adding and removing the modifier + * from/to new/old minds. + */ +#define ADD_SKILL_MODIFIER_BODY(path, id, body, prototype) \ + prototype = GLOB.skill_modifiers[GET_SKILL_MOD_ID(path, id)] || new path(id, TRUE);\ + if(body.mind){\ + body.mind.add_skill_modifier(prototype.identifier)\ + } else {\ + prototype.RegisterSignal(body, COMSIG_MOB_ON_NEW_MIND, /datum/skill_modifier.proc/on_mob_new_mind, TRUE)\ + } + +/// Same as above but to remove the skill modifier. +#define REMOVE_SKILL_MODIFIER_BODY(path, id, body) \ + if(GLOB.skill_modifiers[GET_SKILL_MOD_ID(path, id)]){\ + if(body.mind){\ + body.mind.remove_skill_modifier(GET_SKILL_MOD_ID(path, id))\ + } else {\ + GLOB.skill_modifiers[GET_SKILL_MOD_ID(path, id)].UnregisterSignal(body, COMSIG_MOB_ON_NEW_MIND)\ + }\ + } + +///Macro used when adding generic singleton skill modifiers. +#define ADD_SINGLETON_SKILL_MODIFIER(mind, path, id) \ + if(!GLOB.skill_modifiers[GET_SKILL_MOD_ID(path, id)]){\ + new path(id, TRUE)\ + };\ + mind.add_skill_modifier(GET_SKILL_MOD_ID(path, id)) diff --git a/code/__DEFINES/spaceman_dmm.dm b/code/__DEFINES/spaceman_dmm.dm index b9c0544bc1..3d4207c5c9 100644 --- a/code/__DEFINES/spaceman_dmm.dm +++ b/code/__DEFINES/spaceman_dmm.dm @@ -6,10 +6,26 @@ #define RETURN_TYPE(X) set SpacemanDMM_return_type = X #define SHOULD_CALL_PARENT(X) set SpacemanDMM_should_call_parent = X #define UNLINT(X) SpacemanDMM_unlint(X) + #define SHOULD_NOT_OVERRIDE(X) set SpacemanDMM_should_not_override = X + #define SHOULD_NOT_SLEEP(X) set SpacemanDMM_should_not_sleep = X + #define SHOULD_BE_PURE(X) set SpacemanDMM_should_be_pure = X + #define PRIVATE_PROC(X) set SpacemanDMM_private_proc = X + #define PROTECTED_PROC(X) set SpacemanDMM_protected_proc = X + #define VAR_FINAL var/SpacemanDMM_final + #define VAR_PRIVATE var/SpacemanDMM_private + #define VAR_PROTECTED var/SpacemanDMM_protected #else #define RETURN_TYPE(X) #define SHOULD_CALL_PARENT(X) #define UNLINT(X) X + #define SHOULD_NOT_OVERRIDE(X) + #define SHOULD_NOT_SLEEP(X) + #define SHOULD_BE_PURE(X) + #define PRIVATE_PROC(X) + #define PROTECTED_PROC(X) + #define VAR_FINAL var + #define VAR_PRIVATE var + #define VAR_PROTECTED var #endif /world/proc/enable_debugger() diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index 593edf4705..4225581018 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -96,6 +96,8 @@ #define STATUS_EFFECT_SPASMS /datum/status_effect/spasms //causes random muscle spasms +#define STATUS_EFFECT_FAKE_VIRUS /datum/status_effect/fake_virus //gives you fluff messages for cough, sneeze, headache, etc but without an actual virus + #define STATUS_EFFECT_BREASTS_ENLARGEMENT /datum/status_effect/chem/breast_enlarger //Applied slowdown due to the ominous bulk. #define STATUS_EFFECT_PENIS_ENLARGEMENT /datum/status_effect/chem/penis_enlarger //More applied slowdown, just like the above. diff --git a/code/__DEFINES/storage.dm b/code/__DEFINES/storage/_storage.dm similarity index 79% rename from code/__DEFINES/storage.dm rename to code/__DEFINES/storage/_storage.dm index b4240455fe..3a05293d2d 100644 --- a/code/__DEFINES/storage.dm +++ b/code/__DEFINES/storage/_storage.dm @@ -11,7 +11,21 @@ #define STORAGE_LIMIT_MAX_W_CLASS (1<<3) #define STORAGE_FLAGS_LEGACY_DEFAULT (STORAGE_LIMIT_MAX_ITEMS | STORAGE_LIMIT_COMBINED_W_CLASS | STORAGE_LIMIT_MAX_W_CLASS) -#define STORAGE_FLAGS_VOLUME_DEFAULT (STORAGE_LIMIT_MAX_ITEMS | STORAGE_LIMIT_VOLUME | STORAGE_LIMIT_MAX_W_CLASS) +#define STORAGE_FLAGS_VOLUME_DEFAULT (STORAGE_LIMIT_VOLUME | STORAGE_LIMIT_MAX_W_CLASS) + +// UI defines +/// Size of volumetric box icon +#define VOLUMETRIC_STORAGE_BOX_ICON_SIZE 32 +/// Size of EACH left/right border icon for volumetric boxes +#define VOLUMETRIC_STORAGE_BOX_BORDER_SIZE 1 +/// Minimum pixels an item must have in volumetric scaled storage UI +#define MINIMUM_PIXELS_PER_ITEM 8 +/// Maximum number of objects that will be allowed to be displayed using the volumetric display system. Arbitrary number to prevent server lockups. +#define MAXIMUM_VOLUMETRIC_ITEMS 256 +/// How much padding to give between items +#define VOLUMETRIC_STORAGE_ITEM_PADDING 4 +/// How much padding to give to edges +#define VOLUMETRIC_STORAGE_EDGE_PADDING 1 //ITEM INVENTORY WEIGHT, FOR w_class /// Usually items smaller then a human hand, ex: Playing Cards, Lighter, Scalpel, Coins/Money @@ -26,22 +40,3 @@ #define WEIGHT_CLASS_HUGE 5 /// Essentially means it cannot be picked up or placed in an inventory, ex: Mech Parts, Safe - Can not fit in Boh #define WEIGHT_CLASS_GIGANTIC 6 - -/// Macro for automatically getting the volume of an item from its w_class. -#define AUTO_SCALE_VOLUME(w_class) (2 ** w_class) -/// Macro for automatically getting the volume of a storage item from its max_w_class and max_combined_w_class. -#define AUTO_SCALE_STORAGE_VOLUME(w_class, max_combined_w_class) (AUTO_SCALE_VOLUME(w_class) * (max_combined_w_class / w_class)) - -// UI defines -/// Size of volumetric box icon -#define VOLUMETRIC_STORAGE_BOX_ICON_SIZE 32 -/// Size of EACH left/right border icon for volumetric boxes -#define VOLUMETRIC_STORAGE_BOX_BORDER_SIZE 1 -/// Minimum pixels an item must have in volumetric scaled storage UI -#define MINIMUM_PIXELS_PER_ITEM 6 -/// Maximum number of objects that will be allowed to be displayed using the volumetric display system. Arbitrary number to prevent server lockups. -#define MAXIMUM_VOLUMETRIC_ITEMS 256 -/// How much padding to give between items -#define VOLUMETRIC_STORAGE_ITEM_PADDING 1 -/// How much padding to give to edges -#define VOLUMETRIC_STORAGE_EDGE_PADDING 1 diff --git a/code/__DEFINES/storage/volumetrics.dm b/code/__DEFINES/storage/volumetrics.dm new file mode 100644 index 0000000000..c3f45976ce --- /dev/null +++ b/code/__DEFINES/storage/volumetrics.dm @@ -0,0 +1,40 @@ +// PLEASE KEEP ALL VOLUME DEFINES IN THIS FILE, it's going to be hell to keep track of them later. + +#define DEFAULT_VOLUME_TINY 2 +#define DEFAULT_VOLUME_SMALL 3 +#define DEFAULT_VOLUME_NORMAL 4 +#define DEFAULT_VOLUME_BULKY 8 +#define DEFAULT_VOLUME_HUGE 16 +#define DEFAULT_VOLUME_GIGANTIC 32 + +GLOBAL_LIST_INIT(default_weight_class_to_volume, list( + "[WEIGHT_CLASS_TINY]" = DEFAULT_VOLUME_TINY, + "[WEIGHT_CLASS_SMALL]" = DEFAULT_VOLUME_SMALL, + "[WEIGHT_CLASS_NORMAL]" = DEFAULT_VOLUME_NORMAL, + "[WEIGHT_CLASS_BULKY]" = DEFAULT_VOLUME_BULKY, + "[WEIGHT_CLASS_HUGE]" = DEFAULT_VOLUME_HUGE, + "[WEIGHT_CLASS_GIGANTIC]" = DEFAULT_VOLUME_GIGANTIC + )) + +/// Macro for automatically getting the volume of an item from its w_class. +#define AUTO_SCALE_VOLUME(w_class) (GLOB.default_weight_class_to_volume["[w_class]"]) +/// Macro for automatically getting the volume of a storage item from its max_w_class and max_combined_w_class. +#define AUTO_SCALE_STORAGE_VOLUME(w_class, max_combined_w_class) (AUTO_SCALE_VOLUME(w_class) * (max_combined_w_class / w_class)) + +// Let's keep all of this in one place. given what we put above anyways.. + +// volume amount for items +#define ITEM_VOLUME_DISK 1 + +// #define SAMPLE_VOLUME_AMOUNT 2 + +// max_weight_class for storages +#define MAX_WEIGHT_CLASS_BACKPACK WEIGHT_CLASS_NORMAL +#define MAX_WEIGHT_CLASS_BAG_OF_HOLDING WEIGHT_CLASS_BULKY + +// max_volume for storages +#define STORAGE_VOLUME_BACKPACK (DEFAULT_VOLUME_NORMAL * 7) +#define STORAGE_VOLUME_DUFFLEBAG (DEFAULT_VOLUME_NORMAL * 10) +#define STORAGE_VOLUME_BAG_OF_HOLDING (DEFAULT_VOLUME_NORMAL * 20) +#define STORAGE_VOLUME_CHEMISTRY_BAG (DEFAULT_VOLUME_TINY * 50) +#define STORAGE_VOLUME_PILL_BOTTLE (DEFAULT_VOLUME_TINY * 7) diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index b7aacee528..bf76f8a523 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -117,6 +117,7 @@ #define FIRE_PRIORITY_NPC 80 #define FIRE_PRIORITY_MOBS 100 #define FIRE_PRIORITY_TGUI 110 +#define FIRE_PRIORITY_PROJECTILES 200 #define FIRE_PRIORITY_TICKER 200 #define FIRE_PRIORITY_ATMOS_ADJACENCY 300 #define FIRE_PRIORITY_CHAT 400 diff --git a/code/__DEFINES/tgs.config.dm b/code/__DEFINES/tgs.config.dm index 9f4f63a1fc..a2fcc7855a 100644 --- a/code/__DEFINES/tgs.config.dm +++ b/code/__DEFINES/tgs.config.dm @@ -4,8 +4,9 @@ #define TGS_READ_GLOBAL(Name) GLOB.##Name #define TGS_WRITE_GLOBAL(Name, Value) GLOB.##Name = ##Value #define TGS_WORLD_ANNOUNCE(message) to_chat(world, "[html_encode(##message)]") -#define TGS_INFO_LOG(message) log_world("TGS: Info: [##message]") -#define TGS_ERROR_LOG(message) log_world("TGS: Error: [##message]") +#define TGS_INFO_LOG(message) log_world("TGS Info: [##message]") +#define TGS_WARNING_LOG(message) log_world("TGS Warn: [##message]") +#define TGS_ERROR_LOG(message) log_world("TGS Error: [##message]") #define TGS_NOTIFY_ADMINS(event) message_admins(##event) #define TGS_CLIENT_COUNT GLOB.clients.len #define TGS_PROTECT_DATUM(Path) GENERAL_PROTECT_DATUM(##Path) diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index dcccfc9295..7c0811ec59 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -1,235 +1,346 @@ -//tgstation-server DMAPI +// tgstation-server DMAPI -//All functions and datums outside this document are subject to change with any version and should not be relied on +#define TGS_DMAPI_VERSION "5.2.1" -//CONFIGURATION +// All functions and datums outside this document are subject to change with any version and should not be relied on. -//create this define if you want to do configuration outside of this file +// CONFIGURATION + +/// Create this define if you want to do TGS configuration outside of this file. #ifndef TGS_EXTERNAL_CONFIGURATION -//Comment this out once you've filled in the below +// Comment this out once you've filled in the below. #error TGS API unconfigured -//Uncomment this if you wish to allow the game to interact with TGS 3 -//This will raise the minimum required security level of your game to TGS_SECURITY_TRUSTED due to it utilizing call()() +// Uncomment this if you wish to allow the game to interact with TGS 3. +// This will raise the minimum required security level of your game to TGS_SECURITY_TRUSTED due to it utilizing call()() //#define TGS_V3_API -//Required interfaces (fill in with your codebase equivalent): +// Required interfaces (fill in with your codebase equivalent): -//create a global variable named `Name` and set it to `Value` -//These globals must not be modifiable from anywhere outside of the server tools +/// Create a global variable named `Name` and set it to `Value`. #define TGS_DEFINE_AND_SET_GLOBAL(Name, Value) -//Read the value in the global variable `Name` +/// Read the value in the global variable `Name`. #define TGS_READ_GLOBAL(Name) -//Set the value in the global variable `Name` to `Value` +/// Set the value in the global variable `Name` to `Value`. #define TGS_WRITE_GLOBAL(Name, Value) -//Disallow ANYONE from reflecting a given `path`, security measure to prevent in-game priveledge escalation +/// Disallow ANYONE from reflecting a given `path`, security measure to prevent in-game use of DD -> TGS capabilities. #define TGS_PROTECT_DATUM(Path) -//display an announcement `message` from the server to all players +/// Display an announcement `message` from the server to all players. #define TGS_WORLD_ANNOUNCE(message) -//Notify current in-game administrators of a string `event` +/// Notify current in-game administrators of a string `event`. #define TGS_NOTIFY_ADMINS(event) -//Write an info `message` to a server log +/// Write an info `message` to a server log. #define TGS_INFO_LOG(message) -//Write an error `message` to a server log +/// Write an warning `message` to a server log. +#define TGS_WARNING_LOG(message) + +/// Write an error `message` to a server log. #define TGS_ERROR_LOG(message) -//Get the number of connected /clients +/// Get the number of connected /clients. #define TGS_CLIENT_COUNT #endif -//EVENT CODES +// EVENT CODES -#define TGS_EVENT_PORT_SWAP -2 //before a port change is about to happen, extra parameter is new port -#define TGS_EVENT_REBOOT_MODE_CHANGE -1 //before a reboot mode change, extras parameters are the current and new reboot mode enums +/// Before a reboot mode change, extras parameters are the current and new reboot mode enums +#define TGS_EVENT_REBOOT_MODE_CHANGE -1 +/// Before a port change is about to happen, extra parameters is new port +#define TGS_EVENT_PORT_SWAP -2 +/// Before the instance is renamed, extra parameter is the new name +#define TGS_EVENT_INSTANCE_RENAMED -3 +/// After the watchdog reattaches to DD, extra parameter is the new [/datum/tgs_version] of the server +#define TGS_EVENT_WATCHDOG_REATTACH -4 -//See the descriptions for these codes here: https://github.com/tgstation/tgstation-server/blob/master/src/Tgstation.Server.Host/Components/EventType.cs +/// When the repository is reset to its origin reference. Parameters: Reference name, Commit SHA #define TGS_EVENT_REPO_RESET_ORIGIN 0 +/// When the repository performs a checkout. Parameters: Checkout git object #define TGS_EVENT_REPO_CHECKOUT 1 +/// When the repository performs a fetch operation. No parameters #define TGS_EVENT_REPO_FETCH 2 +/// When the repository merges a pull request. Parameters: PR Number, PR Sha, (Nullable) Comment made by TGS user #define TGS_EVENT_REPO_MERGE_PULL_REQUEST 3 +/// Before the repository makes a sychronize operation. Parameters: Absolute repostiory path #define TGS_EVENT_REPO_PRE_SYNCHRONIZE 4 +/// Before a BYOND install operation begins. Parameters: [/datum/tgs_version] of the installing BYOND #define TGS_EVENT_BYOND_INSTALL_START 5 +/// When a BYOND install operation fails. Parameters: Error message #define TGS_EVENT_BYOND_INSTALL_FAIL 6 +/// When the active BYOND version changes. Parameters: (Nullable) [/datum/tgs_version] of the current BYOND, [/datum/tgs_version] of the new BYOND #define TGS_EVENT_BYOND_ACTIVE_VERSION_CHANGE 7 +/// When the compiler starts running. Parameters: Game directory path, origin commit SHA #define TGS_EVENT_COMPILE_START 8 +/// When a compile is cancelled. No parameters #define TGS_EVENT_COMPILE_CANCELLED 9 +/// When a compile fails. Parameters: Game directory path, [TRUE]/[FALSE] based on if the cause for failure was DMAPI validation #define TGS_EVENT_COMPILE_FAILURE 10 +/// When a compile operation completes. Note, this event fires before the new .dmb is loaded into the watchdog. Consider using the [TGS_EVENT_DEPLOYMENT_COMPLETE] instead. Parameters: Game directory path #define TGS_EVENT_COMPILE_COMPLETE 11 +/// When an automatic update for the current instance begins. No parameters #define TGS_EVENT_INSTANCE_AUTO_UPDATE_START 12 +/// When the repository encounters a merge conflict: Parameters: Base SHA, target SHA, base reference, target reference #define TGS_EVENT_REPO_MERGE_CONFLICT 13 +/// When a deployment completes. No Parameters +#define TGS_EVENT_DEPLOYMENT_COMPLETE 14 +/// Before the watchdog shuts down. Not sent for graceful shutdowns. No parameters. +#define TGS_EVENT_WATCHDOG_SHUTDOWN 15 +/// Before the watchdog detaches for a TGS update/restart. No parameters. +#define TGS_EVENT_WATCHDOG_DETACH 16 -//OTHER ENUMS +// OTHER ENUMS +/// The server will reboot normally. #define TGS_REBOOT_MODE_NORMAL 0 +/// The server will stop running on reboot. #define TGS_REBOOT_MODE_SHUTDOWN 1 +/// The watchdog will restart on reboot. #define TGS_REBOOT_MODE_RESTART 2 +/// DreamDaemon Trusted security level. #define TGS_SECURITY_TRUSTED 0 +/// DreamDaemon Safe security level. #define TGS_SECURITY_SAFE 1 +/// DreamDaemon Ultrasafe security level. #define TGS_SECURITY_ULTRASAFE 2 //REQUIRED HOOKS -//Call this somewhere in /world/New() that is always run -//event_handler: optional user defined event handler. The default behaviour is to broadcast the event in english to all connected admin channels -//minimum_required_security_level: The minimum required security level to run the game in which the DMAPI is integrated +/** + * Call this somewhere in [/world/proc/New] that is always run. This function may sleep! + * + * * event_handler - Optional user defined [/datum/tgs_event_handler]. + * * minimum_required_security_level: The minimum required security level to run the game in which the DMAPI is integrated. Can be one of [TGS_SECURITY_ULTRASAFE], [TGS_SECURITY_SAFE], or [TGS_SECURITY_TRUSTED]. + */ /world/proc/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE) return -//Call this when your initializations are complete and your game is ready to play before any player interactions happen -//This may use world.sleep_offline to make this happen so ensure no changes are made to it while this call is running -//Most importantly, before this point, note that any static files or directories may be in use by another server. Your code should account for this -//This function should not be called before ..() in /world/New() +/** + * Call this when your initializations are complete and your game is ready to play before any player interactions happen. + * + * This may use [/world/var/sleep_offline] to make this happen so ensure no changes are made to it while this call is running. + * Before this point, note that any static files or directories may be in use by another server. Your code should account for this. + * This function should not be called before ..() in [/world/proc/New]. + */ /world/proc/TgsInitializationComplete() return -//Put this at the start of /world/Topic() +/// Put this at the start of [/world/proc/Topic]. #define TGS_TOPIC var/tgs_topic_return = TgsTopic(args[1]); if(tgs_topic_return) return tgs_topic_return -//Call this at the beginning of world/Reboot(reason) +/** + * Call this at the beginning of [world/proc/Reboot]. + */ /world/proc/TgsReboot() return -//DATUM DEFINITIONS -//unless otherwise specified all datums defined here should be considered read-only, warranty void if written +// DATUM DEFINITIONS +// All datums defined here should be considered read-only -//represents git revision information about the current world build +/// Represents git revision information. /datum/tgs_revision_information - var/commit //full sha of compiled commit - var/origin_commit //full sha of last known remote commit. This may be null if the TGS repository is not currently tracking a remote branch + /// Full SHA of the commit. + var/commit + /// Full sha of last known remote commit. This may be null if the TGS repository is not currently tracking a remote branch. + var/origin_commit -//represents a version of tgstation-server +/// Represents a version. /datum/tgs_version - var/suite //The suite version, can be >=3 + /// The suite/major version number + var/suite - //this group of variables can be null to represent a wild card - var/major //The major version - var/minor //The minor version - var/patch //The patch version + // This group of variables can be null to represent a wild card + /// The minor version number. null for wildcards + var/minor + /// The patch version number. null for wildcards + var/patch - var/raw_parameter //The unparsed parameter - var/deprefixed_parameter //The version only bit of raw_parameter + /// Legacy version number. Generally null + var/deprecated_patch -//if the tgs_version is a wildcard version + /// Unparsed string value + var/raw_parameter + /// String value minus prefix + var/deprefixed_parameter + +/** + * Returns [TRUE]/[FALSE] based on if the [/datum/tgs_version] contains wildcards. + */ /datum/tgs_version/proc/Wildcard() return -//represents a merge of a GitHub pull request +/** + * Returns [TRUE]/[FALSE] based on if the [/datum/tgs_version] equals some other version. + * + * other_version - The [/datum/tgs_version] to compare against. + */ +/datum/tgs_version/proc/Equals(datum/tgs_version/other_version) + return + +/// Represents a merge of a GitHub pull request. /datum/tgs_revision_information/test_merge - var/number //pull request number - var/title //pull request title - var/body //pull request body - var/author //pull request github author - var/url //link to pull request html - var/pull_request_commit //commit of the pull request when it was merged - var/time_merged //timestamp of when the merge commit for the pull request was created - var/comment //optional comment left by the one who initiated the test merge + /// The pull request number. + var/number + /// The pull request title when it was merged. + var/title + /// The pull request body when it was merged. + var/body + /// The GitHub username of the pull request's author. + var/author + /// An http URL to the pull request. + var/url + /// The SHA of the pull request when that was merged. + var/pull_request_commit + /// ISO 8601 timestamp of when the pull request was merged. + var/time_merged + /// (Nullable) Comment left by the TGS user who initiated the merge.. + var/comment -//represents a connected chat channel +/// Represents a connected chat channel. /datum/tgs_chat_channel - var/id //internal channel representation - var/friendly_name //user friendly channel name - var/connection_name //the name of the configured chat connection - var/is_admin_channel //if the server operator has marked this channel for game admins only - var/is_private_channel //if this is a private chat channel - var/custom_tag //user defined string associated with channel + /// TGS internal channel ID. + var/id + /// User friendly name of the channel. + var/friendly_name + /// Name of the chat connection. This is the IRC server address or the Discord guild. + var/connection_name + /// [TRUE]/[FALSE] based on if the server operator has marked this channel for game admins only. + var/is_admin_channel + /// [TRUE]/[FALSE] if the channel is a private message channel for a [/datum/tgs_chat_user]. + var/is_private_channel + /// Tag string associated with the channel in TGS + var/custom_tag -//represents a chat user +// Represents a chat user /datum/tgs_chat_user - var/id //Internal user representation, requires channel to be unique - var/friendly_name //The user's public name - var/mention //The text to use to ping this user in a message - var/datum/tgs_chat_channel/channel //The /datum/tgs_chat_channel this user was from + /// TGS internal user ID. + var/id + // The user's display name. + var/friendly_name + // The string to use to ping this user in a message. + var/mention + /// The [/datum/tgs_chat_channel] the user was from + var/datum/tgs_chat_channel/channel -//user definable callback for handling events -//extra parameters may be specified depending on the event +/** + * User definable callback for handling TGS events. + * + * event_code - One of the TGS_EVENT_ defines. Extra parameters will be documented in each + */ /datum/tgs_event_handler/proc/HandleEvent(event_code, ...) set waitfor = FALSE return -//user definable chat command +/// User definable chat command /datum/tgs_chat_command - var/name = "" //the string to trigger this command on a chat bot. e.g. TGS3_BOT: do_this_command - var/help_text = "" //help text for this command - var/admin_only = FALSE //set to TRUE if this command should only be usable by registered chat admins + /// The string to trigger this command on a chat bot. e.g `@bot name ...` or `!tgs name ...` + var/name = "" + /// The help text displayed for this command + var/help_text = "" + /// If this command should be available to game administrators only + var/admin_only = FALSE -//override to implement command -//sender: The tgs_chat_user who send to command -//params: The trimmed string following the command name -//The return value will be stringified and sent to the appropriate chat +/** + * Process command activation. Should return a string to respond to the issuer with. + * + * sender - The [/datum/tgs_chat_user] who issued the command. + * params - The trimmed string following the command `/datum/tgs_chat_command/var/name]. + */ /datum/tgs_chat_command/proc/Run(datum/tgs_chat_user/sender, params) CRASH("[type] has no implementation for Run()") -//FUNCTIONS +// API FUNCTIONS -//Returns the respective supported /datum/tgs_version of the API +/// Returns the maximum supported [/datum/tgs_version] of the DMAPI. /world/proc/TgsMaximumAPIVersion() return +/// Returns the minimum supported [/datum/tgs_version] of the DMAPI. /world/proc/TgsMinimumAPIVersion() return -//Returns TRUE if the world was launched under the server tools and the API matches, FALSE otherwise -//No function below this succeeds if it returns FALSE +/** + * Returns [TRUE] if DreamDaemon was launched under TGS, the API matches, and was properly initialized. [FALSE] will be returned otherwise. + */ /world/proc/TgsAvailable() return -//Gets the current /datum/tgs_version of the server tools running the server -/world/proc/TgsVersion() - return +// No function below this succeeds if it TgsAvailable() returns FALSE or if TgsNew() has yet to be called. -/world/proc/TgsInstanceName() - return - -//Get the current `/datum/tgs_revision_information` -/world/proc/TgsRevision() - return - -//Get the current BYOND security level -/world/proc/TgsSecurityLevel() - return - -//Gets a list of active `/datum/tgs_revision_information/test_merge`s -/world/proc/TgsTestMerges() - return - -//Forces a hard reboot of BYOND by ending the process -//unlike del(world) clients will try to reconnect -//If the service has not requested a shutdown, the next server will take over +/** + * Forces a hard reboot of DreamDaemon by ending the process. + * + * Unlike del(world) clients will try to reconnect. + * If TGS has not requested a [TGS_REBOOT_MODE_SHUTDOWN] DreamDaemon will be launched again + */ /world/proc/TgsEndProcess() return -//Gets a list of connected tgs_chat_channel -/world/proc/TgsChatChannelInfo() +/** + * Send a message to connected chats. + * + * message - The string to send. + * admin_only: If [TRUE], message will be sent to admin connected chats. Vice-versa applies. + */ +/world/proc/TgsTargetedChatBroadcast(message, admin_only = FALSE) return -//Sends a message to connected game chats -//message: The message to send -//channels: optional channels to limit the broadcast to -/world/proc/TgsChatBroadcast(message, list/channels) - return - -//Send a message to non-admin connected chats -//message: The message to send -//admin_only: If TRUE, message will instead be sent to only admin connected chats -/world/proc/TgsTargetedChatBroadcast(message, admin_only) - return - -//Send a private message to a specific user -//message: The message to send -//user: The /datum/tgs_chat_user to send to +/** + * Send a private message to a specific user. + * + * message - The string to send. + * user: The [/datum/tgs_chat_user] to PM. + */ /world/proc/TgsChatPrivateMessage(message, datum/tgs_chat_user/user) return +// The following functions will sleep if a call to TgsNew() is sleeping + +/** + * Send a message to connected chats that are flagged as game-related in TGS. + * + * message - The string to send. + * channels - Optional list of [/datum/tgs_chat_channel]s to restrict the message to. + */ +/world/proc/TgsChatBroadcast(message, list/channels = null) + return + +/// Returns the current [/datum/tgs_version] of TGS if it is running the server, null otherwise. +/world/proc/TgsVersion() + return + +/// Returns the current [/datum/tgs_version] of the DMAPI being used if it was activated, null otherwise. +/world/proc/TgsApiVersion() + return + +/// Returns the name of the TGS instance running the game if TGS is present, null otherwise. +/world/proc/TgsInstanceName() + return + +/// Return the current [/datum/tgs_revision_information] of the running server if TGS is present, null otherwise. +/world/proc/TgsRevision() + return + +/// Returns the current BYOND security level as a TGS_SECURITY_ define if TGS is present, null otherwise. +/world/proc/TgsSecurityLevel() + return + +/// Returns a list of active [/datum/tgs_revision_information/test_merge]s if TGS is present, null otherwise. +/world/proc/TgsTestMerges() + return + +/// Returns a list of connected [/datum/tgs_chat_channel]s if TGS is present, null otherwise. +/world/proc/TgsChatChannelInfo() + return + /* The MIT License @@ -255,4 +366,4 @@ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ \ No newline at end of file +*/ diff --git a/code/__DEFINES/time.dm b/code/__DEFINES/time.dm index af618cf828..01990ddc17 100644 --- a/code/__DEFINES/time.dm +++ b/code/__DEFINES/time.dm @@ -18,6 +18,7 @@ #define VALENTINES "Valentine's Day" #define APRIL_FOOLS "April Fool's Day" #define EASTER "Easter" +#define PRIDE_MONTH "Pride Month" #define HALLOWEEN "Halloween" #define CHRISTMAS "Christmas" #define FESTIVE_SEASON "Festive Season" @@ -38,6 +39,8 @@ When using time2text(), please use "DDD" to find the weekday. Refrain from using #define SATURDAY "Sat" #define SUNDAY "Sun" +#define WEEKDAY2NUM(D) (D == SUNDAY ? 1 : D == MONDAY ? 2 : D == TUESDAY ? 3 : D == WEDNESDAY ? 4 : D == THURSDAY ? 5 : D == FRIDAY ? 6 : 7) //this looks ugly, but switch statements can't be used as vars, so *shrug + #define SECONDS *10 #define MINUTES SECONDS*60 diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 91a4a6f2c3..eb86c52301 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -61,12 +61,20 @@ } while (0) #define HAS_TRAIT(target, trait) (target.status_traits ? (target.status_traits[trait] ? TRUE : FALSE) : FALSE) #define HAS_TRAIT_FROM(target, trait, source) (target.status_traits ? (target.status_traits[trait] ? (source in target.status_traits[trait]) : FALSE) : FALSE) +#define HAS_TRAIT_FROM_ONLY(target, trait, source) (\ + target.status_traits ?\ + (target.status_traits[trait] ?\ + ((source in target.status_traits[trait]) && (length(target.status_traits) == 1))\ + : FALSE)\ + : FALSE) #define HAS_TRAIT_NOT_FROM(target, trait, source) (target.status_traits ? (target.status_traits[trait] ? (length(target.status_traits[trait] - source) > 0) : FALSE) : FALSE) //mob traits #define TRAIT_BLIND "blind" #define TRAIT_MUTE "mute" #define TRAIT_EMOTEMUTE "emotemute" +#define TRAIT_LOOC_MUTE "looc_mute" //Just like unconsciousness, it disables LOOC salt. +#define TRAIT_AOOC_MUTE "aooc_mute" //Same as above but for AOOC. #define TRAIT_DEAF "deaf" #define TRAIT_NEARSIGHT "nearsighted" #define TRAIT_FAT "fat" @@ -88,6 +96,7 @@ #define TRAIT_SLEEPIMMUNE "sleep_immunity" #define TRAIT_PUSHIMMUNE "push_immunity" #define TRAIT_SHOCKIMMUNE "shock_immunity" +#define TRAIT_TESLA_SHOCKIMMUNE "tesla_shock_immunity" #define TRAIT_STABLEHEART "stable_heart" #define TRAIT_STABLELIVER "stable_liver" #define TRAIT_RESISTHEAT "resist_heat" @@ -134,6 +143,7 @@ #define TRAIT_LAW_ENFORCEMENT_METABOLISM "law-enforcement-metabolism" #define TRAIT_QUICK_CARRY "quick-carry" #define TRAIT_QUICKER_CARRY "quicker-carry" +#define TRAIT_QUICK_BUILD "quick-build" #define TRAIT_STRONG_GRABBER "strong_grabber" #define TRAIT_CALCIUM_HEALER "calcium_healer" #define TRAIT_MAGIC_CHOKE "magic_choke" @@ -146,6 +156,8 @@ #define TRAIT_NORUNNING "norunning" // You walk! #define TRAIT_NOMARROW "nomarrow" // You don't make blood, with chemicals or nanites. #define TRAIT_NOPULSE "nopulse" // Your heart doesn't beat. +#define TRAIT_NOGUT "nogutting" //Your chest cant be gutted of organs +#define TRAIT_NODECAP "nodecapping" //Your head cant be cut off in combat #define TRAIT_EXEMPT_HEALTH_EVENTS "exempt-health-events" #define TRAIT_NO_MIDROUND_ANTAG "no-midround-antag" //can't be turned into an antag by random events #define TRAIT_PUGILIST "pugilist" //This guy punches people for a living @@ -178,6 +190,7 @@ #define TRAIT_PARA "paraplegic" #define TRAIT_EMPATH "empath" #define TRAIT_FRIENDLY "friendly" +#define TRAIT_SNOB "snob" #define TRAIT_CULT_EYES "cult_eyes" #define TRAIT_AUTO_CATCH_ITEM "auto_catch_item" #define TRAIT_CLOWN_MENTALITY "clown_mentality" // The future is now, clownman. @@ -189,6 +202,7 @@ #define TRAIT_NO_ALCOHOL "alcohol_intolerance" #define TRAIT_MUTATION_STASIS "mutation_stasis" //Prevents processed genetics mutations from processing. #define TRAIT_FAST_PUMP "fast_pump" +#define TRAIT_NICE_SHOT "nice_shot" //hnnnnnnnggggg..... you're pretty good.... // mobility flag traits // IN THE FUTURE, IT WOULD BE NICE TO DO SOMETHING SIMILAR TO https://github.com/tgstation/tgstation/pull/48923/files (ofcourse not nearly the same because I have my.. thoughts on it) @@ -218,6 +232,8 @@ #define VEHICLE_TRAIT "vehicle" // inherited from riding vehicles #define INNATE_TRAIT "innate" +///Used for managing KEEP_TOGETHER in [appearance_flags] +#define TRAIT_KEEP_TOGETHER "keep-together" // item traits #define TRAIT_NODROP "nodrop" @@ -249,7 +265,7 @@ #define BOOK_TRAIT "granter (book)" // knowledge is power // unique trait sources, still defines -#define STATUE_MUTE "statue" +#define STATUE_TRAIT "statue" #define CLONING_POD_TRAIT "cloning-pod" #define VIRTUAL_REALITY_TRAIT "vr_trait" #define CHANGELING_DRAIN "drain" @@ -290,3 +306,8 @@ #define CLOWNOP_TRAIT "clown-op" #define MEGAFAUNA_TRAIT "megafauna" #define DEATHSQUAD_TRAIT "deathsquad" +/// This trait is added by the active directional block system. +#define ACTIVE_BLOCK_TRAIT "active_block" +/// This trait is added by the parry system. +#define ACTIVE_PARRY_TRAIT "active_parry" +#define STICKY_NODROP "sticky-nodrop" //sticky nodrop sounds like a bad soundcloud rapper's name \ No newline at end of file diff --git a/code/__DEFINES/vv.dm b/code/__DEFINES/vv.dm index a364e0b93c..889e1bb1c0 100644 --- a/code/__DEFINES/vv.dm +++ b/code/__DEFINES/vv.dm @@ -122,3 +122,6 @@ // misc #define VV_HK_SPACEVINE_PURGE "spacevine_purge" + +// paintings +#define VV_HK_REMOVE_PAINTING "remove_painting" diff --git a/code/__HELPERS/_cit_helpers.dm b/code/__HELPERS/_cit_helpers.dm index 86e8d1bc2b..5e57dd5328 100644 --- a/code/__HELPERS/_cit_helpers.dm +++ b/code/__HELPERS/_cit_helpers.dm @@ -1,9 +1,6 @@ //THIS FILE CONTAINS CONSTANTS, PROCS, AND OTHER THINGS// ///////////////////////////////////////////////////////// -/mob/proc/setClickCooldown(var/timeout) - next_move = max(world.time + timeout, next_move) - /proc/get_matrix_largest() var/matrix/mtrx=new() return mtrx.Scale(2) diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index c913a8ea5c..719735392d 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -37,6 +37,7 @@ * TYPECONT: The typepath of the contents of the list * COMPARE: The object to compare against, usualy the same as INPUT * COMPARISON: The variable on the objects to compare + * COMPTYPE: How the current bin item to compare against COMPARE is fetched. By key or value. */ #define BINARY_INSERT(INPUT, LIST, TYPECONT, COMPARE, COMPARISON, COMPTYPE) \ do {\ @@ -68,7 +69,7 @@ /proc/english_list(list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "" ) var/total = input.len if (!total) - return "[nothing_text]" + return nothing_text else if (total == 1) return "[input[1]]" else if (total == 2) @@ -670,3 +671,13 @@ for(var/key in input) ret += key return ret + +/proc/is_type_in_ref_list(path, list/L) + if(!ispath(path))//not a path + return + for(var/i in L) + var/datum/D = i + if(!istype(D))//not an usable reference + continue + if(istype(D, path)) + return TRUE diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm index 8ef924eea4..1935dcc8a5 100644 --- a/code/__HELPERS/_logging.dm +++ b/code/__HELPERS/_logging.dm @@ -4,7 +4,9 @@ #define SEND_SOUND(target, sound) DIRECT_OUTPUT(target, sound) #define SEND_TEXT(target, text) DIRECT_OUTPUT(target, text) #define WRITE_FILE(file, text) DIRECT_OUTPUT(file, text) -#define WRITE_LOG(log, text) rustg_log_write(log, text) +//This is an external call, "true" and "false" are how rust parses out booleans +#define WRITE_LOG(log, text) rustg_log_write(log, text, "true") +#define WRITE_LOG_NO_FORMAT(log, text) rustg_log_write(log, text, "false") //print a warning message to world.log #define WARNING(MSG) warning("[MSG] in [__FILE__] at line [__LINE__] src: [UNLINT(src)] usr: [usr].") @@ -53,7 +55,7 @@ WRITE_LOG(GLOB.world_game_log, "ADMIN: DSAY: [text]") /proc/log_consent(text) - WRITE_LOG(GLOB.world_game_log,"CONSENT: [text]") + WRITE_LOG(GLOB.world_game_log, "CONSENT: [text]") /* All other items are public. */ /proc/log_game(text) @@ -64,6 +66,9 @@ if (CONFIG_GET(flag/log_virus)) WRITE_LOG(GLOB.world_virus_log, "VIRUS: [text]") +/proc/log_asset(text) + WRITE_LOG(GLOB.world_asset_log, "ASSET: [text]") + /proc/log_access(text) if (CONFIG_GET(flag/log_access)) WRITE_LOG(GLOB.world_game_log, "ACCESS: [text]") @@ -152,6 +157,9 @@ /proc/log_subsystem(subsystem, text) WRITE_LOG(GLOB.subsystem_log, "[subsystem]: [text]") +/proc/log_click(atom/object, atom/location, control, params, client/C, event = "clicked", unexpected) + WRITE_LOG(GLOB.click_log, "[unexpected? "ERROR" :"CLICK"]: [C.ckey] - [event] : [istype(object)? "[object] ([COORD(object)])" : object] | [istype(location)? "[location] ([COORD(location)])" : location] | [control] | [params]") + /* Log to both DD and the logfile. */ /proc/log_world(text) #ifdef USE_CUSTOM_ERROR_HANDLER @@ -181,7 +189,7 @@ /proc/start_log(log) WRITE_LOG(log, "Starting up round ID [GLOB.round_id].\n-------------------------") -/* ui logging */ +/* ui logging */ /proc/log_tgui(text) WRITE_LOG(GLOB.tgui_log, text) diff --git a/code/__HELPERS/angles.dm b/code/__HELPERS/angles.dm new file mode 100644 index 0000000000..a3fc2404bd --- /dev/null +++ b/code/__HELPERS/angles.dm @@ -0,0 +1,39 @@ +/proc/get_projectile_angle(atom/source, atom/target) + var/sx = source.x * world.icon_size + var/sy = source.y * world.icon_size + var/tx = target.x * world.icon_size + var/ty = target.y * world.icon_size + var/atom/movable/AM + if(ismovable(source)) + AM = source + sx += AM.step_x + sy += AM.step_y + if(ismovable(target)) + AM = target + tx += AM.step_x + ty += AM.step_y + return SIMPLIFY_DEGREES(arctan(ty - sy, tx - sx)) + +/proc/Get_Angle(atom/movable/start,atom/movable/end)//For beams. + if(!start || !end) + return 0 + var/dy + var/dx + dy=(32*end.y+end.pixel_y)-(32*start.y+start.pixel_y) + dx=(32*end.x+end.pixel_x)-(32*start.x+start.pixel_x) + if(!dy) + return (dx>=0)?90:270 + .=arctan(dx/dy) + if(dy<0) + .+=180 + else if(dx<0) + .+=360 + +/proc/Get_Pixel_Angle(var/y, var/x)//for getting the angle when animating something's pixel_x and pixel_y + if(!y) + return (x>=0)?90:270 + .=arctan(x/y) + if(y<0) + .+=180 + else if(x<0) + .+=360 diff --git a/code/__HELPERS/areas.dm b/code/__HELPERS/areas.dm index 8e4c363227..e2249dbb63 100644 --- a/code/__HELPERS/areas.dm +++ b/code/__HELPERS/areas.dm @@ -170,6 +170,7 @@ GLOBAL_LIST_INIT(typecache_powerfailure_safe_areas, typecacheof(/area/engine/eng newA.setup(str) newA.set_dynamic_lighting() newA.has_gravity = oldA.has_gravity + newA.noteleport = oldA.noteleport else newA = area_choice diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm index 9b877e8fb0..dce4d554b7 100644 --- a/code/__HELPERS/cmp.dm +++ b/code/__HELPERS/cmp.dm @@ -104,7 +104,7 @@ GLOBAL_VAR_INIT(cmp_field, "name") var/a_sign = num2sign(initial(A.value) * -1) var/b_sign = num2sign(initial(B.value) * -1) - // Neutral traits go last. + // Neutral traits go last if(a_sign == 0) a_sign = 2 if(b_sign == 0) @@ -120,3 +120,8 @@ GLOBAL_VAR_INIT(cmp_field, "name") /proc/cmp_item_block_priority_asc(obj/item/A, obj/item/B) return A.block_priority - B.block_priority + +/proc/cmp_skill_categories(datum/skill/A, datum/skill/B) + if(A.ui_category == B.ui_category) + return sorttext(A.name, B.name) + return sorttext(A.ui_category, B.ui_category) diff --git a/code/__HELPERS/do_after.dm b/code/__HELPERS/do_after.dm new file mode 100644 index 0000000000..f1f483c345 --- /dev/null +++ b/code/__HELPERS/do_after.dm @@ -0,0 +1,323 @@ +/** + * Higher overhead "advanced" version of do_after. + * @params + * - atom/user is the atom doing the action or the "physical" user + * - delay is time in deciseconds + * - atom/target is the atom the action is being done to, defaults to user + * - do_after_flags see __DEFINES/flags/do_after.dm for details. + * - datum/callback/extra_checks - Every time this ticks, extra_checks() is invoked with (user, delay, target, time_left, do_after_flags, required_mobility_flags, required_combat_flags, mob_redirect, stage, initially_held_item, tool). + * Stage can be DO_AFTER_STARTING, DO_AFTER_PROGRESSING, DO_AFTER_FINISHING + * If it returns DO_AFTER_STOP, this breaks. + * If it returns nothing, all other checks are done. + * If it returns DO_AFTER_PROCEED, all other checks are ignored. + * - required_mobility_flags is checked with CHECK_ALL_MOBILITY. Will immediately fail if the user isn't a mob. + * - requried_combat_flags is checked with CHECK_MULTIPLE_BITFIELDS. Will immediately fail if the user isn't a mob. + * - mob/living/mob_redirect - advanced option: If this is specified, movement and mobility/combat flag checks will use this instead of user. Progressbars will also go to this. + * - obj/item/tool - The tool we're using. See do_after flags for details. + */ +#define INVOKE_CALLBACK cb_return = extra_checks?.Invoke(user, delay, target, world.time - starttime, do_after_flags, required_mobility_flags, required_combat_flags, mob_redirect, stage, initially_held_item, tool) +#define CHECK_FLAG_FAILURE ((required_mobility_flags || required_combat_flags) && (!living_user || (required_mobility_flags && !CHECK_ALL_MOBILITY(living_user, required_mobility_flags)) || (required_combat_flags && !CHECK_MULTIPLE_BITFIELDS(living_user.combat_flags, required_combat_flags)))) +#define TIMELEFT (world.time - starttime) +/proc/do_after_advanced(atom/user, delay, atom/target, do_after_flags, datum/callback/extra_checks, required_mobility_flags, required_combat_flags, mob/living/mob_redirect, obj/item/tool) + // CHECK AND SET VARIABLES + if(!user) + return FALSE + if(!target) + target = user + if((user.loc == null) || (target.loc == null)) + return FALSE + var/mob/living/living_user = mob_redirect + if(!living_user && isliving(user)) + living_user = user + var/stage = DO_AFTER_STARTING + var/startlocuser = user.loc + var/startloctarget = target.loc + var/turf/userturf = get_turf(user) + var/turf/targetturf = get_turf(target) + if(!userturf || !targetturf) + return FALSE + if((do_after_flags & DO_AFTER_REQUIRES_USER_ON_TURF) && !isturf(user.loc)) + return FALSE + var/starttime = world.time + var/endtime = world.time + delay + var/obj/item/initially_held_item = mob_redirect?.get_active_held_item() + if(!(do_after_flags & DO_AFTER_NO_COEFFICIENT) && living_user) + delay *= living_user.do_after_coefficent() + var/atom/movable/AM_user = ismovable(user) && user + var/drifting = AM_user?.Process_Spacemove(NONE) && AM_user.inertia_dir + var/initial_dx = targetturf.x - userturf.x + var/initial_dy = targetturf.y - userturf.y + var/dx = initial_dx + var/dy = initial_dy + // DO OUR STARTING CHECKS + var/cb_return + INVOKE_CALLBACK + if(cb_return == DO_AFTER_STOP) + return FALSE + else if(cb_return != DO_AFTER_PROCEED) + if(CHECK_FLAG_FAILURE) + return FALSE + // SETUP LOOP + var/datum/progressbar/progbar + if(living_user) + if(!(do_after_flags & DO_AFTER_NO_PROGRESSBAR)) + progbar = new(living_user, delay, target) + // MAIN LOOP + . = TRUE + if(!delay) + return + var/obj/item/held + var/locchanged + var/ctu + var/ctt + while(world.time < endtime) + stoplag(1) + progbar?.update(TIMELEFT) + if(QDELETED(user) || QDELETED(target) || (user.loc == null) || (target.loc == null)) + . = FALSE + break + INVOKE_CALLBACK + if(cb_return == DO_AFTER_STOP) + . = FALSE + break + else if(cb_return == DO_AFTER_PROCEED) + continue + // otherwise, go through our normal checks. + if(((do_after_flags & DO_AFTER_DISALLOW_MOVING_ABSOLUTE_USER) && (user.loc != startlocuser)) || ((do_after_flags & DO_AFTER_DISALLOW_MOVING_ABSOLUTE_TARGET) && (target.loc != startloctarget))) + . = FALSE + break + else if(do_after_flags & DO_AFTER_DISALLOW_MOVING_RELATIVE) + ctu = get_turf(user) + ctt = get_turf(target) + locchanged = (userturf != ctu) || (targetturf != ctt) + userturf = ctu + targetturf = ctt + dx = targetturf.x - userturf.x + dy = targetturf.y - userturf.y + if((dx != initial_dx) || (dy != initial_dy)) + . = FALSE + break + if(locchanged && !drifting && !(do_after_flags & DO_AFTER_ALLOW_NONSPACEDRIFT_RELATIVITY)) + . = FALSE + break + if(!AM_user.inertia_dir) + drifting = FALSE + if((do_after_flags & DO_AFTER_REQUIRES_USER_ON_TURF) && !isturf(user.loc)) + return FALSE + if(CHECK_FLAG_FAILURE) + . = FALSE + break + held = living_user?.get_active_held_item() + if((do_after_flags & DO_AFTER_DISALLOW_ACTIVE_ITEM_CHANGE) && (held != (tool || initially_held_item))) + . = FALSE + break + if((do_after_flags & DO_AFTER_REQUIRE_FREE_HAND_OR_TOOL) && (!living_user?.is_holding(tool) && !length(living_user?.get_empty_held_indexes()))) + . = FALSE + break + + // CLEANUP + qdel(progbar) + // If we failed, just return. + if(!.) + return FALSE + // DO FINISHING CHECKS + if(QDELETED(user) || QDELETED(target)) + return FALSE + INVOKE_CALLBACK + if(cb_return == DO_AFTER_STOP) + return FALSE + else if(cb_return == DO_AFTER_PROCEED) + return TRUE + if(CHECK_FLAG_FAILURE) + return FALSE + if(((do_after_flags & DO_AFTER_DISALLOW_MOVING_ABSOLUTE_USER) && (user.loc != startlocuser)) || ((do_after_flags & DO_AFTER_DISALLOW_MOVING_ABSOLUTE_TARGET) && (target.loc != startloctarget))) + return FALSE + else if(do_after_flags & DO_AFTER_DISALLOW_MOVING_RELATIVE) + ctu = get_turf(user) + ctt = get_turf(target) + locchanged = (userturf != ctu) || (targetturf != ctt) + userturf = ctu + targetturf = ctt + dx = targetturf.x - userturf.x + dy = targetturf.y - userturf.y + if((dx != initial_dx) || (dy != initial_dy)) + return FALSE + if(locchanged && !drifting && !(do_after_flags & DO_AFTER_ALLOW_NONSPACEDRIFT_RELATIVITY)) + return FALSE + if((do_after_flags & DO_AFTER_REQUIRES_USER_ON_TURF) && !isturf(user.loc)) + return FALSE + held = living_user?.get_active_held_item() + if((do_after_flags & DO_AFTER_DISALLOW_ACTIVE_ITEM_CHANGE) && (held != (tool || initially_held_item))) + return FALSE + if((do_after_flags & DO_AFTER_REQUIRE_FREE_HAND_OR_TOOL) && (!living_user?.is_holding(tool) && !length(living_user?.get_empty_held_indexes()))) + return FALSE + +#undef INVOKE_CALLBACK +#undef CHECK_FLAG_FAILURE + +/proc/do_mob(mob/user , mob/target, time = 30, uninterruptible = 0, progress = 1, datum/callback/extra_checks = null, ignorehelditem = FALSE, resume_time = 0 SECONDS) + if(!user || !target) + return 0 + var/user_loc = user.loc + + var/drifting = 0 + if(!user.Process_Spacemove(0) && user.inertia_dir) + drifting = 1 + + var/target_loc = target.loc + + var/holding = user.get_active_held_item() + var/datum/progressbar/progbar + if (progress) + progbar = new(user, time, target) + + var/endtime = world.time+time + var/starttime = world.time + . = 1 + while (world.time + resume_time < endtime) + stoplag(1) + if (progress) + progbar.update(world.time - starttime + resume_time) + if(QDELETED(user) || QDELETED(target)) + . = 0 + break + if(uninterruptible) + continue + + if(drifting && !user.inertia_dir) + drifting = 0 + user_loc = user.loc + + if((!drifting && user.loc != user_loc) || target.loc != target_loc || (!ignorehelditem && user.get_active_held_item() != holding) || user.incapacitated() || user.lying || (extra_checks && !extra_checks.Invoke())) + . = 0 + break + if (progress) + qdel(progbar) + + +//some additional checks as a callback for for do_afters that want to break on losing health or on the mob taking action +/mob/proc/break_do_after_checks(list/checked_health, check_clicks) + if(check_clicks && next_move > world.time) + return FALSE + return TRUE + +//pass a list in the format list("health" = mob's health var) to check health during this +/mob/living/break_do_after_checks(list/checked_health, check_clicks) + if(islist(checked_health)) + if(health < checked_health["health"]) + return FALSE + checked_health["health"] = health + return ..() + +/proc/do_after(mob/user, var/delay, needhand = 1, atom/target = null, progress = 1, datum/callback/extra_checks = null, required_mobility_flags = (MOBILITY_USE|MOBILITY_MOVE), resume_time = 0 SECONDS) + if(!user) + return 0 + var/atom/Tloc = null + if(target && !isturf(target)) + Tloc = target.loc + + var/atom/Uloc = user.loc + + var/drifting = 0 + if(!user.Process_Spacemove(0) && user.inertia_dir) + drifting = 1 + + var/holding = user.get_active_held_item() + + var/holdingnull = 1 //User's hand started out empty, check for an empty hand + if(holding) + holdingnull = 0 //Users hand started holding something, check to see if it's still holding that + + delay *= user.do_after_coefficent() + + var/datum/progressbar/progbar + if (progress) + progbar = new(user, delay, target) + + var/endtime = world.time + delay + var/starttime = world.time + . = 1 + var/mob/living/L = isliving(user) && user //evals to last thing eval'd + while (world.time + resume_time < endtime) + stoplag(1) + if (progress) + progbar.update(world.time - starttime + resume_time) + + if(drifting && !user.inertia_dir) + drifting = 0 + Uloc = user.loc + + if(L && !CHECK_ALL_MOBILITY(L, required_mobility_flags)) + . = 0 + break + + if(QDELETED(user) || user.stat || (!drifting && user.loc != Uloc) || (extra_checks && !extra_checks.Invoke())) + . = 0 + break + + if(!QDELETED(Tloc) && (QDELETED(target) || Tloc != target.loc)) + if((Uloc != Tloc || Tloc != user) && !drifting) + . = 0 + break + + if(needhand) + //This might seem like an odd check, but you can still need a hand even when it's empty + //i.e the hand is used to pull some item/tool out of the construction + if(!holdingnull) + if(!holding) + . = 0 + break + if(user.get_active_held_item() != holding) + . = 0 + break + if (progress) + qdel(progbar) + +/mob/proc/do_after_coefficent() // This gets added to the delay on a do_after, default 1 + . = 1 + return + +/proc/do_after_mob(mob/user, var/list/targets, time = 30, uninterruptible = 0, progress = 1, datum/callback/extra_checks) + if(!user || !targets) + return 0 + if(!islist(targets)) + targets = list(targets) + var/user_loc = user.loc + + var/drifting = 0 + if(!user.Process_Spacemove(0) && user.inertia_dir) + drifting = 1 + + var/list/originalloc = list() + for(var/atom/target in targets) + originalloc[target] = target.loc + + var/holding = user.get_active_held_item() + var/datum/progressbar/progbar + if(progress) + progbar = new(user, time, targets[1]) + + var/endtime = world.time + time + var/starttime = world.time + . = 1 + mainloop: + while(world.time < endtime) + stoplag(1) + if(progress) + progbar.update(world.time - starttime) + if(QDELETED(user) || !targets) + . = 0 + break + if(uninterruptible) + continue + + if(drifting && !user.inertia_dir) + drifting = 0 + user_loc = user.loc + + for(var/atom/target in targets) + if((!drifting && user_loc != user.loc) || QDELETED(target) || originalloc[target] != target.loc || user.get_active_held_item() != holding || user.incapacitated() || user.lying || (extra_checks && !extra_checks.Invoke())) + . = 0 + break mainloop + if(progbar) + qdel(progbar) diff --git a/code/__HELPERS/files.dm b/code/__HELPERS/files.dm index 7c6c186bca..8b4f8d5b54 100644 --- a/code/__HELPERS/files.dm +++ b/code/__HELPERS/files.dm @@ -3,7 +3,7 @@ for(var/file in args) src << browse_rsc(file) -/client/proc/browse_files(root="data/logs/", max_iterations=10, list/valid_extensions=list("txt","log","htm", "html", "md")) +/client/proc/browse_files(root="data/logs/", max_iterations=10, list/valid_extensions=list("txt","log","htm", "html", "md", "json")) var/path = root for(var/i=0, i" var/atom/A = thing if (isnull(dir)) @@ -1160,9 +1161,10 @@ GLOBAL_LIST_INIT(freon_color_matrix, list("#2E5E69", "#60A2A8", "#A1AFB1", rgb(0 I = icon(I, icon_state, dir, frame, moving) key = "[generate_asset_name(I)].png" - register_asset(key, I) + if(!SSassets.cache[key]) + register_asset(key, I) for (var/thing2 in targets) - send_asset(thing2, key, FALSE) + send_asset(thing2, key) return "" diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index e0714a87b3..f8f6bca31a 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -216,6 +216,7 @@ "ipc_screen" = snowflake_ipc_antenna_list ? pick(snowflake_ipc_antenna_list) : "None", "ipc_antenna" = "None", "flavor_text" = "", + "silicon_flavor_text" = "", "meat_type" = "Mammalian", "body_model" = body_model, "body_size" = RESIZE_DEFAULT_SIZE @@ -319,173 +320,6 @@ GLOBAL_LIST_EMPTY(species_list) else return "unknown" -/proc/do_mob(mob/user , mob/target, time = 30, uninterruptible = 0, progress = 1, datum/callback/extra_checks = null, ignorehelditem = FALSE, resume_time = 0 SECONDS) - if(!user || !target) - return 0 - var/user_loc = user.loc - - var/drifting = 0 - if(!user.Process_Spacemove(0) && user.inertia_dir) - drifting = 1 - - var/target_loc = target.loc - - var/holding = user.get_active_held_item() - var/datum/progressbar/progbar - if (progress) - progbar = new(user, time, target) - - var/endtime = world.time+time - var/starttime = world.time - . = 1 - while (world.time + resume_time < endtime) - stoplag(1) - if (progress) - progbar.update(world.time - starttime + resume_time) - if(QDELETED(user) || QDELETED(target)) - . = 0 - break - if(uninterruptible) - continue - - if(drifting && !user.inertia_dir) - drifting = 0 - user_loc = user.loc - - if((!drifting && user.loc != user_loc) || target.loc != target_loc || (!ignorehelditem && user.get_active_held_item() != holding) || user.incapacitated() || user.lying || (extra_checks && !extra_checks.Invoke())) - . = 0 - break - if (progress) - qdel(progbar) - - -//some additional checks as a callback for for do_afters that want to break on losing health or on the mob taking action -/mob/proc/break_do_after_checks(list/checked_health, check_clicks) - if(check_clicks && next_move > world.time) - return FALSE - return TRUE - -//pass a list in the format list("health" = mob's health var) to check health during this -/mob/living/break_do_after_checks(list/checked_health, check_clicks) - if(islist(checked_health)) - if(health < checked_health["health"]) - return FALSE - checked_health["health"] = health - return ..() - -/proc/do_after(mob/user, var/delay, needhand = 1, atom/target = null, progress = 1, datum/callback/extra_checks = null, required_mobility_flags = (MOBILITY_USE|MOBILITY_MOVE), resume_time = 0 SECONDS) - if(!user) - return 0 - var/atom/Tloc = null - if(target && !isturf(target)) - Tloc = target.loc - - var/atom/Uloc = user.loc - - var/drifting = 0 - if(!user.Process_Spacemove(0) && user.inertia_dir) - drifting = 1 - - var/holding = user.get_active_held_item() - - var/holdingnull = 1 //User's hand started out empty, check for an empty hand - if(holding) - holdingnull = 0 //Users hand started holding something, check to see if it's still holding that - - delay *= user.do_after_coefficent() - - var/datum/progressbar/progbar - if (progress) - progbar = new(user, delay, target) - - var/endtime = world.time + delay - var/starttime = world.time - . = 1 - var/mob/living/L = isliving(user) && user //evals to last thing eval'd - while (world.time + resume_time < endtime) - stoplag(1) - if (progress) - progbar.update(world.time - starttime + resume_time) - - if(drifting && !user.inertia_dir) - drifting = 0 - Uloc = user.loc - - if(L && !CHECK_ALL_MOBILITY(L, required_mobility_flags)) - . = 0 - break - - if(QDELETED(user) || user.stat || (!drifting && user.loc != Uloc) || (extra_checks && !extra_checks.Invoke())) - . = 0 - break - - if(!QDELETED(Tloc) && (QDELETED(target) || Tloc != target.loc)) - if((Uloc != Tloc || Tloc != user) && !drifting) - . = 0 - break - - if(needhand) - //This might seem like an odd check, but you can still need a hand even when it's empty - //i.e the hand is used to pull some item/tool out of the construction - if(!holdingnull) - if(!holding) - . = 0 - break - if(user.get_active_held_item() != holding) - . = 0 - break - if (progress) - qdel(progbar) - -/mob/proc/do_after_coefficent() // This gets added to the delay on a do_after, default 1 - . = 1 - return - -/proc/do_after_mob(mob/user, var/list/targets, time = 30, uninterruptible = 0, progress = 1, datum/callback/extra_checks) - if(!user || !targets) - return 0 - if(!islist(targets)) - targets = list(targets) - var/user_loc = user.loc - - var/drifting = 0 - if(!user.Process_Spacemove(0) && user.inertia_dir) - drifting = 1 - - var/list/originalloc = list() - for(var/atom/target in targets) - originalloc[target] = target.loc - - var/holding = user.get_active_held_item() - var/datum/progressbar/progbar - if(progress) - progbar = new(user, time, targets[1]) - - var/endtime = world.time + time - var/starttime = world.time - . = 1 - mainloop: - while(world.time < endtime) - stoplag(1) - if(progress) - progbar.update(world.time - starttime) - if(QDELETED(user) || !targets) - . = 0 - break - if(uninterruptible) - continue - - if(drifting && !user.inertia_dir) - drifting = 0 - user_loc = user.loc - - for(var/atom/target in targets) - if((!drifting && user_loc != user.loc) || QDELETED(target) || originalloc[target] != target.loc || user.get_active_held_item() != holding || user.incapacitated() || user.lying || (extra_checks && !extra_checks.Invoke())) - . = 0 - break mainloop - if(progbar) - qdel(progbar) - /proc/is_species(A, species_datum) . = FALSE if(ishuman(A)) @@ -541,6 +375,8 @@ GLOBAL_LIST_EMPTY(species_list) override = TRUE if(HAS_TRAIT(M, TRAIT_SIXTHSENSE)) override = TRUE + if(SSticker.current_state == GAME_STATE_FINISHED) + override = TRUE if(isnewplayer(M) && !override) continue if(M.stat != DEAD && !override) diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index aa388d7413..045ca2c519 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -174,7 +174,7 @@ to_chat(world, "


    The round has ended.") if(LAZYLEN(GLOB.round_end_notifiees)) - send2irc("Notice", "[GLOB.round_end_notifiees.Join(", ")] the round has ended.") + world.TgsTargetedChatBroadcast("[GLOB.round_end_notifiees.Join(", ")] the round has ended.", FALSE) for(var/I in round_end_events) var/datum/callback/cb = I @@ -233,6 +233,7 @@ for(var/antag_name in total_antagonists) var/list/L = total_antagonists[antag_name] log_game("[antag_name]s :[L.Join(", ")].") + set_observer_default_invisibility(0, "The round is over! You are now visible to the living.") CHECK_TICK SSdbcore.SetRoundEnd() diff --git a/code/__HELPERS/sanitize_values.dm b/code/__HELPERS/sanitize_values.dm index dadd4322fb..cbe1817233 100644 --- a/code/__HELPERS/sanitize_values.dm +++ b/code/__HELPERS/sanitize_values.dm @@ -18,6 +18,12 @@ return text return default +/proc/sanitize_islist(value, default) + if(islist(value) && length(value)) + return value + if(default) + return default + /proc/sanitize_inlist(value, list/List, default) if(value in List) return value diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index 09047d32bf..2c8497d5ed 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -629,3 +629,45 @@ return null r += ascii2text(c) return r + +/proc/slot_to_string(slot) + switch(slot) + if(SLOT_BACK) + return "Backpack" + if(SLOT_WEAR_MASK) + return "Mask" + if(SLOT_HANDS) + return "Hands" + if(SLOT_BELT) + return "Belt" + if(SLOT_EARS) + return "Ears" + if(SLOT_GLASSES) + return "Glasses" + if(SLOT_GLOVES) + return "Gloves" + if(SLOT_NECK) + return "Neck" + if(SLOT_HEAD) + return "Head" + if(SLOT_SHOES) + return "Shoes" + if(SLOT_WEAR_SUIT) + return "Suit" + if(SLOT_W_UNIFORM) + return "Uniform" + if(SLOT_IN_BACKPACK) + return "In backpack" + +/proc/tg_ui_icon_to_cit_ui(ui_style) + switch(ui_style) + if('icons/mob/screen_plasmafire.dmi') + return 'modular_citadel/icons/ui/screen_plasmafire.dmi' + if('icons/mob/screen_slimecore.dmi') + return 'modular_citadel/icons/ui/screen_slimecore.dmi' + if('icons/mob/screen_operative.dmi') + return 'modular_citadel/icons/ui/screen_operative.dmi' + if('icons/mob/screen_clockwork.dmi') + return 'modular_citadel/icons/ui/screen_clockwork.dmi' + else + return 'modular_citadel/icons/ui/screen_midnight.dmi' diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index a22f430140..337d44aa1e 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1,5 +1,3 @@ - - /* * A large number of misc global procs. */ @@ -17,30 +15,8 @@ var/textb = copytext(HTMLstring, 6, 8) return rgb(255 - hex2num(textr), 255 - hex2num(textg), 255 - hex2num(textb)) -/proc/Get_Angle(atom/movable/start,atom/movable/end)//For beams. - if(!start || !end) - return 0 - var/dy - var/dx - dy=(32*end.y+end.pixel_y)-(32*start.y+start.pixel_y) - dx=(32*end.x+end.pixel_x)-(32*start.x+start.pixel_x) - if(!dy) - return (dx>=0)?90:270 - .=arctan(dx/dy) - if(dy<0) - .+=180 - else if(dx<0) - .+=360 - -/proc/Get_Pixel_Angle(var/y, var/x)//for getting the angle when animating something's pixel_x and pixel_y - if(!y) - return (x>=0)?90:270 - .=arctan(x/y) - if(y<0) - .+=180 - else if(x<0) - .+=360 - +//Better performant than an artisanal proc and more reliable than Turn(). From TGMC. +#define REVERSE_DIR(dir) ( ((dir & 85) << 1) | ((dir & 170) >> 1) ) //Returns location. Returns null if no location was found. /proc/get_teleport_loc(turf/location,mob/target,distance = 1, density = FALSE, errorx = 0, errory = 0, eoffsetx = 0, eoffsety = 0) /* @@ -391,6 +367,16 @@ Turf and target are separate in case you want to teleport some distance from a t break return loc +//Returns a list of all locations the target is within. +/proc/get_nested_locs(atom/movable/M, include_turf = FALSE) + . = list() + var/atom/A = M.loc + while(A && !isturf(A)) + . += A + A = A.loc + if(A && include_turf) //At this point, only the turf is left. + . += A + // returns the turf located at the map edge in the specified direction relative to A // used for mass driver /proc/get_edge_target_turf(atom/A, direction) @@ -689,12 +675,6 @@ Turf and target are separate in case you want to teleport some distance from a t loc = loc.loc return null -//For objects that should embed, but make no sense being is_sharp or is_pointed() -//e.g: rods -GLOBAL_LIST_INIT(can_embed_types, typecacheof(list( - /obj/item/stack/rods, - /obj/item/pipe))) - /* Checks if that loc and dir has an item on the wall */ @@ -1592,8 +1572,13 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) //empty string - use TgsTargetBroadcast with admin_only = FALSE //other string - use TgsChatBroadcast with the tag that matches config_setting, only works with TGS4, if using TGS3 the above method is used /proc/send2chat(message, config_setting) - if(config_setting == null || !world.TgsAvailable()) + if(config_setting == null) return + + UNTIL(GLOB.tgs_initialized) + if(!world.TgsAvailable()) + return + var/datum/tgs_version/version = world.TgsVersion() if(config_setting == "" || version.suite == 3) world.TgsTargetedChatBroadcast(message, FALSE) diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index 52eff15492..85f5e4fd9b 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -49,6 +49,8 @@ GLOBAL_LIST_INIT(bitfields, list( "DROPDEL" = DROPDEL, "NOBLUDGEON" = NOBLUDGEON, "ABSTRACT" = ABSTRACT, + "ITEM_CAN_BLOCK" = ITEM_CAN_BLOCK, + "ITEM_CAN_PARRY" = ITEM_CAN_PARRY ), "admin_flags" = list( "BUILDMODE" = R_BUILDMODE, @@ -123,7 +125,7 @@ GLOBAL_LIST_INIT(bitfields, list( "UNUSED_RESERVATION_TURF_1" = UNUSED_RESERVATION_TURF_1, "CAN_BE_DIRTY_1" = CAN_BE_DIRTY_1, "HEAR_1" = HEAR_1, - "CHECK_RICOCHET_1" = CHECK_RICOCHET_1, + "DEFAULT_RICOCHET_1" = DEFAULT_RICOCHET_1, "CONDUCT_1" = CONDUCT_1, "NO_LAVA_GEN_1" = NO_LAVA_GEN_1, "NODECONSTRUCT_1" = NODECONSTRUCT_1, @@ -132,9 +134,15 @@ GLOBAL_LIST_INIT(bitfields, list( "NO_RUINS_1" = NO_RUINS_1, "PREVENT_CLICK_UNDER_1" = PREVENT_CLICK_UNDER_1, "HOLOGRAM_1" = HOLOGRAM_1, - "TESLA_IGNORE_1" = TESLA_IGNORE_1, + "SHOCKED_1" = SHOCKED_1, "INITIALIZED_1" = INITIALIZED_1, "ADMIN_SPAWNED_1" = ADMIN_SPAWNED_1, + "BLOCK_FACE_ATOM_1" = BLOCK_FACE_ATOM_1, + "PREVENT_CONTENTS_EXPLOSION_1" = PREVENT_CONTENTS_EXPLOSION_1 + ), + "flags_ricochet" = list( + "RICOCHET_SHINY" = RICOCHET_SHINY, + "RICOCHET_HARD" = RICOCHET_HARD ), "clothing_flags" = list( "LAVAPROTECT" = LAVAPROTECT, @@ -148,12 +156,12 @@ GLOBAL_LIST_INIT(bitfields, list( "IGNORE_HAT_TOSS" = IGNORE_HAT_TOSS, "SCAN_REAGENTS" = SCAN_REAGENTS ), - "tesla_flags" = list( - "TESLA_MOB_DAMAGE" = TESLA_MOB_DAMAGE, - "TESLA_OBJ_DAMAGE" = TESLA_OBJ_DAMAGE, - "TESLA_MOB_STUN" = TESLA_MOB_STUN, - "TESLA_ALLOW_DUPLICATES" = TESLA_ALLOW_DUPLICATES, - "TESLA_MACHINE_EXPLOSIVE" = TESLA_MACHINE_EXPLOSIVE, + "zap_flags" = list( + "ZAP_MOB_DAMAGE" = ZAP_MOB_DAMAGE, + "ZAP_OBJ_DAMAGE" = ZAP_OBJ_DAMAGE, + "ZAP_MOB_STUN" = ZAP_MOB_STUN, + "ZAP_ALLOW_DUPLICATES" = ZAP_ALLOW_DUPLICATES, + "ZAP_MACHINE_EXPLOSIVE" = ZAP_MACHINE_EXPLOSIVE, ), "smooth" = list( "SMOOTH_TRUE" = SMOOTH_TRUE, @@ -240,15 +248,14 @@ GLOBAL_LIST_INIT(bitfields, list( "MOBILITY_RESIST" = MOBILITY_RESIST ), "combat_flags" = list( - "COMBAT_FLAG_COMBAT_TOGGLED" = COMBAT_FLAG_COMBAT_TOGGLED, "COMBAT_FLAG_SPRINT_TOGGLED" = COMBAT_FLAG_SPRINT_TOGGLED, - "COMBAT_FLAG_COMBAT_ACTIVE" = COMBAT_FLAG_COMBAT_ACTIVE, "COMBAT_FLAG_SPRINT_ACTIVE" = COMBAT_FLAG_SPRINT_ACTIVE, "COMBAT_FLAG_ATTEMPTING_CRAWL" = COMBAT_FLAG_ATTEMPTING_CRAWL, "COMBAT_FLAG_HARD_STAMCRIT" = COMBAT_FLAG_HARD_STAMCRIT, "COMBAT_FLAG_SOFT_STAMCRIT" = COMBAT_FLAG_SOFT_STAMCRIT, "COMBAT_FLAG_INTENTIONALLY_RESTING" = COMBAT_FLAG_INTENTIONALLY_RESTING, - "COMBAT_FLAG_RESISTING_REST" = COMBAT_FLAG_RESISTING_REST + "COMBAT_FLAG_RESISTING_REST" = COMBAT_FLAG_RESISTING_REST, + "COMBAT_FLAG_SPRINT_FORCED" = COMBAT_FLAG_SPRINT_FORCED ), "shield_flags" = list( "SHIELD_TRANSPARENT" = SHIELD_TRANSPARENT, diff --git a/code/_globalvars/lists/client.dm b/code/_globalvars/lists/client.dm new file mode 100644 index 0000000000..5181d870c4 --- /dev/null +++ b/code/_globalvars/lists/client.dm @@ -0,0 +1,21 @@ +GLOBAL_LIST_EMPTY(classic_keybinding_list_by_key) +GLOBAL_LIST_EMPTY(hotkey_keybinding_list_by_key) +GLOBAL_LIST_EMPTY(keybindings_by_name) + +// This is a mapping from JS keys to Byond - ref: https://keycode.info/ +GLOBAL_LIST_INIT(_kbMap, list( + "UP" = "North", + "RIGHT" = "East", + "DOWN" = "South", + "LEFT" = "West", + "INSERT" = "Insert", + "HOME" = "Northwest", + "PAGEUP" = "Northeast", + "DEL" = "Delete", + "END" = "Southwest", + "PAGEDOWN" = "Southeast", + "SPACEBAR" = "Space", + "ALT" = "Alt", + "SHIFT" = "Shift", + "CONTROL" = "Ctrl" + )) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index df83f1b4e3..4c912b9c1e 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -223,3 +223,11 @@ GLOBAL_LIST_INIT(station_numerals, greek_letters + phonetic_alphabet + numbers_a GLOBAL_LIST_INIT(admiral_messages, list("Do you know how expensive these stations are?","Stop wasting my time.","I was sleeping, thanks a lot.","Stand and fight you cowards!","You knew the risks coming in.","Stop being paranoid.","Whatever's broken just build a new one.","No.", "null","Error: No comment given.", "It's a good day to die!")) GLOBAL_LIST_INIT(redacted_strings, list("\[REDACTED\]", "\[CLASSIFIED\]", "\[ARCHIVED\]", "\[EXPLETIVE DELETED\]", "\[EXPUNGED\]", "\[INFORMATION ABOVE YOUR SECURITY CLEARANCE\]", "\[MOVE ALONG CITIZEN\]", "\[NOTHING TO SEE HERE\]", "\[ACCESS DENIED\]")) + +GLOBAL_LIST_INIT(wisdoms, world.file2list("strings/wisdoms.txt")) + +GLOBAL_LIST_INIT(speech_verbs, list("default","says","gibbers", "states", "chitters", "declares", "bellows", "buzzes" ,"beeps", "chirps" ,"hisses" ,"poofs" ,"rattles", "mewls" ,"barks", "blorbles", "squeaks", "squawks", "flutters")) + +GLOBAL_LIST_INIT(roundstart_tongues, list("default","human tongue" = /obj/item/organ/tongue, "lizard tongue" = /obj/item/organ/tongue/lizard, "skeleton tongue" = /obj/item/organ/tongue/bone, "fly tongue" = /obj/item/organ/tongue/fly, "ipc tongue" = /obj/item/organ/tongue/robot/ipc)) + + diff --git a/code/_globalvars/lists/keybindings.dm b/code/_globalvars/lists/keybindings.dm new file mode 100644 index 0000000000..7e5b016a95 --- /dev/null +++ b/code/_globalvars/lists/keybindings.dm @@ -0,0 +1,31 @@ +/// Creates and sorts all the keybinding datums +/proc/init_keybindings() + for(var/KB in subtypesof(/datum/keybinding)) + var/datum/keybinding/keybinding = KB + if(!initial(keybinding.hotkey_keys)) + continue + add_keybinding(new keybinding) + // init_emote_keybinds() - Disabled - I don't particularly want this. + +/// Adds an instanced keybinding to the global tracker +/proc/add_keybinding(datum/keybinding/instance) + GLOB.keybindings_by_name[instance.name] = instance + + // Classic + if(LAZYLEN(instance.classic_keys)) + for(var/bound_key in instance.classic_keys) + LAZYADD(GLOB.classic_keybinding_list_by_key[bound_key], list(instance.name)) + + // Hotkey + if(LAZYLEN(instance.hotkey_keys)) + for(var/bound_key in instance.hotkey_keys) + LAZYADD(GLOB.hotkey_keybinding_list_by_key[bound_key], list(instance.name)) + +/proc/init_emote_keybinds() + for(var/i in subtypesof(/datum/emote)) + var/datum/emote/faketype = i + if(!initial(faketype.key)) + continue + var/datum/keybinding/emote/emote_kb = new + emote_kb.link_to_emote(faketype) + add_keybinding(emote_kb) diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index 632904202d..865f405442 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -51,7 +51,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list( /obj/item/airlock_painter = 1, /obj/item/stack/cable_coil/random = 4, /obj/item/stack/cable_coil/random/five = 6, - /obj/item/stack/medical/bruise_pack = 1, + /obj/item/stack/medical/suture = 1, /obj/item/stack/rods/ten = 9, /obj/item/stack/rods/twentyfive = 1, /obj/item/stack/rods/fifty = 1, @@ -89,7 +89,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list( /obj/effect/spawner/lootdrop/welder_tools = 3, /obj/effect/spawner/lootdrop/low_tools = 5, /obj/item/relic = 3, - /obj/item/weaponcrafting/receiver = 2, + /obj/item/weaponcrafting/improvised_parts/shotgun_receiver = 2, /obj/item/clothing/head/cone = 2, /obj/item/grenade/smokebomb = 2, /obj/item/geiger_counter = 3, @@ -116,5 +116,24 @@ GLOBAL_LIST_INIT(maintenance_loot, list( /obj/item/autosurgeon/testicles = 1, /obj/item/storage/box/marshmallow = 2, /obj/item/clothing/gloves/tackler/offbrand = 1, + /obj/item/stack/sticky_tape = 1, "" = 3 )) + +GLOBAL_LIST_INIT(ratking_trash, list(//Garbage: used by the regal rat mob when spawning garbage. + /obj/item/cigbutt, + /obj/item/trash/cheesie, + /obj/item/trash/candy, + /obj/item/trash/chips, + /obj/item/trash/pistachios, + /obj/item/trash/plate, + /obj/item/trash/popcorn, + /obj/item/trash/raisins, + /obj/item/trash/sosjerky, + /obj/item/trash/syndi_cakes)) + +GLOBAL_LIST_INIT(ratking_coins, list(//Coins: Used by the regal rat mob when spawning coins. + /obj/item/coin/iron, + /obj/item/coin/silver, + /obj/item/coin/plastic, + /obj/item/coin/titanium)) \ No newline at end of file diff --git a/code/_globalvars/lists/poll_ignore.dm b/code/_globalvars/lists/poll_ignore.dm index f5f3adbcc0..d74238c06d 100644 --- a/code/_globalvars/lists/poll_ignore.dm +++ b/code/_globalvars/lists/poll_ignore.dm @@ -19,6 +19,7 @@ #define POLL_IGNORE_WIZARD "wizard" #define POLL_IGNORE_CLONE "clone" #define POLL_IGNORE_CONTRACTOR_SUPPORT "contractor_support" +#define POLL_IGNORE_FUGITIVE "fugitive" GLOBAL_LIST_INIT(poll_ignore_desc, list( POLL_IGNORE_SENTIENCE_POTION = "Sentience potion", @@ -39,7 +40,8 @@ GLOBAL_LIST_INIT(poll_ignore_desc, list( POLL_IGNORE_DEMON = "Demons", POLL_IGNORE_WIZARD = "Wizards", POLL_IGNORE_CLONE = "Defective/SDGF clones", - POLL_IGNORE_CONTRACTOR_SUPPORT = "Contractor Support Unit" + POLL_IGNORE_CONTRACTOR_SUPPORT = "Contractor Support Unit", + POLL_IGNORE_FUGITIVE = "Fugitive Hunter" )) GLOBAL_LIST_INIT(poll_ignore, init_poll_ignore()) diff --git a/code/_globalvars/logging.dm b/code/_globalvars/logging.dm index ba75fbfc9c..3bce9c560a 100644 --- a/code/_globalvars/logging.dm +++ b/code/_globalvars/logging.dm @@ -28,6 +28,8 @@ GLOBAL_VAR(world_job_debug_log) GLOBAL_PROTECT(world_job_debug_log) GLOBAL_VAR(world_virus_log) GLOBAL_PROTECT(world_virus_log) +GLOBAL_VAR(world_asset_log) +GLOBAL_PROTECT(world_asset_log) GLOBAL_VAR(world_map_error_log) GLOBAL_PROTECT(world_map_error_log) GLOBAL_VAR(subsystem_log) @@ -36,6 +38,8 @@ GLOBAL_VAR(reagent_log) GLOBAL_PROTECT(reagent_log) GLOBAL_VAR(world_crafting_log) GLOBAL_PROTECT(world_crafting_log) +GLOBAL_VAR(click_log) +GLOBAL_PROTECT(click_log) GLOBAL_LIST_EMPTY(bombers) GLOBAL_PROTECT(bombers) diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index dd8b9f0d94..8d8b8820b2 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -29,6 +29,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_SLEEPIMMUNE" = TRAIT_SLEEPIMMUNE, "TRAIT_PUSHIMMUNE" = TRAIT_PUSHIMMUNE, "TRAIT_SHOCKIMMUNE" = TRAIT_SHOCKIMMUNE, + "TRAIT_TESLA_SHOCKIMMUNE" = TRAIT_TESLA_SHOCKIMMUNE, "TRAIT_STABLEHEART" = TRAIT_STABLEHEART, "TRAIT_STABLELIVER" = TRAIT_STABLELIVER, "TRAIT_RESISTHEAT" = TRAIT_RESISTHEAT, @@ -92,6 +93,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_PASSTABLE" = TRAIT_PASSTABLE, "TRAIT_GIANT" = TRAIT_GIANT, "TRAIT_DWARF" = TRAIT_DWARF, + "TRAIT_NICE_SHOT" = TRAIT_NICE_SHOT, "TRAIT_COMBAT_MODE_LOCKED" = TRAIT_COMBAT_MODE_LOCKED, "TRAIT_SPRINT_LOCKED" = TRAIT_SPRINT_LOCKED, "TRAIT_AUTO_CATCH_ITEM" = TRAIT_AUTO_CATCH_ITEM, @@ -115,7 +117,8 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_MASO" = TRAIT_MASO, "TRAIT_HIGH_BLOOD" = TRAIT_HIGH_BLOOD, "TRAIT_EMPATH" = TRAIT_EMPATH, - "TRAIT_FRIENDLY" = TRAIT_FRIENDLY + "TRAIT_FRIENDLY" = TRAIT_FRIENDLY, + "TRAIT_NICE_SHOT" = TRAIT_NICE_SHOT ), /obj/item/bodypart = list( "TRAIT_PARALYSIS" = TRAIT_PARALYSIS diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 9ce96585d3..01261677d9 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -17,10 +17,14 @@ // eg: 10*0.5 = 5 deciseconds of delay // DOES NOT EFFECT THE BASE 1 DECISECOND DELAY OF NEXT_CLICK +/mob/proc/timeToNextMove() + return max(0, next_move - world.time) + /mob/proc/changeNext_move(num) next_move = world.time + ((num+next_move_adjust)*next_move_modifier) /mob/living/changeNext_move(num) + last_click_move = next_move var/mod = next_move_modifier var/adj = next_move_adjust for(var/i in status_effects) @@ -72,12 +76,12 @@ if(check_click_intercept(params,A)) return - if(notransform) + if(mob_transforming) return if(SEND_SIGNAL(src, COMSIG_MOB_CLICKON, A, params) & COMSIG_MOB_CANCEL_CLICKON) return - + var/list/modifiers = params2list(params) if(modifiers["shift"] && modifiers["middle"]) ShiftMiddleClickOn(A) @@ -324,10 +328,9 @@ return /atom/proc/ShiftClick(mob/user) - var/flags = SEND_SIGNAL(src, COMSIG_CLICK_SHIFT, user) + var/flags = SEND_SIGNAL(src, COMSIG_CLICK_SHIFT, user) | SEND_SIGNAL(user, COMSIG_MOB_CLICKED_SHIFT_ON, src) if(!(flags & COMPONENT_DENY_EXAMINATE) && user.client && (user.client.eye == user || user.client.eye == user.loc || flags & COMPONENT_ALLOW_EXAMINATE)) user.examinate(src) - return /* Ctrl click @@ -424,32 +427,36 @@ LE.fire() // Simple helper to face what you clicked on, in case it should be needed in more than one place -/mob/proc/face_atom(atom/A) - if( buckled || stat != CONSCIOUS || !A || !x || !y || !A.x || !A.y ) +/mob/proc/face_atom(atom/A, ismousemovement = FALSE) + if( buckled || stat != CONSCIOUS || !loc || !A || !A.x || !A.y ) return - var/dx = A.x - x - var/dy = A.y - y + var/atom/L = loc + if(L.flags_1 & BLOCK_FACE_ATOM_1) + return + var/turf/T = get_turf(src) + var/dx = A.x - T.x + var/dy = A.y - T.y if(!dx && !dy) // Wall items are graphically shifted but on the floor if(A.pixel_y > 16) - setDir(NORTH) + setDir(NORTH, ismousemovement) else if(A.pixel_y < -16) - setDir(SOUTH) + setDir(SOUTH, ismousemovement) else if(A.pixel_x > 16) - setDir(EAST) + setDir(EAST, ismousemovement) else if(A.pixel_x < -16) - setDir(WEST) + setDir(WEST, ismousemovement) return if(abs(dx) < abs(dy)) if(dy > 0) - setDir(NORTH) + setDir(NORTH, ismousemovement) else - setDir(SOUTH) + setDir(SOUTH, ismousemovement) else if(dx > 0) - setDir(EAST) + setDir(EAST, ismousemovement) else - setDir(WEST) + setDir(WEST, ismousemovement) //debug /obj/screen/proc/scale_to(x1,y1) diff --git a/code/_onclick/drag_drop.dm b/code/_onclick/drag_drop.dm index 9638b040f9..8e2e0c3fb5 100644 --- a/code/_onclick/drag_drop.dm +++ b/code/_onclick/drag_drop.dm @@ -24,16 +24,6 @@ return -/client - var/list/atom/selected_target[2] - var/obj/item/active_mousedown_item = null - var/mouseParams = "" - var/mouseLocation = null - var/mouseObject = null - var/mouseControlObject = null - var/middragtime = 0 - var/atom/middragatom - /client/MouseDown(object, location, control, params) if (mouse_down_icon) mouse_pointer_icon = mouse_down_icon @@ -84,12 +74,6 @@ /obj/item/proc/onMouseUp(object, location, params, mob) return -/obj/item - var/canMouseDown = FALSE - -/obj/item/gun - var/automatic = 0 //can gun use it, 0 is no, anything above 0 is the delay between clicks in ds - /obj/item/gun/CanItemAutoclick(object, location, params) . = automatic @@ -108,16 +92,10 @@ mouseLocation = location mouseObject = object mouseControlObject = control - if(mob && LAZYLEN(mob.mousemove_intercept_objects)) - for(var/datum/D in mob.mousemove_intercept_objects) - D.onMouseMove(object, location, control, params) - if(!show_popup_menus && mob) //CIT CHANGE - passes onmousemove() to mobs - mob.onMouseMove(object, location, control, params) //CIT CHANGE - ditto + if(mob) + SEND_SIGNAL(mob, COMSIG_MOB_CLIENT_MOUSEMOVE, object, location, control, params) ..() -/datum/proc/onMouseMove(object, location, control, params) - return - /client/MouseDrag(src_object,atom/over_object,src_location,over_location,src_control,over_control,params) var/list/L = params2list(params) if (L["middle"]) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 7c116cc606..11531a701e 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -242,7 +242,7 @@ If you're feeling frisky, examine yourself and click the underlined item to pull /obj/screen/alert/embeddedobject/Click() if(isliving(usr)) - var/mob/living/carbon/human/M = usr + var/mob/living/carbon/M = usr return M.help_shake_act(M) /obj/screen/alert/weightless @@ -642,9 +642,6 @@ so as to remain in compliance with the most up-to-date laws." mymob.client.screen |= alert return 1 -/mob - var/list/alerts = list() // contains /obj/screen/alert only // On /mob so clientless mobs will throw alerts properly - /obj/screen/alert/Click(location, control, params) if(!usr || !usr.client) return diff --git a/code/_onclick/hud/fullscreen.dm b/code/_onclick/hud/fullscreen.dm index 3cfa71e19d..d82f3e7cf5 100644 --- a/code/_onclick/hud/fullscreen.dm +++ b/code/_onclick/hud/fullscreen.dm @@ -1,7 +1,3 @@ - -/mob - var/list/screens = list() - /mob/proc/overlay_fullscreen(category, type, severity) var/obj/screen/fullscreen/screen = screens[category] if (!screen || screen.type != type) diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index f054cb0c8e..57335a966e 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -114,8 +114,6 @@ GLOBAL_LIST_INIT(available_ui_styles, list( return ..() -/mob - var/hud_type = /datum/hud /mob/proc/create_mob_hud() if(!client || hud_used) diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 328e008f10..9380cf98aa 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -241,18 +241,11 @@ using.hud = src hotkeybuttons += using - //CIT CHANGES - rest and combat mode buttons - using = new /obj/screen/restbutton() - using.icon = tg_ui_icon_to_cit_ui(ui_style) + using = new /obj/screen/rest() + using.icon = ui_style using.screen_loc = ui_pull_resist using.hud = src static_inventory += using - - using = new /obj/screen/combattoggle() - using.icon = tg_ui_icon_to_cit_ui(ui_style) - using.screen_loc = ui_combat_toggle - using.hud = src - static_inventory += using //END OF CIT CHANGES using = new /obj/screen/human/toggle() diff --git a/code/_onclick/hud/parallax.dm b/code/_onclick/hud/parallax.dm index 25a49c8d6b..d8ef1c525a 100755 --- a/code/_onclick/hud/parallax.dm +++ b/code/_onclick/hud/parallax.dm @@ -1,16 +1,4 @@ -/client - var/list/parallax_layers - var/list/parallax_layers_cached - var/atom/movable/movingmob - var/turf/previous_turf - var/dont_animate_parallax //world.time of when we can state animate()ing parallax again - var/last_parallax_shift //world.time of last update - var/parallax_throttle = 0 //ds between updates - var/parallax_movedir = 0 - var/parallax_layers_max = 3 - var/parallax_animate_timer - /datum/hud/proc/create_parallax(mob/viewmob) var/mob/screenmob = viewmob || mymob var/client/C = screenmob.client diff --git a/code/_onclick/hud/plane_master.dm b/code/_onclick/hud/plane_master.dm index a0dade37bd..7a8b0a1121 100644 --- a/code/_onclick/hud/plane_master.dm +++ b/code/_onclick/hud/plane_master.dm @@ -24,6 +24,10 @@ blend_mode = BLEND_MULTIPLY alpha = 255 +/obj/screen/plane_master/openspace/Initialize() + . = ..() + filters += filter(type="alpha", render_source=FIELD_OF_VISION_RENDER_TARGET, flags=MASK_INVERSE) + /obj/screen/plane_master/openspace/backdrop(mob/mymob) filters = list() filters += filter(type = "drop_shadow", color = "#04080FAA", size = -10) @@ -46,6 +50,32 @@ appearance_flags = PLANE_MASTER blend_mode = BLEND_OVERLAY +/obj/screen/plane_master/wall + name = "wall plane master" + plane = WALL_PLANE + appearance_flags = PLANE_MASTER + +/obj/screen/plane_master/wall/backdrop(mob/mymob) + if(mymob?.client?.prefs.ambientocclusion) + add_filter("ambient_occlusion", 0, AMBIENT_OCCLUSION(4, "#04080FAA")) + else + remove_filter("ambient_occlusion") + +/obj/screen/plane_master/above_wall + name = "above wall plane master" + plane = ABOVE_WALL_PLANE + appearance_flags = PLANE_MASTER + +/obj/screen/plane_master/above_wall/Initialize() + . = ..() + add_filter("vision_cone", 100, list(type="alpha", render_source=FIELD_OF_VISION_RENDER_TARGET, flags=MASK_INVERSE)) + +/obj/screen/plane_master/above_wall/backdrop(mob/mymob) + if(mymob?.client?.prefs.ambientocclusion) + add_filter("ambient_occlusion", 0, AMBIENT_OCCLUSION(3, "#04080F64")) + else + remove_filter("ambient_occlusion") + ///Contains most things in the game world /obj/screen/plane_master/game_world name = "game world plane master" @@ -53,12 +83,50 @@ appearance_flags = PLANE_MASTER //should use client color blend_mode = BLEND_OVERLAY +/obj/screen/plane_master/game_world/Initialize() + . = ..() + add_filter("vision_cone", 100, list(type="alpha", render_source=FIELD_OF_VISION_RENDER_TARGET, flags=MASK_INVERSE)) + /obj/screen/plane_master/game_world/backdrop(mob/mymob) - if(istype(mymob) && mymob.client && mymob.client.prefs && mymob.client.prefs.ambientocclusion) - add_filter("ambient_occlusion", 0, AMBIENT_OCCLUSION) + if(mymob?.client?.prefs.ambientocclusion) + add_filter("ambient_occlusion", 0, AMBIENT_OCCLUSION(4, "#04080FAA")) else remove_filter("ambient_occlusion") - update_filters() + +//Reserved to chat messages, so they are still displayed above the field of vision masking. +/obj/screen/plane_master/chat_messages + name = "chat messages plane master" + plane = CHAT_PLANE + appearance_flags = PLANE_MASTER + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + +///Contains all shadow cone masks, whose image overrides are displayed only to their respective owners. +/obj/screen/plane_master/field_of_vision + name = "field of vision mask plane master" + plane = FIELD_OF_VISION_PLANE + render_target = FIELD_OF_VISION_RENDER_TARGET + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + +/obj/screen/plane_master/field_of_vision/Initialize() + . = ..() + filters += filter(type="alpha", render_source=FIELD_OF_VISION_BLOCKER_RENDER_TARGET, flags=MASK_INVERSE) + +///Used to display the owner and its adjacent surroundings through the FoV plane mask. +/obj/screen/plane_master/field_of_vision_blocker + name = "field of vision blocker plane master" + plane = FIELD_OF_VISION_BLOCKER_PLANE + render_target = FIELD_OF_VISION_BLOCKER_RENDER_TARGET + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + +///Stores the visible portion of the FoV shadow cone. +/obj/screen/plane_master/field_of_vision_visual + name = "field of vision visual plane master" + plane = FIELD_OF_VISION_VISUAL_PLANE + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + +/obj/screen/plane_master/field_of_vision_visual/Initialize() + . = ..() + filters += filter(type="alpha", render_source=FIELD_OF_VISION_BLOCKER_RENDER_TARGET, flags=MASK_INVERSE) ///Contains all lighting objects /obj/screen/plane_master/lighting @@ -87,11 +155,12 @@ /obj/screen/plane_master/emissive/Initialize() . = ..() filters += filter(type="alpha", render_source=EMISSIVE_BLOCKER_RENDER_TARGET, flags=MASK_INVERSE) + filters += filter(type="alpha", render_source=FIELD_OF_VISION_RENDER_TARGET, flags=MASK_INVERSE) /** * Things placed on this always mask the lighting plane. Doesn't render directly. * - * Always masks the light plane, isn't blocked by anything. Use for on mob glows, + * Always masks the light plane, isn't blocked by anything (except Field of Vision). Use for on mob glows, * magic stuff, etc. */ @@ -101,6 +170,10 @@ mouse_opacity = MOUSE_OPACITY_TRANSPARENT render_target = EMISSIVE_UNBLOCKABLE_RENDER_TARGET +/obj/screen/plane_master/emissive_unblockable/Initialize() + . = ..() + filters += filter(type="alpha", render_source=FIELD_OF_VISION_RENDER_TARGET, flags=MASK_INVERSE) + /** * Things placed on this layer mask the emissive layer. Doesn't render directly * diff --git a/code/_onclick/hud/radial.dm b/code/_onclick/hud/radial.dm index 1dce4ecc42..1ead41d513 100644 --- a/code/_onclick/hud/radial.dm +++ b/code/_onclick/hud/radial.dm @@ -238,6 +238,7 @@ GLOBAL_LIST_EMPTY(radial_menus) var/mutable_appearance/MA = new /mutable_appearance(E) if(MA) MA.layer = ABOVE_HUD_LAYER + MA.plane = ABOVE_HUD_PLANE MA.appearance_flags |= RESET_TRANSFORM return MA diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 4ed286eb08..0088dde15a 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -153,7 +153,7 @@ var/image/item_overlay = image(holding) item_overlay.alpha = 92 - if(!user.can_equip(holding, slot_id, TRUE)) + if(!user.can_equip(holding, slot_id, TRUE, TRUE, TRUE)) item_overlay.color = "#FF0000" else item_overlay.color = "#00ff00" diff --git a/code/_onclick/hud/screen_objects/storage.dm b/code/_onclick/hud/screen_objects/storage.dm index bdcca70d9b..7e8bfe12ab 100644 --- a/code/_onclick/hud/screen_objects/storage.dm +++ b/code/_onclick/hud/screen_objects/storage.dm @@ -54,13 +54,18 @@ /obj/screen/storage/volumetric_box icon_state = "stored_continue" + layer = VOLUMETRIC_STORAGE_BOX_LAYER + plane = VOLUMETRIC_STORAGE_BOX_PLANE var/obj/item/our_item -/obj/screen/storage/volumetric_box/Initialize(mapload, new_master, our_item) +/obj/screen/storage/volumetric_box/Initialize(mapload, new_master, obj/item/our_item) src.our_item = our_item + RegisterSignal(our_item, COMSIG_ITEM_MOUSE_ENTER, .proc/on_item_mouse_enter) + RegisterSignal(our_item, COMSIG_ITEM_MOUSE_EXIT, .proc/on_item_mouse_exit) return ..() /obj/screen/storage/volumetric_box/Destroy() + makeItemInactive() our_item = null return ..() @@ -70,10 +75,34 @@ /obj/screen/storage/volumetric_box/MouseDrop(atom/over, src_location, over_location, src_control, over_control, params) return our_item.MouseDrop(over, src_location, over_location, src_control, over_control, params) +/obj/screen/storage/volumetric_box/MouseExited(location, control, params) + makeItemInactive() + +/obj/screen/storage/volumetric_box/MouseEntered(location, control, params) + makeItemActive() + +/obj/screen/storage/volumetric_box/proc/on_item_mouse_enter() + makeItemActive() + +/obj/screen/storage/volumetric_box/proc/on_item_mouse_exit() + makeItemInactive() + +/obj/screen/storage/volumetric_box/proc/makeItemInactive() + if(!our_item) + return + our_item.layer = VOLUMETRIC_STORAGE_ITEM_LAYER + our_item.plane = VOLUMETRIC_STORAGE_ITEM_PLANE + +/obj/screen/storage/volumetric_box/proc/makeItemActive() + if(!our_item) + return + our_item.layer = VOLUMETRIC_STORAGE_ACTIVE_ITEM_LAYER //make sure we display infront of the others! + our_item.plane = VOLUMETRIC_STORAGE_ACTIVE_ITEM_PLANE + /obj/screen/storage/volumetric_box/center icon_state = "stored_continue" - var/obj/screen/storage/stored_left/left - var/obj/screen/storage/stored_right/right + var/obj/screen/storage/volumetric_edge/stored_left/left + var/obj/screen/storage/volumetric_edge/stored_right/right var/pixel_size /obj/screen/storage/volumetric_box/center/Initialize(mapload, new_master, our_item) @@ -87,7 +116,7 @@ return ..() /obj/screen/storage/volumetric_box/center/proc/on_screen_objects() - return list(src, left, right) + return list(src) /** * Sets the size of this box screen object and regenerates its left/right borders. This includes the actual border's size! @@ -96,18 +125,38 @@ if(pixel_size == pixels) return pixel_size = pixels - cut_overlays() + cut_overlays(TRUE) //our icon size is 32 pixels. transform = matrix((pixels - (VOLUMETRIC_STORAGE_BOX_BORDER_SIZE * 2)) / VOLUMETRIC_STORAGE_BOX_ICON_SIZE, 0, 0, 0, 1, 0) left.pixel_x = -((pixels - VOLUMETRIC_STORAGE_BOX_ICON_SIZE) * 0.5) - VOLUMETRIC_STORAGE_BOX_BORDER_SIZE right.pixel_x = ((pixels - VOLUMETRIC_STORAGE_BOX_ICON_SIZE) * 0.5) + VOLUMETRIC_STORAGE_BOX_BORDER_SIZE - add_overlay(left) - add_overlay(right) + add_overlay(left, TRUE) + add_overlay(right, TRUE) -/obj/screen/storage/stored_left +/obj/screen/storage/volumetric_edge + layer = VOLUMETRIC_STORAGE_BOX_LAYER + plane = VOLUMETRIC_STORAGE_BOX_PLANE + +/obj/screen/storage/volumetric_edge/Initialize(mapload, master, our_item) + src.master = master + return ..() + +/obj/screen/storage/volumetric_edge/Click(location, control, params) + return master.Click(location, control, params) + +/obj/screen/storage/volumetric_edge/MouseDrop(atom/over, src_location, over_location, src_control, over_control, params) + return master.MouseDrop(over, src_location, over_location, src_control, over_control, params) + +/obj/screen/storage/volumetric_edge/MouseExited(location, control, params) + return master.MouseExited(location, control, params) + +/obj/screen/storage/volumetric_edge/MouseEntered(location, control, params) + return master.MouseEntered(location, control, params) + +/obj/screen/storage/volumetric_edge/stored_left icon_state = "stored_start" appearance_flags = APPEARANCE_UI | KEEP_APART | RESET_TRANSFORM // Yes I know RESET_TRANSFORM is in APPEARANCE_UI but we're hard-asserting this incase someone changes it. -/obj/screen/storage/stored_right +/obj/screen/storage/volumetric_edge/stored_right icon_state = "stored_end" appearance_flags = APPEARANCE_UI | KEEP_APART | RESET_TRANSFORM diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 33cfef03c7..bef06a69e9 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -7,21 +7,17 @@ *and lastly *afterattack. The return value does not matter. */ -/obj/item/proc/melee_attack_chain(mob/user, atom/target, params) +/obj/item/proc/melee_attack_chain(mob/user, atom/target, params, flags, damage_multiplier = 1) if(isliving(user)) var/mob/living/L = user - if(item_flags & NO_ATTACK_CHAIN_SOFT_STAMCRIT) - if(IS_STAMCRIT(L)) - to_chat(L, "You are too exhausted to swing [src]!") - return - if(!CHECK_MOBILITY(L, MOBILITY_USE)) + if(!CHECK_MOBILITY(L, MOBILITY_USE) && !(flags & ATTACKCHAIN_PARRY_COUNTERATTACK)) to_chat(L, "You are unable to swing [src] right now!") return if(tool_behaviour && target.tool_act(user, src, tool_behaviour)) return if(pre_attack(target, user, params)) return - if(target.attackby(src,user, params)) + if(target.attackby(src, user, params, flags, damage_multiplier)) return if(QDELETED(src) || QDELETED(target)) return @@ -56,23 +52,20 @@ /obj/attackby(obj/item/I, mob/living/user, params) return ..() || ((obj_flags & CAN_BE_HIT) && I.attack_obj(src, user)) -/mob/living/attackby(obj/item/I, mob/living/user, params) +/mob/living/attackby(obj/item/I, mob/living/user, params, attackchain_flags, damage_multiplier) if(..()) return TRUE - user.changeNext_move(CLICK_CD_MELEE) - return I.attack(src, user) + I.attack_delay_done = FALSE //Should be set TRUE in pre_attacked_by() + . = I.attack(src, user, attackchain_flags, damage_multiplier) + if(!I.attack_delay_done) //Otherwise, pre_attacked_by() should handle it. + user.changeNext_move(I.click_delay) -/obj/item/proc/attack(mob/living/M, mob/living/user) +/obj/item/proc/attack(mob/living/M, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1) if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACK, M, user) & COMPONENT_ITEM_NO_ATTACK) return SEND_SIGNAL(user, COMSIG_MOB_ITEM_ATTACK, M, user) if(item_flags & NOBLUDGEON) return - - if(IS_STAMCRIT(user)) // CIT CHANGE - makes it impossible to attack in stamina softcrit - to_chat(user, "You're too exhausted.") // CIT CHANGE - ditto - return // CIT CHANGE - ditto - if(force && damtype != STAMINA && HAS_TRAIT(user, TRAIT_PACIFISM)) to_chat(user, "You don't want to harm other living beings!") return @@ -86,12 +79,14 @@ M.lastattackerckey = user.ckey user.do_attack_animation(M) - M.attacked_by(src, user) + M.attacked_by(src, user, attackchain_flags, damage_multiplier) log_combat(user, M, "attacked", src.name, "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])") add_fingerprint(user) - user.adjustStaminaLossBuffered(getweight(user, STAM_COST_ATTACK_MOB_MULT))//CIT CHANGE - makes attacking things cause stamina loss + var/weight = getweight(user, STAM_COST_ATTACK_MOB_MULT) //CIT CHANGE - makes attacking things cause stamina loss + if(weight) + user.adjustStaminaLossBuffered(weight) //the equivalent of the standard version of attack() but for object targets. /obj/item/proc/attack_obj(obj/O, mob/living/user) @@ -99,41 +94,53 @@ return if(item_flags & NOBLUDGEON) return - if(IS_STAMCRIT(user)) // CIT CHANGE - makes it impossible to attack in stamina softcrit - to_chat(user, "You're too exhausted.") // CIT CHANGE - ditto - return // CIT CHANGE - ditto - user.adjustStaminaLossBuffered(getweight(user, STAM_COST_ATTACK_OBJ_MULT))//CIT CHANGE - makes attacking things cause stamina loss - user.changeNext_move(CLICK_CD_MELEE) user.do_attack_animation(O) - O.attacked_by(src, user) + if(!O.attacked_by(src, user)) + user.changeNext_move(click_delay) + var/weight = getweight(user, STAM_COST_ATTACK_OBJ_MULT) + if(weight) + user.adjustStaminaLossBuffered(weight)//CIT CHANGE - makes attacking things cause stamina loss /atom/movable/proc/attacked_by() return -/obj/attacked_by(obj/item/I, mob/living/user) - var/totitemdamage = I.force - var/bad_flag = NONE - if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) && iscarbon(user)) - totitemdamage *= 0.5 - bad_flag |= SKILL_COMBAT_MODE //blacklist combat skills. +/obj/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1) + var/totitemdamage = I.force * damage_multiplier + var/bad_trait + + var/stamloss = user.getStaminaLoss() + var/next_move_mult = 1 + if(stamloss > STAMINA_NEAR_SOFTCRIT) //The more tired you are, the less damage you do. + var/penalty = (stamloss - STAMINA_NEAR_SOFTCRIT)/(STAMINA_NEAR_CRIT - STAMINA_NEAR_SOFTCRIT)*STAM_CRIT_ITEM_ATTACK_PENALTY + totitemdamage *= 1 - penalty + next_move_mult += penalty*STAM_CRIT_ITEM_ATTACK_DELAY + user.changeNext_move(I.click_delay*next_move_mult) + + if(SEND_SIGNAL(user, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_INACTIVE)) + bad_trait = SKILL_COMBAT_MODE //blacklist combat skills. + if(I.used_skills && user.mind) if(totitemdamage) - totitemdamage = user.mind.skill_holder.item_action_skills_mod(I, totitemdamage, I.skill_difficulty, SKILL_ATTACK_OBJ, bad_flag) + totitemdamage = user.mind.item_action_skills_mod(I, totitemdamage, I.skill_difficulty, SKILL_ATTACK_OBJ, bad_trait) for(var/skill in I.used_skills) - if(!(I.used_skills[skill] & SKILL_TRAIN_ATTACK_OBJ)) + if(!(SKILL_TRAIN_ATTACK_OBJ in I.used_skills[skill])) continue - user.mind.skill_holder.auto_gain_experience(skill, I.skill_gain) + user.mind.auto_gain_experience(skill, I.skill_gain) + if(totitemdamage) visible_message("[user] has hit [src] with [I]!", null, null, COMBAT_MESSAGE_RANGE) //only witnesses close by and the victim see a hit message. log_combat(user, src, "attacked", I) take_damage(totitemdamage, I.damtype, "melee", 1) + return TRUE -/mob/living/attacked_by(obj/item/I, mob/living/user) - var/totitemdamage = pre_attacked_by(I, user) - if((user != src) && mob_run_block(I, totitemdamage, "the [I.name]", ATTACK_TYPE_MELEE, I.armour_penetration, user, null, null) & BLOCK_SUCCESS) +/mob/living/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1) + var/list/block_return = list() + var/totitemdamage = pre_attacked_by(I, user) * damage_multiplier + if((user != src) && mob_run_block(I, totitemdamage, "the [I.name]", ((attackchain_flags & ATTACKCHAIN_PARRY_COUNTERATTACK)? ATTACK_TYPE_PARRY_COUNTERATTACK : NONE) | ATTACK_TYPE_MELEE, I.armour_penetration, user, null, block_return) & BLOCK_SUCCESS) return FALSE - send_item_attack_message(I, user) + totitemdamage = block_calculate_resultant_damage(totitemdamage, block_return) + send_item_attack_message(I, user, null, totitemdamage) I.do_stagger_action(src, user, totitemdamage) if(I.force) apply_damage(totitemdamage, I.damtype) @@ -146,33 +153,49 @@ user.add_mob_blood(src) return TRUE //successful attack -/mob/living/simple_animal/attacked_by(obj/item/I, mob/living/user) +/mob/living/simple_animal/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1) if(I.force < force_threshold || I.damtype == STAMINA) playsound(loc, 'sound/weapons/tap.ogg', I.get_clamped_volume(), 1, -1) + user.changeNext_move(I.click_delay) //pre_attacked_by not called else return ..() /mob/living/proc/pre_attacked_by(obj/item/I, mob/living/user) . = I.force - var/bad_flag = NONE - if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) && iscarbon(user)) - . *= 0.5 - bad_flag |= SKILL_COMBAT_MODE //blacklist combat skills. - if(!CHECK_MOBILITY(user, MOBILITY_STAND)) - . *= 0.5 + if(!.) + return + + var/stamloss = user.getStaminaLoss() + var/stam_mobility_mult = 1 + var/next_move_mult = 1 + if(stamloss > STAMINA_NEAR_SOFTCRIT) //The more tired you are, the less damage you do. + var/penalty = (stamloss - STAMINA_NEAR_SOFTCRIT)/(STAMINA_NEAR_CRIT - STAMINA_NEAR_SOFTCRIT)*STAM_CRIT_ITEM_ATTACK_PENALTY + stam_mobility_mult -= penalty + next_move_mult += penalty*STAM_CRIT_ITEM_ATTACK_DELAY + if(stam_mobility_mult > LYING_DAMAGE_PENALTY && !CHECK_MOBILITY(user, MOBILITY_STAND)) //damage penalty for fighting prone, doesn't stack with the above. + stam_mobility_mult = LYING_DAMAGE_PENALTY + . *= stam_mobility_mult + user.changeNext_move(I.click_delay*next_move_mult) + I.attack_delay_done = TRUE + + var/bad_trait + if(!(I.item_flags & NO_COMBAT_MODE_FORCE_MODIFIER)) + if(SEND_SIGNAL(user, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_INACTIVE)) + bad_trait = SKILL_COMBAT_MODE //blacklist combat skills. + if(SEND_SIGNAL(src, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_ACTIVE)) + . *= 0.5 + else if(SEND_SIGNAL(src, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_INACTIVE)) + . *= 1.5 + if(!user.mind || !I.used_skills) return if(.) - . = user.mind.skill_holder.item_action_skills_mod(I, ., I.skill_difficulty, SKILL_ATTACK_MOB, bad_flag) + . = user.mind.item_action_skills_mod(I, ., I.skill_difficulty, SKILL_ATTACK_MOB, bad_trait) for(var/skill in I.used_skills) - if(!(I.used_skills[skill] & SKILL_TRAIN_ATTACK_MOB)) + if(!(SKILL_TRAIN_ATTACK_MOB in I.used_skills[skill])) continue - user.mind.skill_holder.auto_gain_experience(skill, I.skill_gain) - -/mob/living/carbon/pre_attacked_by(obj/item/I, mob/living/user) - . = ..() - if(!(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) - . *= 1.5 + var/datum/skill/S = GLOB.skill_datums[skill] + user.mind.auto_gain_experience(skill, I.skill_gain*S.item_skill_gain_multi) // Proximity_flag is 1 if this afterattack was called on something adjacent, in your square, or on your person. // Click parameters is the params string from byond Click() code, see that documentation. @@ -187,10 +210,12 @@ else return clamp(w_class * 6, 10, 100) // Multiply the item's weight class by 6, then clamp the value between 10 and 100 -/mob/living/proc/send_item_attack_message(obj/item/I, mob/living/user, hit_area) +/mob/living/proc/send_item_attack_message(obj/item/I, mob/living/user, hit_area, current_force) var/message_verb = "attacked" if(I.attack_verb && I.attack_verb.len) message_verb = "[pick(I.attack_verb)]" + if(current_force < I.force * FEEBLE_ATTACK_MSG_THRESHOLD) + message_verb = "[pick("feebly", "limply", "saplessly")] [message_verb]" else if(!I.force) return var/message_hit_area = "" @@ -207,16 +232,18 @@ return 1 /// How much stamina this takes to swing this is not for realism purposes hecc off. -/obj/item/proc/getweight(mob/living/user, multiplier = 1, flags = SKILL_STAMINA_COST) +/obj/item/proc/getweight(mob/living/user, multiplier = 1, trait = SKILL_STAMINA_COST) . = (total_mass || w_class * STAM_COST_W_CLASS_MULT) * multiplier if(!user) return - var/bad_flag = NONE - if(iscarbon(user) && !(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + var/bad_trait + if(SEND_SIGNAL(user, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_INACTIVE)) . *= STAM_COST_NO_COMBAT_MULT - bad_flag |= SKILL_COMBAT_MODE + bad_trait = SKILL_COMBAT_MODE if(used_skills && user.mind) - . = user.mind.skill_holder.item_action_skills_mod(src, ., skill_difficulty, flags, bad_flag, FALSE) + . = user.mind.item_action_skills_mod(src, ., skill_difficulty, trait, bad_trait, FALSE) + var/total_health = user.getStaminaLoss() + . = clamp(., 0, STAMINA_NEAR_CRIT - total_health) /// How long this staggers for. 0 and negatives supported. /obj/item/proc/melee_stagger_duration(force_override) diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index d4ec44a641..059f9d518e 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -108,7 +108,7 @@ A.attack_animal(src) /atom/proc/attack_animal(mob/user) - return + SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_ANIMAL, user) /mob/living/RestrainedClickOn(atom/A) return diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index 6cf01ec8ff..f95ebf82b5 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -102,9 +102,8 @@ //stops TK grabs being equipped anywhere but into hands /obj/item/tk_grab/equipped(mob/user, slot) if(slot == SLOT_HANDS) - return + return ..() qdel(src) - return /obj/item/tk_grab/examine(user) if (focus) diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm index 8f34901d46..31431ddab9 100644 --- a/code/controllers/configuration/configuration.dm +++ b/code/controllers/configuration/configuration.dm @@ -104,7 +104,9 @@ var/list/lines = world.file2list("[directory]/[filename]") var/list/_entries = entries var/list/postload_required = list() + var/linenumber = 0 for(var/L in lines) + linenumber++ L = trim(L) if(!L) continue @@ -132,7 +134,7 @@ if(entry == "$include") if(!value) - log_config("Warning: Invalid $include directive: [value]") + log_config("LINE [linenumber]: Invalid $include directive: [value]") else LoadEntries(value, stack) ++. @@ -140,7 +142,7 @@ var/datum/config_entry/E = _entries[entry] if(!E) - log_config("Unknown setting in configuration: '[entry]'") + log_config("LINE [linenumber]: Unknown setting: '[entry]'") continue if(lockthis) @@ -150,7 +152,7 @@ var/datum/config_entry/new_ver = entries_by_type[E.deprecated_by] var/new_value = E.DeprecationUpdate(value) var/good_update = istext(new_value) - log_config("Entry [entry] is deprecated and will be removed soon. Migrate to [new_ver.name]![good_update ? " Suggested new value is: [new_value]" : ""]") + log_config("LINE [linenumber]: [entry] is deprecated and will be removed soon. Migrate to [new_ver.name]![good_update ? " Suggested new value is: [new_value]" : ""]") if(!warned_deprecated_configs) addtimer(CALLBACK(GLOBAL_PROC, /proc/message_admins, "This server is using deprecated configuration settings. Please check the logs and update accordingly."), 0) warned_deprecated_configs = TRUE @@ -162,10 +164,10 @@ var/validated = E.ValidateAndSet(value, TRUE) if(!validated) - log_config("Failed to validate setting \"[value]\" for [entry]") + log_config("LINE [linenumber]: Failed to validate setting \"[value]\" for [entry]") else if(E.modified && !E.dupes_allowed) - log_config("Duplicate setting for [entry] ([value], [E.resident_file]) detected! Using latest.") + log_config("LINE [linenumber]: Duplicate setting for [entry] ([value], [E.resident_file]) detected! Using latest.") if(E.postload_required) postload_required[E] = TRUE diff --git a/code/controllers/configuration/entries/comms.dm b/code/controllers/configuration/entries/comms.dm index 012c3ec9fe..e56ff3f0d1 100644 --- a/code/controllers/configuration/entries/comms.dm +++ b/code/controllers/configuration/entries/comms.dm @@ -25,4 +25,23 @@ /datum/config_entry/string/medal_hub_address /datum/config_entry/string/medal_hub_password - protection = CONFIG_ENTRY_HIDDEN \ No newline at end of file + protection = CONFIG_ENTRY_HIDDEN + +/datum/config_entry/keyed_list/cross_server_bunker_override + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_TEXT + protection = CONFIG_ENTRY_LOCKED + +/datum/config_entry/keyed_list/cross_server_bunker_override/ValidateAndSet(str_val) + . = ..() + if(.) + var/list/newv = list() + for(var/I in config_entry_value) + newv[replacetext(I, "+", " ")] = config_entry_value[I] + config_entry_value = newv + +/datum/config_entry/keyed_list/cross_server_bunker_override/ValidateListEntry(key_name, key_value) + return key_value != "byond:\\address:port" && ..() + +/datum/config_entry/flag/allow_cross_server_bunker_override + protection = CONFIG_ENTRY_LOCKED diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index b35f4fe0e7..5765f291e9 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -168,12 +168,14 @@ /datum/config_entry/flag/join_with_mutant_humans //players can pick mutant bodyparts for humans before joining the game -/datum/config_entry/flag/no_summon_guns //No +/datum/config_entry/flag/no_summon_guns //No /datum/config_entry/flag/no_summon_magic //Fun /datum/config_entry/flag/no_summon_events //Allowed +/datum/config_entry/flag/no_summon_traumas //! + /datum/config_entry/flag/no_intercept_report //Whether or not to send a communications intercept report roundstart. This may be overridden by gamemodes. /datum/config_entry/number/arrivals_shuttle_dock_window //Time from when a player late joins on the arrivals shuttle to when the shuttle docks on the station @@ -435,6 +437,10 @@ config_entry_value = 64 min_val = 0 +/datum/config_entry/number/ratcap + config_entry_value = 64 + min_val = 0 + /datum/config_entry/flag/disable_stambuffer /datum/config_entry/keyed_list/box_random_engine @@ -507,3 +513,20 @@ //Allows players to set a hexadecimal color of their choice as skin tone, on top of the standard ones. /datum/config_entry/flag/allow_custom_skintones + +///Initial loadout points +/datum/config_entry/number/initial_gear_points + config_entry_value = 10 + +/** + * Enables the FoV component, which hides objects and mobs behind the parent from their sight, unless they turn around, duh. + * Camera mobs, AIs, ghosts and some other are of course exempt from this. This also doesn't influence simplemob AI, for the best. + */ +/datum/config_entry/flag/use_field_of_vision + +//Shuttle size limiter +/datum/config_entry/number/max_shuttle_count + config_entry_value = 6 + +/datum/config_entry/number/max_shuttle_size + config_entry_value = 250 diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm index c94792a895..baceb4d055 100644 --- a/code/controllers/subsystem/air.dm +++ b/code/controllers/subsystem/air.dm @@ -81,6 +81,8 @@ SUBSYSTEM_DEF(air) var/list/pipenet_rebuilds = pipenets_needing_rebuilt for(var/thing in pipenet_rebuilds) var/obj/machinery/atmospherics/AT = thing + if(!istype(AT)) + continue AT.build_network() cost_rebuilds = MC_AVERAGE(cost_rebuilds, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer)) pipenets_needing_rebuilt.Cut() diff --git a/code/controllers/subsystem/assets.dm b/code/controllers/subsystem/assets.dm index 7b6554bd3f..7285298283 100644 --- a/code/controllers/subsystem/assets.dm +++ b/code/controllers/subsystem/assets.dm @@ -6,17 +6,7 @@ SUBSYSTEM_DEF(assets) var/list/preload = list() /datum/controller/subsystem/assets/Initialize(timeofday) - - var/list/priority_assets = list( - /datum/asset/simple/oui_theme_nano, - /datum/asset/simple/goonchat - ) - - for(var/type in priority_assets) - var/datum/asset/A = new type() - A.register() - - for(var/type in typesof(/datum/asset) - (priority_assets | list(/datum/asset, /datum/asset/simple))) + for(var/type in typesof(/datum/asset)) var/datum/asset/A = type if (type != initial(A._abstract)) get_asset_datum(type) diff --git a/code/controllers/subsystem/events.dm b/code/controllers/subsystem/events.dm index abc46cba25..2e4e728191 100644 --- a/code/controllers/subsystem/events.dm +++ b/code/controllers/subsystem/events.dm @@ -12,7 +12,7 @@ SUBSYSTEM_DEF(events) var/frequency_upper = 6000 //10 minutes upper bound. Basically an event will happen every 3 to 10 minutes. var/list/holidays //List of all holidays occuring today or null if no holidays - var/wizardmode = 0 + var/wizardmode = FALSE /datum/controller/subsystem/events/Initialize(time, zlevel) for(var/type in typesof(/datum/round_event_control)) @@ -91,6 +91,7 @@ SUBSYSTEM_DEF(events) if(. == EVENT_CANT_RUN)//we couldn't run this event for some reason, set its max_occurrences to 0 E.max_occurrences = 0 else if(. == EVENT_READY) + E.random = TRUE E.runEvent(TRUE) //allows a client to trigger an event diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index 166f930e33..8a1c08bc35 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -451,3 +451,18 @@ SUBSYSTEM_DEF(garbage) #endif #endif + +#ifdef TESTING +/proc/writeDatumCount() + var/list/datums = list() + for(var/datum/D in world) + datums[D.type] += 1 + for(var/datum/D) + datums[D.type] += 1 + datums = sortTim(datums, /proc/cmp_numeric_dsc, associative = TRUE) + if(fexists("data/DATUMCOUNT.txt")) + fdel("data/DATUMCOUNT.txt") + var/outfile = file("data/DATUMCOUNT.txt") + for(var/path in datums) + outfile << "[datums[path]]\t\t\t\t\t[path]" +#endif diff --git a/code/controllers/subsystem/input.dm b/code/controllers/subsystem/input.dm index 0970b23a16..32936af9e9 100644 --- a/code/controllers/subsystem/input.dm +++ b/code/controllers/subsystem/input.dm @@ -6,13 +6,20 @@ SUBSYSTEM_DEF(input) priority = FIRE_PRIORITY_INPUT runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY - var/list/macro_sets - var/list/movement_keys + /// Classic mode input focused macro set. Manually set because we can't define ANY or ANY+UP for classic. + var/static/list/macroset_classic_input + /// Classic mode map focused macro set. Manually set because it needs to be clientside and go to macroset_classic_input. + var/static/list/macroset_classic_hotkey + /// New hotkey mode macro set. All input goes into map, game keeps incessently setting your focus to map, we can use ANY all we want here; we don't care about the input bar, the user has to force the input bar every time they want to type. + var/static/list/macroset_hotkey + + /// Macro set for hotkeys + var/list/hotkey_mode_macros + /// Macro set for classic. + var/list/input_mode_macros /datum/controller/subsystem/input/Initialize() - setup_default_macro_sets() - - setup_default_movement_keys() + setup_macrosets() initialized = TRUE @@ -20,90 +27,82 @@ SUBSYSTEM_DEF(input) return ..() -// This is for when macro sets are eventualy datumized -/datum/controller/subsystem/input/proc/setup_default_macro_sets() - var/list/static/default_macro_sets - - if(default_macro_sets) - macro_sets = default_macro_sets - return - - default_macro_sets = list( - "default" = list( - "Tab" = "\".winset \\\"input.focus=true?map.focus=true input.background-color=[COLOR_INPUT_DISABLED]:input.focus=true input.background-color=[COLOR_INPUT_ENABLED]\\\"\"", - "O" = "ooc", - "Ctrl+O" = "looc", - "T" = "say", - "Ctrl+T" = "whisper", - "M" = "me", - "Ctrl+M" = "subtle", - "Back" = "\".winset \\\"input.text=\\\"\\\"\\\"\"", // This makes it so backspace can remove default inputs - "Any" = "\"KeyDown \[\[*\]\]\"", - "Any+UP" = "\"KeyUp \[\[*\]\]\"", - ), - "old_default" = list( - "Tab" = "\".winset \\\"mainwindow.macro=old_hotkeys map.focus=true input.background-color=[COLOR_INPUT_DISABLED]\\\"\"", - "Ctrl+T" = "say", - "Ctrl+O" = "ooc", - ), - "old_hotkeys" = list( - "Tab" = "\".winset \\\"mainwindow.macro=old_default input.focus=true input.background-color=[COLOR_INPUT_ENABLED]\\\"\"", - "O" = "ooc", - "L" = "looc", - "T" = "say", - "M" = "me", - "Back" = "\".winset \\\"input.text=\\\"\\\"\\\"\"", // This makes it so backspace can remove default inputs - "Any" = "\"KeyDown \[\[*\]\]\"", - "Any+UP" = "\"KeyUp \[\[*\]\]\"", - ), - ) - - // Because i'm lazy and don't want to type all these out twice - var/list/old_default = default_macro_sets["old_default"] - - var/list/static/oldmode_keys = list( +/// Sets up the key list for classic mode for when badmins screw up vv's. +/datum/controller/subsystem/input/proc/setup_macrosets() + // First, let's do the snowflake keyset! + macroset_classic_input = list() + var/list/classic_mode_keys = list( "North", "East", "South", "West", "Northeast", "Southeast", "Northwest", "Southwest", - "Insert", "Delete", "Ctrl", "Alt", + "Insert", "Delete", "Ctrl", "Alt", "Shift", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", ) - - for(var/i in 1 to oldmode_keys.len) - var/key = oldmode_keys[i] - old_default[key] = "\"KeyDown [key]\"" - old_default["[key]+UP"] = "\"KeyUp [key]\"" - - var/list/static/oldmode_ctrl_override_keys = list( - "W" = "W", "A" = "A", "S" = "S", "D" = "D", // movement - "1" = "1", "2" = "2", "3" = "3", "4" = "4", // intent - "B" = "B", // resist - "E" = "E", // quick equip - "F" = "F", // intent left - "G" = "G", // intent right - "H" = "H", // stop pulling - "Q" = "Q", // drop - "R" = "R", // throw - "X" = "X", // switch hands - "Y" = "Y", // activate item - "Z" = "Z", // activate item + for(var/key in classic_mode_keys) + macroset_classic_input[key] = "\"KeyDown [key]\"" + macroset_classic_input["[key]+UP"] = "\"KeyUp [key]\"" + // LET'S PLAY THE BIND EVERY KEY GAME! + // oh except for Backspace and Enter; if you want to use those you shouldn't have used oldmode! + var/list/classic_ctrl_override_keys = list( + "\[", "\]", "\\\\", ";", "'", ",", ".", "/", "-", "=", "`" + ) + // i'm lazy let's play the list iteration game of numbers + for(var/i in 0 to 9) + classic_ctrl_override_keys += "[i]" + // let's play the ascii game of A to Z (UPPERCASE) + for(var/i in 65 to 90) + classic_ctrl_override_keys += ascii2text(i) + // let's play the game of clientside bind overrides! + classic_ctrl_override_keys -= list("T", "O", "M", "L") + macroset_classic_input["Ctrl+T"] = "say" + macroset_classic_input["Ctrl+O"] = "ooc" + macroset_classic_input["Ctrl+L"] = "looc" + // let's play the list iteration game x2 + for(var/key in classic_ctrl_override_keys) + // make sure to double double quote to ensure things are treated as a key combo instead of addition/semicolon logic. + macroset_classic_input["\"Ctrl+[key]\""] = "\"KeyDown [istext(classic_ctrl_override_keys[key])? classic_ctrl_override_keys[key] : key]\"" + macroset_classic_input["\"Ctrl+[key]+UP\""] = "\"KeyUp [istext(classic_ctrl_override_keys[key])? classic_ctrl_override_keys[key] : key]\"" + // Misc + macroset_classic_input["Tab"] = "\".winset \\\"mainwindow.macro=[SKIN_MACROSET_CLASSIC_HOTKEYS] map.focus=true input.background-color=[COLOR_INPUT_DISABLED]\\\"\"" + macroset_classic_input["Escape"] = "\".winset \\\"input.text=\\\"\\\"\\\"\"" + + // FINALLY, WE CAN DO SOMETHING MORE NORMAL FOR THE SNOWFLAKE-BUT-LESS KEYSET. + + // HAHA - SIKE. Because of BYOND weirdness (tl;dr not specifically binding this way results in potentially duplicate chatboxes when + // conflicts occur with something like say indicator vs say), we're going to snowflake this anyways + var/list/hard_binds = list( + "O" = "ooc", + "T" = "say", + "L" = "looc", + "M" = "me" ) + var/list/hard_bind_anti_collision = list() + var/list/anti_collision_modifiers = list("Ctrl", "Alt", "Shift", "Ctrl+Alt", "Ctrl+Shift", "Alt+Shift", "Ctrl+Alt+Shift") + for(var/key in hard_binds) + for(var/modifier in anti_collision_modifiers) + hard_bind_anti_collision["[modifier]+[key]"] = ".NONSENSICAL_VERB_THAT_DOES_NOTHING" + + macroset_classic_hotkey = list( + "Any" = "\"KeyDown \[\[*\]\]\"", + "Any+UP" = "\"KeyUp \[\[*\]\]\"", + "Tab" = "\".winset \\\"mainwindow.macro=[SKIN_MACROSET_CLASSIC_INPUT] input.focus=true input.background-color=[COLOR_INPUT_ENABLED]\\\"\"", + "Escape" = "\".winset \\\"input.text=\\\"\\\"\\\"\"", + "Back" = "\".winset \\\"input.text=\\\"\\\"\\\"\"", + ) + + macroset_classic_hotkey |= hard_binds + macroset_classic_hotkey |= hard_bind_anti_collision - for(var/i in 1 to oldmode_ctrl_override_keys.len) - var/key = oldmode_ctrl_override_keys[i] - var/override = oldmode_ctrl_override_keys[key] - old_default["Ctrl+[key]"] = "\"KeyDown [override]\"" - old_default["Ctrl+[key]+UP"] = "\"KeyUp [override]\"" - - macro_sets = default_macro_sets - -// For initially setting up or resetting to default the movement keys -/datum/controller/subsystem/input/proc/setup_default_movement_keys() - var/static/list/default_movement_keys = list( - "W" = NORTH, "A" = WEST, "S" = SOUTH, "D" = EAST, // WASD - "North" = NORTH, "West" = WEST, "South" = SOUTH, "East" = EAST, // Arrow keys & Numpad - ) - - movement_keys = default_movement_keys.Copy() + // And finally, the modern set. + macroset_hotkey = list( + "Any" = "\"KeyDown \[\[*\]\]\"", + "Any+UP" = "\"KeyUp \[\[*\]\]\"", + "Tab" = "\".winset \\\"input.focus=true?map.focus=true input.background-color=[COLOR_INPUT_DISABLED]:input.focus=true input.background-color=[COLOR_INPUT_ENABLED]\\\"\"", + "Escape" = "\".winset \\\"input.text=\\\"\\\"\\\"\"", + "Back" = "\".winset \\\"input.text=\\\"\\\"\\\"\"", + ) + + macroset_hotkey |= hard_binds + macroset_hotkey |= hard_bind_anti_collision // Badmins just wanna have fun ♪ /datum/controller/subsystem/input/proc/refresh_client_macro_sets() @@ -111,9 +110,15 @@ SUBSYSTEM_DEF(input) for(var/i in 1 to clients.len) var/client/user = clients[i] user.set_macros() + user.update_movement_keys() /datum/controller/subsystem/input/fire() var/list/clients = GLOB.clients // Let's sing the list cache song - for(var/i in 1 to length(clients)) + for(var/i in 1 to clients.len) var/client/C = clients[i] C.keyLoop() + +/// *sigh +/client/verb/NONSENSICAL_VERB_THAT_DOES_NOTHING() + set name = ".NONSENSICAL_VERB_THAT_DOES_NOTHING" + set hidden = TRUE diff --git a/code/controllers/subsystem/materials.dm b/code/controllers/subsystem/materials.dm index cc07f8e963..23d5a7a2b7 100644 --- a/code/controllers/subsystem/materials.dm +++ b/code/controllers/subsystem/materials.dm @@ -10,20 +10,52 @@ SUBSYSTEM_DEF(materials) var/list/materials ///Dictionary of category || list of material refs var/list/materials_by_category + ///Dictionary of category || list of material types, mostly used by rnd machines like autolathes. + var/list/materialtypes_by_category + ///A cache of all material combinations that have been used + var/list/list/material_combos ///List of stackcrafting recipes for materials using rigid materials - var/list/rigid_stack_recipes = list(new/datum/stack_recipe("chair", /obj/structure/chair/greyscale, one_per_turf = TRUE, on_floor = TRUE, applies_mats = TRUE)) + var/list/rigid_stack_recipes = list( + new /datum/stack_recipe("chair", /obj/structure/chair/greyscale, one_per_turf = TRUE, on_floor = TRUE, applies_mats = TRUE), + new /datum/stack_recipe("toilet", /obj/structure/toilet/greyscale, one_per_turf = TRUE, on_floor = TRUE, applies_mats = TRUE), + new /datum/stack_recipe("sink", /obj/structure/sink/greyscale, one_per_turf = TRUE, on_floor = TRUE, applies_mats = TRUE), + new /datum/stack_recipe("Floor tile", /obj/item/stack/tile/material, 1, 4, 20, applies_mats = TRUE) + ) ///Ran on initialize, populated the materials and materials_by_category dictionaries with their appropiate vars (See these variables for more info) /datum/controller/subsystem/materials/proc/InitializeMaterials() materials = list() materials_by_category = list() + materialtypes_by_category = list() + material_combos = list() for(var/type in subtypesof(/datum/material)) var/datum/material/ref = new type materials[type] = ref for(var/c in ref.categories) materials_by_category[c] += list(ref) + materialtypes_by_category[c] += list(type) /datum/controller/subsystem/materials/proc/GetMaterialRef(datum/material/fakemat) if(!materials) InitializeMaterials() - return materials[fakemat] || fakemat \ No newline at end of file + return materials[fakemat] || fakemat + + +///Returns a list to be used as an object's custom_materials. Lists will be cached and re-used based on the parameters. +/datum/controller/subsystem/materials/proc/FindOrCreateMaterialCombo(list/materials_declaration, multiplier) + if(!material_combos) + InitializeMaterials() + var/list/combo_params = list() + for(var/x in materials_declaration) + var/datum/material/mat = x + var/path_name = ispath(mat) ? "[mat]" : "[mat.type]" + combo_params += "[path_name]=[materials_declaration[mat] * multiplier]" + sortTim(combo_params, /proc/cmp_text_asc) // We have to sort now in case the declaration was not in order + var/combo_index = combo_params.Join("-") + var/list/combo = material_combos[combo_index] + if(!combo) + combo = list() + for(var/mat in materials_declaration) + combo[GetMaterialRef(mat)] = materials_declaration[mat] * multiplier + material_combos[combo_index] = combo + return combo diff --git a/code/controllers/subsystem/minimaps.dm b/code/controllers/subsystem/minimaps.dm index 75de71ca96..c25036a47d 100644 --- a/code/controllers/subsystem/minimaps.dm +++ b/code/controllers/subsystem/minimaps.dm @@ -1,8 +1,8 @@ SUBSYSTEM_DEF(minimaps) name = "Minimaps" flags = SS_NO_FIRE - var/list/station_minimaps - var/datum/minimap_group/station_minimap + var/list/station_minimaps = list() + var/datum/minimap_group/station_minimap = null /datum/controller/subsystem/minimaps/Initialize() if(!CONFIG_GET(flag/minimaps_enabled)) @@ -12,9 +12,9 @@ SUBSYSTEM_DEF(minimaps) return ..() /datum/controller/subsystem/minimaps/proc/build_minimaps() - station_minimaps = list() for(var/z in SSmapping.levels_by_trait(ZTRAIT_STATION)) var/datum/space_level/SL = SSmapping.get_level(z) var/name = (SL.name == initial(SL.name))? "[z] - Station" : "[z] - [SL.name]" station_minimaps += new /datum/minimap(z, name = name) + station_minimap = new(station_minimaps, "Station") diff --git a/code/controllers/subsystem/mobs.dm b/code/controllers/subsystem/mobs.dm index 8caf2a4623..885587ff55 100644 --- a/code/controllers/subsystem/mobs.dm +++ b/code/controllers/subsystem/mobs.dm @@ -8,6 +8,7 @@ SUBSYSTEM_DEF(mobs) var/static/list/clients_by_zlevel[][] var/static/list/dead_players_by_zlevel[][] = list(list()) // Needs to support zlevel 1 here, MaxZChanged only happens when z2 is created and new_players can login before that. var/static/list/cubemonkeys = list() + var/static/list/cheeserats = list() /datum/controller/subsystem/mobs/stat_entry() ..("P:[GLOB.mob_living_list.len]") diff --git a/code/controllers/subsystem/moods.dm b/code/controllers/subsystem/moods.dm deleted file mode 100644 index f6b6ffcb40..0000000000 --- a/code/controllers/subsystem/moods.dm +++ /dev/null @@ -1,4 +0,0 @@ -PROCESSING_SUBSYSTEM_DEF(mood) - name = "Mood" - flags = SS_NO_INIT | SS_BACKGROUND - priority = 20 diff --git a/code/controllers/subsystem/npcpool.dm b/code/controllers/subsystem/npcpool.dm index 7fd3512448..2d2fbb0704 100644 --- a/code/controllers/subsystem/npcpool.dm +++ b/code/controllers/subsystem/npcpool.dm @@ -23,7 +23,7 @@ SUBSYSTEM_DEF(npcpool) var/mob/living/simple_animal/SA = currentrun[currentrun.len] --currentrun.len - if(!SA.ckey && !SA.notransform) + if(!SA.ckey && !SA.mob_transforming) if(SA.stat != DEAD) SA.handle_automated_movement() if(SA.stat != DEAD) diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence.dm index 0a60c6e5d3..cd577e4ac6 100644 --- a/code/controllers/subsystem/persistence.dm +++ b/code/controllers/subsystem/persistence.dm @@ -24,6 +24,8 @@ SUBSYSTEM_DEF(persistence) var/list/saved_votes = list() var/list/obj/structure/sign/picture_frame/photo_frames var/list/obj/item/storage/photo_album/photo_albums + var/list/obj/structure/sign/painting/painting_frames = list() + var/list/paintings = list() /datum/controller/subsystem/persistence/Initialize() LoadSatchels() @@ -265,6 +267,7 @@ SUBSYSTEM_DEF(persistence) CollectAntagReputation() SaveRandomizedRecipes() SavePanicBunker() + SavePaintings() /datum/controller/subsystem/persistence/proc/LoadPanicBunker() var/bunker_path = file("data/bunker_passthrough.json") @@ -528,3 +531,19 @@ SUBSYSTEM_DEF(persistence) file_data["data"] = saved_votes[ckey] fdel(json_file) WRITE_FILE(json_file, json_encode(file_data)) + +/datum/controller/subsystem/persistence/proc/LoadPaintings() + var/json_file = file("data/paintings.json") + if(fexists(json_file)) + paintings = json_decode(file2text(json_file)) + + for(var/obj/structure/sign/painting/P in painting_frames) + P.load_persistent() + +/datum/controller/subsystem/persistence/proc/SavePaintings() + for(var/obj/structure/sign/painting/P in painting_frames) + P.save_persistent() + + var/json_file = file("data/paintings.json") + fdel(json_file) + WRITE_FILE(json_file, json_encode(paintings)) diff --git a/code/controllers/subsystem/processing/projectiles.dm b/code/controllers/subsystem/processing/projectiles.dm index 8cd63c6949..b8d904c727 100644 --- a/code/controllers/subsystem/processing/projectiles.dm +++ b/code/controllers/subsystem/processing/projectiles.dm @@ -1,21 +1,22 @@ PROCESSING_SUBSYSTEM_DEF(projectiles) name = "Projectiles" + priority = FIRE_PRIORITY_PROJECTILES wait = 1 stat_tag = "PP" flags = SS_NO_INIT|SS_TICKER - var/global_pixel_speed = 2 - var/global_iterations_per_move = 16 + var/global_pixel_increment_amount = 4 + var/global_projectile_speed_multiplier = 1 /datum/controller/subsystem/processing/projectiles/proc/set_pixel_speed(new_speed) - global_pixel_speed = new_speed + global_pixel_increment_amount = new_speed for(var/i in processing) var/obj/item/projectile/P = i if(istype(P)) //there's non projectiles on this too. - P.set_pixel_speed(new_speed) + P.set_pixel_increment_amount(new_speed) /datum/controller/subsystem/processing/projectiles/vv_edit_var(var_name, var_value) switch(var_name) - if(NAMEOF(src, global_pixel_speed)) + if(NAMEOF(src, global_pixel_increment_amount)) set_pixel_speed(var_value) return TRUE else diff --git a/code/controllers/subsystem/research.dm b/code/controllers/subsystem/research.dm index f158574763..60c5dd5b99 100644 --- a/code/controllers/subsystem/research.dm +++ b/code/controllers/subsystem/research.dm @@ -24,6 +24,7 @@ SUBSYSTEM_DEF(research) var/list/techweb_categories = list() //category name = list(node.id = TRUE) var/list/techweb_boost_items = list() //associative double-layer path = list(id = list(point_type = point_discount)) var/list/techweb_nodes_hidden = list() //Node ids that should be hidden by default. + var/list/techweb_nodes_experimental = list() //Node ids that are exclusive to the BEPIS. var/list/techweb_point_items = list( //path = list(point type = value) /obj/item/assembly/signaler/anomaly = list(TECHWEB_POINT_TYPE_GENERIC = 10000), @@ -306,7 +307,11 @@ SUBSYSTEM_DEF(research) for(var/A in subtypesof(/obj/item/seeds)) var/obj/item/seeds/S = A var/list/L = list() - L[TECHWEB_POINT_TYPE_GENERIC] = 50 + initial(S.rarity) * 2 + //First we get are yield and rarity and times it by two + //Then we subtract production and maturation, making it so faster growing plants are better for RnD + //Then we add in lifespan and potency, + //A basic seed can be worth 268 points if its the best it can be. + L[TECHWEB_POINT_TYPE_GENERIC] = 50 + initial(S.rarity) * 2 + initial(S.yield) * 2 - initial(S.maturation) - initial(S.production) + initial(S.lifespan) + initial(S.potency) techweb_point_items[S] = L return ..() @@ -508,6 +513,8 @@ SUBSYSTEM_DEF(research) D.unlocked_by += node.id if(node.hidden) techweb_nodes_hidden[node.id] = TRUE + if(node.experimental) + techweb_nodes_experimental[node.id] = TRUE CHECK_TICK generate_techweb_unlock_linking() diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 8042631b7b..765f0c8382 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -409,7 +409,7 @@ SUBSYSTEM_DEF(ticker) var/mob/living = player.transfer_character() if(living) qdel(player) - living.notransform = TRUE + living.mob_transforming = TRUE if(living.client) if (living.client.prefs && living.client.prefs.auto_ooc) if (living.client.prefs.chat_toggles & CHAT_OOC) @@ -423,7 +423,7 @@ SUBSYSTEM_DEF(ticker) /datum/controller/subsystem/ticker/proc/release_characters(list/livings) for(var/I in livings) var/mob/living/L = I - L.notransform = FALSE + L.mob_transforming = FALSE /datum/controller/subsystem/ticker/proc/send_tip_of_the_round() var/m diff --git a/code/controllers/subsystem/traumas.dm b/code/controllers/subsystem/traumas.dm index 87158f021e..f556f7dee7 100644 --- a/code/controllers/subsystem/traumas.dm +++ b/code/controllers/subsystem/traumas.dm @@ -79,7 +79,7 @@ SUBSYSTEM_DEF(traumas) /obj/item/pda/clown, /obj/item/grown/bananapeel)), "greytide" = typecacheof(list(/obj/item/clothing/under/color/grey, /obj/item/melee/baton/cattleprod, - /obj/item/twohanded/spear, /obj/item/clothing/mask/gas)), + /obj/item/spear, /obj/item/clothing/mask/gas)), "lizards" = typecacheof(list(/obj/item/toy/plush/lizardplushie, /obj/item/reagent_containers/food/snacks/kebab/tail, /obj/item/organ/tail/lizard, /obj/item/reagent_containers/food/drinks/bottle/lizardwine)), @@ -120,7 +120,7 @@ SUBSYSTEM_DEF(traumas) /obj/item/card/id/captains_spare, /obj/item/card/id/centcom, /obj/machinery/door/airlock/command)), "the supernatural" = typecacheof(list(/obj/structure/destructible/cult, /obj/item/tome, - /obj/item/melee/cultblade, /obj/item/twohanded/required/cult_bastard, /obj/item/restraints/legcuffs/bola/cult, + /obj/item/melee/cultblade, /obj/item/cult_bastard, /obj/item/restraints/legcuffs/bola/cult, /obj/item/clothing/suit/cultrobes, /obj/item/clothing/suit/space/hardsuit/cult, /obj/item/clothing/suit/hooded/cultrobes, /obj/item/clothing/head/hooded/cult_hoodie, /obj/effect/rune, /obj/item/stack/sheet/runed_metal, /obj/machinery/door/airlock/cult, /obj/singularity/narsie, @@ -151,7 +151,7 @@ SUBSYSTEM_DEF(traumas) "anime" = typecacheof(list(/obj/item/clothing/under/costume/schoolgirl, /obj/item/katana, /obj/item/reagent_containers/food/snacks/sashimi, /obj/item/reagent_containers/food/snacks/chawanmushi, /obj/item/reagent_containers/food/drinks/bottle/sake, /obj/item/throwing_star, /obj/item/clothing/head/kitty/genuine, /obj/item/clothing/suit/space/space_ninja, - /obj/item/clothing/mask/gas/space_ninja, /obj/item/clothing/shoes/space_ninja, /obj/item/clothing/gloves/space_ninja, /obj/item/twohanded/vibro_weapon, + /obj/item/clothing/mask/gas/space_ninja, /obj/item/clothing/shoes/space_ninja, /obj/item/clothing/gloves/space_ninja, /obj/item/vibro_weapon, /obj/item/nullrod/scythe/vibro, /obj/item/energy_katana, /obj/item/toy/katana, /obj/item/nullrod/claymore/katana, /obj/structure/window/paperframe, /obj/structure/mineral_door/paperframe)), "mimes" = typecacheof(list(/obj/item/pda/mime, /obj/item/clothing/under/rank/civilian/mime, /obj/item/clothing/mask/gas/mime, @@ -168,7 +168,7 @@ SUBSYSTEM_DEF(traumas) /obj/machinery/porta_turret/syndicate, /obj/structure/closet/syndicate, /obj/machinery/suit_storage_unit/syndicate, /obj/item/clothing/under/syndicate, /obj/item/folder/syndicate, /obj/item/documents/syndicate, /obj/item/clothing/glasses/phantomthief/syndicate, /obj/item/antag_spawner/nuke_ops, /obj/item/storage/box/syndicate, /obj/structure/fluff/empty_sleeper/syndicate, /obj/item/implant/radio/syndicate, /obj/item/clothing/head/helmet/space/syndicate, /obj/machinery/nuclearbomb/syndicate, /obj/item/grenade/syndieminibomb, /obj/item/storage/backpack/duffelbag/syndie, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/gun/ballistic/automatic/shotgun/bulldog, /obj/item/gun/ballistic/automatic/c20r, /obj/item/gun/ballistic/automatic/m90, /obj/item/gun/ballistic/automatic/l6_saw, /obj/item/storage/belt/grenade/full, /obj/item/gun/ballistic/automatic/sniper_rifle/syndicate, /obj/item/gun/energy/kinetic_accelerator/crossbow, - /obj/item/melee/transforming/energy/sword/saber, /obj/item/twohanded/dualsaber, /obj/item/melee/powerfist, /obj/item/storage/box/syndie_kit, /obj/item/grenade/spawnergrenade/manhacks, /obj/item/grenade/chem_grenade/bioterrorfoam, /obj/item/reagent_containers/spray/chemsprayer/bioterror, /obj/item/ammo_box/magazine/m10mm, + /obj/item/melee/transforming/energy/sword/saber, /obj/item/dualsaber, /obj/item/melee/powerfist, /obj/item/storage/box/syndie_kit, /obj/item/grenade/spawnergrenade/manhacks, /obj/item/grenade/chem_grenade/bioterrorfoam, /obj/item/reagent_containers/spray/chemsprayer/bioterror, /obj/item/ammo_box/magazine/m10mm, /obj/item/ammo_box/magazine/pistolm9mm, /obj/item/ammo_box/a357, /obj/item/ammo_box/magazine/m12g, /obj/item/ammo_box/magazine/mm195x129, /obj/item/antag_spawner/nuke_ops, /obj/mecha/combat/gygax/dark, /obj/mecha/combat/marauder/mauler, /obj/item/soap/syndie, /obj/item/gun/syringe/syndicate, /obj/item/cartridge/virus/syndicate, /obj/item/cartridge/virus/frame, /obj/item/chameleon, /obj/item/storage/box/syndie_kit/cutouts, /obj/item/clothing/suit/space/hardsuit/syndi, /obj/item/card/emag, /obj/item/storage/toolbox/syndicate, /obj/item/storage/book/bible/syndicate, /obj/item/encryptionkey/binary, /obj/item/encryptionkey/syndicate, /obj/item/aiModule/syndicate, /obj/item/clothing/shoes/magboots/syndie, /obj/item/powersink, /obj/item/sbeacondrop, /obj/item/sbeacondrop/bomb, /obj/item/syndicatedetonator, /obj/item/shield/energy, /obj/item/assault_pod, /obj/item/slimepotion/slime/sentience/nuclear, /obj/item/stack/telecrystal, /obj/item/jammer, /obj/item/codespeak_manual/unlimited, @@ -176,7 +176,7 @@ SUBSYSTEM_DEF(traumas) /obj/machinery/computer/pod/old/syndicate, /obj/machinery/vending/medical/syndicate_access, /obj/item/mmi/syndie, /obj/item/target/syndicate, /obj/machinery/vending/cigarette/syndicate, /obj/item/robot_module/syndicate, /obj/item/clothing/mask/gas/syndicate, /obj/machinery/power/singularity_beacon/syndicate, /obj/item/clothing/head/syndicatefake, /obj/item/radio/headset/syndicate, /obj/item/gun/ballistic/automatic/pistol/antitank/syndicate, /obj/item/pda/syndicate, /obj/item/clothing/suit/armor/vest/capcarapace/syndicate, /obj/item/gun/ballistic/automatic/flechette, /obj/item/ammo_box/magazine/flechette, /obj/item/clothing/suit/toggle/lawyer/black/syndie, /obj/item/melee/transforming/energy/sword/cx/traitor, /obj/structure/sign/poster/contraband/syndicate_pistol, /obj/structure/sign/poster/contraband/syndicate_recruitment, /obj/item/bedsheet/syndie, /obj/item/borg/upgrade/syndicate, /obj/item/tank/jetpack/oxygen/harness, /obj/item/firing_pin/implant/pindicate, /obj/item/reagent_containers/glass/bottle/traitor, /obj/item/storage/belt/military, - /obj/item/twohanded/shockpaddles/syndicate, /obj/item/clothing/mask/cigarette/syndicate, /obj/item/toy/plush/nukeplushie)), + /obj/item/shockpaddles/syndicate, /obj/item/clothing/mask/cigarette/syndicate, /obj/item/toy/plush/nukeplushie)), "eye" = typecacheof(list(/obj/item/organ/eyes, /obj/item/reagent_containers/syringe)) ) diff --git a/code/datums/action.dm b/code/datums/action.dm index 00e7e0ad5d..0033df09d7 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -731,14 +731,6 @@ if(next_use_time > world.time) START_PROCESSING(SSfastprocess, src) - -//Stickmemes -/datum/action/item_action/stickmen - name = "Summon Stick Minions" - desc = "Allows you to summon faithful stickmen allies to aide you in battle." - icon_icon = 'icons/mob/actions/actions_minor_antag.dmi' - button_icon_state = "art_summon" - //surf_ss13 /datum/action/item_action/bhop name = "Activate Jump Boots" diff --git a/code/datums/actions/ninja.dm b/code/datums/actions/ninja.dm index b655078349..c0314b9c48 100644 --- a/code/datums/actions/ninja.dm +++ b/code/datums/actions/ninja.dm @@ -8,11 +8,11 @@ icon_icon = 'icons/mob/actions/actions_spells.dmi' /datum/action/item_action/ninjaboost - check_flags = NONE name = "Adrenaline Boost" desc = "Inject a secret chemical that will counteract all movement-impairing effect." button_icon_state = "repulse" icon_icon = 'icons/mob/actions/actions_spells.dmi' + required_mobility_flags = NONE /datum/action/item_action/ninjapulse name = "EM Burst (25E)" diff --git a/code/datums/brain_damage/hypnosis.dm b/code/datums/brain_damage/hypnosis.dm index 37aee6df7e..f4c4541db9 100644 --- a/code/datums/brain_damage/hypnosis.dm +++ b/code/datums/brain_damage/hypnosis.dm @@ -63,7 +63,7 @@ if(prob(2)) switch(rand(1,2)) if(1) - to_chat(owner, "...[lowertext(hypnotic_phrase)]...") + to_chat(owner, "...[lowertext(hypnotic_phrase)]...") if(2) new /datum/hallucination/chat(owner, TRUE, FALSE, "[hypnotic_phrase]") diff --git a/code/datums/brain_damage/magic.dm b/code/datums/brain_damage/magic.dm new file mode 100644 index 0000000000..ff04ceead9 --- /dev/null +++ b/code/datums/brain_damage/magic.dm @@ -0,0 +1,115 @@ +//Magical traumas, caused by spells and curses. +//Blurs the line between the victim's imagination and reality +//Unlike regular traumas this can affect the victim's body and surroundings + +/datum/brain_trauma/magic + resilience = TRAUMA_RESILIENCE_LOBOTOMY + +/datum/brain_trauma/magic/lumiphobia + name = "Lumiphobia" + desc = "Patient has an inexplicable adverse reaction to light." + scan_desc = "light hypersensitivity" + gain_text = "You feel a craving for darkness." + lose_text = "Light no longer bothers you." + var/next_damage_warning = 0 + +/datum/brain_trauma/magic/lumiphobia/on_life() + ..() + var/turf/T = owner.loc + if(istype(T)) + var/light_amount = T.get_lumcount() + if(light_amount > SHADOW_SPECIES_LIGHT_THRESHOLD) //if there's enough light, start dying + if(world.time > next_damage_warning) + to_chat(owner, "The light burns you!") + next_damage_warning = world.time + 100 //Avoid spamming + owner.take_overall_damage(0,3) + +/datum/brain_trauma/magic/poltergeist + name = "Poltergeist" + desc = "Patient appears to be targeted by a violent invisible entity." + scan_desc = "paranormal activity" + gain_text = "You feel a hateful presence close to you." + lose_text = "You feel the hateful presence fade away." + +/datum/brain_trauma/magic/poltergeist/on_life() + ..() + if(prob(4)) + var/most_violent = -1 //So it can pick up items with 0 throwforce if there's nothing else + var/obj/item/throwing + for(var/obj/item/I in view(5, get_turf(owner))) + if(I.anchored) + continue + if(I.throwforce > most_violent) + most_violent = I.throwforce + throwing = I + if(throwing) + throwing.throw_at(owner, 8, 2) + +/datum/brain_trauma/magic/antimagic + name = "Athaumasia" + desc = "Patient is completely inert to magical forces." + scan_desc = "thaumic blank" + gain_text = "You realize that magic cannot be real." + lose_text = "You realize that magic might be real." + +/datum/brain_trauma/magic/antimagic/on_gain() + ADD_TRAIT(owner, TRAIT_ANTIMAGIC, TRAUMA_TRAIT) + ..() + +/datum/brain_trauma/magic/antimagic/on_lose() + REMOVE_TRAIT(owner, TRAIT_ANTIMAGIC, TRAUMA_TRAIT) + ..() + +/datum/brain_trauma/magic/stalker + name = "Stalking Phantom" + desc = "Patient is stalked by a phantom only they can see." + scan_desc = "extra-sensory paranoia" + gain_text = "You feel like something wants to kill you..." + lose_text = "You no longer feel eyes on your back." + var/obj/effect/hallucination/simple/stalker_phantom/stalker + var/close_stalker = FALSE //For heartbeat + +/datum/brain_trauma/magic/stalker/on_gain() + create_stalker() + ..() + +/datum/brain_trauma/magic/stalker/proc/create_stalker() + var/turf/stalker_source = locate(owner.x + pick(-12, 12), owner.y + pick(-12, 12), owner.z) //random corner + stalker = new(stalker_source, owner) + +/datum/brain_trauma/magic/stalker/on_lose() + QDEL_NULL(stalker) + ..() + +/datum/brain_trauma/magic/stalker/on_life() + // Dead and unconscious people are not interesting to the psychic stalker. + if(owner.stat != CONSCIOUS) + return + + // Not even nullspace will keep it at bay. + if(!stalker || !stalker.loc || stalker.z != owner.z) + qdel(stalker) + create_stalker() + + if(get_dist(owner, stalker) <= 1) + playsound(owner, 'sound/magic/demon_attack1.ogg', 50) + owner.visible_message("[owner] is torn apart by invisible claws!", "Ghostly claws tear your body apart!") + owner.take_bodypart_damage(rand(20, 45)) + else if(prob(50)) + stalker.forceMove(get_step_towards(stalker, owner)) + if(get_dist(owner, stalker) <= 8) + if(!close_stalker) + var/sound/slowbeat = sound('sound/health/slowbeat.ogg', repeat = TRUE) + owner.playsound_local(owner, slowbeat, 40, 0, channel = CHANNEL_HEARTBEAT) + close_stalker = TRUE + else + if(close_stalker) + owner.stop_sound_channel(CHANNEL_HEARTBEAT) + close_stalker = FALSE + ..() + +/obj/effect/hallucination/simple/stalker_phantom + name = "???" + desc = "It's coming closer..." + image_icon = 'icons/mob/lavaland/lavaland_monsters.dmi' + image_state = "curseblob" diff --git a/code/datums/brain_damage/phobia.dm b/code/datums/brain_damage/phobia.dm index 80a1bd2470..279118d877 100644 --- a/code/datums/brain_damage/phobia.dm +++ b/code/datums/brain_damage/phobia.dm @@ -44,7 +44,7 @@ return if(world.time > next_check && world.time > next_scare) next_check = world.time + 50 - var/list/seen_atoms = view(7, owner) + var/list/seen_atoms = owner.fov_view(7) if(LAZYLEN(trigger_objs)) for(var/obj/O in seen_atoms) diff --git a/code/datums/brain_damage/severe.dm b/code/datums/brain_damage/severe.dm index e076c30ae1..3ba00d305b 100644 --- a/code/datums/brain_damage/severe.dm +++ b/code/datums/brain_damage/severe.dm @@ -117,6 +117,12 @@ paralysis_type = "legs" resilience = TRAUMA_RESILIENCE_ABSOLUTE +/datum/brain_trauma/severe/paralysis/spinesnapped + random_gain = FALSE + clonable = FALSE + paralysis_type = "legs" + resilience = TRAUMA_RESILIENCE_LOBOTOMY // It shouldn't fix severed spinal cords really, but there is no specific surgery for that yet. + /datum/brain_trauma/severe/narcolepsy name = "Narcolepsy" desc = "Patient may involuntarily fall asleep during normal activities." @@ -265,3 +271,37 @@ ..() if(prob(1) && !owner.has_status_effect(/datum/status_effect/trance)) owner.apply_status_effect(/datum/status_effect/trance, rand(100,300), FALSE) + +/datum/brain_trauma/severe/hypnotic_trigger + name = "Hypnotic Trigger" + desc = "Patient has a trigger phrase set in their subconscious that will trigger a suggestible trance-like state." + scan_desc = "oneiric feedback loop" + gain_text = "You feel odd, like you just forgot something important." + lose_text = "You feel like a weight was lifted from your mind." + random_gain = FALSE + var/trigger_phrase = "Nanotrasen" + +/datum/brain_trauma/severe/hypnotic_trigger/New(phrase) + ..() + if(phrase) + trigger_phrase = phrase + +/datum/brain_trauma/severe/hypnotic_trigger/on_lose() //hypnosis must be cleared separately, but brain surgery should get rid of both anyway + ..() + owner.remove_status_effect(/datum/status_effect/trance) + +/datum/brain_trauma/severe/hypnotic_trigger/handle_hearing(datum/source, list/hearing_args) + if(!owner.can_hear()) + return + if(owner == hearing_args[HEARING_SPEAKER]) + return + + var/regex/reg = new("(\\b[REGEX_QUOTE(trigger_phrase)]\\b)","ig") + + if(findtext(hearing_args[HEARING_RAW_MESSAGE], reg)) + addtimer(CALLBACK(src, .proc/hypnotrigger), 10) //to react AFTER the chat message + hearing_args[HEARING_RAW_MESSAGE] = reg.Replace(hearing_args[HEARING_RAW_MESSAGE], "*********") + +/datum/brain_trauma/severe/hypnotic_trigger/proc/hypnotrigger() + to_chat(owner, "The words trigger something deep within you, and you feel your consciousness slipping away...") + owner.apply_status_effect(/datum/status_effect/trance, rand(100,300), FALSE) diff --git a/code/datums/brain_damage/split_personality.dm b/code/datums/brain_damage/split_personality.dm index f5e00208c5..6b84e1362d 100644 --- a/code/datums/brain_damage/split_personality.dm +++ b/code/datums/brain_damage/split_personality.dm @@ -123,7 +123,9 @@ trauma = _trauma return ..() -/mob/living/split_personality/Life() +/mob/living/split_personality/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(QDELETED(body)) qdel(src) //in case trauma deletion doesn't already do it @@ -132,8 +134,6 @@ trauma.switch_personalities() qdel(trauma) - ..() - /mob/living/split_personality/Login() ..() to_chat(src, "As a split personality, you cannot do anything but observe. However, you will eventually gain control of your body, switching places with the current personality.") diff --git a/code/datums/browser.dm b/code/datums/browser.dm index 5b1df6cb68..96b2a2a294 100644 --- a/code/datums/browser.dm +++ b/code/datums/browser.dm @@ -97,20 +97,20 @@ [get_footer()] "} -/datum/browser/proc/open(use_onclose = 1) +/datum/browser/proc/open(use_onclose = TRUE) if(isnull(window_id)) //null check because this can potentially nuke goonchat WARNING("Browser [title] tried to open with a null ID") to_chat(user, "The [title] browser you tried to open failed a sanity check! Please report this on github!") return var/window_size = "" - if (width && height) + if(width && height) window_size = "size=[width]x[height];" - if (stylesheets.len) - send_asset_list(user, stylesheets, verify=FALSE) - if (scripts.len) - send_asset_list(user, scripts, verify=FALSE) + if(stylesheets.len) + send_asset_list(user, stylesheets) + if(scripts.len) + send_asset_list(user, scripts) user << browse(get_content(), "window=[window_id];[window_size][window_options]") - if (use_onclose) + if(use_onclose) setup_onclose() /datum/browser/proc/setup_onclose() @@ -157,7 +157,7 @@ close() //designed as a drop in replacement for alert(); functions the same. (outside of needing User specified) -/proc/tgalert(var/mob/User, Message, Title, Button1="Ok", Button2, Button3, StealFocus = 1, Timeout = 6000) +/proc/tgalert(mob/User, Message, Title, Button1="Ok", Button2, Button3, StealFocus = 1, Timeout = 6000) if (!User) User = usr switch(askuser(User, Message, Title, Button1, Button2, Button3, StealFocus, Timeout)) diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm index cbcb34ac5e..73d3e69ac4 100644 --- a/code/datums/chatmessage.dm +++ b/code/datums/chatmessage.dm @@ -35,7 +35,7 @@ * * extra_classes - Extra classes to apply to the span that holds the text * * lifespan - The lifespan of the message in deciseconds */ -/datum/chatmessage/New(text, atom/target, mob/owner, list/extra_classes = null, lifespan = CHAT_MESSAGE_LIFESPAN) +/datum/chatmessage/New(text, atom/target, mob/owner, list/extra_classes = list(), lifespan = CHAT_MESSAGE_LIFESPAN) . = ..() if (!istype(target)) CRASH("Invalid target given for chatmessage") @@ -55,6 +55,12 @@ message = null return ..() +/** + * Calls qdel on the chatmessage when its parent is deleted, used to register qdel signal + */ +/datum/chatmessage/proc/on_parent_qdel() + qdel(src) + /** * Generates a chat message image representation * @@ -68,7 +74,7 @@ /datum/chatmessage/proc/generate_image(text, atom/target, mob/owner, list/extra_classes, lifespan) // Register client who owns this message owned_by = owner.client - RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, .proc/qdel, src) + RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, .proc/on_parent_qdel) // Clip message var/maxlen = owned_by.prefs.max_chat_length @@ -108,7 +114,7 @@ // BYOND Bug #2563917 // Construct text var/static/regex/html_metachars = new(@"&[A-Za-z]{1,7};", "g") - var/complete_text = "[text]" + var/complete_text = "[owner.say_emphasis(text)]" var/mheight = WXH_TO_HEIGHT(owned_by.MeasureText(replacetext(complete_text, html_metachars, "m"), null, CHAT_MESSAGE_WIDTH)) approx_lines = max(1, mheight / CHAT_MESSAGE_APPROX_LHEIGHT) @@ -129,7 +135,7 @@ // Build message image message = image(loc = message_loc, layer = CHAT_LAYER) - message.plane = GAME_PLANE + message.plane = CHAT_PLANE message.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA | KEEP_APART message.alpha = 0 message.pixel_y = owner.bound_height * 0.95 @@ -166,7 +172,7 @@ */ /mob/proc/create_chat_message(atom/movable/speaker, datum/language/message_language, raw_message, list/spans, message_mode) // Ensure the list we are using, if present, is a copy so we don't modify the list provided to us - spans = spans?.Copy() + spans = spans ? spans.Copy() : list() // Check for virtual speakers (aka hearing a message through a radio) var/atom/movable/originalSpeaker = speaker diff --git a/code/datums/cinematic.dm b/code/datums/cinematic.dm index e229b25258..df2c15e9c8 100644 --- a/code/datums/cinematic.dm +++ b/code/datums/cinematic.dm @@ -30,7 +30,7 @@ GLOBAL_LIST_EMPTY(cinematics) /datum/cinematic var/id = CINEMATIC_DEFAULT var/list/watching = list() //List of clients watching this - var/list/locked = list() //Who had notransform set during the cinematic + var/list/locked = list() //Who had mob_transforming set during the cinematic var/is_global = FALSE //Global cinematics will override mob-specific ones var/obj/screen/cinematic/screen var/datum/callback/special_callback //For special effects synced with animation (explosions after the countdown etc) @@ -45,7 +45,7 @@ GLOBAL_LIST_EMPTY(cinematics) GLOB.cinematics -= src QDEL_NULL(screen) for(var/mob/M in locked) - M.notransform = FALSE + M.mob_transforming = FALSE return ..() /datum/cinematic/proc/play(watchers) @@ -70,7 +70,7 @@ GLOBAL_LIST_EMPTY(cinematics) for(var/mob/M in GLOB.mob_list) if(M in watchers) - M.notransform = TRUE //Should this be done for non-global cinematics or even at all ? + M.mob_transforming = TRUE //Should this be done for non-global cinematics or even at all ? locked += M //Close watcher ui's SStgui.close_user_uis(M) @@ -79,7 +79,7 @@ GLOBAL_LIST_EMPTY(cinematics) M.client.screen += screen else if(is_global) - M.notransform = TRUE + M.mob_transforming = TRUE locked += M //Actually play it @@ -254,4 +254,4 @@ Nuke.Explosion() Narsie() -> Cinematic(CULT,world) -*/ \ No newline at end of file +*/ diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index 7f7440daf4..9e4e16f813 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -38,8 +38,9 @@ parent = raw_args[1] var/list/arguments = raw_args.Copy(2) if(Initialize(arglist(arguments)) == COMPONENT_INCOMPATIBLE) + stack_trace("Incompatible [type] assigned to a [parent.type]! args: [json_encode(arguments)]") qdel(src, TRUE, TRUE) - CRASH("Incompatible [type] assigned to a [parent.type]! args: [json_encode(arguments)]") + return _JoinParent(parent) diff --git a/code/datums/components/chasm.dm b/code/datums/components/chasm.dm index c792cb4be9..0bb6c4a0af 100644 --- a/code/datums/components/chasm.dm +++ b/code/datums/components/chasm.dm @@ -109,7 +109,7 @@ AM.visible_message("[AM] falls into [parent]!", "[oblivion_message]") if (isliving(AM)) var/mob/living/L = AM - L.notransform = TRUE + L.mob_transforming = TRUE L.Paralyze(200) var/oldtransform = AM.transform diff --git a/code/datums/components/combat_mode.dm b/code/datums/components/combat_mode.dm new file mode 100644 index 0000000000..b9952e9133 --- /dev/null +++ b/code/datums/components/combat_mode.dm @@ -0,0 +1,219 @@ +/** + * Combat mode component. It makes the user face whichever atom the mouse pointer is hovering, + * amongst other things designed outside of this file, namely PvP and PvE stuff, hence the name. + * Can be toggled on and off by clicking the screen hud object or by pressing the assigned hotkey (default 'C') + */ +/datum/component/combat_mode + var/mode_flags = COMBAT_MODE_INACTIVE + var/combatmessagecooldown + var/lastmousedir + var/obj/screen/combattoggle/hud_icon + var/hud_loc + +/datum/component/combat_mode/Initialize(hud_loc = ui_combat_toggle) + if(!isliving(parent)) + return COMPONENT_INCOMPATIBLE + var/mob/living/L = parent + + src.hud_loc = hud_loc + + RegisterSignal(L, SIGNAL_TRAIT(TRAIT_COMBAT_MODE_LOCKED), .proc/update_combat_lock) + RegisterSignal(L, COMSIG_TOGGLE_COMBAT_MODE, .proc/user_toggle_intentional_combat_mode) + RegisterSignal(L, COMSIG_DISABLE_COMBAT_MODE, .proc/safe_disable_combat_mode) + RegisterSignal(L, COMSIG_ENABLE_COMBAT_MODE, .proc/safe_enable_combat_mode) + RegisterSignal(L, COMSIG_MOB_DEATH, .proc/on_death) + RegisterSignal(L, COMSIG_MOB_CLIENT_LOGOUT, .proc/on_logout) + RegisterSignal(L, COMSIG_MOB_HUD_CREATED, .proc/on_mob_hud_created) + RegisterSignal(L, COMSIG_COMBAT_MODE_CHECK, .proc/check_flags) + + update_combat_lock() + + if(L.client) + on_mob_hud_created(L) + +/datum/component/combat_mode/Destroy() + if(parent) + safe_disable_combat_mode(parent) + if(hud_icon) + QDEL_NULL(hud_icon) + return ..() + +/// Creates the hud screen object. +/datum/component/combat_mode/proc/on_mob_hud_created(mob/source) + hud_icon = new + hud_icon.hud = source.hud_used + hud_icon.icon = tg_ui_icon_to_cit_ui(source.hud_used.ui_style) + hud_icon.screen_loc = hud_loc + source.hud_used.static_inventory += hud_icon + hud_icon.update_icon() + +/// Combat mode can be locked out, forcibly disabled by a status trait. +/datum/component/combat_mode/proc/update_combat_lock() + var/locked = HAS_TRAIT(parent, TRAIT_COMBAT_MODE_LOCKED) + var/desired = (mode_flags & COMBAT_MODE_TOGGLED) + var/actual = (mode_flags & COMBAT_MODE_ACTIVE) + if(actual) + if(locked) + disable_combat_mode(parent, FALSE, TRUE) + else if(!desired) + disable_combat_mode(parent, TRUE, TRUE) + else + if(desired && !locked) + enable_combat_mode(parent, FALSE, TRUE) + +/// Enables combat mode. Please use 'safe_enable_combat_mode' instead, if you wish to also enable the toggle flag. +/datum/component/combat_mode/proc/enable_combat_mode(mob/living/source, silent = TRUE, forced = TRUE, visible = FALSE, locked = FALSE, playsound = FALSE) + if(locked) + if(hud_icon) + hud_icon.combat_on = TRUE + hud_icon.update_icon() + return + if(mode_flags & COMBAT_MODE_ACTIVE) + return + mode_flags |= COMBAT_MODE_ACTIVE + mode_flags &= ~COMBAT_MODE_INACTIVE + SEND_SIGNAL(source, COMSIG_LIVING_COMBAT_ENABLED, forced) + if(!silent) + var/self_message = forced? "Your muscles reflexively tighten!" : "You drop into a combative stance!" + if(visible && (forced || world.time >= combatmessagecooldown)) + combatmessagecooldown = world.time + 10 SECONDS + if(!forced) + if(source.a_intent != INTENT_HELP) + source.visible_message("[source] [source.resting ? "tenses up" : "drops into a combative stance"].", self_message) + else + source.visible_message("[source] [pick("looks","seems","goes")] [pick("alert","attentive","vigilant")].") + else + source.visible_message("[source] drops into a combative stance!", self_message) + else + to_chat(source, self_message) + if(playsound) + source.playsound_local(source, 'sound/misc/ui_toggle.ogg', 50, FALSE, pressure_affected = FALSE) //Sound from interbay! + RegisterSignal(source, COMSIG_MOB_CLIENT_MOUSEMOVE, .proc/onMouseMove) + RegisterSignal(source, COMSIG_MOVABLE_MOVED, .proc/on_move) + RegisterSignal(source, COMSIG_MOB_CLIENT_MOVE, .proc/on_client_move) + if(hud_icon) + hud_icon.combat_on = TRUE + hud_icon.update_icon() + +/// Disables combat mode. Please use 'safe_disable_combat_mode' instead, if you wish to also disable the toggle flag. +/datum/component/combat_mode/proc/disable_combat_mode(mob/living/source, silent = TRUE, forced = TRUE, visible = FALSE, locked = FALSE, playsound = FALSE) + if(locked) + if(hud_icon) + hud_icon.combat_on = FALSE + hud_icon.update_icon() + return + if(!(mode_flags & COMBAT_MODE_ACTIVE)) + return + mode_flags &= ~COMBAT_MODE_ACTIVE + mode_flags |= COMBAT_MODE_INACTIVE + SEND_SIGNAL(source, COMSIG_LIVING_COMBAT_DISABLED, forced) + if(!silent) + var/self_message = forced? "Your muscles are forcibly relaxed!" : "You relax your stance." + if(visible) + source.visible_message("[source] relaxes [source.p_their()] stance.", self_message) + else + to_chat(source, self_message) + if(playsound) + source.playsound_local(source, 'sound/misc/ui_toggleoff.ogg', 50, FALSE, pressure_affected = FALSE) //Slightly modified version of the toggleon sound! + UnregisterSignal(source, list(COMSIG_MOB_CLIENT_MOUSEMOVE, COMSIG_MOVABLE_MOVED, COMSIG_MOB_CLIENT_MOVE)) + if(hud_icon) + hud_icon.combat_on = FALSE + hud_icon.update_icon() + source.stop_active_blocking() + source.end_parry_sequence() + +///Changes the user direction to (try) keep match the pointer. +/datum/component/combat_mode/proc/on_move(atom/movable/source, dir, atom/oldloc, forced) + var/mob/living/L = source + if(mode_flags & COMBAT_MODE_ACTIVE && L.client && lastmousedir && lastmousedir != dir) + L.setDir(lastmousedir, ismousemovement = TRUE) + +/// Added movement delay if moving backward. +/datum/component/combat_mode/proc/on_client_move(mob/source, client/client, direction, n, oldloc, added_delay) + if(oldloc != n && direction == REVERSE_DIR(source.dir)) + client.move_delay += added_delay*0.5 + +///Changes the user direction to (try) match the pointer. +/datum/component/combat_mode/proc/onMouseMove(mob/source, object, location, control, params) + if(source.client.show_popup_menus) + return + source.face_atom(object, TRUE) + lastmousedir = source.dir + +/// Toggles whether the user is intentionally in combat mode. THIS should be the proc you generally use! Has built in visual/to other player feedback, as well as an audible cue to ourselves. +/datum/component/combat_mode/proc/user_toggle_intentional_combat_mode(mob/living/source) + if(mode_flags & COMBAT_MODE_TOGGLED) + safe_disable_combat_mode(source) + else if(source.stat == CONSCIOUS && !(source.combat_flags & COMBAT_FLAG_HARD_STAMCRIT)) + safe_enable_combat_mode(source) + +/// Enables intentionally being in combat mode. Please try to use the COMSIG_COMBAT_MODE_CHECK signal for feedback when possible. +/datum/component/combat_mode/proc/safe_enable_combat_mode(mob/living/source, silent = FALSE, visible = TRUE) + if((mode_flags & COMBAT_MODE_TOGGLED) && (mode_flags & COMBAT_MODE_ACTIVE)) + return TRUE + mode_flags |= COMBAT_MODE_TOGGLED + enable_combat_mode(source, silent, FALSE, visible, HAS_TRAIT(source, TRAIT_COMBAT_MODE_LOCKED), TRUE) + if(source.client) + source.client.show_popup_menus = FALSE + if(iscarbon(source)) //I dislike this typecheck. It probably should be removed once that spoiled apple is componentized too. + var/mob/living/carbon/C = source + if(C.voremode) + C.disable_vore_mode() + return TRUE + +/// Disables intentionally being in combat mode. Please try to use the COMSIG_COMBAT_MODE_CHECK signal for feedback when possible. +/datum/component/combat_mode/proc/safe_disable_combat_mode(mob/living/source, silent = FALSE, visible = FALSE) + if(!(mode_flags & COMBAT_MODE_TOGGLED) && !(mode_flags & COMBAT_MODE_ACTIVE)) + return TRUE + mode_flags &= ~COMBAT_MODE_TOGGLED + disable_combat_mode(source, silent, FALSE, visible, !(mode_flags & COMBAT_MODE_ACTIVE), TRUE) + if(source.client) + source.client.show_popup_menus = TRUE + return TRUE + +/// Returns a field of flags that are contained in both the second arg and our bitfield variable. +/datum/component/combat_mode/proc/check_flags(mob/living/source, flags) + return mode_flags & (flags) + +/// Disables combat mode upon death. +/datum/component/combat_mode/proc/on_death(mob/living/source) + safe_disable_combat_mode(source) + +/// Disables combat mode upon logout +/datum/component/combat_mode/proc/on_logout(mob/living/source) + safe_disable_combat_mode(source) + +/// The screen button. +/obj/screen/combattoggle + name = "toggle combat mode" + icon = 'modular_citadel/icons/ui/screen_midnight.dmi' + icon_state = "combat_off" + var/mutable_appearance/flashy + var/combat_on = FALSE ///Wheter combat mode is enabled or not, so we don't have to store a reference. + +/obj/screen/combattoggle/Click() + if(hud && usr == hud.mymob) + SEND_SIGNAL(hud.mymob, COMSIG_TOGGLE_COMBAT_MODE) + +/obj/screen/combattoggle/update_icon_state() + var/mob/living/user = hud?.mymob + if(!user) + return + if(combat_on) + icon_state = "combat" + else if(HAS_TRAIT(user, TRAIT_COMBAT_MODE_LOCKED)) + icon_state = "combat_locked" + else + icon_state = "combat_off" + +/obj/screen/combattoggle/update_overlays() + . = ..() + var/mob/living/carbon/user = hud?.mymob + if(!(user?.client)) + return + + if(combat_on) + if(!flashy) + flashy = mutable_appearance('icons/mob/screen_gen.dmi', "togglefull_flash") + flashy.color = user.client.prefs.hud_toggle_color + . += flashy //TODO - beg lummox jr for the ability to force mutable appearances or images to be created rendering from their first frame of animation rather than being based entirely around the client's frame count diff --git a/code/datums/components/crafting/glassware/glassware.dm b/code/datums/components/crafting/glassware/glassware.dm index 2b57837c5d..6e1a3d47a0 100644 --- a/code/datums/components/crafting/glassware/glassware.dm +++ b/code/datums/components/crafting/glassware/glassware.dm @@ -74,7 +74,7 @@ //////////////////////Lens////////////////////////// //Six Steps // -//Sells for 1800 cr, takes 15 glass shets // +//Sells for 1600 cr, takes 15 glass shets // //Usefull for selling and later crafting // //////////////////////////////////////////////////// @@ -146,14 +146,14 @@ /obj/item/glasswork/glass_base/glass_lens_part5 name = "Unpolished glass lens" - desc = "A small unpolished glass lens. Could be polished with some silk." + desc = "A small unpolished glass lens. Could be polished with some cloth." icon = 'icons/obj/glass_ware.dmi' icon_state = "glass_optics" next_step = /obj/item/glasswork/glass_base/glass_lens_part6 /obj/item/glasswork/glass_base/glass_lens_part5/attackby(obj/item/I, mob/user, params) ..() - if(istype(I, /obj/item/stack/sheet/silk)) + if(istype(I, /obj/item/stack/sheet/cloth)) if(do_after(user,10, target = src)) new next_step(user.loc, 1) qdel(src) @@ -324,7 +324,7 @@ //////////////////////Tea Plates//////////////////// //Three Steps // -//Sells for 1200 cr, takes 5 glass shets // +//Sells for 1000 cr, takes 5 glass shets // //Usefull for selling and chemical things // //////////////////////////////////////////////////// @@ -370,20 +370,20 @@ /obj/item/glasswork/glass_base/tea_plate3 name = "Disk of glass" - desc = "A disk of glass that can be cant be used for much. Needs to be polished with some silk." + desc = "A disk of glass that can be cant be used for much. Needs to be polished with some cloth." icon_state = "glass_base_half" next_step = /obj/item/tea_plate /obj/item/glasswork/glass_base/tea_plate3/attackby(obj/item/I, mob/user, params) ..() - if(istype(I, /obj/item/stack/sheet/silk)) + if(istype(I, /obj/item/stack/sheet/cloth)) if(do_after(user,10, target = src)) new next_step(user.loc, 1) qdel(src) //////////////////////Tea Cup/////////////////////// //Four Steps // -//Sells for 1800 cr, takes 6 glass shets // +//Sells for 1600 cr, takes 6 glass shets // //Usefull for selling and chemical things // //////////////////////////////////////////////////// @@ -429,13 +429,13 @@ /obj/item/glasswork/glass_base/tea_cup3 name = "Disk of glass" - desc = "A bowl of glass that can be cant be used for much. Needs to be polished with some silk." + desc = "A bowl of glass that can be cant be used for much. Needs to be polished with some cloth." icon_state = "glass_base_half" next_step = /obj/item/glasswork/glass_base/tea_cup4 /obj/item/glasswork/glass_base/cup3/attackby(obj/item/I, mob/user, params) ..() - if(istype(I, /obj/item/stack/sheet/silk)) + if(istype(I, /obj/item/stack/sheet/cloth)) if(do_after(user,10, target = src)) new next_step(user.loc, 1) qdel(src) diff --git a/code/datums/components/crafting/glassware/lens_crafting.dm b/code/datums/components/crafting/glassware/lens_crafting.dm index 117df25a30..98fa242058 100644 --- a/code/datums/components/crafting/glassware/lens_crafting.dm +++ b/code/datums/components/crafting/glassware/lens_crafting.dm @@ -92,7 +92,7 @@ qdel(src) /obj/item/glasswork/glasses - name = "Hand Made Glasses" - desc = "Hande made glasses that have not been polished at all making them useless. Selling them could still be worth a bit of credits." + name = "Handmade Glasses" + desc = "Handmade glasses that have not been polished at all making them useless. Selling them could still be worth a few credits." icon = 'icons/obj/glass_ware.dmi' icon_state = "frames_2" \ No newline at end of file diff --git a/code/datums/components/crafting/guncrafting.dm b/code/datums/components/crafting/guncrafting.dm index 89868c2332..deab5e9b69 100644 --- a/code/datums/components/crafting/guncrafting.dm +++ b/code/datums/components/crafting/guncrafting.dm @@ -1,21 +1,52 @@ -//Gun crafting parts til they can be moved elsewhere - // PARTS // - -/obj/item/weaponcrafting/receiver - name = "modular receiver" - desc = "A prototype modular receiver and trigger assembly for a firearm." +/obj/item/weaponcrafting icon = 'icons/obj/improvised.dmi' - icon_state = "receiver" /obj/item/weaponcrafting/stock name = "rifle stock" desc = "A classic rifle stock that doubles as a grip, roughly carved out of wood." - icon = 'icons/obj/improvised.dmi' + custom_materials = list(/datum/material/wood = MINERAL_MATERIAL_AMOUNT * 6) icon_state = "riflestock" -/obj/item/weaponcrafting/silkstring - name = "silkstring" - desc = "A long piece of silk with some resemblance to cable coil." - icon = 'icons/obj/improvised.dmi' - icon_state = "silkstring" +/obj/item/weaponcrafting/string + name = "wound thread" + desc = "A long piece of thread with some resemblance to cable coil." + icon_state = "durastring" + +//////////////////////////////// +// IMPROVISED WEAPON PARTS// +//////////////////////////////// + +/obj/item/weaponcrafting/improvised_parts + name = "Debug Improvised Gun Part" + desc = "A badly coded gun part. You should report coders if you see this." + icon = 'icons/obj/guns/gun_parts.dmi' + icon_state = "palette" + +// RECEIVERS + +/obj/item/weaponcrafting/improvised_parts/rifle_receiver + name = "rifle receiver" + desc = "A crudely constructed receiver to create an improvised bolt-action breechloaded rifle." // removed some text implying that the item had more uses than it does + icon_state = "receiver_rifle" + w_class = WEIGHT_CLASS_SMALL + + +/obj/item/weaponcrafting/improvised_parts/shotgun_receiver + name = "shotgun reciever" + desc = "An improvised receiver to create a break-action breechloaded shotgun." // removed some text implying that the item had more uses than it does + icon_state = "receiver_shotgun" + w_class = WEIGHT_CLASS_SMALL + +// MISC + +/obj/item/weaponcrafting/improvised_parts/trigger_assembly + name = "firearm trigger assembly" + desc = "A modular trigger assembly with a firing pin, this can be used to make a whole bunch of improvised firearss." + icon_state = "trigger_assembly" + w_class = WEIGHT_CLASS_SMALL + +/obj/item/weaponcrafting/improvised_parts/wooden_body + name = "wooden firearm body" + desc = "A crudely fashioned wooden body to help keep higher calibre improvised weapons from blowing themselves apart." + icon_state = "wooden_body" diff --git a/code/datums/components/crafting/recipes/recipes_clothing.dm b/code/datums/components/crafting/recipes/recipes_clothing.dm index 02dd3f2c05..7a7379c834 100644 --- a/code/datums/components/crafting/recipes/recipes_clothing.dm +++ b/code/datums/components/crafting/recipes/recipes_clothing.dm @@ -39,14 +39,14 @@ time = 10 reqs = list(/obj/item/paper = 20) category = CAT_CLOTHING - + /datum/crafting_recipe/armwraps name = "Armwraps" result = /obj/item/clothing/gloves/fingerless/pugilist time = 60 tools = list(TOOL_WIRECUTTER) reqs = list(/obj/item/stack/sheet/cloth = 4, - /obj/item/stack/sheet/silk = 2, + /obj/item/stack/sheet/durathread = 2, /obj/item/stack/sheet/leather = 2) category = CAT_CLOTHING diff --git a/code/datums/components/crafting/recipes/recipes_misc.dm b/code/datums/components/crafting/recipes/recipes_misc.dm index 8ee893b2e5..86d1e77661 100644 --- a/code/datums/components/crafting/recipes/recipes_misc.dm +++ b/code/datums/components/crafting/recipes/recipes_misc.dm @@ -92,7 +92,7 @@ time = 150 subcategory = CAT_MISCELLANEOUS category = CAT_MISC - always_availible = FALSE // Disabled til learned + always_availible = FALSE // Disabled until learned /datum/crafting_recipe/bloodsucker/candelabrum @@ -124,9 +124,9 @@ category = CAT_MISC subcategory = CAT_TOOL -/datum/crafting_recipe/bruise_pack - name = "Bruise Pack" - result = /obj/item/stack/medical/bruise_pack/one +/datum/crafting_recipe/brute_pack + name = "Suture Pack" + result = /obj/item/stack/medical/suture/one time = 1 reqs = list(/obj/item/stack/medical/gauze = 1, /datum/reagent/medicine/styptic_powder = 10) @@ -134,8 +134,8 @@ subcategory = CAT_TOOL /datum/crafting_recipe/burn_pack - name = "Burn Ointment" - result = /obj/item/stack/medical/ointment/one + name = "Regenerative Mesh" + result = /obj/item/stack/medical/mesh/one time = 1 reqs = list(/obj/item/stack/medical/gauze = 1, /datum/reagent/medicine/silver_sulfadiazine = 10) @@ -157,7 +157,7 @@ /datum/crafting_recipe/goldenbox name = "Gold Plated Toolbox" result = /obj/item/storage/toolbox/gold_fake - tools = list(/obj/item/stock_parts/cell/upgraded/plus) + tools = list(/obj/item/stock_parts/cell/high) reqs = list(/obj/item/stack/sheet/cardboard = 1, //so we dont null items in crafting /obj/item/stack/cable_coil = 10, /obj/item/stack/sheet/mineral/gold = 1, @@ -184,7 +184,7 @@ /datum/crafting_recipe/bronze_driver name = "Bronze Plated Screwdriver" - tools = list(/obj/item/stock_parts/cell/upgraded/plus) + tools = list(/obj/item/stock_parts/cell/high) result = /obj/item/screwdriver/bronze reqs = list(/obj/item/screwdriver = 1, /obj/item/stack/cable_coil = 10, @@ -196,7 +196,7 @@ /datum/crafting_recipe/bronze_welder name = "Bronze Plated Welding Tool" - tools = list(/obj/item/stock_parts/cell/upgraded/plus) + tools = list(/obj/item/stock_parts/cell/high) result = /obj/item/weldingtool/bronze reqs = list(/obj/item/weldingtool = 1, /obj/item/stack/cable_coil = 10, @@ -208,7 +208,7 @@ /datum/crafting_recipe/bronze_wirecutters name = "Bronze Plated Wirecutters" - tools = list(/obj/item/stock_parts/cell/upgraded/plus) + tools = list(/obj/item/stock_parts/cell/high) result = /obj/item/wirecutters/bronze reqs = list(/obj/item/wirecutters = 1, /obj/item/stack/cable_coil = 10, @@ -220,7 +220,7 @@ /datum/crafting_recipe/bronze_crowbar name = "Bronze Plated Crowbar" - tools = list(/obj/item/stock_parts/cell/upgraded/plus) + tools = list(/obj/item/stock_parts/cell/high) result = /obj/item/crowbar/bronze reqs = list(/obj/item/crowbar = 1, /obj/item/stack/cable_coil = 10, @@ -232,7 +232,7 @@ /datum/crafting_recipe/bronze_wrench name = "Bronze Plated Wrench" - tools = list(/obj/item/stock_parts/cell/upgraded/plus) + tools = list(/obj/item/stock_parts/cell/high) result = /obj/item/wrench/bronze reqs = list(/obj/item/wrench = 1, /obj/item/stack/cable_coil = 10, @@ -244,7 +244,7 @@ /datum/crafting_recipe/rcl name = "Makeshift Rapid Cable Layer" - result = /obj/item/twohanded/rcl/ghetto + result = /obj/item/rcl/ghetto time = 40 tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WRENCH) reqs = list(/obj/item/stack/sheet/metal = 15) diff --git a/code/datums/components/crafting/recipes/recipes_primal.dm b/code/datums/components/crafting/recipes/recipes_primal.dm index ae611e5855..aaae94df1d 100644 --- a/code/datums/components/crafting/recipes/recipes_primal.dm +++ b/code/datums/components/crafting/recipes/recipes_primal.dm @@ -50,7 +50,7 @@ /datum/crafting_recipe/bonespear name = "Bone Spear" - result = /obj/item/twohanded/bonespear + result = /obj/item/spear/bonespear time = 30 reqs = list(/obj/item/stack/sheet/bone = 4, /obj/item/stack/sheet/sinew = 1) @@ -58,7 +58,7 @@ /datum/crafting_recipe/boneaxe name = "Bone Axe" - result = /obj/item/twohanded/fireaxe/boneaxe + result = /obj/item/fireaxe/boneaxe time = 50 reqs = list(/obj/item/stack/sheet/bone = 6, /obj/item/stack/sheet/sinew = 3) @@ -74,20 +74,20 @@ /datum/crafting_recipe/headpike name = "Spike Head (Glass Spear)" time = 65 - reqs = list(/obj/item/twohanded/spear = 1, + reqs = list(/obj/item/spear = 1, /obj/item/bodypart/head = 1) parts = list(/obj/item/bodypart/head = 1, - /obj/item/twohanded/spear = 1) + /obj/item/spear = 1) result = /obj/structure/headpike category = CAT_PRIMAL /datum/crafting_recipe/headpikebone name = "Spike Head (Bone Spear)" time = 65 - reqs = list(/obj/item/twohanded/bonespear = 1, + reqs = list(/obj/item/spear/bonespear = 1, /obj/item/bodypart/head = 1) parts = list(/obj/item/bodypart/head = 1, - /obj/item/twohanded/bonespear = 1) + /obj/item/spear/bonespear = 1) result = /obj/structure/headpike/bone category = CAT_PRIMAL @@ -103,7 +103,7 @@ /datum/crafting_recipe/bone_bow name = "Bone Bow" result = /obj/item/gun/ballistic/bow/ashen - time = 200 + time = 120 // 80+120 = 200 always_availible = FALSE reqs = list(/obj/item/stack/sheet/bone = 8, /obj/item/stack/sheet/sinew = 4) @@ -112,8 +112,45 @@ /datum/crafting_recipe/bow_tablet name = "Sandstone Bow Making Manual" result = /obj/item/book/granter/crafting_recipe/bone_bow - time = 600 //Scribing + time = 200 //Scribing // don't care always_availible = FALSE reqs = list(/obj/item/stack/rods = 1, /obj/item/stack/sheet/mineral/sandstone = 4) - category = CAT_PRIMAL \ No newline at end of file + category = CAT_PRIMAL + +/datum/crafting_recipe/rib + name = "Collosal Rib" + always_availible = FALSE + reqs = list( + /obj/item/stack/sheet/bone = 10, + /datum/reagent/oil = 5) + result = /obj/structure/statue/bone/rib + subcategory = CAT_PRIMAL + +/datum/crafting_recipe/skull + name = "Skull Carving" + always_availible = FALSE + reqs = list( + /obj/item/stack/sheet/bone = 6, + /datum/reagent/oil = 5) + result = /obj/structure/statue/bone/skull + category = CAT_PRIMAL + +/datum/crafting_recipe/halfskull + name = "Cracked Skull Carving" + always_availible = FALSE + reqs = list( + /obj/item/stack/sheet/bone = 3, + /datum/reagent/oil = 5) + result = /obj/structure/statue/bone/skull/half + category = CAT_PRIMAL + +/datum/crafting_recipe/boneshovel + name = "Serrated Bone Shovel" + always_availible = FALSE + reqs = list( + /obj/item/stack/sheet/bone = 4, + /datum/reagent/oil = 5, + /obj/item/shovel/spade = 1) + result = /obj/item/shovel/serrated + category = CAT_PRIMAL diff --git a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm index b037f02f80..ec8ea86d24 100644 --- a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm +++ b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm @@ -6,7 +6,7 @@ tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WIRECUTTER) time = 50 category = CAT_WEAPONRY - subcategory = CAT_WEAPON + subcategory = CAT_OTHER /datum/crafting_recipe/pin_removal/check_requirements(mob/user, list/collected_requirements) var/obj/item/gun/G = collected_requirements[/obj/item/gun][1] @@ -22,7 +22,7 @@ /obj/item/shield/riot = 1) time = 40 category = CAT_WEAPONRY - subcategory = CAT_WEAPON + subcategory = CAT_MELEE /datum/crafting_recipe/strobeshield/New() ..() @@ -38,18 +38,18 @@ tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WIRECUTTER) time = 100 category = CAT_WEAPONRY - subcategory = CAT_WEAPON + subcategory = CAT_MELEE /datum/crafting_recipe/spear name = "Spear" - result = /obj/item/twohanded/spear + result = /obj/item/spear reqs = list(/obj/item/restraints/handcuffs/cable = 1, /obj/item/shard = 1, /obj/item/stack/rods = 1) parts = list(/obj/item/shard = 1) time = 40 category = CAT_WEAPONRY - subcategory = CAT_WEAPON + subcategory = CAT_MELEE /datum/crafting_recipe/stunprod name = "Stunprod" @@ -59,7 +59,7 @@ /obj/item/assembly/igniter = 1) time = 40 category = CAT_WEAPONRY - subcategory = CAT_WEAPON + subcategory = CAT_MELEE /datum/crafting_recipe/teleprod name = "Teleprod" @@ -70,7 +70,7 @@ /obj/item/stack/ore/bluespace_crystal = 1) time = 40 category = CAT_WEAPONRY - subcategory = CAT_WEAPON + subcategory = CAT_MELEE /datum/crafting_recipe/bola name = "Bola" @@ -88,7 +88,7 @@ /obj/item/stack/sheet/metal = 1) time = 40 category = CAT_WEAPONRY - subcategory = CAT_WEAPON + subcategory = CAT_MELEE /datum/crafting_recipe/tailwhip name = "Liz O' Nine Tails" @@ -97,7 +97,7 @@ /obj/item/stack/cable_coil = 1) time = 40 category = CAT_WEAPONRY - subcategory = CAT_WEAPON + subcategory = CAT_MELEE /datum/crafting_recipe/catwhip name = "Cat O' Nine Tails" @@ -106,18 +106,18 @@ /obj/item/stack/cable_coil = 1) time = 40 category = CAT_WEAPONRY - subcategory = CAT_WEAPON + subcategory = CAT_MELEE /datum/crafting_recipe/chainsaw name = "Chainsaw" - result = /obj/item/twohanded/required/chainsaw + result = /obj/item/chainsaw reqs = list(/obj/item/circular_saw = 1, /obj/item/stack/cable_coil = 3, /obj/item/stack/sheet/plasteel = 5) tools = list(TOOL_WELDER) time = 50 category = CAT_WEAPONRY - subcategory = CAT_WEAPON + subcategory = CAT_MELEE ////////////////// ///BOMB CRAFTING// @@ -134,20 +134,20 @@ parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2) time = 30 category = CAT_WEAPONRY - subcategory = CAT_WEAPON + subcategory = CAT_OTHER /datum/crafting_recipe/chemical_payload2 name = "Chemical Payload (Gibtonite)" result = /obj/item/bombcore/chemical reqs = list( /obj/item/stock_parts/matter_bin = 1, - /obj/item/twohanded/required/gibtonite = 1, + /obj/item/gibtonite = 1, /obj/item/grenade/chem_grenade = 2 ) parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2) time = 50 category = CAT_WEAPONRY - subcategory = CAT_WEAPON + subcategory = CAT_OTHER /datum/crafting_recipe/molotov name = "Molotov" @@ -169,18 +169,18 @@ parts = list(/obj/item/reagent_containers/food/drinks/soda_cans = 1) time = 15 category = CAT_WEAPONRY - subcategory = CAT_WEAPON + subcategory = CAT_OTHER /datum/crafting_recipe/lance name = "Explosive Lance (Grenade)" - result = /obj/item/twohanded/spear - reqs = list(/obj/item/twohanded/spear = 1, + result = /obj/item/spear + reqs = list(/obj/item/spear = 1, /obj/item/grenade = 1) - parts = list(/obj/item/twohanded/spear = 1, + parts = list(/obj/item/spear = 1, /obj/item/grenade = 1) time = 15 category = CAT_WEAPONRY - subcategory = CAT_WEAPON + subcategory = CAT_MELEE ////////////////// ///GUNS CRAFTING// @@ -192,8 +192,8 @@ result = /obj/item/gun/ballistic/bow/pipe reqs = list(/obj/item/pipe = 5, /obj/item/stack/sheet/plastic = 15, - /obj/item/weaponcrafting/silkstring = 5) - time = 450 + /obj/item/weaponcrafting/string = 5) + time = 150 category = CAT_WEAPONRY subcategory = CAT_WEAPON @@ -248,11 +248,13 @@ category = CAT_WEAPONRY subcategory = CAT_WEAPON -/datum/crafting_recipe/ishotgun +/datum/crafting_recipe/ishotgun // smaller and more versatile gun requires some better materials name = "Improvised Shotgun" result = /obj/item/gun/ballistic/revolver/doublebarrel/improvised - reqs = list(/obj/item/weaponcrafting/receiver = 1, - /obj/item/pipe = 1, + reqs = list(/obj/item/pipe = 2, // putting a large amount of meaningless timegates by forcing people to turn base resources into upgraded resources kinda sucks + /obj/item/weaponcrafting/improvised_parts/shotgun_receiver = 1, + /obj/item/weaponcrafting/improvised_parts/trigger_assembly = 1, + /obj/item/weaponcrafting/improvised_parts/wooden_body = 1, /obj/item/weaponcrafting/stock = 1, /obj/item/stack/packageWrap = 5) tools = list(TOOL_SCREWDRIVER) @@ -260,11 +262,13 @@ category = CAT_WEAPONRY subcategory = CAT_WEAPON -/datum/crafting_recipe/irifle - name = "Improvised Rifle(7.62mm)" +/datum/crafting_recipe/irifle // larger and less versatile gun, but a bit easier to make + name = "Improvised Rifle (7.62mm)" result = /obj/item/gun/ballistic/shotgun/boltaction/improvised - reqs = list(/obj/item/weaponcrafting/receiver = 1, - /obj/item/pipe = 2, + reqs = list(/obj/item/pipe = 2, // above + /obj/item/weaponcrafting/improvised_parts/rifle_receiver = 1, + /obj/item/weaponcrafting/improvised_parts/trigger_assembly = 1, + /obj/item/weaponcrafting/improvised_parts/wooden_body = 1, /obj/item/weaponcrafting/stock = 1, /obj/item/stack/packageWrap = 5) tools = list(TOOL_SCREWDRIVER) @@ -279,9 +283,9 @@ /datum/crafting_recipe/arrow name = "Arrow" result = /obj/item/ammo_casing/caseless/arrow/wood - time = 30 + time = 5 // these only do 15 damage reqs = list(/obj/item/stack/sheet/mineral/wood = 1, - /obj/item/stack/sheet/silk = 1, + /obj/item/stack/sheet/cloth = 1, /obj/item/stack/rods = 1) // 1 metal sheet = 2 rods = 2 arrows category = CAT_WEAPONRY subcategory = CAT_AMMO @@ -289,7 +293,7 @@ /datum/crafting_recipe/bone_arrow name = "Bone Arrow" result = /obj/item/ammo_casing/caseless/arrow/bone - time = 30 + time = 5 always_availible = FALSE reqs = list(/obj/item/stack/sheet/bone = 1, /obj/item/stack/sheet/sinew = 1, @@ -301,7 +305,7 @@ name = "Ashen Arrow" result = /obj/item/ammo_casing/caseless/arrow/ash tools = list(TOOL_WELDER) - time = 30 + time = 10 // 1.5 seconds minimum per actually worthwhile arrow excluding interface lag always_availible = FALSE reqs = list(/obj/item/ammo_casing/caseless/arrow/wood = 1) category = CAT_WEAPONRY @@ -394,3 +398,40 @@ time = 5 category = CAT_WEAPONRY subcategory = CAT_AMMO + +//////////////////// +// PARTS CRAFTING // +//////////////////// + +// RECEIVERS + +/datum/crafting_recipe/rifle_receiver + name = "Improvised Rifle Receiver" + result = /obj/item/weaponcrafting/improvised_parts/rifle_receiver + reqs = list(/obj/item/stack/sheet/metal = 15) // you can carry multiple shotguns + tools = list(TOOL_SCREWDRIVER, TOOL_WELDER) + time = 25 + category = CAT_WEAPONRY + subcategory = CAT_PARTS + +/datum/crafting_recipe/shotgun_receiver + name = "Improvised Shotgun Receiver" + result = /obj/item/weaponcrafting/improvised_parts/shotgun_receiver + reqs = list(/obj/item/stack/sheet/metal = 15, + /obj/item/stack/sheet/plasteel = 1) // requires access or hacking since shotgun is better + tools = list(TOOL_SCREWDRIVER, TOOL_WELDER) + time = 25 + category = CAT_WEAPONRY + subcategory = CAT_PARTS + +// MISC + +/datum/crafting_recipe/trigger_assembly + name = "Trigger Assembly" + result = /obj/item/weaponcrafting/improvised_parts/trigger_assembly + reqs = list(/obj/item/stack/sheet/metal = 3, + /obj/item/assembly/igniter = 1) + tools = list(TOOL_SCREWDRIVER, TOOL_WELDER) + time = 25 + category = CAT_WEAPONRY + subcategory = CAT_PARTS diff --git a/code/datums/components/decal.dm b/code/datums/components/decal.dm deleted file mode 100644 index 60317797a7..0000000000 --- a/code/datums/components/decal.dm +++ /dev/null @@ -1,77 +0,0 @@ -/datum/component/decal - dupe_mode = COMPONENT_DUPE_ALLOWED - can_transfer = TRUE - var/cleanable - var/description - var/mutable_appearance/pic - - var/first_dir // This only stores the dir arg from init - -/datum/component/decal/Initialize(_icon, _icon_state, _dir, _cleanable=CLEAN_GOD, _color, _layer=TURF_LAYER, _description, _alpha=255) - if(!isatom(parent) || !generate_appearance(_icon, _icon_state, _dir, _layer, _color, _alpha)) - return COMPONENT_INCOMPATIBLE - first_dir = _dir - description = _description - cleanable = _cleanable - - apply() - -/datum/component/decal/RegisterWithParent() - . = ..() - if(first_dir) - RegisterSignal(parent, COMSIG_ATOM_DIR_CHANGE, .proc/rotate_react) - if(cleanable) - RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean_react) - if(description) - RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine) - -/datum/component/decal/UnregisterFromParent() - . = ..() - UnregisterSignal(parent, list(COMSIG_ATOM_DIR_CHANGE, COMSIG_COMPONENT_CLEAN_ACT, COMSIG_PARENT_EXAMINE)) - -/datum/component/decal/Destroy() - remove() - return ..() - -/datum/component/decal/PreTransfer() - remove() - -/datum/component/decal/PostTransfer() - remove() - apply() - -/datum/component/decal/proc/generate_appearance(_icon, _icon_state, _dir, _layer, _color, _alpha) - if(!_icon || !_icon_state) - return FALSE - // It has to be made from an image or dir breaks because of a byond bug - var/temp_image = image(_icon, null, _icon_state, _layer, _dir) - pic = new(temp_image) - pic.color = _color - pic.alpha = _alpha - return TRUE - -/datum/component/decal/proc/apply(atom/thing) - var/atom/master = thing || parent - master.add_overlay(pic, TRUE) - if(isitem(master)) - addtimer(CALLBACK(master, /obj/item/.proc/update_slot_icon), 0, TIMER_UNIQUE) - -/datum/component/decal/proc/remove(atom/thing) - var/atom/master = thing || parent - master.cut_overlay(pic, TRUE) - if(isitem(master)) - addtimer(CALLBACK(master, /obj/item/.proc/update_slot_icon), 0, TIMER_UNIQUE) - -/datum/component/decal/proc/rotate_react(datum/source, old_dir, new_dir) - if(old_dir == new_dir) - return - remove() - pic.dir = turn(pic.dir, dir2angle(old_dir) - dir2angle(new_dir)) - apply() - -/datum/component/decal/proc/clean_react(datum/source, strength) - if(strength >= cleanable) - qdel(src) - -/datum/component/decal/proc/examine(datum/source, mob/user, list/examine_list) - examine_list += description \ No newline at end of file diff --git a/code/datums/components/decals/blood.dm b/code/datums/components/decals/blood.dm deleted file mode 100644 index c8be6251b5..0000000000 --- a/code/datums/components/decals/blood.dm +++ /dev/null @@ -1,13 +0,0 @@ -/datum/component/decal/blood - dupe_mode = COMPONENT_DUPE_UNIQUE - -/datum/component/decal/blood/Initialize(_icon, _icon_state, _dir, _cleanable=CLEAN_STRENGTH_BLOOD, _color, _layer=ABOVE_OBJ_LAYER) - if(!isitem(parent)) - return COMPONENT_INCOMPATIBLE - . = ..() - RegisterSignal(parent, COMSIG_ATOM_GET_EXAMINE_NAME, .proc/get_examine_name) - -/datum/component/decal/blood/proc/get_examine_name(datum/source, mob/user, list/override) - var/atom/A = parent - - return COMPONENT_EXNAME_CHANGED diff --git a/code/datums/components/edible.dm b/code/datums/components/edible.dm new file mode 100644 index 0000000000..47e60a1ee1 --- /dev/null +++ b/code/datums/components/edible.dm @@ -0,0 +1,244 @@ +/*! +This component makes it possible to make things edible. What this means is that you can take a bite or force someone to take a bite (in the case of items). +These items take a specific time to eat, and can do most of the things our original food items could. +Behavior that's still missing from this component that original food items had that should either be put into seperate components or somewhere else: + Components: + Drying component (jerky etc) + Customizable component (custom pizzas etc) + Processable component (Slicing and cooking behavior essentialy, making it go from item A to B when conditions are met.) + Dunkable component (Dunking things into reagent containers to absorb a specific amount of reagents) + Misc: + Something for cakes (You can store things inside) +*/ +/datum/component/edible + ///Amount of reagents taken per bite + var/bite_consumption = 2 + ///Amount of bites taken so far + var/bitecount = 0 + ///Flags for food + var/food_flags = NONE + ///Bitfield of the types of this food + var/foodtypes = NONE + ///Amount of seconds it takes to eat this food + var/eat_time = 30 + ///Defines how much it lowers someones satiety (Need to eat, essentialy) + var/junkiness = 0 + ///Message to send when eating + var/list/eatverbs + ///Callback to be ran for when you take a bite of something + var/datum/callback/after_eat + ///Last time we checked for food likes + var/last_check_time + +/datum/component/edible/Initialize(list/initial_reagents, food_flags = NONE, foodtypes = NONE, volume = 50, eat_time = 30, list/tastes, list/eatverbs = list("bite","chew","nibble","gnaw","gobble","chomp"), bite_consumption = 2, datum/callback/after_eat) + if(!isatom(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine) + RegisterSignal(parent, COMSIG_ATOM_ATTACK_ANIMAL, .proc/UseByAnimal) + if(isitem(parent)) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/UseFromHand) + else if(isturf(parent)) + RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, .proc/TryToEatTurf) + + src.bite_consumption = bite_consumption + src.food_flags = food_flags + src.foodtypes = foodtypes + src.eat_time = eat_time + src.eatverbs = eatverbs + src.junkiness = junkiness + src.after_eat = after_eat + + var/atom/owner = parent + + owner.create_reagents(volume, INJECTABLE) + + if(initial_reagents) + for(var/rid in initial_reagents) + var/amount = initial_reagents[rid] + if(tastes && tastes.len && (rid == /datum/reagent/consumable/nutriment || rid == /datum/reagent/consumable/nutriment/vitamin)) + owner.reagents.add_reagent(rid, amount, tastes.Copy()) + else + owner.reagents.add_reagent(rid, amount) + +/datum/component/edible/proc/examine(datum/source, mob/user, list/examine_list) + if(!(food_flags & FOOD_IN_CONTAINER)) + switch (bitecount) + if (0) + return + if(1) + examine_list += "[parent] was bitten by someone!" + if(2,3) + examine_list += "[parent] was bitten [bitecount] times!" + else + examine_list += "[parent] was bitten multiple times!" + +/datum/component/edible/proc/UseFromHand(obj/item/source, mob/living/M, mob/living/user) + return TryToEat(M, user) + +/datum/component/edible/proc/TryToEatTurf(datum/source, mob/user) + return TryToEat(user, user) + +///All the checks for the act of eating itself and +/datum/component/edible/proc/TryToEat(mob/living/eater, mob/living/feeder) + + set waitfor = FALSE + + var/atom/owner = parent + + if(feeder.a_intent == INTENT_HARM) + return + if(!owner.reagents.total_volume)//Shouldn't be needed but it checks to see if it has anything left in it. + to_chat(feeder, "None of [owner] left, oh no!") + if(isturf(parent)) + var/turf/T = parent + T.ScrapeAway(1, CHANGETURF_INHERIT_AIR) + else + qdel(parent) + return + if(!CanConsume(eater, feeder)) + return + var/fullness = eater.nutrition + 10 //The theoretical fullness of the person eating if they were to eat this + for(var/datum/reagent/consumable/C in eater.reagents.reagent_list) //we add the nutrition value of what we're currently digesting + fullness += C.nutriment_factor * C.volume / C.metabolization_rate + + . = COMPONENT_ITEM_NO_ATTACK //Point of no return I suppose + + if(eater == feeder)//If you're eating it yourself. + if(!do_mob(feeder, eater, eat_time)) //Gotta pass the minimal eat time + return + var/eatverb = pick(eatverbs) + if(junkiness && eater.satiety < -150 && eater.nutrition > NUTRITION_LEVEL_STARVING + 50 && !HAS_TRAIT(eater, TRAIT_VORACIOUS)) + to_chat(eater, "You don't feel like eating any more junk food at the moment!") + return + else if(fullness <= 50) + eater.visible_message("[eater] hungrily [eatverb]s \the [parent], gobbling it down!", "You hungrily [eatverb] \the [parent], gobbling it down!") + else if(fullness > 50 && fullness < 150) + eater.visible_message("[eater] hungrily [eatverb]s \the [parent].", "You hungrily [eatverb] \the [parent].") + else if(fullness > 150 && fullness < 500) + eater.visible_message("[eater] [eatverb]s \the [parent].", "You [eatverb] \the [parent].") + else if(fullness > 500 && fullness < 600) + eater.visible_message("[eater] unwillingly [eatverb]s a bit of \the [parent].", "You unwillingly [eatverb] a bit of \the [parent].") + else if(fullness > (600 * (1 + eater.overeatduration / 2000))) // The more you eat - the more you can eat + eater.visible_message("[eater] cannot force any more of \the [parent] to go down [eater.p_their()] throat!", "You cannot force any more of \the [parent] to go down your throat!") + return + else //If you're feeding it to someone else. + if(isbrain(eater)) + to_chat(feeder, "[eater] doesn't seem to have a mouth!") + return + if(fullness <= (600 * (1 + eater.overeatduration / 1000))) + eater.visible_message("[feeder] attempts to feed [eater] [parent].", \ + "[feeder] attempts to feed you [parent].") + else + eater.visible_message("[feeder] cannot force any more of [parent] down [eater]'s throat!", \ + "[feeder] cannot force any more of [parent] down your throat!") + return + if(!do_mob(feeder, eater)) //Wait 3 seconds before you can feed + return + + log_combat(feeder, eater, "fed", owner.reagents.log_list()) + eater.visible_message("[feeder] forces [eater] to eat [parent]!", \ + "[feeder] forces you to eat [parent]!") + + TakeBite(eater, feeder) + +///This function lets the eater take a bite and transfers the reagents to the eater. +/datum/component/edible/proc/TakeBite(mob/living/eater, mob/living/feeder) + + var/atom/owner = parent + + if(!owner?.reagents) + return FALSE + if(eater.satiety > -200) + eater.satiety -= junkiness + playsound(eater.loc,'sound/items/eatfood.ogg', rand(10,50), TRUE) + if(owner.reagents.total_volume) + SEND_SIGNAL(parent, COMSIG_FOOD_EATEN, eater, feeder) + var/fraction = min(bite_consumption / owner.reagents.total_volume, 1) + owner.reagents.reaction(eater, INGEST, fraction) + owner.reagents.trans_to(eater, bite_consumption) + bitecount++ + On_Consume(eater) + checkLiked(fraction, eater) + + //Invoke our after eat callback if it is valid + if(after_eat) + after_eat.Invoke(eater, feeder) + + return TRUE + +///Checks whether or not the eater can actually consume the food +/datum/component/edible/proc/CanConsume(mob/living/eater, mob/living/feeder) + if(!iscarbon(eater)) + return FALSE + var/mob/living/carbon/C = eater + var/covered = "" + if(C.is_mouth_covered(head_only = 1)) + covered = "headgear" + else if(C.is_mouth_covered(mask_only = 1)) + covered = "mask" + if(covered) + var/who = (isnull(feeder) || eater == feeder) ? "your" : "[eater.p_their()]" + to_chat(feeder, "You have to remove [who] [covered] first!") + return FALSE + return TRUE + +///Check foodtypes to see if we should send a moodlet +/datum/component/edible/proc/checkLiked(var/fraction, mob/M) + if(last_check_time + 50 > world.time) + return FALSE + if(!ishuman(M)) + return FALSE + var/mob/living/carbon/human/H = M + if(HAS_TRAIT(H, TRAIT_AGEUSIA) && foodtypes & H.dna.species.toxic_food) + to_chat(H, "You don't feel so good...") + H.adjust_disgust(25 + 30 * fraction) + else + if(foodtypes & H.dna.species.toxic_food) + to_chat(H,"What the hell was that thing?!") + H.adjust_disgust(25 + 30 * fraction) + SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "toxic_food", /datum/mood_event/disgusting_food) + else if(foodtypes & H.dna.species.disliked_food) + to_chat(H,"That didn't taste very good...") + H.adjust_disgust(11 + 15 * fraction) + SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "gross_food", /datum/mood_event/gross_food) + else if(foodtypes & H.dna.species.liked_food) + to_chat(H,"I love this taste!") + H.adjust_disgust(-5 + -2.5 * fraction) + SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "fav_food", /datum/mood_event/favorite_food) + if((foodtypes & BREAKFAST) && world.time - SSticker.round_start_time < STOP_SERVING_BREAKFAST) + SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "breakfast", /datum/mood_event/breakfast) + last_check_time = world.time + +///Delete the item when it is fully eaten +/datum/component/edible/proc/On_Consume(mob/living/eater) + + var/atom/owner = parent + + if(!eater) + return + if(!owner.reagents.total_volume) + if(isturf(parent)) + var/turf/T = parent + T.ScrapeAway(1, CHANGETURF_INHERIT_AIR) + else + qdel(parent) + +///Ability to feed food to puppers +/datum/component/edible/proc/UseByAnimal(datum/source, mob/user) + + var/atom/owner = parent + + if(!isdog(user)) + return + var/mob/living/L = user + if(bitecount == 0 || prob(50)) + L.emote("me", 1, "nibbles away at \the [parent]") + bitecount++ + . = COMPONENT_ITEM_NO_ATTACK + L.taste(owner.reagents) // why should carbons get all the fun? + if(bitecount >= 5) + var/sattisfaction_text = pick("burps from enjoyment", "yaps for more", "woofs twice", "looks at the area where \the [parent] was") + if(sattisfaction_text) + L.emote("me", 1, "[sattisfaction_text]") + qdel(parent) diff --git a/code/datums/components/embedded.dm b/code/datums/components/embedded.dm new file mode 100644 index 0000000000..137a1bb864 --- /dev/null +++ b/code/datums/components/embedded.dm @@ -0,0 +1,363 @@ +/* + This component is responsible for handling individual instances of embedded objects. The embeddable element is what allows an item to be embeddable and stores its embedding stats, + and when it impacts and meets the requirements to stick into something, it instantiates an embedded component. Once the item falls out, the component is destroyed, while the + element survives to embed another day. + + There are 2 different things that can be embedded presently: carbons, and closed turfs (see: walls) + + - Carbon embedding has all the classical embedding behavior, and tracks more events and signals. The main behaviors and hooks to look for are: + -- Every process tick, there is a chance to randomly proc pain, controlled by pain_chance. There may also be a chance for the object to fall out randomly, per fall_chance + -- Every time the mob moves, there is a chance to proc jostling pain, controlled by jostle_chance (and only 50% as likely if the mob is walking or crawling) + -- Various signals hooking into carbon topic() and the embed removal surgery in order to handle removals. + + - Turf embedding is much simpler. All we do here is draw an overlay of the item's inhand on the turf, hide the item, and create an HTML link in the turf's inspect + that allows you to rip the item out. There's nothing dynamic about this, so far less checks. + + + In addition, there are 2 cases of embedding: embedding, and sticking + + - Embedding involves harmful and dangerous embeds, whether they cause brute damage, stamina damage, or a mix. This is the default behavior for embeddings, for when something is "pointy" + + - Sticking occurs when an item should not cause any harm while embedding (imagine throwing a sticky ball of tape at someone, rather than a shuriken). An item is considered "sticky" + when it has 0 for both pain multiplier and jostle pain multiplier. It's a bit arbitrary, but fairly straightforward. + + Stickables differ from embeds in the following ways: + -- Text descriptors use phrasing like "X is stuck to Y" rather than "X is embedded in Y" + -- There is no slicing sound on impact + -- All damage checks and bloodloss are skipped for carbons + -- Pointy objects create sparks when embedding into a turf + +*/ + + +/datum/component/embedded + dupe_mode = COMPONENT_DUPE_ALLOWED + var/obj/item/bodypart/limb + var/obj/item/weapon + + // all of this stuff is explained in _DEFINES/combat.dm + var/embed_chance // not like we really need it once we're already stuck in but hey + var/fall_chance + var/pain_chance + var/pain_mult + var/impact_pain_mult + var/remove_pain_mult + var/rip_time + var/ignore_throwspeed_threshold + var/jostle_chance + var/jostle_pain_mult + var/pain_stam_pct + var/embed_chance_turf_mod + + ///if both our pain multiplier and jostle pain multiplier are 0, we're harmless and can omit most of the damage related stuff + var/harmful + var/mutable_appearance/overlay + +/datum/component/embedded/Initialize(obj/item/I, + datum/thrownthing/throwingdatum, + obj/item/bodypart/part, + embed_chance = EMBED_CHANCE, + fall_chance = EMBEDDED_ITEM_FALLOUT, + pain_chance = EMBEDDED_PAIN_CHANCE, + pain_mult = EMBEDDED_PAIN_MULTIPLIER, + remove_pain_mult = EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER, + impact_pain_mult = EMBEDDED_IMPACT_PAIN_MULTIPLIER, + rip_time = EMBEDDED_UNSAFE_REMOVAL_TIME, + ignore_throwspeed_threshold = FALSE, + jostle_chance = EMBEDDED_JOSTLE_CHANCE, + jostle_pain_mult = EMBEDDED_JOSTLE_PAIN_MULTIPLIER, + pain_stam_pct = EMBEDDED_PAIN_STAM_PCT, + embed_chance_turf_mod = EMBED_CHANCE_TURF_MOD) + + if((!iscarbon(parent) && !isclosedturf(parent)) || !isitem(I)) + return COMPONENT_INCOMPATIBLE + + if(part) + limb = part + src.embed_chance = embed_chance + src.fall_chance = fall_chance + src.pain_chance = pain_chance + src.pain_mult = pain_mult + src.remove_pain_mult = remove_pain_mult + src.rip_time = rip_time + src.impact_pain_mult = impact_pain_mult + src.ignore_throwspeed_threshold = ignore_throwspeed_threshold + src.jostle_chance = jostle_chance + src.jostle_pain_mult = jostle_pain_mult + src.pain_stam_pct = pain_stam_pct + src.embed_chance_turf_mod = embed_chance_turf_mod + + src.weapon = I + + if(!weapon.isEmbedHarmless()) + harmful = TRUE + + weapon.embedded(parent) + + if(iscarbon(parent)) + initCarbon() + else if(isclosedturf(parent)) + initTurf(throwingdatum) + +/datum/component/embedded/RegisterWithParent() + if(iscarbon(parent)) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/jostleCheck) + RegisterSignal(parent, COMSIG_CARBON_EMBED_RIP, .proc/ripOutCarbon) + RegisterSignal(parent, COMSIG_CARBON_EMBED_REMOVAL, .proc/safeRemoveCarbon) + else if(isclosedturf(parent)) + RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examineTurf) + RegisterSignal(parent, COMSIG_PARENT_QDELETING, .proc/itemMoved) + +/datum/component/embedded/UnregisterFromParent() + UnregisterSignal(parent, list(COMSIG_MOVABLE_MOVED, COMSIG_CARBON_EMBED_RIP, COMSIG_CARBON_EMBED_REMOVAL, COMSIG_PARENT_EXAMINE)) + +/datum/component/embedded/process() + if(iscarbon(parent)) + processCarbon() + +/datum/component/embedded/Destroy() + if(weapon) + UnregisterSignal(weapon, list(COMSIG_MOVABLE_MOVED, COMSIG_PARENT_QDELETING)) + if(overlay) + var/atom/A = parent + A.cut_overlay(overlay, TRUE) + qdel(overlay) + + return ..() + +//////////////////////////////////////// +/////////////HUMAN PROCS//////////////// +//////////////////////////////////////// + +/// Set up an instance of embedding for a carbon. This is basically an extension of Initialize() so not much to say +/datum/component/embedded/proc/initCarbon() + START_PROCESSING(SSdcs, src) + var/mob/living/carbon/victim = parent + if(!istype(limb)) + limb = pick(victim.bodyparts) + + limb.embedded_objects |= weapon // on the inside... on the inside... + weapon.forceMove(victim) + RegisterSignal(weapon, list(COMSIG_MOVABLE_MOVED, COMSIG_PARENT_QDELETING), .proc/byeItemCarbon) + + if(harmful) + victim.visible_message("[weapon] embeds itself in [victim]'s [limb.name]!",ignored_mobs=victim) + to_chat(victim, "[weapon] embeds itself in your [limb.name]!") + victim.throw_alert("embeddedobject", /obj/screen/alert/embeddedobject) + playsound(victim,'sound/weapons/bladeslice.ogg', 40) + weapon.add_mob_blood(victim)//it embedded itself in you, of course it's bloody! + var/damage = weapon.w_class * impact_pain_mult + limb.receive_damage(brute=(1-pain_stam_pct) * damage, stamina=pain_stam_pct * damage) + SEND_SIGNAL(victim, COMSIG_ADD_MOOD_EVENT, "embedded", /datum/mood_event/embedded) + else + victim.visible_message("[weapon] sticks itself to [victim]'s [limb.name]!",ignored_mobs=victim) + to_chat(victim, "[weapon] sticks itself to your [limb.name]!") + +/// Called every time a carbon with a harmful embed moves, rolling a chance for the item to cause pain. The chance is halved if the carbon is crawling or walking. +/datum/component/embedded/proc/jostleCheck() + var/mob/living/carbon/victim = parent + + var/chance = jostle_chance + if(victim.m_intent == MOVE_INTENT_WALK || !(victim.mobility_flags & MOBILITY_STAND)) + chance *= 0.5 + + if(harmful && prob(chance)) + var/damage = weapon.w_class * jostle_pain_mult + limb.receive_damage(brute=(1-pain_stam_pct) * damage, stamina=pain_stam_pct * damage) + to_chat(victim, "[weapon] embedded in your [limb.name] jostles and stings!") + + +/// Called when then item randomly falls out of a carbon. This handles the damage and descriptors, then calls safe_remove() +/datum/component/embedded/proc/fallOutCarbon() + var/mob/living/carbon/victim = parent + + if(harmful) + var/damage = weapon.w_class * remove_pain_mult + limb.receive_damage(brute=(1-pain_stam_pct) * damage, stamina=pain_stam_pct * damage) + victim.visible_message("[weapon] falls out of [victim.name]'s [limb.name]!", ignored_mobs=victim) + to_chat(victim, "[weapon] falls out of your [limb.name]!") + else + victim.visible_message("[weapon] falls off of [victim.name]'s [limb.name]!", ignored_mobs=victim) + to_chat(victim, "[weapon] falls off of your [limb.name]!") + + safeRemoveCarbon() + + +/// Called when a carbon with an object embedded/stuck to them inspects themselves and clicks the appropriate link to begin ripping the item out. This handles the ripping attempt, descriptors, and dealing damage, then calls safe_remove() +/datum/component/embedded/proc/ripOutCarbon(datum/source, obj/item/I, obj/item/bodypart/limb) + if(I != weapon || src.limb != limb) + return + + var/mob/living/carbon/victim = parent + var/time_taken = rip_time * weapon.w_class + + victim.visible_message("[victim] attempts to remove [weapon] from [victim.p_their()] [limb.name].","You attempt to remove [weapon] from your [limb.name]... (It will take [DisplayTimeText(time_taken)].)") + if(do_after(victim, time_taken, target = victim)) + if(!weapon || !limb || weapon.loc != victim || !(weapon in limb.embedded_objects)) + qdel(src) + return + + if(harmful) + var/damage = weapon.w_class * remove_pain_mult + limb.receive_damage(brute=(1-pain_stam_pct) * damage, stamina=pain_stam_pct * damage) //It hurts to rip it out, get surgery you dingus. + victim.emote("scream") + victim.visible_message("[victim] successfully rips [weapon] out of [victim.p_their()] [limb.name]!", "You successfully remove [weapon] from your [limb.name].") + else + victim.visible_message("[victim] successfully rips [weapon] off of [victim.p_their()] [limb.name]!", "You successfully remove [weapon] from your [limb.name].") + + safeRemoveCarbon(TRUE) + + +/// This proc handles the final step and actual removal of an embedded/stuck item from a carbon, whether or not it was actually removed safely. +/// Pass TRUE for to_hands if we want it to go to the victim's hands when they pull it out +/datum/component/embedded/proc/safeRemoveCarbon(to_hands) + var/mob/living/carbon/victim = parent + limb.embedded_objects -= weapon + + UnregisterSignal(weapon, list(COMSIG_MOVABLE_MOVED, COMSIG_PARENT_QDELETING)) // have to unhook these here so they don't also register as having disappeared + + if(!weapon) + if(!victim.has_embedded_objects()) + victim.clear_alert("embeddedobject") + SEND_SIGNAL(victim, COMSIG_CLEAR_MOOD_EVENT, "embedded") + qdel(src) + return + + if(weapon.unembedded()) // if it deleted itself + weapon = null + if(!victim.has_embedded_objects()) + victim.clear_alert("embeddedobject") + SEND_SIGNAL(victim, COMSIG_CLEAR_MOOD_EVENT, "embedded") + qdel(src) + return + + if(to_hands) + victim.put_in_hands(weapon) + else + weapon.forceMove(get_turf(victim)) + + if(!victim.has_embedded_objects()) + victim.clear_alert("embeddedobject") + SEND_SIGNAL(victim, COMSIG_CLEAR_MOOD_EVENT, "embedded") + qdel(src) + + +/// Something deleted or moved our weapon while it was embedded, how rude! +/datum/component/embedded/proc/byeItemCarbon() + var/mob/living/carbon/victim = parent + limb.embedded_objects -= weapon + UnregisterSignal(weapon, list(COMSIG_MOVABLE_MOVED, COMSIG_PARENT_QDELETING)) + + if(victim) + to_chat(victim, "\The [weapon] that was embedded in your [limb.name] disappears!") + if(!victim.has_embedded_objects()) + victim.clear_alert("embeddedobject") + SEND_SIGNAL(victim, COMSIG_CLEAR_MOOD_EVENT, "embedded") + weapon = null + qdel(src) + + +/// Items embedded/stuck to carbons both check whether they randomly fall out (if applicable), as well as if the target mob and limb still exists. +/// Items harmfully embedded in carbons have an additional check for random pain (if applicable) +/datum/component/embedded/proc/processCarbon() + var/mob/living/carbon/victim = parent + + if(!victim || !limb) // in case the victim and/or their limbs exploded (say, due to a sticky bomb) + weapon.forceMove(get_turf(weapon)) + qdel(src) + + if(victim.stat == DEAD) + return + + var/damage = weapon.w_class * pain_mult + var/chance = pain_chance + if(pain_stam_pct && IS_STAMCRIT(victim)) //if it's a less-lethal embed, give them a break if they're already stamcritted + chance *= 0.3 + damage *= 0.7 + + if(harmful && prob(chance)) + limb.receive_damage(brute=(1-pain_stam_pct) * damage, stamina=pain_stam_pct * damage) + to_chat(victim, "[weapon] embedded in your [limb.name] hurts!") + + if(prob(fall_chance)) + fallOutCarbon() + + + +//////////////////////////////////////// +//////////////TURF PROCS//////////////// +//////////////////////////////////////// + +/// Turfs are much lower maintenance, since we don't care if they're in pain, but since they don't bleed or scream, we draw an overlay to show their status. +/// The only difference pointy/sticky items make here is text descriptors and pointy objects making a spark shower on impact. +/datum/component/embedded/proc/initTurf(datum/thrownthing/throwingdatum) + var/turf/closed/hit = parent + + // we can't store the item IN the turf (cause turfs are just kinda... there), so we fake it by making the item invisible and bailing if it moves due to a blast + weapon.forceMove(hit) + weapon.invisibility = INVISIBILITY_ABSTRACT + RegisterSignal(weapon, COMSIG_MOVABLE_MOVED, .proc/itemMoved) + + var/pixelX = rand(-2, 2) + var/pixelY = rand(-1, 3) // bias this upwards since in-hands are usually on the lower end of the sprite + + switch(throwingdatum.init_dir) + if(NORTH) + pixelY -= 2 + if(SOUTH) + pixelY += 2 + if(WEST) + pixelX += 2 + if(EAST) + pixelX -= 2 + + if(throwingdatum.init_dir in list(NORTH, WEST, NORTHWEST, SOUTHWEST)) + overlay = mutable_appearance(icon=weapon.righthand_file,icon_state=weapon.item_state) + else + overlay = mutable_appearance(icon=weapon.lefthand_file,icon_state=weapon.item_state) + + var/matrix/M = matrix() + M.Translate(pixelX, pixelY) + overlay.transform = M + hit.add_overlay(overlay, TRUE) + + if(harmful) + hit.visible_message("[weapon] embeds itself in [hit]!") + playsound(hit,'sound/weapons/bladeslice.ogg', 70) + + var/datum/effect_system/spark_spread/sparks = new + sparks.set_up(1, 1, parent) + sparks.attach(parent) + sparks.start() + else + hit.visible_message("[weapon] sticks itself to [hit]!") + + +/datum/component/embedded/proc/examineTurf(datum/source, mob/user, list/examine_list) + if(harmful) + examine_list += "\t There is \a [weapon] embedded in [parent]!" + else + examine_list += "\t There is \a [weapon] stuck to [parent]!" + + +/// Someone is ripping out the item from the turf by hand +/datum/component/embedded/Topic(datum/source, href_list) + var/mob/living/us = usr + if(in_range(us, parent) && locate(href_list["embedded_object"]) == weapon) + if(harmful) + us.visible_message("[us] begins unwedging [weapon] from [parent].", "You begin unwedging [weapon] from [parent]...") + else + us.visible_message("[us] begins unsticking [weapon] from [parent].", "You begin unsticking [weapon] from [parent]...") + + if(do_after(us, 30, target = parent)) + us.put_in_hands(weapon) + weapon.unembedded() + qdel(src) + + +/// This proc handles if something knocked the invisible item loose from the turf somehow (probably an explosion). Just make it visible and say it fell loose, then get outta here. +/datum/component/embedded/proc/itemMoved() + weapon.invisibility = initial(weapon.invisibility) + weapon.visible_message("[weapon] falls loose from [parent].") + weapon.unembedded() + qdel(src) diff --git a/code/datums/components/empprotection.dm b/code/datums/components/empprotection.dm deleted file mode 100644 index c85cdf31c7..0000000000 --- a/code/datums/components/empprotection.dm +++ /dev/null @@ -1,11 +0,0 @@ -/datum/component/empprotection - var/flags = NONE - -/datum/component/empprotection/Initialize(_flags) - if(!istype(parent, /atom)) - return COMPONENT_INCOMPATIBLE - flags = _flags - RegisterSignal(parent, list(COMSIG_ATOM_EMP_ACT), .proc/getEmpFlags) - -/datum/component/empprotection/proc/getEmpFlags(datum/source, severity) - return flags diff --git a/code/datums/components/fantasy/_fantasy.dm b/code/datums/components/fantasy/_fantasy.dm index a203264fae..8441f962f9 100644 --- a/code/datums/components/fantasy/_fantasy.dm +++ b/code/datums/components/fantasy/_fantasy.dm @@ -9,6 +9,7 @@ var/originalName var/list/affixes var/list/appliedComponents + var/list/appliedElements var/static/list/affixListing @@ -22,6 +23,7 @@ src.affixes = affixes appliedComponents = list() + appliedElements = list() randomAffixes() /datum/component/fantasy/Destroy() @@ -118,6 +120,8 @@ affix.remove(src) for(var/i in appliedComponents) qdel(i) + for(var/i in appliedElements) + master._RemoveElement(i) master.force = max(0, master.force - quality) master.throwforce = max(0, master.throwforce - quality) diff --git a/code/datums/components/fantasy/prefixes.dm b/code/datums/components/fantasy/prefixes.dm index 5ef2ac2baf..b6de85cab0 100644 --- a/code/datums/components/fantasy/prefixes.dm +++ b/code/datums/components/fantasy/prefixes.dm @@ -45,7 +45,8 @@ /datum/fantasy_affix/tactical/apply(datum/component/fantasy/comp, newName) var/obj/item/master = comp.parent - comp.appliedComponents += master.AddComponent(/datum/component/tactical) + master.AddElement(/datum/element/tactical) + comp.appliedElements += list(/datum/element/tactical) return "tactical [newName]" /datum/fantasy_affix/pyromantic diff --git a/code/datums/components/fantasy/suffixes.dm b/code/datums/components/fantasy/suffixes.dm index f32ca50595..59328b9bc9 100644 --- a/code/datums/components/fantasy/suffixes.dm +++ b/code/datums/components/fantasy/suffixes.dm @@ -144,7 +144,7 @@ var/obj/item/projectile/picked_projectiletype = pickweight(weighted_projectile_types) var/obj/item/master = comp.parent - comp.appliedComponents += master.AddComponent(/datum/component/shrapnel, picked_projectiletype) + comp.appliedComponents += master.AddComponent(/datum/component/mirv, picked_projectiletype) return "[newName] of [initial(picked_projectiletype.name)] shrapnel" /datum/fantasy_affix/strength diff --git a/code/datums/components/field_of_vision.dm b/code/datums/components/field_of_vision.dm new file mode 100644 index 0000000000..5fb7b2596c --- /dev/null +++ b/code/datums/components/field_of_vision.dm @@ -0,0 +1,354 @@ +#define CENTERED_RENDER_SOURCE(img, atom, FoV) \ + atom.render_target = atom.render_target || ref(atom);\ + img.render_source = atom.render_target;\ + if(atom.icon){\ + var/_cached_sizes = FoV.width_n_height_offsets[atom.icon];\ + if(!_cached_sizes){\ + var/icon/_I = icon(atom.icon);\ + var/list/L = list();\ + L += (_I.Width() - world.icon_size)/2;\ + L += (_I.Height() - world.icon_size)/2;\ + _cached_sizes = FoV.width_n_height_offsets[atom.icon] = L\ + }\ + img.pixel_x = _cached_sizes[1];\ + img.pixel_y = _cached_sizes[2];\ + img.loc = atom\ + } + +#define REGISTER_NESTED_LOCS(source, list, comsig, proc) \ + for(var/k in get_nested_locs(source)){\ + var/atom/_A = k;\ + RegisterSignal(_A, comsig, proc);\ + list += _A\ + } + +#define UNREGISTER_NESTED_LOCS(list, comsig, index) \ + for(var/k in index to length(list)){\ + var/atom/_A = list[k];\ + UnregisterSignal(_A, comsig);\ + list -= _A\ + } + +/** + * Field of Vision component. Does totally what you probably think it does, + * ergo preventing players from seeing what's behind them. + */ +/datum/component/field_of_vision + can_transfer = TRUE + +/** + * That special invisible, almost neigh indestructible movable + * that holds both shadow cone mask and image and follows the player around. + */ + var/atom/movable/fov_holder/fov + ///The current screen size this field of vision is meant to fit for. + var/current_fov_size = list(15, 15) + ///How much is the cone rotated clockwise, purely backend. Please use rotate_shadow_cone() if you must. + var/angle = 0 + /// Used to scale the shadow cone when rotating it to fit over the edges of the screen. + var/rot_scale = 1 + /// The inner angle of this cone, right hardset to 90, 180, or 270 degrees, until someone figures out a way to make it dynamic. + var/shadow_angle = FOV_90_DEGREES + /// The mask portion of the cone, placed on a * render target plane so while not visible it still applies the filter. + var/image/shadow_mask + /// The visual portion of the cone, placed on the highest layer of the wall plane + var/image/visual_shadow +/** + * An image whose render_source is kept up to date to prevent the mob (or the topmost movable holding it) from being hidden by the mask. + * Will make it use vis_contents instead once a few byonds bugs with images and vis contents are fixed. + */ + var/image/owner_mask +/** + * A circle image used to somewhat uncover the adjacent portion of the shadow cone, making mobs and objects behind us somewhat visible. + * The owner mask is still required for those mob going over the default 32x32 px size btw. + */ + var/image/adj_mask + /// A list of nested locations the mob is in, to ensure the above image works correctly. + var/list/nested_locs = list() +/** + * A static list of offsets based on icon width and height, because render sources are centered unlike most other visuals, + * and that gives us some problems when the icon is larger or smaller than world.icon_size + */ + var/static/list/width_n_height_offsets = list() + +/datum/component/field_of_vision/Initialize(fov_type = FOV_90_DEGREES, _angle = 0) + if(!ismob(parent)) + return COMPONENT_INCOMPATIBLE + angle = _angle + shadow_angle = fov_type + +/datum/component/field_of_vision/RegisterWithParent() + . = ..() + var/mob/M = parent + if(M.client) + generate_fov_holder(M, angle) + RegisterSignal(M, COMSIG_MOB_CLIENT_LOGIN, .proc/on_mob_login) + RegisterSignal(M, COMSIG_MOB_CLIENT_LOGOUT, .proc/on_mob_logout) + RegisterSignal(M, COMSIG_MOB_GET_VISIBLE_MESSAGE, .proc/on_visible_message) + RegisterSignal(M, COMSIG_MOB_EXAMINATE, .proc/on_examinate) + RegisterSignal(M, COMSIG_MOB_FOV_VIEW, .proc/on_fov_view) + RegisterSignal(M, COMSIG_MOB_CLIENT_CHANGE_VIEW, .proc/on_change_view) + RegisterSignal(M, COMSIG_MOB_RESET_PERSPECTIVE, .proc/on_reset_perspective) + RegisterSignal(M, COMSIG_MOB_FOV_VIEWER, .proc/is_viewer) + +/datum/component/field_of_vision/UnregisterFromParent() + . = ..() + var/mob/M = parent + if(!QDELETED(fov)) + if(M.client) + UnregisterSignal(M, list(COMSIG_ATOM_DIR_CHANGE, COMSIG_MOVABLE_MOVED, COMSIG_MOB_DEATH, COMSIG_LIVING_REVIVE)) + M.client.images -= owner_mask + M.client.images -= shadow_mask + M.client.images -= visual_shadow + M.client.images -= adj_mask + qdel(fov, TRUE) // Forced. + fov = null + QDEL_NULL(owner_mask) + QDEL_NULL(adj_mask) + if(length(nested_locs)) + UNREGISTER_NESTED_LOCS(nested_locs, COMSIG_MOVABLE_MOVED, 1) + UnregisterSignal(M, list(COMSIG_MOB_CLIENT_LOGIN, COMSIG_MOB_CLIENT_LOGOUT, + COMSIG_MOB_GET_VISIBLE_MESSAGE, COMSIG_MOB_EXAMINATE, + COMSIG_MOB_FOV_VIEW, COMSIG_MOB_RESET_PERSPECTIVE, + COMSIG_MOB_CLIENT_CHANGE_VIEW, COMSIG_MOB_FOV_VIEWER)) + +/** + * Generates the holder and images (if not generated yet) and adds them to client.images. + * Run when the component is registered to a player mob, or upon login. + */ +/datum/component/field_of_vision/proc/generate_fov_holder(mob/M, _angle = 0) + if(QDELETED(fov)) + fov = new(get_turf(M)) + fov.icon_state = "[shadow_angle]" + fov.dir = M.dir + shadow_mask = image('icons/misc/field_of_vision.dmi', fov, "[shadow_angle]", FIELD_OF_VISION_LAYER) + shadow_mask.plane = FIELD_OF_VISION_PLANE + visual_shadow = image('icons/misc/field_of_vision.dmi', fov, "[shadow_angle]_v", FIELD_OF_VISION_LAYER) + visual_shadow.plane = FIELD_OF_VISION_VISUAL_PLANE + owner_mask = new + owner_mask.appearance_flags = RESET_TRANSFORM + owner_mask.plane = FIELD_OF_VISION_BLOCKER_PLANE + adj_mask = image('icons/misc/field_of_vision.dmi', fov, "adj_mask", FIELD_OF_VISION_LAYER) + adj_mask.appearance_flags = RESET_TRANSFORM + adj_mask.plane = FIELD_OF_VISION_BLOCKER_PLANE + if(_angle) + rotate_shadow_cone(_angle) + fov.alpha = M.stat == DEAD ? 0 : 255 + RegisterSignal(M, COMSIG_MOB_DEATH, .proc/hide_fov) + RegisterSignal(M, COMSIG_LIVING_REVIVE, .proc/show_fov) + RegisterSignal(M, COMSIG_ATOM_DIR_CHANGE, .proc/on_dir_change) + RegisterSignal(M, COMSIG_MOVABLE_MOVED, .proc/on_mob_moved) + RegisterSignal(M, COMSIG_ROBOT_UPDATE_ICONS, .proc/manual_centered_render_source) + var/atom/A = M + if(M.loc && !isturf(M.loc)) + REGISTER_NESTED_LOCS(M, nested_locs, COMSIG_MOVABLE_MOVED, .proc/on_loc_moved) + A = nested_locs[nested_locs.len] + CENTERED_RENDER_SOURCE(owner_mask, A, src) + M.client.images += shadow_mask + M.client.images += visual_shadow + M.client.images += owner_mask + M.client.images += adj_mask + if(M.client.view != "[current_fov_size[1]]x[current_fov_size[2]]") + resize_fov(current_fov_size, getviewsize(M.client.view)) + +///Rotates the shadow cone to a certain degree. Backend shenanigans. +/datum/component/field_of_vision/proc/rotate_shadow_cone(new_angle) + var/simple_degrees = SIMPLIFY_DEGREES(new_angle - angle) + var/to_scale = cos(simple_degrees) * sin(simple_degrees) + if(to_scale) + var/old_rot_scale = rot_scale + rot_scale = 1 + to_scale + if(old_rot_scale != rot_scale) + visual_shadow.transform = shadow_mask.transform = shadow_mask.transform.Scale(rot_scale/old_rot_scale) + visual_shadow.transform = shadow_mask.transform = shadow_mask.transform.Turn(fov.transform, simple_degrees) + +/** + * Resizes the shadow to match the current screen size. + * Run when the client view size is changed, or if the player has a viewsize different than "15x15" on login/comp registration. + */ +/datum/component/field_of_vision/proc/resize_fov(list/old_view, list/view) + current_fov_size = view + var/old_size = max(old_view[1], old_view[2]) + var/new_size = max(view[1], view[2]) + if(old_size == new_size) //longest edges are still of the same length. + return + visual_shadow.transform = shadow_mask.transform = shadow_mask.transform.Scale(new_size/old_size) + +/datum/component/field_of_vision/proc/on_mob_login(mob/source, client/client) + generate_fov_holder(source, angle) + +/datum/component/field_of_vision/proc/on_mob_logout(mob/source, client/client) + UnregisterSignal(source, list(COMSIG_ATOM_DIR_CHANGE, COMSIG_MOVABLE_MOVED, COMSIG_MOB_DEATH, + COMSIG_LIVING_REVIVE, COMSIG_ROBOT_UPDATE_ICONS)) + if(length(nested_locs)) + UNREGISTER_NESTED_LOCS(nested_locs, COMSIG_MOVABLE_MOVED, 1) + +/datum/component/field_of_vision/proc/on_dir_change(mob/source, old_dir, new_dir) + fov.dir = new_dir + +///Hides the shadow, other visibility comsig procs will take it into account. Called when the mob dies. +/datum/component/field_of_vision/proc/hide_fov(mob/source) + fov.alpha = 0 + +/// Shows the shadow. Called when the mob is revived. +/datum/component/field_of_vision/proc/show_fov(mob/source) + fov.alpha = 255 + +/// Hides the shadow when looking through other items, shows it otherwise. +/datum/component/field_of_vision/proc/on_reset_perspective(mob/source, atom/target) + if(source.client.eye == source || source.client.eye == source.loc) + fov.alpha = 255 + else + fov.alpha = 0 + +/// Called when the client view size is changed. +/datum/component/field_of_vision/proc/on_change_view(mob/source, client, list/old_view, list/view) + resize_fov(old_view, view) + +/** + * Called when the owner mob moves around. Used to keep shadow located right behind us, + * As well as modify the owner mask to match the topmost item. + */ +/datum/component/field_of_vision/proc/on_mob_moved(mob/source, atom/oldloc, dir, forced) + var/turf/T + if(!isturf(source.loc)) //Recalculate all nested locations. + UNREGISTER_NESTED_LOCS( nested_locs, COMSIG_MOVABLE_MOVED, 1) + REGISTER_NESTED_LOCS(source, nested_locs, COMSIG_MOVABLE_MOVED, .proc/on_loc_moved) + var/atom/movable/topmost = nested_locs[nested_locs.len] + T = topmost.loc + CENTERED_RENDER_SOURCE(owner_mask, topmost, src) + else + T = source.loc + if(length(nested_locs)) + UNREGISTER_NESTED_LOCS(nested_locs, COMSIG_MOVABLE_MOVED, 1) + CENTERED_RENDER_SOURCE(owner_mask, source, src) + if(T) + fov.forceMove(T, harderforce = TRUE) + +/// Pretty much like the above, but meant for other movables the mob is stored in (bodybags, boxes, mechs etc). +/datum/component/field_of_vision/proc/on_loc_moved(atom/movable/source, atom/oldloc, dir, forced) + if(isturf(source.loc) && isturf(oldloc)) //This is the case of the topmost movable loc moving around the world, skip. + fov.forceMove(source.loc, harderforce = TRUE) + return + var/atom/movable/prev_topmost = nested_locs[nested_locs.len] + if(prev_topmost != source) + UNREGISTER_NESTED_LOCS(nested_locs, COMSIG_MOVABLE_MOVED, nested_locs.Find(source) + 1) + REGISTER_NESTED_LOCS(source, nested_locs, COMSIG_MOVABLE_MOVED, .proc/on_loc_moved) + var/atom/movable/topmost = nested_locs[nested_locs.len] + if(topmost != prev_topmost) + CENTERED_RENDER_SOURCE(owner_mask, topmost, src) + if(topmost.loc) + fov.forceMove(topmost.loc, harderforce = TRUE) + +/// A hacky comsig proc for things that somehow decide to change icon on the go. may make a change_icon_file() proc later but... +/datum/component/field_of_vision/proc/manual_centered_render_source(mob/source, old_icon) + if(!isturf(source.loc)) + return + CENTERED_RENDER_SOURCE(owner_mask, source, src) + +#undef CENTERED_RENDER_SOURCE +#undef REGISTER_NESTED_LOCS +#undef UNREGISTER_NESTED_LOCS + +/** + * Byond doc is not entirely correct on the integrated arctan() proc. + * When both x and y are negative, the output is also negative, cycling clockwise instead of counter-clockwise. + * That's also why I am extensively using the SIMPLIFY_DEGREES macro here. + * + * Overall this is the main macro that calculates wheter a target is within the shadow cone angle or not. + */ +#define FOV_ANGLE_CHECK(mob, target, zero_x_y_statement, success_statement) \ + var/turf/T1 = get_turf(target);\ + var/turf/T2 = get_turf(mob);\ + if(!T1 || !T2){\ + zero_x_y_statement\ + }\ + var/_x = (T1.x - T2.x);\ + var/_y = (T1.y - T2.y);\ + if(ISINRANGE(_x, -1, 1) && ISINRANGE(_y, -1, 1)){\ + zero_x_y_statement\ + }\ + var/dir = (mob.dir & (EAST|WEST)) || mob.dir;\ + var/_degree = -angle;\ + var/_half = shadow_angle/2;\ + switch(dir){\ + if(EAST){\ + _degree += 180;\ + }\ + if(NORTH){\ + _degree += 270;\ + }\ + if(SOUTH){\ + _degree += 90;\ + }\ + }\ + var/_min = SIMPLIFY_DEGREES(_degree - _half);\ + var/_max = SIMPLIFY_DEGREES(_degree + _half);\ + if((_min > _max) ? !ISINRANGE(SIMPLIFY_DEGREES(arctan(_x, _y)), _max, _min) : ISINRANGE(SIMPLIFY_DEGREES(arctan(_x, _y)), _min, _max)){\ + success_statement;\ + } + +/datum/component/field_of_vision/proc/on_examinate(mob/source, atom/target) + if(fov.alpha) + FOV_ANGLE_CHECK(source, target, return, return COMPONENT_DENY_EXAMINATE|COMPONENT_EXAMINATE_BLIND) + +/datum/component/field_of_vision/proc/on_visible_message(mob/source, atom/target, message, range, list/ignored_mobs) + if(fov.alpha) + FOV_ANGLE_CHECK(source, target, return, return COMPONENT_NO_VISIBLE_MESSAGE) + +/datum/component/field_of_vision/proc/on_fov_view(mob/source, list/atoms) + if(!fov.alpha) + return + for(var/k in atoms) + var/atom/A = k + FOV_ANGLE_CHECK(source, A, continue, atoms -= A) + +/datum/component/field_of_vision/proc/is_viewer(mob/source, atom/center, depth, list/viewers_list) + if(fov.alpha) + FOV_ANGLE_CHECK(source, center, return, viewers_list -= source) + +#undef FOV_ANGLE_CHECK + +/** + * The shadow cone's mask and visual images holder which can't locate inside the mob, + * lest they inherit the mob opacity and cause a lot of hindrance + */ +/atom/movable/fov_holder + name = "field of vision holder" + pixel_x = -224 //the image is about 480x480 px, ergo 15 tiles (480/32) big, and we gotta center it. + pixel_y = -224 + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + plane = FIELD_OF_VISION_PLANE + anchored = TRUE + +/atom/movable/fov_holder/ConveyorMove() + return + +/atom/movable/fov_holder/has_gravity(turf/T) + return FALSE + +/atom/movable/fov_holder/ex_act(severity) + return FALSE + +/atom/movable/fov_holder/singularity_act() + return + +/atom/movable/fov_holder/singularity_pull() + return + +/atom/movable/fov_holder/blob_act() + return + +/atom/movable/fov_holder/onTransitZ() + return + +/// Prevents people from moving these after creation, because they shouldn't be. +/atom/movable/fov_holder/forceMove(atom/destination, no_tp=FALSE, harderforce = FALSE) + if(harderforce) + return ..() + +/// Last but not least, these shouldn't be deleted by anything but the component itself +/atom/movable/fov_holder/Destroy(force = FALSE) + if(!force) + return QDEL_HINT_LETMELIVE + return ..() diff --git a/code/datums/components/footstep.dm b/code/datums/components/footstep.dm index fbf559fe35..f767c607a5 100644 --- a/code/datums/components/footstep.dm +++ b/code/datums/components/footstep.dm @@ -1,26 +1,52 @@ +///Footstep component. Plays footsteps at parents location when it is appropriate. /datum/component/footstep + ///How many steps the parent has taken since the last time a footstep was played var/steps = 0 + ///volume determines the extra volume of the footstep. This is multiplied by the base volume, should there be one. var/volume + ///e_range stands for extra range - aka how far the sound can be heard. This is added to the base value and ignored if there isn't a base value. var/e_range + ///footstep_type is a define which determines what kind of sounds should get chosen. + var/footstep_type + ///This can be a list OR a soundfile OR null. Determines whatever sound gets played. + var/footstep_sounds -/datum/component/footstep/Initialize(volume_ = 0.5, e_range_ = -1) +/datum/component/footstep/Initialize(footstep_type_ = FOOTSTEP_MOB_BAREFOOT, volume_ = 0.5, e_range_ = -1) if(!isliving(parent)) return COMPONENT_INCOMPATIBLE volume = volume_ e_range = e_range_ - RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), .proc/play_footstep) + footstep_type = footstep_type_ + switch(footstep_type) + if(FOOTSTEP_MOB_HUMAN) + if(!ishuman(parent)) + return COMPONENT_INCOMPATIBLE + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/play_humanstep) + return + if(FOOTSTEP_MOB_CLAW) + footstep_sounds = GLOB.clawfootstep + if(FOOTSTEP_MOB_BAREFOOT) + footstep_sounds = GLOB.barefootstep + if(FOOTSTEP_MOB_HEAVY) + footstep_sounds = GLOB.heavyfootstep + if(FOOTSTEP_MOB_SHOE) + footstep_sounds = GLOB.footstep + if(FOOTSTEP_MOB_SLIME) + footstep_sounds = 'sound/effects/footstep/slime1.ogg' + if(FOOTSTEP_MOB_CRAWL) + footstep_sounds = 'sound/effects/footstep/crawl1.ogg' + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/play_simplestep) //Note that this doesn't get called for humans. -/datum/component/footstep/proc/play_footstep() +///Prepares a footstep. Determines if it should get played. Returns the turf it should get played on. Note that it is always a /turf/open +/datum/component/footstep/proc/prepare_step() var/turf/open/T = get_turf(parent) if(!istype(T)) return var/mob/living/LM = parent - var/v = volume - var/e = e_range if(!T.footstep || LM.buckled || !CHECK_MOBILITY(LM, MOBILITY_STAND) || LM.buckled || LM.throwing || (LM.movement_type & (VENTCRAWLING | FLYING))) if (LM.lying && !LM.buckled && !(!T.footstep || LM.movement_type & (VENTCRAWLING | FLYING))) //play crawling sound if we're lying - playsound(T, 'sound/effects/footstep/crawl1.ogg', 15 * v) + playsound(T, 'sound/effects/footstep/crawl1.ogg', 15 * volume) return if(HAS_TRAIT(LM, TRAIT_SILENT_STEP)) @@ -30,79 +56,83 @@ var/mob/living/carbon/C = LM if(!C.get_bodypart(BODY_ZONE_L_LEG) && !C.get_bodypart(BODY_ZONE_R_LEG)) return - if(ishuman(C) && C.m_intent == MOVE_INTENT_WALK) - v /= 2 - e -= 5 + if(C.m_intent == MOVE_INTENT_WALK) + return steps++ - if(steps >= 3) + if(steps >= 6) steps = 0 - else + if(steps % 2) return - if(prob(80) && !LM.has_gravity(T)) // don't need to step as often when you hop around + if(steps != 0 && !LM.has_gravity(T)) // don't need to step as often when you hop around return + return T - //begin playsound shenanigans// - - //for barefooted non-clawed mobs like monkeys - if(isbarefoot(LM)) - playsound(T, pick(GLOB.barefootstep[T.barefootstep][1]), - GLOB.barefootstep[T.barefootstep][2] * v, - TRUE, - GLOB.barefootstep[T.barefootstep][3] + e) +/datum/component/footstep/proc/play_simplestep() + var/turf/open/T = prepare_step() + if(!T) return - - //for xenomorphs, dogs, and other clawed mobs - if(isclawfoot(LM)) - if(isalienadult(LM)) //xenos are stealthy and get quieter footsteps - v /= 3 - e -= 5 - - playsound(T, pick(GLOB.clawfootstep[T.clawfootstep][1]), - GLOB.clawfootstep[T.clawfootstep][2] * v, - TRUE, - GLOB.clawfootstep[T.clawfootstep][3] + e) + if(isfile(footstep_sounds) || istext(footstep_sounds)) + playsound(T, footstep_sounds, volume) return - - //for megafauna and other large and imtimidating mobs such as the bloodminer - if(isheavyfoot(LM)) - playsound(T, pick(GLOB.heavyfootstep[T.heavyfootstep][1]), - GLOB.heavyfootstep[T.heavyfootstep][2] * v, - TRUE, - GLOB.heavyfootstep[T.heavyfootstep][3] + e) + var/turf_footstep + switch(footstep_type) + if(FOOTSTEP_MOB_CLAW) + turf_footstep = T.clawfootstep + if(FOOTSTEP_MOB_BAREFOOT) + turf_footstep = T.barefootstep + if(FOOTSTEP_MOB_HEAVY) + turf_footstep = T.heavyfootstep + if(FOOTSTEP_MOB_SHOE) + turf_footstep = T.footstep + if(!turf_footstep) return + playsound(T, pick(footstep_sounds[turf_footstep][1]), footstep_sounds[turf_footstep][2] * volume, TRUE, footstep_sounds[turf_footstep][3] + e_range) - //for slimes - if(isslime(LM)) - playsound(T, 'sound/effects/footstep/slime1.ogg', 15 * v) +/datum/component/footstep/proc/play_humanstep() + var/turf/open/T = prepare_step() + if(!T) return - - //for (simple) humanoid mobs (clowns, russians, pirates, etc.) - if(isshoefoot(LM)) - if(!ishuman(LM)) - playsound(T, pick(GLOB.footstep[T.footstep][1]), - GLOB.footstep[T.footstep][2] * v, - TRUE, - GLOB.footstep[T.footstep][3] + e) - return - if(ishuman(LM)) //for proper humans, they're special - var/mob/living/carbon/human/H = LM - var/feetCover = (H.wear_suit && (H.wear_suit.body_parts_covered & FEET)) || (H.w_uniform && (H.w_uniform.body_parts_covered & FEET) || (H.shoes && (H.shoes.body_parts_covered & FEET))) - - if (H.dna.features["taur"] == "Naga" || H.dna.features["taur"] == "Tentacle") //are we a naga or tentacle taur creature - playsound(T, 'sound/effects/footstep/crawl1.ogg', 15 * v) + var/mob/living/carbon/human/H = parent + var/list/L = GLOB.barefootstep + var/turf_footstep = T.barefootstep + var/special = FALSE + if(H.physiology.footstep_type) + switch(H.physiology.footstep_type) + if(FOOTSTEP_MOB_CLAW) + turf_footstep = T.clawfootstep + L = GLOB.clawfootstep + if(FOOTSTEP_MOB_BAREFOOT) + turf_footstep = T.barefootstep + L = GLOB.barefootstep + if(FOOTSTEP_MOB_HEAVY) + turf_footstep = T.heavyfootstep + L = GLOB.heavyfootstep + if(FOOTSTEP_MOB_SHOE) + turf_footstep = T.footstep + L = GLOB.footstep + if(FOOTSTEP_MOB_SLIME) + playsound(T, 'sound/effects/footstep/slime1.ogg', 50 * volume) return + if(FOOTSTEP_MOB_CRAWL) + playsound(T, 'sound/effects/footstep/crawl1.ogg', 50 * volume) + return + special = TRUE + else + var/feetCover = (H.wear_suit && (H.wear_suit.body_parts_covered & FEET)) || (H.w_uniform && (H.w_uniform.body_parts_covered & FEET) || (H.shoes && (H.shoes.body_parts_covered & FEET))) + if(feetCover) //are we wearing shoes + playsound(T, pick(GLOB.footstep[T.footstep][1]), + GLOB.footstep[T.footstep][2] * volume, + TRUE, + GLOB.footstep[T.footstep][3] + e_range) + return - if(feetCover) //are we wearing shoes - playsound(T, pick(GLOB.footstep[T.footstep][1]), - GLOB.footstep[T.footstep][2] * v, - TRUE, - GLOB.footstep[T.footstep][3] + e) - - if(!feetCover) //are we NOT wearing shoes - playsound(T, pick(GLOB.barefootstep[T.barefootstep][1]), - GLOB.barefootstep[T.barefootstep][2] * v, - TRUE, - GLOB.barefootstep[T.barefootstep][3] + e) \ No newline at end of file + if(!special && H.dna.species.special_step_sounds) + playsound(T, pick(H.dna.species.special_step_sounds), 50, TRUE) + else + playsound(T, pick(L[turf_footstep][1]), + L[turf_footstep][2] * volume, + TRUE, + L[turf_footstep][3] + e_range) diff --git a/code/datums/components/forced_gravity.dm b/code/datums/components/forced_gravity.dm deleted file mode 100644 index 100bcf781c..0000000000 --- a/code/datums/components/forced_gravity.dm +++ /dev/null @@ -1,20 +0,0 @@ -/datum/component/forced_gravity - var/gravity - var/ignore_space = FALSE //If forced gravity should also work on space turfs - -/datum/component/forced_gravity/Initialize(forced_value = 1) - if(!isatom(parent)) - return COMPONENT_INCOMPATIBLE - RegisterSignal(COMSIG_ATOM_HAS_GRAVITY, .proc/gravity_check) - if(isturf(parent)) - RegisterSignal(COMSIG_TURF_HAS_GRAVITY, .proc/turf_gravity_check) - - gravity = forced_value - -/datum/component/forced_gravity/proc/gravity_check(datum/source, turf/location, list/gravs) - if(!ignore_space && isspaceturf(location)) - return - gravs += gravity - -/datum/component/forced_gravity/proc/turf_gravity_check(datum/source, atom/checker, list/gravs) - return gravity_check(parent, gravs) \ No newline at end of file diff --git a/code/datums/components/lockon_aiming.dm b/code/datums/components/lockon_aiming.dm index 045611ab9d..2f4401862d 100644 --- a/code/datums/components/lockon_aiming.dm +++ b/code/datums/components/lockon_aiming.dm @@ -47,14 +47,11 @@ if(icon_state) lock_icon_state = icon_state generate_lock_visuals() - var/mob/M = parent - LAZYOR(M.mousemove_intercept_objects, src) + RegisterSignal(parent, COMSIG_MOB_CLIENT_MOUSEMOVE, .proc/onMouseMove) START_PROCESSING(SSfastprocess, src) /datum/component/lockon_aiming/Destroy() - var/mob/M = parent clear_visuals() - LAZYREMOVE(M.mousemove_intercept_objects, src) STOP_PROCESSING(SSfastprocess, src) return ..() @@ -120,7 +117,7 @@ return LAZYREMOVE(immune_weakrefs, A.weak_reference) -/datum/component/lockon_aiming/onMouseMove(object,location,control,params) +/datum/component/lockon_aiming/proc/onMouseMove(object,location,control,params) var/mob/M = parent if(!istype(M) || !M.client) return diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm index 2f411ff37f..51dc4ee8f7 100644 --- a/code/datums/components/material_container.dm +++ b/code/datums/components/material_container.dm @@ -73,7 +73,7 @@ if(!material_amount) to_chat(user, "[I] does not contain sufficient materials to be accepted by [parent].") return - if(!has_space(material_amount)) + if((!precise_insertion || !GLOB.typecache_stack[I.type]) && !has_space(material_amount)) to_chat(user, "[parent] has not enough space. Please remove materials from [parent] in order to insert more.") return user_insert(I, user) diff --git a/code/datums/components/shrapnel.dm b/code/datums/components/mirv.dm similarity index 70% rename from code/datums/components/shrapnel.dm rename to code/datums/components/mirv.dm index 4d1fe21b95..2a1663776c 100644 --- a/code/datums/components/shrapnel.dm +++ b/code/datums/components/mirv.dm @@ -1,36 +1,37 @@ - -/datum/component/shrapnel +/datum/component/mirv var/projectile_type var/radius // shoots a projectile for every turf on this radius from the hit target var/override_projectile_range -/datum/component/shrapnel/Initialize(projectile_type, radius=1, override_projectile_range) - if(!isgun(parent) && !ismachinery(parent) && !isstructure(parent)) +/datum/component/mirv/Initialize(projectile_type, radius=1, override_projectile_range) + if(!isgun(parent) && !ismachinery(parent) && !isstructure(parent) && !isgrenade(parent)) return COMPONENT_INCOMPATIBLE src.projectile_type = projectile_type src.radius = radius src.override_projectile_range = override_projectile_range + if(isgrenade(parent)) + parent.AddComponent(/datum/component/pellet_cloud, projectile_type=projectile_type) -/datum/component/shrapnel/RegisterWithParent() +/datum/component/mirv/RegisterWithParent() . = ..() if(ismachinery(parent) || isstructure(parent) || isgun(parent)) // turrets, etc RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/projectile_hit) -/datum/component/shrapnel/UnregisterFromParent() +/datum/component/mirv/UnregisterFromParent() . = ..() UnregisterSignal(parent, list(COMSIG_PROJECTILE_ON_HIT)) -/datum/component/shrapnel/proc/projectile_hit(atom/fired_from, atom/movable/firer, atom/target, Angle) +/datum/component/mirv/proc/projectile_hit(atom/fired_from, atom/movable/firer, atom/target, Angle) do_shrapnel(firer, target) -/datum/component/shrapnel/proc/do_shrapnel(mob/firer, atom/target) +/datum/component/mirv/proc/do_shrapnel(mob/firer, atom/target) if(radius < 1) return var/turf/target_turf = get_turf(target) for(var/turf/shootat_turf in RANGE_TURFS(radius, target) - RANGE_TURFS(radius-1, target)) - var/obj/item/projectile/P = new projectile_type(target_turf) + var/obj/item/projectile/P = new projectile_type(target_turf) //Shooting Code: P.range = radius+1 if(override_projectile_range) diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index 23a81716b8..90fea9ec8a 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -1,41 +1,52 @@ +#define ECSTATIC_SANITY_PEN -1 #define SLIGHT_INSANITY_PEN 1 #define MINOR_INSANITY_PEN 5 #define MAJOR_INSANITY_PEN 10 -#define MOOD_INSANITY_MALUS 0.0054 // per point of sanity below SANITY_DISTURBED, a 40% debuff to skills at rock bottom depression. +#define MOOD_INSANITY_MALUS 0.13 // 13% debuff per sanity_level above the default of 4 (higher is worser), overall a 39% debuff to skills at rock bottom depression. /datum/component/mood var/mood //Real happiness var/sanity = 100 //Current sanity var/shown_mood //Shown happiness, this is what others can see when they try to examine you, prevents antag checking by noticing traitors are always very happy. var/mood_level = 5 //To track what stage of moodies they're on - var/sanity_level = 5 //To track what stage of sanity they're on + var/sanity_level = 3 //To track what stage of sanity they're on var/mood_modifier = 1 //Modifier to allow certain mobs to be less affected by moodlets var/list/datum/mood_event/mood_events = list() var/insanity_effect = 0 //is the owner being punished for low mood? If so, how much? var/obj/screen/mood/screen_obj + var/datum/skill_modifier/bad_mood/malus + var/datum/skill_modifier/great_mood/bonus + var/static/malus_id = 0 + var/static/list/free_maluses = list() /datum/component/mood/Initialize() if(!isliving(parent)) return COMPONENT_INCOMPATIBLE - START_PROCESSING(SSmood, src) + var/mob/living/owner = parent + if(owner.stat != DEAD) + START_PROCESSING(SSobj, src) RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT, .proc/add_event) RegisterSignal(parent, COMSIG_CLEAR_MOOD_EVENT, .proc/clear_event) RegisterSignal(parent, COMSIG_MODIFY_SANITY, .proc/modify_sanity) RegisterSignal(parent, COMSIG_LIVING_REVIVE, .proc/on_revive) RegisterSignal(parent, COMSIG_MOB_HUD_CREATED, .proc/modify_hud) - var/mob/living/owner = parent + RegisterSignal(parent, COMSIG_MOB_DEATH, .proc/stop_processing) + if(owner.hud_used) modify_hud() var/datum/hud/hud = owner.hud_used hud.show_hud(hud.hud_version) /datum/component/mood/Destroy() - STOP_PROCESSING(SSmood, src) + STOP_PROCESSING(SSobj, src) unmodify_hud() return ..() +/datum/component/mood/proc/stop_processing() + STOP_PROCESSING(SSobj, src) + /datum/component/mood/proc/print_mood(mob/user) var/msg = "*---------*\nYour current mood\n" msg += "My mental status: " //Long term @@ -127,7 +138,7 @@ else screen_obj.icon_state = "mood[mood_level]" -/datum/component/mood/process() //Called on SSmood process +/datum/component/mood/process() //Called on SSobj process if(QDELETED(parent)) // workaround to an obnoxious sneaky periodical runtime. qdel(src) return @@ -167,13 +178,13 @@ else if(sanity > maximum && amount > sanity - 0.5) amount = sanity - 0.5 - var/old_sanity = sanity // Disturbed stops you from getting any more sane if(HAS_TRAIT(master, TRAIT_UNSTABLE)) sanity = min(amount,sanity) else sanity = amount + var/old_sanity_level = sanity_level switch(sanity) if(-INFINITY to SANITY_CRAZY) setInsanityEffect(MAJOR_INSANITY_PEN) @@ -196,27 +207,43 @@ master.remove_movespeed_modifier(MOVESPEED_ID_SANITY) sanity_level = 2 if(SANITY_GREAT+1 to INFINITY) - setInsanityEffect(0) + setInsanityEffect(ECSTATIC_SANITY_PEN) //It's not a penalty but w/e master.remove_movespeed_modifier(MOVESPEED_ID_SANITY) sanity_level = 1 - if(old_sanity > 1 && sanity == 1) - RegisterSignal(master, COMSIG_MOB_SKILL_GET_AFFINITY, .proc/on_get_skill_affinity) - else if(old_sanity == 1 && sanity > 1) - UnregisterSignal(master, COMSIG_MOB_SKILL_GET_AFFINITY) + if(sanity_level != old_sanity_level) + if(sanity_level >= 4) + if(!malus) + if(!length(free_maluses)) + ADD_SKILL_MODIFIER_BODY(/datum/skill_modifier/bad_mood, malus_id++, master, malus) + else + malus = pick_n_take(free_maluses) + if(master.mind) + master.mind.add_skill_modifier(malus.identifier) + else + malus.RegisterSignal(master, COMSIG_MOB_ON_NEW_MIND, /datum/skill_modifier.proc/on_mob_new_mind, TRUE) + malus.value_mod = malus.level_mod = 1 - (sanity_level - 3) * MOOD_INSANITY_MALUS + else if(malus) + if(master.mind) + master.mind.remove_skill_modifier(malus.identifier) + else + malus.UnregisterSignal(master, COMSIG_MOB_ON_NEW_MIND) + free_maluses += malus + malus = null //update_mood_icon() /datum/component/mood/proc/setInsanityEffect(newval)//More code so that the previous proc works if(newval == insanity_effect) return - //var/mob/living/master = parent - //master.crit_threshold = (master.crit_threshold - insanity_effect) + newval - if(!insanity_effect && newval) - RegisterSignal(parent, COMSIG_MOB_ACTION_SKILL_MOD, .proc/on_mob_action_skill_mod) - RegisterSignal(parent, COMSIG_MOB_ITEM_ACTION_SKILLS_MOD, .proc/on_item_action_skills_mod) - else if(insanity_effect && !newval) - UnregisterSignal(parent, list(COMSIG_MOB_ACTION_SKILL_MOD, COMSIG_MOB_ITEM_ACTION_SKILLS_MOD)) + + var/mob/living/L = parent + if(newval == ECSTATIC_SANITY_PEN && !bonus) + ADD_SKILL_MODIFIER_BODY(/datum/skill_modifier/great_mood, null, L, bonus) + else if(bonus) + REMOVE_SKILL_MODIFIER_BODY(/datum/skill_modifier/great_mood, null, L) + bonus = null + insanity_effect = newval /datum/component/mood/proc/modify_sanity(datum/source, amount, minimum = SANITY_INSANE, maximum = SANITY_AMAZING) @@ -294,46 +321,37 @@ if(0 to NUTRITION_LEVEL_STARVING) add_event(null, "nutrition", /datum/mood_event/starving) -///Called when parent is ahealed. +/datum/component/mood/proc/update_beauty(area/A) + if(A.outdoors) //if we're outside, we don't care. + clear_event(null, "area_beauty") + return FALSE + if(HAS_TRAIT(parent, TRAIT_SNOB)) + switch(A.beauty) + if(-INFINITY to BEAUTY_LEVEL_HORRID) + add_event(null, "area_beauty", /datum/mood_event/horridroom) + return + if(BEAUTY_LEVEL_HORRID to BEAUTY_LEVEL_BAD) + add_event(null, "area_beauty", /datum/mood_event/badroom) + return + switch(A.beauty) + if(-INFINITY to BEAUTY_LEVEL_DECENT) + clear_event(null, "area_beauty") + if(BEAUTY_LEVEL_DECENT to BEAUTY_LEVEL_GOOD) + add_event(null, "area_beauty", /datum/mood_event/decentroom) + if(BEAUTY_LEVEL_GOOD to BEAUTY_LEVEL_GREAT) + add_event(null, "area_beauty", /datum/mood_event/goodroom) + if(BEAUTY_LEVEL_GREAT to INFINITY) + add_event(null, "area_beauty", /datum/mood_event/greatroom) + +///Called when parent is revived. /datum/component/mood/proc/on_revive(datum/source, full_heal) + START_PROCESSING(SSobj, src) if(!full_heal) return remove_temp_moods() setSanity(initial(sanity)) -/datum/component/mood/proc/on_mob_action_skill_mod(mob/source, list/skill_args, list/mod_values) - var/datum/skill/S = GLOB.skill_datums[skill_args[ACTION_SKILL_MOD_SKILL]] - if(!(S.skill_flags & SKILL_USE_MOOD)) - return - var/debuff = 1 - (SANITY_DISTURBED - sanity) * MOOD_INSANITY_MALUS - mod_values[MOD_VALUES_SKILL_MOD] *= skill_args[ACTION_SKILL_MOD_IS_MULTI] ? debuff : 1/debuff - -/datum/component/mood/proc/on_item_action_skills_mod(mob/source, list/skill_args, list/mod_values) - if(skill_args[ITEM_SKILLS_MOD_BAD_FLAGS] & SKILL_USE_MOOD) - return - var/divisor = mod_values[MOD_VALUES_ITEM_SKILLS_DIV] - if(!divisor) - return - var/obj/item/I = skill_args[ITEM_SKILLS_MOD_ITEM] - var/list/L = mod_values[MOD_VALUES_ITEM_SKILLS_CHECKED] - var/skills_len = length(L) - var/affected_skills = skills_len - for(var/k in L) - var/datum/skill/S = k - var/our_flags = I.used_skills[S.type]|S.skill_flags - if(!(our_flags & SKILL_USE_MOOD)) - affected_skills-- - if(!affected_skills) - return - var/debuff = 1 - (SANITY_DISTURBED - sanity) * MOOD_INSANITY_MALUS * (affected_skills/skills_len) - mod_values[MOD_VALUES_ITEM_SKILLS_SUM] *= skill_args[ITEM_SKILLS_MOD_IS_MULTI] ? debuff : 1/debuff - -/datum/component/mood/proc/on_get_skill_affinity(mob/source, skill_path, list/return_value) - var/datum/skill/S = GLOB.skill_datums[skill_path] - if(!S || !(S.skill_flags & SKILL_TRAIN_MOOD)) - return - return_value[1] *= SKILL_AFFINITY_MOOD_BONUS - +#undef ECSTATIC_SANITY_PEN #undef SLIGHT_INSANITY_PEN #undef MINOR_INSANITY_PEN #undef MAJOR_INSANITY_PEN diff --git a/code/datums/components/omen.dm b/code/datums/components/omen.dm new file mode 100644 index 0000000000..3ea7677710 --- /dev/null +++ b/code/datums/components/omen.dm @@ -0,0 +1,74 @@ +/** + * omen.dm: For when you want someone to have a really bad day + * + * When you attach an omen component to someone, they start running the risk of all sorts of bad environmental injuries, like nearby vending machines randomly falling on you, + * or hitting your head really hard when you slip and fall, or... well, for now those two are all I have. More will come. + * + * Omens are removed once the victim is either maimed by one of the possible injuries, or if they receive a blessing (read: bashing with a bible) from the chaplain. + */ +/datum/component/omen + dupe_mode = COMPONENT_DUPE_UNIQUE + + /// Whatever's causing the omen, if there is one. Destroying the vessel won't stop the omen, but we destroy the vessel (if one exists) upon the omen ending + var/obj/vessel + +/datum/component/omen/Initialize(silent=FALSE, vessel) + if(!isliving(parent)) + return COMPONENT_INCOMPATIBLE + var/mob/person = parent + if(!silent) + to_chat(person, "You get a bad feeling...") + src.vessel = vessel + +/datum/component/omen/Destroy(force, silent) + if(vessel) + vessel.visible_message("[vessel] burns up in a sinister flash, taking an evil energy with it...") + vessel = null + return ..() + +/datum/component/omen/RegisterWithParent() + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/check_accident) + RegisterSignal(parent, COMSIG_LIVING_STATUS_KNOCKDOWN, .proc/check_slip) + RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT, .proc/check_bless) + +/datum/component/omen/UnregisterFromParent() + UnregisterSignal(parent, list(COMSIG_LIVING_STATUS_KNOCKDOWN, COMSIG_MOVABLE_MOVED, COMSIG_ADD_MOOD_EVENT)) + +/** + * check_accident() is called each step we take + * + * While we're walking around, roll to see if there's any environmental hazards (currently only vending machines) on one of the adjacent tiles we can trigger. + * We do the prob() at the beginning to A. add some tension for /when/ it will strike, and B. (more importantly) ameliorate the fact that we're checking up to 5 turfs's contents each time + */ +/datum/component/omen/proc/check_accident(atom/movable/our_guy) + if(!prob(15)) + return + for(var/t in get_adjacent_open_turfs(our_guy)) + var/turf/the_turf = t + for(var/obj/machinery/vending/darth_vendor in the_turf) + if(darth_vendor.tiltable) + darth_vendor.tilt(our_guy) + qdel(src) + return + +/// If we get knocked down, see if we have a really bad slip and bash our head hard +/datum/component/omen/proc/check_slip(mob/living/our_guy, amount) + if(amount <= 0 || prob(50)) // 50% chance to bonk our head + return + + var/obj/item/bodypart/the_head = our_guy.get_bodypart(BODY_ZONE_HEAD) + if(!the_head) + return + + playsound(get_turf(our_guy), "sound/effects/tableheadsmash.ogg", 90, TRUE) + our_guy.visible_message("[our_guy] hits [our_guy.p_their()] head really badly falling down!", "You hit your head really badly falling down!") + the_head.receive_damage(75) + our_guy.adjustOrganLoss(ORGAN_SLOT_BRAIN, 100) + qdel(src) + +/// Hijack the mood system to see if we get the blessing mood event to cancel the omen +/datum/component/omen/proc/check_bless(mob/living/our_guy, category) + if(category != "blessing") + return + to_chat(our_guy, "You feel a horrible omen lifted off your shoulders!") + qdel(src) diff --git a/code/datums/components/orbiter.dm b/code/datums/components/orbiter.dm index 49e6b91c6d..53373de6d7 100644 --- a/code/datums/components/orbiter.dm +++ b/code/datums/components/orbiter.dm @@ -62,7 +62,9 @@ orbiters[orbiter] = TRUE orbiter.orbiting = src RegisterSignal(orbiter, COMSIG_MOVABLE_MOVED, .proc/orbiter_move_react) + var/matrix/initial_transform = matrix(orbiter.transform) + orbiters[orbiter] = initial_transform // Head first! if(pre_rotation) @@ -79,8 +81,6 @@ orbiter.SpinAnimation(rotation_speed, -1, clockwise, rotation_segments, parallel = FALSE) - //we stack the orbits up client side, so we can assign this back to normal server side without it breaking the orbit - orbiter.transform = initial_transform orbiter.forceMove(get_turf(parent)) to_chat(orbiter, "Now orbiting [parent].") @@ -89,6 +89,8 @@ return UnregisterSignal(orbiter, COMSIG_MOVABLE_MOVED) orbiter.SpinAnimation(0, 0) + if(istype(orbiters[orbiter],/matrix)) //This is ugly. + orbiter.transform = orbiters[orbiter] orbiters -= orbiter orbiter.stop_orbit(src) orbiter.orbiting = null diff --git a/code/datums/components/pellet_cloud.dm b/code/datums/components/pellet_cloud.dm new file mode 100644 index 0000000000..938d9f5f56 --- /dev/null +++ b/code/datums/components/pellet_cloud.dm @@ -0,0 +1,283 @@ +/* + * This component is used when you want to create a bunch of shrapnel or projectiles (say, shrapnel from a fragmentation grenade, or buckshot from a shotgun) from a central point, + * without necessarily printing a separate message for every single impact. This component should be instantiated right when you need it (like the moment of firing), then activated + * by signal. + * + * Pellet cloud currently works on two classes of sources: directed (ammo casings), and circular (grenades, landmines). + * -Directed: This means you're shooting multiple pellets, like buckshot. If an ammo casing is defined as having multiple pellets, it will automatically create a pellet cloud + * and call COMSIG_PELLET_CLOUD_INIT (see [/obj/item/ammo_casing/proc/fire_casing]). Thus, the only projectiles fired will be the ones fired here. + * The magnitude var controls how many pellets are created. + * -Circular: This results in a big spray of shrapnel flying all around the detonation point when the grenade fires COMSIG_GRENADE_PRIME or landmine triggers COMSIG_MINE_TRIGGERED. + * The magnitude var controls how big the detonation radius is (the bigger the magnitude, the more shrapnel is created). Grenades can be covered with bodies to reduce shrapnel output. + * + * Once all of the fired projectiles either hit a target or disappear due to ranging out/whatever else, we resolve the list of all the things we hit and print aggregate messages so we get + * one "You're hit by 6 buckshot pellets" vs 6x "You're hit by the buckshot blah blah" messages. + * + * Note that this is how all guns handle shooting ammo casings with multiple pellets, in case such a thing comes up. +*/ + +/datum/component/pellet_cloud + /// What's the projectile path of the shrapnel we're shooting? + var/projectile_type + + /// How many shrapnel projectiles are we responsible for tracking? May be reduced for grenades if someone dives on top of it. Defined by ammo casing for casings, derived from magnitude otherwise + var/num_pellets + /// For grenades/landmines, how big is the radius of turfs we're targeting? Note this does not effect the projectiles range, only how many we generate + var/radius = 4 + + /// The list of pellets we're responsible for tracking, once these are all accounted for, we finalize. + var/list/pellets = list() + /// An associated list with the atom hit as the key and how many pellets they've eaten for the value, for printing aggregate messages + var/list/targets_hit = list() + /// For grenades, any /mob/living's the grenade is moved onto, see [/datum/component/pellet_cloud/proc/handle_martyrs()] + var/list/bodies + /// For grenades, tracking people who die covering a grenade for achievement purposes, see [/datum/component/pellet_cloud/proc/handle_martyrs()] + var/list/purple_hearts + + /// For grenades, tracking how many pellets are removed due to martyrs and how many pellets are added due to the last person to touch it being on top of it + var/pellet_delta = 0 + /// how many pellets ranged out without hitting anything + var/terminated + /// how many pellets impacted something + var/hits + /// If the parent tried deleting and we're not done yet, we send it to nullspace then delete it after + var/queued_delete = FALSE + + /// for if we're an ammo casing being fired + var/mob/living/shooter + +/datum/component/pellet_cloud/Initialize(projectile_type=/obj/item/shrapnel, magnitude=5) + if(!isammocasing(parent) && !isgrenade(parent) && !islandmine(parent)) + return COMPONENT_INCOMPATIBLE + + if(magnitude < 1) + stack_trace("Invalid magnitude [magnitude] < 1 on pellet_cloud, parent: [parent]") + magnitude = 1 + + src.projectile_type = projectile_type + + if(isammocasing(parent)) + num_pellets = magnitude + else if(isgrenade(parent) || islandmine(parent)) + radius = magnitude + +/datum/component/pellet_cloud/Destroy(force, silent) + purple_hearts = null + pellets = null + targets_hit = null + bodies = null + return ..() + +/datum/component/pellet_cloud/RegisterWithParent() + RegisterSignal(parent, COMSIG_PARENT_PREQDELETED, .proc/nullspace_parent) + if(isammocasing(parent)) + RegisterSignal(parent, COMSIG_PELLET_CLOUD_INIT, .proc/create_casing_pellets) + else if(isgrenade(parent)) + RegisterSignal(parent, COMSIG_GRENADE_ARMED, .proc/grenade_armed) + RegisterSignal(parent, COMSIG_GRENADE_PRIME, .proc/create_blast_pellets) + else if(islandmine(parent)) + RegisterSignal(parent, COMSIG_MINE_TRIGGERED, .proc/create_blast_pellets) + +/datum/component/pellet_cloud/UnregisterFromParent() + UnregisterSignal(parent, list(COMSIG_PARENT_PREQDELETED, COMSIG_PELLET_CLOUD_INIT, COMSIG_GRENADE_PRIME, COMSIG_GRENADE_ARMED, COMSIG_MOVABLE_MOVED, COMSIG_MOVABLE_UNCROSSED, COMSIG_MINE_TRIGGERED, COMSIG_ITEM_DROPPED)) + +/** + * create_casing_pellets() is for directed pellet clouds for ammo casings that have multiple pellets (buckshot and scatter lasers for instance) + * + * Honestly this is mostly just a rehash of [/obj/item/ammo_casing/proc/fire_casing()] for pellet counts > 1, except this lets us tamper with the pellets and hook onto them for tracking purposes. + * The arguments really don't matter, this proc is triggered by COMSIG_PELLET_CLOUD_INIT which is only for this really, it's just a big mess of the state vars we need for doing the stuff over here. + */ +/datum/component/pellet_cloud/proc/create_casing_pellets(obj/item/ammo_casing/shell, atom/target, mob/living/user, fired_from, randomspread, spread, zone_override, params, distro) + shooter = user + var/targloc = get_turf(target) + if(!zone_override) + zone_override = shooter.zone_selected + + for(var/i in 1 to num_pellets) + shell.ready_proj(target, user, SUPPRESSED_VERY, zone_override, fired_from) + if(distro) + if(randomspread) + spread = round((rand() - 0.5) * distro) + else //Smart spread + spread = round((i / num_pellets - 0.5) * distro) + + RegisterSignal(shell.BB, COMSIG_PROJECTILE_SELF_ON_HIT, .proc/pellet_hit) + RegisterSignal(shell.BB, list(COMSIG_PROJECTILE_RANGE_OUT, COMSIG_PARENT_QDELETING), .proc/pellet_range) + pellets += shell.BB + if(!shell.throw_proj(target, targloc, shooter, params, spread)) + return + if(i != num_pellets) + shell.newshot() + +/** + * create_blast_pellets() is for when we have a central point we want to shred the surroundings of with a ring of shrapnel, namely frag grenades and landmines. + * + * Note that grenades have extra handling for someone throwing themselves/being thrown on top of it, while landmines do not (obviously, it's a landmine!). See [/datum/component/pellet_cloud/proc/handle_martyrs()] + */ +/datum/component/pellet_cloud/proc/create_blast_pellets(obj/O, mob/living/lanced_by) + var/atom/A = parent + + if(isgrenade(parent)) // handle_martyrs can reduce the radius and thus the number of pellets we produce if someone dives on top of a frag grenade + handle_martyrs(lanced_by) // note that we can modify radius in this proc + + if(radius < 1) + return + + var/list/all_the_turfs_were_gonna_lacerate = RANGE_TURFS(radius, A) - RANGE_TURFS(radius-1, A) + num_pellets = all_the_turfs_were_gonna_lacerate.len + pellet_delta + + for(var/T in all_the_turfs_were_gonna_lacerate) + var/turf/shootat_turf = T + pew(shootat_turf) + +/** + * handle_martyrs() is used for grenades that shoot shrapnel to check if anyone threw themselves/were thrown on top of the grenade, thus absorbing a good chunk of the shrapnel + * + * Between the time the grenade is armed and the actual detonation, we set var/list/bodies to the list of mobs currently on the new tile, as if the grenade landed on top of them, tracking if any of them move off the tile and removing them from the "under" list + * Once the grenade detonates, handle_martyrs() is called and gets all the new mobs on the tile, and add the ones not in var/list/bodies to var/list/martyrs + * We then iterate through the martyrs and reduce the shrapnel magnitude for each mob on top of it, shredding each of them with some of the shrapnel they helped absorb. This can snuff out all of the shrapnel if there's enough bodies + * + * Note we track anyone who's alive and client'd when they get shredded in var/list/purple_hearts, for achievement checking later + */ +/datum/component/pellet_cloud/proc/handle_martyrs(mob/living/lanced_by) + var/magnitude_absorbed + var/list/martyrs = list() + + var/self_harm_radius_mult = 3 + + if(lanced_by && prob(60)) + to_chat(lanced_by, "Your plan to whack someone with a grenade on a stick backfires on you, literally!") + self_harm_radius_mult = 1 // we'll still give the guy who got hit some extra shredding, but not 3*radius + pellet_delta += radius + for(var/i in 1 to radius) + pew(lanced_by) // thought you could be tricky and lance someone with no ill effects!! + + for(var/mob/living/body in get_turf(parent)) + if(body == shooter) + pellet_delta += radius * self_harm_radius_mult + for(var/i in 1 to radius * self_harm_radius_mult) + pew(body) // free shrapnel if it goes off in your hand, and it doesn't even count towards the absorbed. fun! + else if(!(body in bodies)) + martyrs += body // promoted from a corpse to a hero + + for(var/M in martyrs) + var/mob/living/martyr = M + if(radius > 4) + martyr.visible_message("[martyr] heroically covers \the [parent] with [martyr.p_their()] body, absorbing a load of the shrapnel!", "You heroically cover \the [parent] with your body, absorbing a load of the shrapnel!") + magnitude_absorbed += round(radius * 0.5) + else if(radius >= 2) + martyr.visible_message("[martyr] heroically covers \the [parent] with [martyr.p_their()] body, absorbing some of the shrapnel!", "You heroically cover \the [parent] with your body, absorbing some of the shrapnel!") + magnitude_absorbed += 2 + else + martyr.visible_message("[martyr] heroically covers \the [parent] with [martyr.p_their()] body, snuffing out the shrapnel!", "You heroically cover \the [parent] with your body, snuffing out the shrapnel!") + magnitude_absorbed = radius + + var/pellets_absorbed = (radius ** 2) - ((radius - magnitude_absorbed - 1) ** 2) + radius -= magnitude_absorbed + pellet_delta -= round(pellets_absorbed * 0.5) + + if(martyr.stat != DEAD && martyr.client) + LAZYADD(purple_hearts, martyr) + RegisterSignal(martyr, COMSIG_PARENT_QDELETING, .proc/on_target_qdel, override=TRUE) + + for(var/i in 1 to round(pellets_absorbed * 0.5)) + pew(martyr) + + if(radius < 1) + break + +///One of our pellets hit something, record what it was and check if we're done (terminated == num_pellets) +/datum/component/pellet_cloud/proc/pellet_hit(obj/item/projectile/P, atom/movable/firer, atom/target, Angle) + pellets -= P + terminated++ + hits++ + targets_hit[target]++ + if(targets_hit[target] == 1) + RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/on_target_qdel, override=TRUE) + UnregisterSignal(P, list(COMSIG_PARENT_QDELETING, COMSIG_PROJECTILE_RANGE_OUT, COMSIG_PROJECTILE_SELF_ON_HIT)) + if(terminated == num_pellets) + finalize() + +///One of our pellets disappeared due to hitting their max range (or just somehow got qdel'd), remove it from our list and check if we're done (terminated == num_pellets) +/datum/component/pellet_cloud/proc/pellet_range(obj/item/projectile/P) + pellets -= P + terminated++ + UnregisterSignal(P, list(COMSIG_PARENT_QDELETING, COMSIG_PROJECTILE_RANGE_OUT, COMSIG_PROJECTILE_SELF_ON_HIT)) + if(terminated == num_pellets) + finalize() + +/// Minor convenience function for creating each shrapnel piece with circle explosions, mostly stolen from the MIRV component +/datum/component/pellet_cloud/proc/pew(atom/target, spread=0) + var/obj/item/projectile/P = new projectile_type(get_turf(parent)) + + //Shooting Code: + P.spread = spread + P.original = target + P.fired_from = parent + P.firer = parent // don't hit ourself that would be really annoying + P.permutated += parent // don't hit the target we hit already with the flak + P.suppressed = SUPPRESSED_VERY // set the projectiles to make no message so we can do our own aggregate message + P.preparePixelProjectile(target, parent) + RegisterSignal(P, COMSIG_PROJECTILE_SELF_ON_HIT, .proc/pellet_hit) + RegisterSignal(P, list(COMSIG_PROJECTILE_RANGE_OUT, COMSIG_PARENT_QDELETING), .proc/pellet_range) + pellets += P + P.fire() + +///All of our pellets are accounted for, time to go target by target and tell them how many things they got hit by. +/datum/component/pellet_cloud/proc/finalize() + var/obj/item/projectile/P = projectile_type + var/proj_name = initial(P.name) + + for(var/atom/target in targets_hit) + var/num_hits = targets_hit[target] + UnregisterSignal(target, COMSIG_PARENT_QDELETING) + if(num_hits > 1) + target.visible_message("[target] is hit by [num_hits] [proj_name]s!", null, null, COMBAT_MESSAGE_RANGE, target) + to_chat(target, "You're hit by [num_hits] [proj_name]s!") + else + target.visible_message("[target] is hit by a [proj_name]!", null, null, COMBAT_MESSAGE_RANGE, target) + to_chat(target, "You're hit by a [proj_name]!") + + UnregisterSignal(parent, COMSIG_PARENT_PREQDELETED) + if(queued_delete) + qdel(parent) + qdel(src) + +/// Look alive, we're armed! Now we start watching to see if anyone's covering us +/datum/component/pellet_cloud/proc/grenade_armed(obj/item/nade) + if(ismob(nade.loc)) + shooter = nade.loc + LAZYINITLIST(bodies) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/grenade_dropped) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/grenade_moved) + RegisterSignal(parent, COMSIG_MOVABLE_UNCROSSED, .proc/grenade_uncrossed) + +/// Someone dropped the grenade, so set them to the shooter in case they're on top of it when it goes off +/datum/component/pellet_cloud/proc/grenade_dropped(obj/item/nade, mob/living/slick_willy) + shooter = slick_willy + grenade_moved() + +/// Our grenade has moved, reset var/list/bodies so we're "on top" of any mobs currently on the tile +/datum/component/pellet_cloud/proc/grenade_moved() + LAZYCLEARLIST(bodies) + for(var/mob/living/L in get_turf(parent)) + RegisterSignal(L, COMSIG_PARENT_QDELETING, .proc/on_target_qdel, override=TRUE) + bodies += L + +/// Someone who was originally "under" the grenade has moved off the tile and is now eligible for being a martyr and "covering" it +/datum/component/pellet_cloud/proc/grenade_uncrossed(datum/source, atom/movable/AM) + bodies -= AM + +/// Our grenade or landmine or caseless shell or whatever tried deleting itself, so we intervene and nullspace it until we're done here +/datum/component/pellet_cloud/proc/nullspace_parent() + var/atom/movable/AM = parent + AM.moveToNullspace() + queued_delete = TRUE + return TRUE + +/// Someone who was originally "under" the grenade has moved off the tile and is now eligible for being a martyr and "covering" it +/datum/component/pellet_cloud/proc/on_target_qdel(atom/target) + UnregisterSignal(target, COMSIG_PARENT_QDELETING) + targets_hit -= target + bodies -= target + purple_hearts -= target diff --git a/code/datums/components/phantomthief.dm b/code/datums/components/phantomthief.dm index 57ab75f7a3..6b7e7221c3 100644 --- a/code/datums/components/phantomthief.dm +++ b/code/datums/components/phantomthief.dm @@ -20,7 +20,7 @@ valid_slots = _valid_slots /datum/component/wearertargeting/phantomthief/proc/handlefilterstuff(mob/living/user, was_forced = FALSE) - if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + if(!SEND_SIGNAL(user, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_ACTIVE)) user.remove_filter("phantomthief") else user.add_filter("phantomthief", 4, list(type = "drop_shadow", x = filter_x, y = filter_y, size = filter_size, color = filter_color)) diff --git a/code/datums/components/radioactive.dm b/code/datums/components/radioactive.dm index decc2dd65c..f12e8bf007 100644 --- a/code/datums/components/radioactive.dm +++ b/code/datums/components/radioactive.dm @@ -69,8 +69,9 @@ out += "[out ? " and it " : "[master] "]seems to be glowing a bit." if(RAD_AMOUNT_HIGH to INFINITY) //At this level the object can contaminate other objects out += "[out ? " and it " : "[master] "]hurts to look at." - else - out += "." + if(!LAZYLEN(out)) + return + out += "." examine_list += out.Join() /datum/component/radioactive/proc/rad_attack(datum/source, atom/movable/target, mob/living/user) diff --git a/code/datums/components/rotation.dm b/code/datums/components/rotation.dm index 6a32a46aef..f5da669c3a 100644 --- a/code/datums/components/rotation.dm +++ b/code/datums/components/rotation.dm @@ -23,18 +23,12 @@ if(can_user_rotate) src.can_user_rotate = can_user_rotate - else - src.can_user_rotate = CALLBACK(src,.proc/default_can_user_rotate) if(can_be_rotated) src.can_be_rotated = can_be_rotated - else - src.can_be_rotated = CALLBACK(src,.proc/default_can_be_rotated) if(after_rotation) src.after_rotation = after_rotation - else - src.after_rotation = CALLBACK(src,.proc/default_after_rotation) //Try Clockwise,counter,flip in order if(src.rotation_flags & ROTATION_FLIP) @@ -103,14 +97,34 @@ examine_list += "Alt-click to rotate it clockwise." /datum/component/simple_rotation/proc/HandRot(datum/source, mob/user, rotation = default_rotation_direction) - if(!can_be_rotated.Invoke(user, rotation) || !can_user_rotate.Invoke(user, rotation)) - return + if(can_be_rotated) + if(!can_be_rotated.Invoke(user, default_rotation_direction)) + return + else + if(!default_can_be_rotated(user, default_rotation_direction)) + return + if(can_user_rotate) + if(!can_user_rotate.Invoke(user, default_rotation_direction)) + return + else + if(!default_can_user_rotate(user, default_rotation_direction)) + return BaseRot(user, rotation) return TRUE /datum/component/simple_rotation/proc/WrenchRot(datum/source, obj/item/I, mob/living/user) - if(!can_be_rotated.Invoke(user,default_rotation_direction) || !can_user_rotate.Invoke(user,default_rotation_direction)) - return + if(can_be_rotated) + if(!can_be_rotated.Invoke(user, default_rotation_direction)) + return + else + if(!default_can_be_rotated(user, default_rotation_direction)) + return + if(can_user_rotate) + if(!can_user_rotate.Invoke(user, default_rotation_direction)) + return + else + if(!default_can_user_rotate(user, default_rotation_direction)) + return if(istype(I,/obj/item/wrench)) BaseRot(user,default_rotation_direction) return COMPONENT_NO_AFTERATTACK @@ -126,7 +140,10 @@ if(ROTATION_FLIP) rot_degree = 180 AM.setDir(turn(AM.dir,rot_degree)) - after_rotation.Invoke(user,rotation_type) + if(after_rotation) + after_rotation.Invoke(user, rotation_type) + else + default_after_rotation(user, rotation_type) /datum/component/simple_rotation/proc/default_can_user_rotate(mob/living/user, rotation_type) if(!istype(user) || !user.canUseTopic(parent, BE_CLOSE, NO_DEXTERY)) diff --git a/code/datums/components/spawner.dm b/code/datums/components/spawner.dm index fe86b60375..27bf4a5986 100644 --- a/code/datums/components/spawner.dm +++ b/code/datums/components/spawner.dm @@ -8,6 +8,8 @@ var/list/faction = list("mining") /datum/component/spawner/Initialize(_mob_types, _spawn_time, _faction, _spawn_text, _max_mobs) + if(!isatom(parent)) + return COMPONENT_INCOMPATIBLE if(_spawn_time) spawn_time=_spawn_time if(_mob_types) @@ -19,20 +21,25 @@ if(_max_mobs) max_mobs=_max_mobs - RegisterSignal(parent, list(COMSIG_PARENT_QDELETING), .proc/stop_spawning) + RegisterSignal(parent, COMSIG_PARENT_QDELETING, .proc/stop_spawning) + RegisterSignal(parent, COMSIG_OBJ_ATTACK_GENERIC, .proc/on_attack_generic) START_PROCESSING(SSprocessing, src) /datum/component/spawner/process() try_spawn_mob() - -/datum/component/spawner/proc/stop_spawning(force, hint) +/datum/component/spawner/proc/stop_spawning(datum/source, force, hint) STOP_PROCESSING(SSprocessing, src) for(var/mob/living/simple_animal/L in spawned_mobs) if(L.nest == src) L.nest = null spawned_mobs = null +// Stopping clientless simple mobs' from indiscriminately bashing their own spawners due DestroySurroundings() et similars. +/datum/component/spawner/proc/on_attack_generic(datum/source, mob/user, damage_amount, damage_type, damage_flag, sound_effect, armor_penetration) + if(!user.client && ((user.faction & faction) || (user in spawned_mobs))) + return COMPONENT_STOP_GENERIC_ATTACK + /datum/component/spawner/proc/try_spawn_mob() var/atom/P = parent if(spawned_mobs.len >= max_mobs) diff --git a/code/datums/components/storage/concrete/_concrete.dm b/code/datums/components/storage/concrete/_concrete.dm index e044a59668..55c3e1d083 100644 --- a/code/datums/components/storage/concrete/_concrete.dm +++ b/code/datums/components/storage/concrete/_concrete.dm @@ -136,9 +136,7 @@ var/mob/M = parent.loc I.dropped(M) if(new_location) - //Reset the items values - _removal_reset(AM) - AM.forceMove(new_location) + AM.forceMove(new_location) // exited comsig will handle removal reset. //We don't want to call this if the item is being destroyed AM.on_exit_storage(src) else diff --git a/code/datums/components/storage/concrete/bag_of_holding.dm b/code/datums/components/storage/concrete/bag_of_holding.dm index 28b06b4867..e19edc89d8 100644 --- a/code/datums/components/storage/concrete/bag_of_holding.dm +++ b/code/datums/components/storage/concrete/bag_of_holding.dm @@ -34,3 +34,8 @@ qdel(A) return . = ..() + +/datum/component/storage/concrete/bluespace/bag_of_holding/can_be_inserted(obj/item/I, stop_messages = FALSE, mob/M) + if(I.GetComponent(/datum/component/storage/concrete/bluespace/bag_of_holding)) + return TRUE + return ..() diff --git a/code/datums/components/storage/concrete/pockets.dm b/code/datums/components/storage/concrete/pockets.dm index 851885b2ed..6a879a3fed 100644 --- a/code/datums/components/storage/concrete/pockets.dm +++ b/code/datums/components/storage/concrete/pockets.dm @@ -57,7 +57,7 @@ /obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/dropper, /obj/item/implanter, /obj/item/screwdriver, /obj/item/weldingtool/mini, /obj/item/firing_pin, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/automatic/magrifle/pistol, - /obj/item/toy/plush/snakeplushie + /obj/item/toy/plush/snakeplushie, /obj/item/gun/energy/e_gun/mini )) /datum/component/storage/concrete/pockets/shoes/clown/Initialize() @@ -68,7 +68,7 @@ /obj/item/scalpel, /obj/item/reagent_containers/syringe, /obj/item/dnainjector, /obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/dropper, /obj/item/implanter, /obj/item/screwdriver, /obj/item/weldingtool/mini, - /obj/item/firing_pin, /obj/item/bikehorn, /obj/item/gun/ballistic/automatic/pistol)) + /obj/item/firing_pin, /obj/item/bikehorn, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/energy/e_gun/mini)) /datum/component/storage/concrete/pockets/pocketprotector max_items = 3 diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index aad6e8289f..f93d40bb04 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -351,10 +351,14 @@ return master._removal_reset(thing) /datum/component/storage/proc/_remove_and_refresh(datum/source, atom/movable/thing) - _removal_reset(thing) if(LAZYACCESS(ui_item_blocks, thing)) - qdel(ui_item_blocks[thing]) + var/obj/screen/storage/volumetric_box/center/C = ui_item_blocks[thing] + for(var/i in can_see_contents()) //runtimes result if mobs can access post deletion. + var/mob/M = i + M.client?.screen -= C.on_screen_objects() ui_item_blocks -= thing + qdel(C) + _removal_reset(thing) // THIS NEEDS TO HAPPEN AFTER SO LAYERING DOESN'T BREAK! refresh_mob_views() //Call this proc to handle the removal of an item from the storage item. The item will be moved to the new_location target, if that is null it's being deleted @@ -567,10 +571,9 @@ return if(rustle_sound) playsound(parent, "rustle", 50, 1, -5) - for(var/mob/viewing in viewers(user, null)) - if(M == viewing) - to_chat(usr, "You put [I] [insert_preposition]to [parent].") - else if(in_range(M, viewing)) //If someone is standing close enough, they can tell what it is... + to_chat(user, "You put [I] [insert_preposition]to [parent].") + for(var/mob/viewing in fov_viewers(world.view, user)-M) + if(in_range(M, viewing)) //If someone is standing close enough, they can tell what it is... viewing.show_message("[M] puts [I] [insert_preposition]to [parent].", MSG_VISUAL) else if(I && I.w_class >= 3) //Otherwise they can only see large or normal items from a distance... viewing.show_message("[M] puts [I] [insert_preposition]to [parent].", MSG_VISUAL) diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index f37f574002..c7ac0d3549 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -92,6 +92,8 @@ var/list/volume_by_item = list() var/list/percentage_by_item = list() for(var/obj/item/I in contents) + if(QDELETED(I)) + continue volume = I.get_w_volume() used += volume volume_by_item[I] = volume @@ -123,6 +125,7 @@ var/obj/item/I // start at this pixel from screen_start_x. var/current_pixel = VOLUMETRIC_STORAGE_EDGE_PADDING + var/first = TRUE var/row = 1 LAZYINITLIST(ui_item_blocks) @@ -140,10 +143,10 @@ addrow = TRUE // now that we have pixels_to_use, place our thing and add it to the returned list. - - B.screen_loc = I.screen_loc = "[screen_start_x]:[round(current_pixel + (pixels_to_use * 0.5) + VOLUMETRIC_STORAGE_ITEM_PADDING, 1)],[screen_start_y+row-1]:[screen_pixel_y]" + B.screen_loc = I.screen_loc = "[screen_start_x]:[round(current_pixel + (pixels_to_use * 0.5) + (first? 0 : VOLUMETRIC_STORAGE_ITEM_PADDING), 1)],[screen_start_y+row-1]:[screen_pixel_y]" // add the used pixels to pixel after we place the object - current_pixel += pixels_to_use + VOLUMETRIC_STORAGE_ITEM_PADDING + current_pixel += pixels_to_use + (first? 0 : VOLUMETRIC_STORAGE_ITEM_PADDING) + first = FALSE //apply padding to everything after this // set various things B.set_pixel_size(pixels_to_use) @@ -163,6 +166,7 @@ // go up a row if needed if(addrow) row++ + first = TRUE //first in the row, don't apply between-item padding. current_pixel = VOLUMETRIC_STORAGE_EDGE_PADDING // Then, continuous section. @@ -233,7 +237,7 @@ if(!M.client) return TRUE UnregisterSignal(M, COMSIG_MOB_CLIENT_LOGOUT) - M.client.screen -= list(ui_boxes, ui_close, ui_left, ui_continuous) + get_ui_item_objects_hide() + M.client.screen -= list(ui_boxes, ui_close, ui_left, ui_continuous) + get_ui_item_objects_hide(M) if(M.active_storage == src) M.active_storage = null LAZYREMOVE(is_using, M) @@ -249,8 +253,8 @@ /** * Gets the ui item objects to ui_hide. */ -/datum/component/storage/proc/get_ui_item_objects_hide() - if(!volumetric_ui()) +/datum/component/storage/proc/get_ui_item_objects_hide(mob/M) + if(!volumetric_ui() || M.client?.prefs?.no_tetris_storage) var/atom/real_location = real_location() return real_location.contents else diff --git a/code/datums/components/summoning.dm b/code/datums/components/summoning.dm index 61718301b3..1d66cf9307 100644 --- a/code/datums/components/summoning.dm +++ b/code/datums/components/summoning.dm @@ -59,7 +59,7 @@ var/mob/living/simple_animal/L = new chosen_mob_type(spawn_location) if(ishostile(L)) var/mob/living/simple_animal/hostile/H = L - H.friends += summoner // do not attack our summon boy + H.friends[summoner]++ // do not attack our summon boy spawned_mobs += L if(faction != null) L.faction = faction diff --git a/code/datums/components/swarming.dm b/code/datums/components/swarming.dm index 64844c4c32..e840788766 100644 --- a/code/datums/components/swarming.dm +++ b/code/datums/components/swarming.dm @@ -11,6 +11,17 @@ RegisterSignal(parent, COMSIG_MOVABLE_CROSSED, .proc/join_swarm) RegisterSignal(parent, COMSIG_MOVABLE_UNCROSSED, .proc/leave_swarm) +/datum/component/swarming/Destroy() + if(is_swarming) + for(var/A in swarm_members) + var/datum/component/swarming/other_swarm = A + other_swarm.swarm_members -= src + swarm_members -= other_swarm + if(!length(other_swarm.swarm_members)) + other_swarm.unswarm() + unswarm() + return ..() + /datum/component/swarming/proc/join_swarm(datum/source, atom/movable/AM) var/datum/component/swarming/other_swarm = AM.GetComponent(/datum/component/swarming) if(!other_swarm) diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm index ddc47d59a1..bd12ecc092 100644 --- a/code/datums/components/tackle.dm +++ b/code/datums/components/tackle.dm @@ -163,24 +163,24 @@ if(-4 to -2) // glancing blow at best user.visible_message("[user] lands a weak [tackle_word] on [target], briefly knocking [target.p_them()] off-balance!", "You land a weak [tackle_word] on [target], briefly knocking [target.p_them()] off-balance!", target) to_chat(target, "[user] lands a weak [tackle_word] on you, briefly knocking you off-balance!") - user.Knockdown(30) + target.adjustStaminaLoss(15) target.apply_status_effect(STATUS_EFFECT_TASED_WEAK, 6 SECONDS) if(-1 to 0) // decent hit, both parties are about equally inconvenienced user.visible_message("[user] lands a passable [tackle_word] on [target], sending them both tumbling!", "You land a passable [tackle_word] on [target], sending you both tumbling!", target) to_chat(target, "[user] lands a passable [tackle_word] on you, sending you both tumbling!") - target.adjustStaminaLoss(stamina_cost) + target.adjustStaminaLoss(stamina_cost * 1.5) target.Paralyze(5) user.Knockdown(20) - target.Knockdown(25) + target.Knockdown(30) if(1 to 2) // solid hit, tackler has a slight advantage user.visible_message("[user] lands a solid [tackle_word] on [target], knocking them both down hard!", "You land a solid [tackle_word] on [target], knocking you both down hard!", target) to_chat(target, "[user] lands a solid [tackle_word] on you, knocking you both down hard!") - target.adjustStaminaLoss(30) + target.adjustStaminaLoss(40) target.Paralyze(5) user.Knockdown(10) target.Knockdown(20) @@ -192,9 +192,9 @@ user.SetKnockdown(0) user.set_resting(FALSE, TRUE, FALSE) user.forceMove(get_turf(target)) - target.adjustStaminaLoss(40) - target.Paralyze(5) - target.Knockdown(30) + target.adjustStaminaLoss(50) + target.Paralyze(3) //Otherwise the victim can just instantly get out of the grab. + target.DefaultCombatKnockdown(20) //So they cant get up instantly. if(ishuman(target) && iscarbon(user)) target.grabbedby(user) @@ -205,9 +205,9 @@ user.SetKnockdown(0) user.set_resting(FALSE, TRUE, FALSE) user.forceMove(get_turf(target)) - target.adjustStaminaLoss(40) - target.Paralyze(5) - target.Knockdown(30) + target.adjustStaminaLoss(65) + target.Paralyze(10) + target.DefaultCombatKnockdown(20) if(ishuman(target) && iscarbon(user)) target.grabbedby(user) target.grippedby(user, instant = TRUE) @@ -354,7 +354,7 @@ playsound(user, 'sound/effects/blobattack.ogg', 60, TRUE) playsound(user, 'sound/effects/splat.ogg', 70, TRUE) user.emote("scream") - user.gain_trauma(/datum/brain_trauma/severe/paralysis/paraplegic) // oopsie indeed! + user.gain_trauma(/datum/brain_trauma/severe/paralysis/spinesnapped) // oopsie indeed! shake_camera(user, 7, 7) user.overlay_fullscreen("flash", /obj/screen/fullscreen/flash) user.clear_fullscreen("flash", 4.5) @@ -415,10 +415,10 @@ for(var/i = 0, i < speed, i++) var/obj/item/shard/shard = new /obj/item/shard(get_turf(user)) //shard.embedding = list(embed_chance = 100, ignore_throwspeed_threshold = TRUE, impact_pain_mult=3, pain_chance=5) - //shard.AddElement(/datum/element/embed, shard.embedding) + shard.updateEmbedding() user.hitby(shard, skipcatch = TRUE, hitpush = FALSE) - //shard.embedding = list() - //shard.AddElement(/datum/element/embed, shard.embedding) + shard.embedding = list() + shard.updateEmbedding() W.obj_destruction() user.adjustStaminaLoss(10 * speed) user.DefaultCombatKnockdown(40) diff --git a/code/datums/components/tactical.dm b/code/datums/components/tactical.dm deleted file mode 100644 index b73c58604a..0000000000 --- a/code/datums/components/tactical.dm +++ /dev/null @@ -1,44 +0,0 @@ - -/datum/component/tactical - var/allowed_slot - -/datum/component/tactical/Initialize(allowed_slot) - if(!isitem(parent)) - return COMPONENT_INCOMPATIBLE - - src.allowed_slot = allowed_slot - -/datum/component/tactical/RegisterWithParent() - . = ..() - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/modify) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/unmodify) - -/datum/component/tactical/UnregisterFromParent() - . = ..() - UnregisterSignal(parent, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED)) - unmodify() - -/datum/component/tactical/Destroy() - unmodify() - return ..() - -/datum/component/tactical/proc/modify(obj/item/source, mob/user, slot) - if(allowed_slot && slot != allowed_slot) - unmodify() - return - - var/obj/item/master = parent - var/image/I = image(icon = master.icon, icon_state = master.icon_state, loc = user) - I.copy_overlays(master) - I.override = TRUE - source.add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/everyone, "sneaking_mission", I) - I.layer = ABOVE_MOB_LAYER - -/datum/component/tactical/proc/unmodify(obj/item/source, mob/user) - var/obj/item/master = source || parent - if(!user) - if(!ismob(master.loc)) - return - user = master.loc - - user.remove_alt_appearance("sneaking_mission") diff --git a/code/datums/components/twohanded.dm b/code/datums/components/twohanded.dm new file mode 100644 index 0000000000..77a9a79bf4 --- /dev/null +++ b/code/datums/components/twohanded.dm @@ -0,0 +1,311 @@ +/** + * Two Handed Component + * + * When applied to an item it will make it two handed + * + */ +/datum/component/two_handed + dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS // Only one of the component can exist on an item + var/wielded = FALSE /// Are we holding the two handed item properly + var/force_multiplier = 0 /// The multiplier applied to force when wielded, does not work with force_wielded, and force_unwielded + var/force_wielded = 0 /// The force of the item when weilded + var/force_unwielded = 0 /// The force of the item when unweilded + var/wieldsound = FALSE /// Play sound when wielded + var/unwieldsound = FALSE /// Play sound when unwielded + var/attacksound = FALSE /// Play sound on attack when wielded + var/require_twohands = FALSE /// Does it have to be held in both hands + var/icon_wielded = FALSE /// The icon that will be used when wielded + var/obj/item/offhand/offhand_item = null /// Reference to the offhand created for the item + var/sharpened_increase = 0 /// The amount of increase recived from sharpening the item + +/** + * Two Handed component + * + * vars: + * * require_twohands (optional) Does the item need both hands to be carried + * * wieldsound (optional) The sound to play when wielded + * * unwieldsound (optional) The sound to play when unwielded + * * attacksound (optional) The sound to play when wielded and attacking + * * force_multiplier (optional) The force multiplier when wielded, do not use with force_wielded, and force_unwielded + * * force_wielded (optional) The force setting when the item is wielded, do not use with force_multiplier + * * force_unwielded (optional) The force setting when the item is unwielded, do not use with force_multiplier + * * icon_wielded (optional) The icon to be used when wielded + */ +/datum/component/two_handed/Initialize(require_twohands=FALSE, wieldsound=FALSE, unwieldsound=FALSE, attacksound=FALSE, \ + force_multiplier=0, force_wielded=0, force_unwielded=0, icon_wielded=FALSE) + if(!isitem(parent)) + return COMPONENT_INCOMPATIBLE + + src.require_twohands = require_twohands + src.wieldsound = wieldsound + src.unwieldsound = unwieldsound + src.attacksound = attacksound + src.force_multiplier = force_multiplier + src.force_wielded = force_wielded + src.force_unwielded = force_unwielded + src.icon_wielded = icon_wielded + +// Inherit the new values passed to the component +/datum/component/two_handed/InheritComponent(datum/component/two_handed/new_comp, original, require_twohands, wieldsound, unwieldsound, \ + force_multiplier, force_wielded, force_unwielded, icon_wielded) + if(!original) + return + if(require_twohands) + src.require_twohands = require_twohands + if(wieldsound) + src.wieldsound = wieldsound + if(unwieldsound) + src.unwieldsound = unwieldsound + if(attacksound) + src.attacksound = attacksound + if(force_multiplier) + src.force_multiplier = force_multiplier + if(force_wielded) + src.force_wielded = force_wielded + if(force_unwielded) + src.force_unwielded = force_unwielded + if(icon_wielded) + src.icon_wielded = icon_wielded + +// register signals withthe parent item +/datum/component/two_handed/RegisterWithParent() + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop) + RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/on_attack_self) + RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/on_attack) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_ICON, .proc/on_update_icon) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/on_moved) + RegisterSignal(parent, COMSIG_ITEM_SHARPEN_ACT, .proc/on_sharpen) + +// Remove all siginals registered to the parent item +/datum/component/two_handed/UnregisterFromParent() + UnregisterSignal(parent, list(COMSIG_ITEM_EQUIPPED, + COMSIG_ITEM_DROPPED, + COMSIG_ITEM_ATTACK_SELF, + COMSIG_ITEM_ATTACK, + COMSIG_ATOM_UPDATE_ICON, + COMSIG_MOVABLE_MOVED, + COMSIG_ITEM_SHARPEN_ACT)) + +/// Triggered on equip of the item containing the component +/datum/component/two_handed/proc/on_equip(datum/source, mob/user, slot) + if(require_twohands && slot == SLOT_HANDS) // force equip the item + wield(user) + if(!user.is_holding(parent) && wielded && !require_twohands) + unwield(user) + +/// Triggered on drop of item containing the component +/datum/component/two_handed/proc/on_drop(datum/source, mob/user) + if(require_twohands) + unwield(user, show_message=TRUE) + if(wielded) + unwield(user) + if(source == offhand_item && !QDELETED(src)) + qdel(src) + +/// Triggered on attack self of the item containing the component +/datum/component/two_handed/proc/on_attack_self(datum/source, mob/user) + if(wielded) + unwield(user) + else + wield(user) + +/** + * Wield the two handed item in both hands + * + * vars: + * * user The mob/living/carbon that is wielding the item + */ +/datum/component/two_handed/proc/wield(mob/living/carbon/user) + if(wielded) + return + if(ismonkey(user)) + to_chat(user, "It's too heavy for you to wield fully.") + return + if(user.get_inactive_held_item()) + if(require_twohands) + to_chat(user, "[parent] is too cumbersome to carry in one hand!") + user.dropItemToGround(parent, force=TRUE) + else + to_chat(user, "You need your other hand to be empty!") + return + if(user.get_num_arms() < 2) + if(require_twohands) + user.dropItemToGround(parent, force=TRUE) + to_chat(user, "You don't have enough intact hands.") + return + + // wield update status + if(SEND_SIGNAL(parent, COMSIG_TWOHANDED_WIELD, user) & COMPONENT_TWOHANDED_BLOCK_WIELD) + return // blocked wield from item + wielded = TRUE + RegisterSignal(user, COMSIG_MOB_SWAP_HANDS, .proc/on_swap_hands) + + // update item stats and name + var/obj/item/parent_item = parent + if(force_multiplier) + parent_item.force *= force_multiplier + else if(force_wielded) + parent_item.force = force_wielded + if(sharpened_increase) + parent_item.force += sharpened_increase + parent_item.name = "[parent_item.name] (Wielded)" + parent_item.update_icon() + + if(iscyborg(user)) + to_chat(user, "You dedicate your module to [parent].") + else + to_chat(user, "You grab [parent] with both hands.") + + // Play sound if one is set + if(wieldsound) + playsound(parent_item.loc, wieldsound, 50, TRUE) + + // Let's reserve the other hand + offhand_item = new(user) + offhand_item.name = "[parent_item.name] - offhand" + offhand_item.desc = "Your second grip on [parent_item]." + offhand_item.wielded = TRUE + RegisterSignal(offhand_item, COMSIG_ITEM_DROPPED, .proc/on_drop) + user.put_in_inactive_hand(offhand_item) + +/** + * Unwield the two handed item + * + * vars: + * * user The mob/living/carbon that is unwielding the item + * * show_message (option) show a message to chat on unwield + */ +/datum/component/two_handed/proc/unwield(mob/living/carbon/user, show_message=TRUE) + if(!wielded || !user) + return + + // wield update status + wielded = FALSE + UnregisterSignal(user, COMSIG_MOB_SWAP_HANDS) + SEND_SIGNAL(parent, COMSIG_TWOHANDED_UNWIELD, user) + + // update item stats + var/obj/item/parent_item = parent + if(sharpened_increase) + parent_item.force -= sharpened_increase + if(force_multiplier) + parent_item.force /= force_multiplier + else if(force_unwielded) + parent_item.force = force_unwielded + + // update the items name to remove the wielded status + var/sf = findtext(parent_item.name, " (Wielded)", -10) // 10 == length(" (Wielded)") + if(sf) + parent_item.name = copytext(parent_item.name, 1, sf) + else + parent_item.name = "[initial(parent_item.name)]" + + // Update icons + parent_item.update_icon() + if(user.get_item_by_slot(ITEM_SLOT_BACK) == parent) + user.update_inv_back() + else + user.update_inv_hands() + + // if the item requires two handed drop the item on unwield + if(require_twohands) + user.dropItemToGround(parent, force=TRUE) + + // Show message if requested + if(show_message) + if(iscyborg(user)) + to_chat(user, "You free up your module.") + else if(require_twohands) + to_chat(user, "You drop [parent].") + else + to_chat(user, "You are now carrying [parent] with one hand.") + + // Play sound if set + if(unwieldsound) + playsound(parent_item.loc, unwieldsound, 50, TRUE) + + // Remove the object in the offhand + if(offhand_item) + UnregisterSignal(offhand_item, COMSIG_ITEM_DROPPED) + qdel(offhand_item) + // Clear any old refrence to an item that should be gone now + offhand_item = null + +/** + * on_attack triggers on attack with the parent item + */ +/datum/component/two_handed/proc/on_attack(obj/item/source, mob/living/target, mob/living/user) + if(wielded && attacksound) + var/obj/item/parent_item = parent + playsound(parent_item.loc, attacksound, 50, TRUE) + +/** + * on_update_icon triggers on call to update parent items icon + * + * Updates the icon using icon_wielded if set + */ +/datum/component/two_handed/proc/on_update_icon(datum/source) + if(icon_wielded && wielded) + var/obj/item/parent_item = parent + if(parent_item) + parent_item.icon_state = icon_wielded + return COMSIG_ATOM_NO_UPDATE_ICON_STATE + +/** + * on_moved Triggers on item moved + */ +/datum/component/two_handed/proc/on_moved(datum/source, mob/user, dir) + unwield(user) + +/** + * on_swap_hands Triggers on swapping hands, blocks swap if the other hand is busy + */ +/datum/component/two_handed/proc/on_swap_hands(mob/user, obj/item/held_item) + if(!held_item) + return + if(held_item == parent) + return COMPONENT_BLOCK_SWAP + +/** + * on_sharpen Triggers on usage of a sharpening stone on the item + */ +/datum/component/two_handed/proc/on_sharpen(obj/item/item, amount, max_amount) + if(!item) + return COMPONENT_BLOCK_SHARPEN_BLOCKED + if(sharpened_increase) + return COMPONENT_BLOCK_SHARPEN_ALREADY + var/wielded_val = 0 + if(force_multiplier) + var/obj/item/parent_item = parent + if(wielded) + wielded_val = parent_item.force + else + wielded_val = parent_item.force * force_multiplier + else + wielded_val = force_wielded + if(wielded_val > max_amount) + return COMPONENT_BLOCK_SHARPEN_MAXED + sharpened_increase = min(amount, (max_amount - wielded_val)) + return COMPONENT_BLOCK_SHARPEN_APPLIED + +/** + * The offhand dummy item for two handed items + * + */ +/obj/item/offhand + name = "offhand" + icon_state = "offhand" + w_class = WEIGHT_CLASS_HUGE + item_flags = ABSTRACT + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + var/wielded = FALSE // Off Hand tracking of wielded status + +/obj/item/offhand/Destroy() + wielded = FALSE + return ..() + +/obj/item/offhand/equipped(mob/user, slot) + . = ..() + if(wielded && !user.is_holding(src) && !QDELETED(src)) + qdel(src) diff --git a/code/datums/datum.dm b/code/datums/datum.dm index 6202ac444e..7756cfd906 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -39,6 +39,9 @@ /// A weak reference to another datum var/datum/weakref/weak_reference + ///Lazy associative list of currently active cooldowns. + var/list/cooldowns + #ifdef TESTING var/running_find_references var/last_find_references = 0 @@ -201,3 +204,34 @@ qdel(D) else return returned + +/** + * Callback called by a timer to end an associative-list-indexed cooldown. + * + * Arguments: + * * source - datum storing the cooldown + * * index - string index storing the cooldown on the cooldowns associative list + * + * This sends a signal reporting the cooldown end. + */ +/proc/end_cooldown(datum/source, index) + if(QDELETED(source)) + return + SEND_SIGNAL(source, COMSIG_CD_STOP(index)) + TIMER_COOLDOWN_END(source, index) + + +/** + * Proc used by stoppable timers to end a cooldown before the time has ran out. + * + * Arguments: + * * source - datum storing the cooldown + * * index - string index storing the cooldown on the cooldowns associative list + * + * This sends a signal reporting the cooldown end, passing the time left as an argument. + */ +/proc/reset_cooldown(datum/source, index) + if(QDELETED(source)) + return + SEND_SIGNAL(source, COMSIG_CD_RESET(index), S_TIMER_COOLDOWN_TIMELEFT(source, index)) + TIMER_COOLDOWN_END(source, index) diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm index a7a61802d3..216d82b4c8 100644 --- a/code/datums/diseases/_MobProcs.dm +++ b/code/datums/diseases/_MobProcs.dm @@ -145,4 +145,10 @@ return !is_mouth_covered() /mob/living/carbon/CanSpreadAirborneDisease() - return !((head && (head.flags_cover & HEADCOVERSMOUTH) && (head.armor.getRating("bio") >= 25)) || (wear_mask && (wear_mask.flags_cover & MASKCOVERSMOUTH) && (wear_mask.armor.getRating("bio") >= 25))) \ No newline at end of file + return !((head && (head.flags_cover & HEADCOVERSMOUTH) && (head.armor.getRating("bio") >= 25)) || (wear_mask && (wear_mask.flags_cover & MASKCOVERSMOUTH) && (wear_mask.armor.getRating("bio") >= 25))) + +/mob/living/proc/set_shocked() + flags_1 |= SHOCKED_1 + +/mob/living/proc/reset_shocked() + flags_1 &= ~ SHOCKED_1 \ No newline at end of file diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index 1bb927aa12..e90eededd9 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -20,11 +20,11 @@ /datum/disease/transformation/Copy() var/datum/disease/transformation/D = ..() - D.stage1 = stage1.Copy() - D.stage2 = stage2.Copy() - D.stage3 = stage3.Copy() - D.stage4 = stage4.Copy() - D.stage5 = stage5.Copy() + D.stage1 = stage1?.Copy() + D.stage2 = stage2?.Copy() + D.stage3 = stage3?.Copy() + D.stage4 = stage4?.Copy() + D.stage5 = stage5?.Copy() D.new_form = D.new_form return D @@ -52,9 +52,9 @@ to_chat(affected_mob, pick(stage5)) if(QDELETED(affected_mob)) return - if(affected_mob.notransform) + if(affected_mob.mob_transforming) return - affected_mob.notransform = 1 + affected_mob.mob_transforming = 1 for(var/obj/item/W in affected_mob.get_equipped_items(TRUE)) affected_mob.dropItemToGround(W) for(var/obj/item/I in affected_mob.held_items) diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 26786da776..80059bece7 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -47,8 +47,8 @@ destination.dna.uni_identity = uni_identity destination.dna.blood_type = blood_type destination.dna.skin_tone_override = skin_tone_override - destination.set_species(species.type, icon_update=0) destination.dna.features = features.Copy() + destination.set_species(species.type, icon_update=0) destination.dna.real_name = real_name destination.dna.nameless = nameless destination.dna.custom_species = custom_species @@ -246,6 +246,17 @@ construct_block(GLOB.mam_body_markings_list.Find(features["mam_body_markings"]), GLOB.mam_body_markings_list.len) if(DNA_TAUR_BLOCK) construct_block(GLOB.taur_list.Find(features["taur"]), GLOB.taur_list.len) + if(species.mutant_bodyparts["taur"] && ishuman(holder)) + var/datum/sprite_accessory/taur/T = GLOB.taur_list[features["taur"]] + switch(T?.taur_mode) + if(STYLE_HOOF_TAURIC) + H.physiology.footstep_type = FOOTSTEP_MOB_SHOE + if(STYLE_PAW_TAURIC) + H.physiology.footstep_type = FOOTSTEP_MOB_CLAW + if(STYLE_SNEK_TAURIC) + H.physiology.footstep_type = FOOTSTEP_MOB_CRAWL + else + H.physiology.footstep_type = null //Please use add_mutation or activate_mutation instead /datum/dna/proc/force_give(datum/mutation/human/HM) @@ -380,16 +391,6 @@ /mob/living/carbon/human/proc/hardset_dna(ui, list/mutation_index, newreal_name, newblood_type, datum/species/mrace, newfeatures) - if(newfeatures) - var/old_size = dna.features["body_size"] - dna.features = newfeatures - dna.update_body_size(old_size) - - if(mrace) - var/datum/species/newrace = new mrace.type - newrace.copy_properties_from(mrace) - set_species(newrace, icon_update=0) - if(newreal_name) real_name = newreal_name dna.generate_unique_enzymes() @@ -399,7 +400,17 @@ if(ui) dna.uni_identity = ui - updateappearance(icon_update=0) + updateappearance(icon_update=FALSE) + + if(newfeatures) + var/old_size = dna.features["body_size"] + dna.features = newfeatures + dna.update_body_size(old_size) + + if(mrace) + var/datum/species/newrace = new mrace.type + newrace.copy_properties_from(mrace) + set_species(newrace, icon_update=FALSE) if(LAZYLEN(mutation_index)) dna.mutation_index = mutation_index.Copy() @@ -667,7 +678,7 @@ holder.update_transform() var/danger = CONFIG_GET(number/threshold_body_size_slowdown) if(features["body_size"] < danger) - var/slowdown = 1 + round(danger/features["body_size"], 0.1) * CONFIG_GET(number/body_size_slowdown_multiplier) + var/slowdown = (1 - round(features["body_size"] / danger, 0.1)) * CONFIG_GET(number/body_size_slowdown_multiplier) holder.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/small_stride, TRUE, slowdown) else if(old_size < danger) holder.remove_movespeed_modifier(/datum/movespeed_modifier/small_stride) diff --git a/code/datums/dog_fashion.dm b/code/datums/dog_fashion.dm index b9e774aa50..744f57c391 100644 --- a/code/datums/dog_fashion.dm +++ b/code/datums/dog_fashion.dm @@ -175,11 +175,6 @@ name = "Trooper REAL_NAME" desc = "That's not red paint. That's real corgi blood." -/datum/dog_fashion/head/colour - name = "Stylish REAL_NAME" - desc = "From the tips of their paws to the top of their head, they look like a made bed." - emote_see = list("tries to tap dances.","looks sadly at others outfits...","barks at bad fashion!") - /datum/dog_fashion/head/telegram name = "Messenger REAL_NAME" desc = "Dont shoot the messenger..." diff --git a/code/datums/elements/_element.dm b/code/datums/elements/_element.dm index f74dcd0b6e..a147325170 100644 --- a/code/datums/elements/_element.dm +++ b/code/datums/elements/_element.dm @@ -19,11 +19,13 @@ SHOULD_CALL_PARENT(1) if(type == /datum/element) return ELEMENT_INCOMPATIBLE + SEND_SIGNAL(target, COMSIG_ELEMENT_ATTACH, src) if(element_flags & ELEMENT_DETACH) RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/Detach, override = TRUE) /// Deactivates the functionality defines by the element on the given datum /datum/element/proc/Detach(datum/source, force) + SEND_SIGNAL(source, COMSIG_ELEMENT_DETACH, src) SHOULD_CALL_PARENT(1) UnregisterSignal(source, COMSIG_PARENT_QDELETING) diff --git a/code/datums/elements/art.dm b/code/datums/elements/art.dm new file mode 100644 index 0000000000..960d22af56 --- /dev/null +++ b/code/datums/elements/art.dm @@ -0,0 +1,64 @@ + +#define BAD_ART 12.5 +#define GOOD_ART 25 +#define GREAT_ART 50 + +/datum/element/art + element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH + id_arg_index = 2 + var/impressiveness = 0 + +/datum/element/art/Attach(datum/target, impress) + . = ..() + if(. == ELEMENT_INCOMPATIBLE || !isatom(target) || isarea(target)) + return ELEMENT_INCOMPATIBLE + impressiveness = impress + if(isobj(target)) + RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/on_obj_examine) + if(isstructure(target)) + RegisterSignal(target, COMSIG_ATOM_ATTACK_HAND, .proc/on_attack_hand) + if(isitem(target)) + RegisterSignal(target, COMSIG_ITEM_ATTACK_SELF, .proc/apply_moodlet) + else + RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/on_other_examine) + +/datum/element/art/Detach(datum/target) + UnregisterSignal(target, list(COMSIG_PARENT_EXAMINE, COMSIG_ATOM_ATTACK_HAND, COMSIG_ITEM_ATTACK_SELF)) + return ..() + +/datum/element/art/proc/apply_moodlet(atom/source, mob/M, impress) + M.visible_message("[M] stops and looks intently at [source].", \ + "You stop to take in [source].") + switch(impress) + if (0 to BAD_ART) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "artbad", /datum/mood_event/artbad) + if (BAD_ART to GOOD_ART) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "artok", /datum/mood_event/artok) + if (GOOD_ART to GREAT_ART) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "artgood", /datum/mood_event/artgood) + if(GREAT_ART to INFINITY) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "artgreat", /datum/mood_event/artgreat) + +/datum/element/art/proc/on_other_examine(atom/source, mob/M) + apply_moodlet(source, M, impressiveness) + +/datum/element/art/proc/on_obj_examine(atom/source, mob/M) + var/obj/O = source + apply_moodlet(source, M, impressiveness *(O.obj_integrity/O.max_integrity)) + +/datum/element/art/proc/on_attack_hand(atom/source, mob/M) + to_chat(M, "You start examining [source]...") + if(!do_after(M, 20, target = source)) + return + on_obj_examine(source, M) + +/datum/element/art/rev + +/datum/element/art/rev/apply_moodlet(atom/source, mob/M, impress) + M.visible_message("[M] stops to inspect [source].", \ + "You take in [source], inspecting the fine craftsmanship of the proletariat.") + + if(M.mind && M.mind.has_antag_datum(/datum/antagonist/rev)) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "artgreat", /datum/mood_event/artgreat) + else + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "artbad", /datum/mood_event/artbad) diff --git a/code/datums/elements/beauty.dm b/code/datums/elements/beauty.dm new file mode 100644 index 0000000000..8895026967 --- /dev/null +++ b/code/datums/elements/beauty.dm @@ -0,0 +1,37 @@ +/datum/element/beauty + element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH + id_arg_index = 2 + var/beauty = 0 + +/datum/element/beauty/Attach(datum/target, beautyamount) + . = ..() + if(. == ELEMENT_INCOMPATIBLE || !isatom(target) || isarea(target)) + return ELEMENT_INCOMPATIBLE + beauty = beautyamount + + if(ismovable(target)) + RegisterSignal(target, COMSIG_ENTER_AREA, .proc/enter_area) + RegisterSignal(target, COMSIG_EXIT_AREA, .proc/exit_area) + + var/area/A = get_area(target) + if(A) + enter_area(null, A) + +/datum/element/beauty/Detach(datum/target) + UnregisterSignal(target, list(COMSIG_ENTER_AREA, COMSIG_EXIT_AREA)) + var/area/A = get_area(target) + if(A) + exit_area(null, A) + return ..() + +/datum/element/beauty/proc/enter_area(datum/source, area/A) + if(A.outdoors) + return + A.totalbeauty += beauty + A.update_beauty() + +/datum/element/beauty/proc/exit_area(datum/source, area/A) + if(A.outdoors) + return + A.totalbeauty -= beauty + A.update_beauty() diff --git a/code/datums/elements/decal.dm b/code/datums/elements/decal.dm new file mode 100644 index 0000000000..4bd482915a --- /dev/null +++ b/code/datums/elements/decal.dm @@ -0,0 +1,75 @@ +/datum/element/decal + element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH + id_arg_index = 2 + var/cleanable + var/description + var/mutable_appearance/pic + var/list/num_decals_per_atom + + var/first_dir // This stores the direction of the decal compared to the parent facing NORTH + +/datum/element/decal/Attach(datum/target, _icon, _icon_state, _dir, _cleanable=CLEAN_GOD, _color, _layer=TURF_LAYER, _description, _alpha=255) + . = ..() + if(. == ELEMENT_INCOMPATIBLE || !_icon || !_icon_state || !isatom(target)) + return ELEMENT_INCOMPATIBLE + var/atom/A = target + if(!pic) + // It has to be made from an image or dir breaks because of a byond bug + var/temp_image = image(_icon, null, _icon_state, _layer, _dir) + pic = new(temp_image) + pic.color = _color + pic.alpha = _alpha + first_dir = _dir + description = _description + cleanable = _cleanable + + LAZYINITLIST(num_decals_per_atom) + + if(!num_decals_per_atom[A]) + if(first_dir) + RegisterSignal(A, COMSIG_ATOM_DIR_CHANGE, .proc/rotate_react) + if(cleanable) + RegisterSignal(A, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean_react) + if(description) + RegisterSignal(A, COMSIG_PARENT_EXAMINE, .proc/examine) + + apply(A, TRUE) + + num_decals_per_atom[A]++ + +/datum/element/decal/Detach(datum/target) + var/atom/A = target + remove(A, A.dir) + UnregisterSignal(A, list(COMSIG_ATOM_DIR_CHANGE, COMSIG_COMPONENT_CLEAN_ACT, COMSIG_PARENT_EXAMINE)) + LAZYREMOVE(num_decals_per_atom, A) + return ..() + +/datum/element/decal/proc/remove(atom/target, old_dir) + pic.dir = first_dir == NORTH ? target.dir : turn(first_dir, dir2angle(old_dir)) + for(var/i in 1 to num_decals_per_atom[target]) + target.cut_overlay(pic, TRUE) + if(isitem(target)) + addtimer(CALLBACK(target, /obj/item/.proc/update_slot_icon), 0, TIMER_UNIQUE) + +/datum/element/decal/proc/apply(atom/target, init = FALSE) + pic.dir = first_dir == NORTH ? target.dir : turn(first_dir, dir2angle(target.dir)) + if(init) + target.add_overlay(pic, TRUE) + else + for(var/i in 1 to num_decals_per_atom[target]) + target.add_overlay(pic, TRUE) + if(isitem(target)) + addtimer(CALLBACK(target, /obj/item/.proc/update_slot_icon), 0, TIMER_UNIQUE) + +/datum/element/decal/proc/rotate_react(datum/source, old_dir, new_dir) + if(old_dir == new_dir) + return + remove(source, old_dir) + apply(source) + +/datum/element/decal/proc/clean_react(datum/source, strength) + if(strength >= cleanable) + Detach(source) + +/datum/element/decal/proc/examine(datum/source, mob/user, list/examine_list) + examine_list += description diff --git a/code/datums/elements/dwarfism.dm b/code/datums/elements/dwarfism.dm new file mode 100644 index 0000000000..fefbe4fbe7 --- /dev/null +++ b/code/datums/elements/dwarfism.dm @@ -0,0 +1,42 @@ +#define SHORT 4/5 +#define TALL 5/4 + +///Very similar to squish, but for dwarves and shorties +/datum/element/dwarfism + element_flags = ELEMENT_DETACH|ELEMENT_BESPOKE + id_arg_index = 2 + var/comsig + var/list/attached_targets = list() + +/datum/element/dwarfism/Attach(datum/target, comsig, comsig_target) + . = ..() + if(!isliving(target)) + return ELEMENT_INCOMPATIBLE + + src.comsig = comsig + + var/mob/living/L = target + if(L.lying != 0) + L.transform = L.transform.Scale(SHORT, 1) + else + L.transform = L.transform.Scale(1, SHORT) + attached_targets[target] = comsig_target + RegisterSignal(target, comsig, .proc/check_loss) //Second arg of the signal will be checked against the comsig_target. + +/datum/element/dwarfism/proc/check_loss(mob/living/L, comsig_target) + if(attached_targets[L] == comsig_target) + Detach(L) + +/datum/element/dwarfism/Detach(mob/living/L) + . = ..() + if(QDELETED(L)) + return + if(L.lying != 0) + L.transform = L.transform.Scale(TALL, 1) + else + L.transform = L.transform.Scale(1, TALL) + UnregisterSignal(L, comsig) + attached_targets -= L + +#undef SHORT +#undef TALL diff --git a/code/datums/elements/earhealing.dm b/code/datums/elements/earhealing.dm index 7477742673..91c2120fc2 100644 --- a/code/datums/elements/earhealing.dm +++ b/code/datums/elements/earhealing.dm @@ -4,7 +4,7 @@ var/list/user_by_item = list() /datum/element/earhealing/New() - START_PROCESSING(SSdcs, src) + START_PROCESSING(SSobj, src) /datum/element/earhealing/Attach(datum/target) . = ..() diff --git a/code/datums/elements/embed.dm b/code/datums/elements/embed.dm new file mode 100644 index 0000000000..8a7acde9cb --- /dev/null +++ b/code/datums/elements/embed.dm @@ -0,0 +1,227 @@ +/* + The presence of this element allows an item (or a projectile carrying an item) to embed itself in a human or turf when it is thrown into a target (whether by hand, gun, or explosive wave) with either + at least 4 throwspeed (EMBED_THROWSPEED_THRESHOLD) or ignore_throwspeed_threshold set to TRUE. Items meant to be used as shrapnel for projectiles should have ignore_throwspeed_threshold set to true. + + Whether we're dealing with a direct /obj/item (throwing a knife at someone) or an /obj/projectile with a shrapnel_type, how we handle things plays out the same, with one extra step separating them. + Items simply make their COMSIG_MOVABLE_IMPACT or COMSIG_MOVABLE_IMPACT_ZONE check (against a closed turf or a carbon, respectively), while projectiles check on COMSIG_PROJECTILE_SELF_ON_HIT. + Upon a projectile hitting a valid target, it spawns whatever type of payload it has defined, then has that try to embed itself in the target on its own. + + Otherwise non-embeddable or stickable items can be made embeddable/stickable through wizard events/sticky tape/admin memes. +*/ + +#define STANDARD_WALL_HARDNESS 40 + +/datum/element/embed + element_flags = ELEMENT_BESPOKE + id_arg_index = 2 + var/initialized = FALSE /// whether we can skip assigning all the vars (since these are bespoke elements, we don't have to reset the vars every time we attach to something, we already know what we are!) + + // all of this stuff is explained in _DEFINES/combat.dm + var/embed_chance + var/fall_chance + var/pain_chance + var/pain_mult + var/remove_pain_mult + var/impact_pain_mult + var/rip_time + var/ignore_throwspeed_threshold + var/jostle_chance + var/jostle_pain_mult + var/pain_stam_pct + var/payload_type + var/embed_chance_turf_mod + +/datum/element/embed/Attach(datum/target, embed_chance, fall_chance, pain_chance, pain_mult, remove_pain_mult, impact_pain_mult, rip_time, ignore_throwspeed_threshold, jostle_chance, jostle_pain_mult, pain_stam_pct, embed_chance_turf_mod, projectile_payload=/obj/item/shard) + . = ..() + + if(!isitem(target) && !isprojectile(target)) + return ELEMENT_INCOMPATIBLE + + if(isitem(target)) + RegisterSignal(target, COMSIG_MOVABLE_IMPACT_ZONE, .proc/checkEmbedMob) + RegisterSignal(target, COMSIG_MOVABLE_IMPACT, .proc/checkEmbedOther) + RegisterSignal(target, COMSIG_ELEMENT_ATTACH, .proc/severancePackage) + RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/examined) + RegisterSignal(target, COMSIG_EMBED_TRY_FORCE, .proc/tryForceEmbed) + RegisterSignal(target, COMSIG_ITEM_DISABLE_EMBED, .proc/detachFromWeapon) + if(!initialized) + src.embed_chance = embed_chance + src.fall_chance = fall_chance + src.pain_chance = pain_chance + src.pain_mult = pain_mult + src.remove_pain_mult = remove_pain_mult + src.rip_time = rip_time + src.impact_pain_mult = impact_pain_mult + src.ignore_throwspeed_threshold = ignore_throwspeed_threshold + src.jostle_chance = jostle_chance + src.jostle_pain_mult = jostle_pain_mult + src.pain_stam_pct = pain_stam_pct + src.embed_chance_turf_mod = embed_chance_turf_mod + initialized = TRUE + else + payload_type = projectile_payload + RegisterSignal(target, COMSIG_PROJECTILE_SELF_ON_HIT, .proc/checkEmbedProjectile) + + +/datum/element/embed/Detach(obj/target) + . = ..() + if(isitem(target)) + UnregisterSignal(target, list(COMSIG_MOVABLE_IMPACT_ZONE, COMSIG_ELEMENT_ATTACH, COMSIG_MOVABLE_IMPACT, COMSIG_PARENT_EXAMINE, COMSIG_EMBED_TRY_FORCE, COMSIG_ITEM_DISABLE_EMBED)) + else + UnregisterSignal(target, list(COMSIG_PROJECTILE_SELF_ON_HIT)) + + +/// Checking to see if we're gonna embed into a human +/datum/element/embed/proc/checkEmbedMob(obj/item/weapon, mob/living/carbon/victim, hit_zone, datum/thrownthing/throwingdatum, blocked = FALSE, forced = FALSE) + if(blocked || !istype(victim) || HAS_TRAIT(victim, TRAIT_PIERCEIMMUNE)) + return + + var/actual_chance = embed_chance + + if(!weapon.isEmbedHarmless()) // all the armor in the world won't save you from a kick me sign + var/armor = max(victim.run_armor_check(hit_zone, "bullet", silent=TRUE), victim.run_armor_check(hit_zone, "bomb", silent=TRUE)) // we'll be nice and take the better of bullet and bomb armor + + if(armor) // we only care about armor penetration if there's actually armor to penetrate + var/pen_mod = -armor + weapon.armour_penetration // even a little bit of armor can make a big difference for shrapnel with large negative armor pen + actual_chance += pen_mod // doing the armor pen as a separate calc just in case this ever gets expanded on + if(actual_chance <= 0) + victim.visible_message("[weapon] bounces off [victim]'s armor!", "[weapon] bounces off your armor!", vision_distance = COMBAT_MESSAGE_RANGE) + return + + var/roll_embed = prob(actual_chance) + var/pass = forced || ((((throwingdatum ? throwingdatum.speed : weapon.throw_speed) >= EMBED_THROWSPEED_THRESHOLD) || ignore_throwspeed_threshold) && roll_embed && (!HAS_TRAIT(victim, TRAIT_AUTO_CATCH_ITEM) || victim.incapacitated() || victim.get_active_held_item())) + if(!pass) + return + + var/obj/item/bodypart/limb = victim.get_bodypart(hit_zone) || pick(victim.bodyparts) + victim.AddComponent(/datum/component/embedded,\ + weapon,\ + throwingdatum,\ + part = limb,\ + embed_chance = embed_chance,\ + fall_chance = fall_chance,\ + pain_chance = pain_chance,\ + pain_mult = pain_mult,\ + remove_pain_mult = remove_pain_mult,\ + rip_time = rip_time,\ + ignore_throwspeed_threshold = ignore_throwspeed_threshold,\ + jostle_chance = jostle_chance,\ + jostle_pain_mult = jostle_pain_mult,\ + pain_stam_pct = pain_stam_pct,\ + embed_chance_turf_mod = embed_chance_turf_mod) + + return TRUE + +/// We need the hit_zone if we're embedding into a human, so this proc only handles if we're embedding into a turf +/datum/element/embed/proc/checkEmbedOther(obj/item/weapon, turf/closed/hit, datum/thrownthing/throwingdatum, forced=FALSE) + if(!istype(hit)) + return + + var/chance = embed_chance + embed_chance_turf_mod + if(iswallturf(hit)) + var/turf/closed/wall/W = hit + chance += 2 * (W.hardness - STANDARD_WALL_HARDNESS) + + if(!forced && chance <= 0 || embed_chance_turf_mod <= -100) + return + + var/pass = ((((throwingdatum ? throwingdatum.speed : weapon.throw_speed) >= EMBED_THROWSPEED_THRESHOLD) || ignore_throwspeed_threshold) && prob(chance)) + if(!pass) + return + + hit.AddComponent(/datum/component/embedded,\ + weapon,\ + throwingdatum,\ + embed_chance = embed_chance,\ + fall_chance = fall_chance,\ + pain_chance = pain_chance,\ + pain_mult = pain_mult,\ + remove_pain_mult = remove_pain_mult,\ + rip_time = rip_time,\ + ignore_throwspeed_threshold = ignore_throwspeed_threshold,\ + jostle_chance = jostle_chance,\ + jostle_pain_mult = jostle_pain_mult,\ + pain_stam_pct = pain_stam_pct,\ + embed_chance_turf_mod = embed_chance_turf_mod) + + return TRUE + +///A different embed element has been attached, so we'll detach and let them handle things +/datum/element/embed/proc/severancePackage(obj/item/weapon, datum/element/E) + if(istype(E, /datum/element/embed)) + Detach(weapon) + +///If we don't want to be embeddable anymore (deactivating an e-dagger for instance) +/datum/element/embed/proc/detachFromWeapon(obj/weapon) + Detach(weapon) + +///Someone inspected our embeddable item +/datum/element/embed/proc/examined(obj/item/I, mob/user, list/examine_list) + if(I.isEmbedHarmless()) + examine_list += "[I] feels sticky, and could probably get stuck to someone if thrown properly!" + else + examine_list += "[I] has a fine point, and could probably embed in someone if thrown properly!" + +/** + * checkEmbedProjectile() is what we get when a projectile with a defined shrapnel_type impacts a target. + * + * If we hit a valid target (carbon or closed turf), we create the shrapnel_type object and immediately call tryEmbed() on it, targeting what we impacted. That will lead + * it to call tryForceEmbed() on its own embed element (it's out of our hands here, our projectile is done), where it will run through all the checks it needs to. + */ +/datum/element/embed/proc/checkEmbedProjectile(obj/item/projectile/P, atom/movable/firer, atom/hit, angle, hit_zone) + if(!iscarbon(hit) && !isclosedturf(hit)) + Detach(P) + return // we don't care + + var/obj/item/payload = new payload_type(get_turf(hit)) + var/did_embed + if(iscarbon(hit)) + var/mob/living/carbon/C = hit + var/obj/item/bodypart/limb + limb = C.get_bodypart(hit_zone) + if(!limb) + limb = C.get_bodypart() + did_embed = payload.tryEmbed(limb) + else + did_embed = payload.tryEmbed(hit) + + if(!did_embed) + payload.failedEmbed() + Detach(P) + +/** + * tryForceEmbed() is called here when we fire COMSIG_EMBED_TRY_FORCE from [/obj/item/proc/tryEmbed]. Mostly, this means we're a piece of shrapnel from a projectile that just impacted something, and we're trying to embed in it. + * + * The reason for this extra mucking about is avoiding having to do an extra hitby(), and annoying the target by impacting them once with the projectile, then again with the shrapnel (which likely represents said bullet), and possibly + * AGAIN if we actually embed. This way, we save on at least one message. Runs the standard embed checks on the mob/turf. + * + * Arguments: + * * I- what we're trying to embed, obviously + * * target- what we're trying to shish-kabob, either a bodypart, a carbon, or a closed turf + * * hit_zone- if our target is a carbon, try to hit them in this zone, if we don't have one, pick a random one. If our target is a bodypart, we already know where we're hitting. + * * forced- if we want this to succeed 100% + */ +/datum/element/embed/proc/tryForceEmbed(obj/item/I, atom/target, hit_zone, forced=FALSE) + var/obj/item/bodypart/limb + var/mob/living/carbon/C + var/turf/closed/T + + if(!forced && !prob(embed_chance)) + return + + if(iscarbon(target)) + C = target + if(!hit_zone) + limb = pick(C.bodyparts) + hit_zone = limb.body_zone + else if(isbodypart(target)) + limb = target + hit_zone = limb.body_zone + C = limb.owner + else if(isclosedturf(target)) + T = target + + if(C) + return checkEmbedMob(I, C, hit_zone, forced=TRUE) + else if(T) + return checkEmbedOther(I, T, forced=TRUE) diff --git a/code/datums/elements/empprotection.dm b/code/datums/elements/empprotection.dm new file mode 100644 index 0000000000..c24914decb --- /dev/null +++ b/code/datums/elements/empprotection.dm @@ -0,0 +1,18 @@ +/datum/element/empprotection + element_flags = ELEMENT_DETACH | ELEMENT_BESPOKE + id_arg_index = 2 + var/flags = NONE + +/datum/element/empprotection/Attach(datum/target, _flags) + . = ..() + if(. == ELEMENT_INCOMPATIBLE || !isatom(target)) + return ELEMENT_INCOMPATIBLE + flags = _flags + RegisterSignal(target, COMSIG_ATOM_EMP_ACT, .proc/getEmpFlags) + +/datum/element/empprotection/Detach(atom/target) + UnregisterSignal(target, COMSIG_ATOM_EMP_ACT) + return ..() + +/datum/element/empprotection/proc/getEmpFlags(datum/source, severity) + return flags diff --git a/code/datums/elements/flavor_text.dm b/code/datums/elements/flavor_text.dm index f44215d9ac..92251861ed 100644 --- a/code/datums/elements/flavor_text.dm +++ b/code/datums/elements/flavor_text.dm @@ -117,9 +117,9 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code return FALSE var/lower_name = lowertext(flavor_name) - var/new_text = stripped_multiline_input(user, "Set the [lower_name] displayed on 'examine'. [addendum]", flavor_name, texts_by_atom[usr], max_len, TRUE) + var/new_text = stripped_multiline_input(user, "Set the [lower_name] displayed on 'examine'. [addendum]", flavor_name, html_decode(texts_by_atom[usr]), max_len, TRUE) if(!isnull(new_text) && (user in texts_by_atom)) - texts_by_atom[user] = html_decode(new_text) + texts_by_atom[user] = new_text to_chat(src, "Your [lower_name] has been updated.") return TRUE return FALSE diff --git a/code/datums/elements/forced_gravity.dm b/code/datums/elements/forced_gravity.dm new file mode 100644 index 0000000000..0b50df5b21 --- /dev/null +++ b/code/datums/elements/forced_gravity.dm @@ -0,0 +1,30 @@ +/datum/element/forced_gravity + element_flags = ELEMENT_BESPOKE + id_arg_index = 2 + var/gravity + var/ignore_space + +/datum/element/forced_gravity/Attach(datum/target, gravity=1, ignore_space=FALSE) + . = ..() + if(!isatom(target)) + return ELEMENT_INCOMPATIBLE + + src.gravity = gravity + src.ignore_space = ignore_space + + RegisterSignal(target, COMSIG_ATOM_HAS_GRAVITY, .proc/gravity_check) + if(isturf(target)) + RegisterSignal(target, COMSIG_TURF_HAS_GRAVITY, .proc/turf_gravity_check) + +/datum/element/forced_gravity/Detach(datum/source, force) + . = ..() + var/static/list/signals_b_gone = list(COMSIG_ATOM_HAS_GRAVITY, COMSIG_TURF_HAS_GRAVITY) + UnregisterSignal(source, signals_b_gone) + +/datum/element/forced_gravity/proc/gravity_check(datum/source, turf/location, list/gravs) + if(!ignore_space && isspaceturf(location)) + return + gravs += gravity + +/datum/element/forced_gravity/proc/turf_gravity_check(datum/source, atom/checker, list/gravs) + return gravity_check(null, source, gravs) diff --git a/code/datums/elements/photosynthesis.dm b/code/datums/elements/photosynthesis.dm new file mode 100644 index 0000000000..93e4369b8b --- /dev/null +++ b/code/datums/elements/photosynthesis.dm @@ -0,0 +1,81 @@ +/datum/element/photosynthesis + element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH + id_arg_index = 2 + ///how much brute damage (or integrity, for objects) is healed (taken if positive) at maximum luminosity. (if lum_minus were 0) + var/light_bruteheal = -1 + ///how much burn damage is restored/taken at maximum luminosity. Mobs only. + var/light_burnheal = -1 + ///how much tox damage is restored/taken at maximum luminosity. Mobs only. + var/light_toxheal = -1 + ///how much oxy damage is restored/taken at maximum luminosity. Mobs only. + var/light_oxyheal = -1 + ///how nutrition recovery/expenses factor, not affected by bonus_lum and malus_lum. Mobs only. + var/light_nutrition_gain = 4 + ///A value subtracted to the lum count, which allows targets to wilt or heal in the darkness. + var/lum_minus = 0.5 + ///the minimum lum count over which where the target damage is adjusted. + var/bonus_lum = 0.2 + ///the maximum lum count under which the target damage is inversely adjusted. + var/malus_lum = 0 + ///List of atoms this element is attached to. Doubles as a multiplier if the same element is attached multiple times to a target multiple times. + var/list/attached_atoms + +/datum/element/photosynthesis/Attach(datum/target, brute = -1, burn = -1, tox = -1, oxy = -1, nutri = 4, minus = 0.2, bonus = 0.3, malus = -0.1) + . = ..() + if(. == ELEMENT_INCOMPATIBLE || !(isliving(target) || (isobj(target) && light_bruteheal))) + return ELEMENT_INCOMPATIBLE + light_bruteheal = brute + light_burnheal = burn + light_toxheal = tox + light_oxyheal = oxy + light_nutrition_gain = nutri + lum_minus = minus + bonus_lum = bonus + malus_lum = malus + + if(!attached_atoms) + attached_atoms = list() + START_PROCESSING(SSobj, src) + attached_atoms[target]++ + +/datum/element/photosynthesis/Detach(datum/target) + attached_atoms[target]-- + if(!attached_atoms[target]) + attached_atoms -= target + if(!length(attached_atoms)) + STOP_PROCESSING(SSobj, src) + attached_atoms = null + return ..() + +/datum/element/photosynthesis/process() + for(var/A in attached_atoms) + var/atom/movable/AM = A + var/light_amount = 0 //how much light there is in the place, affects receiving nutrition and healing + if(isturf(AM.loc)) //else, there's considered to be no light + var/turf/T = AM.loc + light_amount = (T.get_lumcount() - lum_minus) + + if(isliving(AM)) + var/mob/living/L = AM + if(L.stat == DEAD) + continue + if(light_nutrition_gain) + L.adjust_nutrition(light_amount * light_nutrition_gain * attached_atoms[AM], NUTRITION_LEVEL_FULL) + if(light_amount > bonus_lum || light_amount < malus_lum) + var/mult = ((light_amount > bonus_lum) ? 1 : -1) * attached_atoms[AM] + if(light_bruteheal) + L.adjustBruteLoss(light_bruteheal * mult) + if(light_burnheal) + L.adjustFireLoss(light_burnheal * mult) + if(light_toxheal) + L.adjustToxLoss(light_toxheal * mult) + if(light_oxyheal) + L.adjustOxyLoss(light_oxyheal * mult) + + else if(light_amount > bonus_lum || light_amount < malus_lum) + var/obj/O = AM + var/damage = light_bruteheal * ((light_amount > bonus_lum) ? 1 : -1) * attached_atoms[AM] + if(damage < 0 && O.obj_integrity < O.max_integrity) + O.obj_integrity = min(O.obj_integrity + damage, O.max_integrity) //Till we get a obj heal proc... + else + O.take_damage(damage, BRUTE, FALSE, FALSE, null, 100) diff --git a/code/datums/elements/tactical.dm b/code/datums/elements/tactical.dm new file mode 100644 index 0000000000..4b49552fbe --- /dev/null +++ b/code/datums/elements/tactical.dm @@ -0,0 +1,37 @@ +/datum/element/tactical + element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH + id_arg_index = 2 + var/allowed_slot + +/datum/element/tactical/Attach(datum/target, allowed_slot) + . = ..() + if(. == ELEMENT_INCOMPATIBLE || !isitem(target)) + return ELEMENT_INCOMPATIBLE + + src.allowed_slot = allowed_slot + RegisterSignal(target, COMSIG_ITEM_EQUIPPED, .proc/modify) + RegisterSignal(target, COMSIG_ITEM_DROPPED, .proc/unmodify) + +/datum/element/tactical/Detach(datum/target) + UnregisterSignal(target, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED)) + unmodify(target) + return ..() + +/datum/element/tactical/proc/modify(obj/item/source, mob/user, slot) + if(allowed_slot && slot != allowed_slot) + unmodify(source, user) + return + + var/image/I = image(icon = source.icon, icon_state = source.icon_state, loc = user) + I.copy_overlays(source) + I.override = TRUE + source.add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/everyone, "sneaking_mission", I) + I.layer = ABOVE_MOB_LAYER + +/datum/element/tactical/proc/unmodify(obj/item/source, mob/user) + if(!user) + if(!ismob(source.loc)) + return + user = source.loc + + user.remove_alt_appearance("sneaking_mission") diff --git a/code/datums/elements/wuv.dm b/code/datums/elements/wuv.dm index fffb90c681..6476a204cf 100644 --- a/code/datums/elements/wuv.dm +++ b/code/datums/elements/wuv.dm @@ -41,7 +41,7 @@ return //we want to delay the effect to be displayed after the mob is petted, not before. switch(user.a_intent) - if(INTENT_HARM, INTENT_DISARM) + if(INTENT_HARM) addtimer(CALLBACK(src, .proc/kick_the_dog, source, user), 1) if(INTENT_HELP) addtimer(CALLBACK(src, .proc/pet_the_dog, source, user), 1) diff --git a/code/datums/embedding_behavior.dm b/code/datums/embedding_behavior.dm deleted file mode 100644 index a261ea48c6..0000000000 --- a/code/datums/embedding_behavior.dm +++ /dev/null @@ -1,53 +0,0 @@ -#define EMBEDID "embed-[embed_chance]-[embedded_fall_chance]-[embedded_pain_chance]-[embedded_pain_multiplier]-[embedded_fall_pain_multiplier]-[embedded_impact_pain_multiplier]-[embedded_unsafe_removal_pain_multiplier]-[embedded_unsafe_removal_time]" - -/proc/getEmbeddingBehavior(embed_chance = EMBED_CHANCE, - embedded_fall_chance = EMBEDDED_ITEM_FALLOUT, - embedded_pain_chance = EMBEDDED_PAIN_CHANCE, - embedded_pain_multiplier = EMBEDDED_PAIN_MULTIPLIER, - embedded_fall_pain_multiplier = EMBEDDED_FALL_PAIN_MULTIPLIER, - embedded_impact_pain_multiplier = EMBEDDED_IMPACT_PAIN_MULTIPLIER, - embedded_unsafe_removal_pain_multiplier = EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER, - embedded_unsafe_removal_time = EMBEDDED_UNSAFE_REMOVAL_TIME) - . = locate(EMBEDID) - if (!.) - . = new /datum/embedding_behavior(embed_chance, embedded_fall_chance, embedded_pain_chance, embedded_pain_multiplier, embedded_fall_pain_multiplier, embedded_impact_pain_multiplier, embedded_unsafe_removal_pain_multiplier, embedded_unsafe_removal_time) - -/datum/embedding_behavior - var/embed_chance - var/embedded_fall_chance - var/embedded_pain_chance - var/embedded_pain_multiplier //The coefficient of multiplication for the damage this item does while embedded (this*w_class) - var/embedded_fall_pain_multiplier //The coefficient of multiplication for the damage this item does when falling out of a limb (this*w_class) - var/embedded_impact_pain_multiplier //The coefficient of multiplication for the damage this item does when first embedded (this*w_class) - var/embedded_unsafe_removal_pain_multiplier //The coefficient of multiplication for the damage removing this without surgery causes (this*w_class) - var/embedded_unsafe_removal_time //A time in ticks, multiplied by the w_class. - -/datum/embedding_behavior/New(embed_chance = EMBED_CHANCE, - embedded_fall_chance = EMBEDDED_ITEM_FALLOUT, - embedded_pain_chance = EMBEDDED_PAIN_CHANCE, - embedded_pain_multiplier = EMBEDDED_PAIN_MULTIPLIER, - embedded_fall_pain_multiplier = EMBEDDED_FALL_PAIN_MULTIPLIER, - embedded_impact_pain_multiplier = EMBEDDED_IMPACT_PAIN_MULTIPLIER, - embedded_unsafe_removal_pain_multiplier = EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER, - embedded_unsafe_removal_time = EMBEDDED_UNSAFE_REMOVAL_TIME) - src.embed_chance = embed_chance - src.embedded_fall_chance = embedded_fall_chance - src.embedded_pain_chance = embedded_pain_chance - src.embedded_pain_multiplier = embedded_pain_multiplier - src.embedded_fall_pain_multiplier = embedded_fall_pain_multiplier - src.embedded_impact_pain_multiplier = embedded_impact_pain_multiplier - src.embedded_unsafe_removal_pain_multiplier = embedded_unsafe_removal_pain_multiplier - src.embedded_unsafe_removal_time = embedded_unsafe_removal_time - tag = EMBEDID - -/datum/embedding_behavior/proc/setRating(embed_chance, embedded_fall_chance, embedded_pain_chance, embedded_pain_multiplier, embedded_fall_pain_multiplier, embedded_impact_pain_multiplier, embedded_unsafe_removal_pain_multiplier, embedded_unsafe_removal_time) - return getEmbeddingBehavior((isnull(embed_chance) ? src.embed_chance : embed_chance),\ - (isnull(embedded_fall_chance) ? src.embedded_fall_chance : embedded_fall_chance),\ - (isnull(embedded_pain_chance) ? src.embedded_pain_chance : embedded_pain_chance),\ - (isnull(embedded_pain_multiplier) ? src.embedded_pain_multiplier : embedded_pain_multiplier),\ - (isnull(embedded_fall_pain_multiplier) ? src.embedded_fall_pain_multiplier : embedded_fall_pain_multiplier),\ - (isnull(embedded_impact_pain_multiplier) ? src.embedded_impact_pain_multiplier : embedded_impact_pain_multiplier),\ - (isnull(embedded_unsafe_removal_pain_multiplier) ? src.embedded_unsafe_removal_pain_multiplier : embedded_unsafe_removal_pain_multiplier),\ - (isnull(embedded_unsafe_removal_time) ? src.embedded_unsafe_removal_time : embedded_unsafe_removal_time)) - -#undef EMBEDID diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm index 0b0fed407c..91b8e32566 100644 --- a/code/datums/helper_datums/getrev.dm +++ b/code/datums/helper_datums/getrev.dm @@ -5,16 +5,18 @@ var/list/testmerge = list() /datum/getrev/New() + commit = rustg_git_revparse("HEAD") + if(commit) + date = rustg_git_commit_date(commit) + originmastercommit = rustg_git_revparse("origin/master") + +/datum/getrev/proc/load_tgs_info() testmerge = world.TgsTestMerges() var/datum/tgs_revision_information/revinfo = world.TgsRevision() if(revinfo) commit = revinfo.commit originmastercommit = revinfo.origin_commit - else - commit = rustg_git_revparse("HEAD") - if(commit) - date = rustg_git_commit_date(commit) - originmastercommit = rustg_git_revparse("origin/master") + date = rustg_git_commit_date(commit) // goes to DD log and config_error.txt log_world(get_log_message()) @@ -77,7 +79,9 @@ msg += "No commit information" if(world.TgsAvailable()) var/datum/tgs_version/version = world.TgsVersion() - msg += "Server tools version: [version.raw_parameter]" + msg += "TGS version: [version.raw_parameter]" + var/datum/tgs_version/api_version = world.TgsApiVersion() + msg += "DMAPI version: [api_version.raw_parameter]" // Game mode odds msg += "
    Current Informational Settings:" @@ -121,4 +125,4 @@ if(probabilities[ctag] > 0) var/percentage = round(probabilities[ctag] / sum * 100, 0.1) msg += "[ctag] [percentage]%" - to_chat(src, msg.Join("
    ")) \ No newline at end of file + to_chat(src, msg.Join("
    ")) diff --git a/code/datums/hud.dm b/code/datums/hud.dm index 6b6fcb9691..c1811fb9b3 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -27,7 +27,8 @@ GLOBAL_LIST_INIT(huds, list( ANTAG_HUD_SOULLESS = new/datum/atom_hud/antag/hidden(), ANTAG_HUD_CLOCKWORK = new/datum/atom_hud/antag(), ANTAG_HUD_BROTHER = new/datum/atom_hud/antag/hidden(), - ANTAG_HUD_BLOODSUCKER = new/datum/atom_hud/antag/bloodsucker() + ANTAG_HUD_BLOODSUCKER = new/datum/atom_hud/antag/bloodsucker(), + ANTAG_HUD_FUGITIVE = new/datum/atom_hud/antag() )) /datum/atom_hud diff --git a/code/datums/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm index bafb6fbf0e..f110d5e8ed 100644 --- a/code/datums/looping_sounds/_looping_sound.dm +++ b/code/datums/looping_sounds/_looping_sound.dm @@ -23,10 +23,14 @@ var/end_sound var/chance var/volume = 100 + var/vary = FALSE var/max_loops var/direct + var/extra_range = 0 + var/falloff var/timerid + var/init_timerid /datum/looping_sound/New(list/_output_atoms=list(), start_immediately=FALSE, _direct=FALSE) if(!mid_sounds) @@ -47,13 +51,15 @@ /datum/looping_sound/proc/start(atom/add_thing) if(add_thing) output_atoms |= add_thing - if(timerid) + if(timerid || init_timerid) return on_start() /datum/looping_sound/proc/stop(atom/remove_thing) if(remove_thing) output_atoms -= remove_thing + if(init_timerid) + deltimer(init_timerid) if(!timerid) return on_stop() @@ -80,7 +86,7 @@ if(direct) SEND_SOUND(thing, S) else - playsound(thing, S, volume) + playsound(thing, S, volume, vary, extra_range, falloff) /datum/looping_sound/proc/get_sound(starttime, _mid_sounds) . = _mid_sounds || mid_sounds @@ -92,7 +98,7 @@ if(start_sound) play(start_sound) start_wait = start_length - addtimer(CALLBACK(src, .proc/sound_loop), start_wait, TIMER_CLIENT_TIME) + init_timerid = addtimer(CALLBACK(src, .proc/sound_loop), start_wait, TIMER_CLIENT_TIME | TIMER_STOPPABLE) /datum/looping_sound/proc/on_stop() if(end_sound) diff --git a/code/datums/martial/_martial.dm b/code/datums/martial/_martial.dm index e54a80bd81..8241f685d7 100644 --- a/code/datums/martial/_martial.dm +++ b/code/datums/martial/_martial.dm @@ -10,6 +10,10 @@ var/help_verb var/pacifism_check = TRUE //are the martial arts combos/attacks unable to be used by pacifist. var/allow_temp_override = TRUE //if this martial art can be overridden by temporary martial arts + /// Can we be used to unarmed parry? + var/can_martial_parry = FALSE + /// Set this variable to something not null, this'll be the preferred unarmed parry in most cases if [can_martial_parry] is TRUE. YOU MUST RUN [get_block_parry_data(this)] INSTEAD OF DIRECTLY ACCESSING! + var/datum/block_parry_data/block_parry_data var/pugilist = FALSE /datum/martial_art/proc/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) @@ -39,11 +43,11 @@ /datum/martial_art/proc/damage_roll(mob/living/carbon/human/A, mob/living/carbon/human/D) //Here we roll for our damage to be added into the damage var in the various attack procs. This is changed depending on whether we are in combat mode, lying down, or if our target is in combat mode. var/damage = rand(A.dna.species.punchdamagelow, A.dna.species.punchdamagehigh) - if(!(D.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + if(SEND_SIGNAL(D, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_INACTIVE)) damage *= 1.5 if(!CHECK_MOBILITY(A, MOBILITY_STAND)) damage *= 0.5 - if(!(A.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + if(SEND_SIGNAL(A, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_INACTIVE)) damage *= 0.25 return damage @@ -83,7 +87,7 @@ var/datum/martial_art/X = H.mind.default_martial_art X.teach(H) REMOVE_TRAIT(H, TRAIT_PUGILIST, MARTIAL_ARTIST_TRAIT) - + /datum/martial_art/proc/on_remove(mob/living/carbon/human/H) if(help_verb) H.verbs -= help_verb @@ -91,4 +95,4 @@ ///Gets called when a projectile hits the owner. Returning anything other than BULLET_ACT_HIT will stop the projectile from hitting the mob. /datum/martial_art/proc/on_projectile_hit(mob/living/carbon/human/A, obj/item/projectile/P, def_zone) - return BULLET_ACT_HIT \ No newline at end of file + return BULLET_ACT_HIT diff --git a/code/datums/martial/boxing.dm b/code/datums/martial/boxing.dm index 848fdc6a41..4682595aec 100644 --- a/code/datums/martial/boxing.dm +++ b/code/datums/martial/boxing.dm @@ -58,17 +58,15 @@ var/datum/martial_art/boxing/style = new /obj/item/clothing/gloves/boxing/equipped(mob/user, slot) - if(!ishuman(user)) - return - if(slot == SLOT_GLOVES) + . = ..() + if(ishuman(user) && slot == SLOT_GLOVES) var/mob/living/carbon/human/H = user style.teach(H,TRUE) - return /obj/item/clothing/gloves/boxing/dropped(mob/user) + . = ..() if(!ishuman(user)) return var/mob/living/carbon/human/H = user if(H.get_item_by_slot(SLOT_GLOVES) == src) style.remove(H) - return diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm index f054867de4..c2fe24a20d 100644 --- a/code/datums/martial/krav_maga.dm +++ b/code/datums/martial/krav_maga.dm @@ -196,13 +196,13 @@ var/datum/martial_art/krav_maga/style = new /obj/item/clothing/gloves/krav_maga/equipped(mob/user, slot) - if(!ishuman(user)) - return - if(slot == SLOT_GLOVES) + . = ..() + if(ishuman(user) && slot == SLOT_GLOVES) var/mob/living/carbon/human/H = user style.teach(H,1) /obj/item/clothing/gloves/krav_maga/dropped(mob/user) + . = ..() if(!ishuman(user)) return var/mob/living/carbon/human/H = user diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm index 82ddd90b42..a2a9e376e1 100644 --- a/code/datums/martial/sleeping_carp.dm +++ b/code/datums/martial/sleeping_carp.dm @@ -180,14 +180,12 @@ to_chat(usr, "Keelhaul: Harm Grab. Kick opponents to the floor. Against prone targets, deal additional stamina damage and disarm them.") to_chat(usr, "In addition, your body has become incredibly resilient to most forms of attack. Weapons cannot readily pierce your hardened skin, and you are highly resistant to stuns and knockdowns, and can block all projectiles in Throw Mode. However, you are not invincible, and sustained damage will take it's toll. Avoid heat at all costs!") -/obj/item/twohanded/bostaff +/obj/item/staff/bostaff name = "bo staff" desc = "A long, tall staff made of polished wood. Traditionally used in ancient old-Earth martial arts. Can be wielded to both kill and incapacitate." force = 10 w_class = WEIGHT_CLASS_BULKY slot_flags = ITEM_SLOT_BACK - force_unwielded = 10 - force_wielded = 24 throwforce = 20 throw_speed = 2 attack_verb = list("smashed", "slammed", "whacked", "thwacked") @@ -196,11 +194,29 @@ lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' block_chance = 50 + var/wielded = FALSE // track wielded status on item -/obj/item/twohanded/bostaff/update_icon_state() - icon_state = "bostaff[wielded]" +/obj/item/staff/bostaff/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) -/obj/item/twohanded/bostaff/attack(mob/target, mob/living/user) +/obj/item/staff/bostaff/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=10, force_wielded=24, icon_wielded="bostaff1") + +/// triggered on wield of two handed item +/obj/item/staff/bostaff/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/staff/bostaff/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/staff/bostaff/update_icon_state() + icon_state = "bostaff0" + +/obj/item/staff/bostaff/attack(mob/target, mob/living/user) add_fingerprint(user) if((HAS_TRAIT(user, TRAIT_CLUMSY)) && prob(50)) to_chat(user, "You club yourself over the head with [src].") @@ -249,7 +265,7 @@ else return ..() -/obj/item/twohanded/bostaff/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) +/obj/item/staff/bostaff/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) if(!wielded) return BLOCK_NONE return ..() diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm index f7923d029f..18fd8e7b18 100644 --- a/code/datums/martial/wrestling.dm +++ b/code/datums/martial/wrestling.dm @@ -377,7 +377,7 @@ var/turf/ST = null var/falling = 0 var/damage = damage_roll(A,D) - + for (var/obj/O in oview(1, A)) if (O.density == 1) if (O == A) @@ -472,20 +472,18 @@ var/datum/martial_art/wrestling/style = new /obj/item/storage/belt/champion/wrestling/equipped(mob/user, slot) - if(!ishuman(user)) - return - if(slot == SLOT_BELT) + . = ..() + if(ishuman(user) && slot == SLOT_BELT) var/mob/living/carbon/human/H = user style.teach(H,1) - return /obj/item/storage/belt/champion/wrestling/dropped(mob/user) + . = ..() if(!ishuman(user)) return var/mob/living/carbon/human/H = user if(H.get_item_by_slot(SLOT_BELT) == src) style.remove(H) - return //Subtype of wrestling, reserved for the wrestling belts found in the holodeck /datum/martial_art/wrestling/holodeck diff --git a/code/datums/materials/_material.dm b/code/datums/materials/_material.dm index c658ac215d..5148aab4ac 100644 --- a/code/datums/materials/_material.dm +++ b/code/datums/materials/_material.dm @@ -6,8 +6,6 @@ Simple datum which is instanced once per type and is used for every object of sa /datum/material var/name = "material" var/desc = "its..stuff." - ///Var that's mostly used by science machines to identify specific materials, should most likely be phased out at some point - var/id = "mat" ///Base color of the material, is used for greyscale. Item isn't changed in color if this is null. var/color ///Base alpha of the material, is used for greyscale icons. @@ -24,6 +22,22 @@ Simple datum which is instanced once per type and is used for every object of sa var/value_per_unit = 0 ///Armor modifiers, multiplies an items normal armor vars by these amounts. var/armor_modifiers = list("melee" = 1, "bullet" = 1, "laser" = 1, "energy" = 1, "bomb" = 1, "bio" = 1, "rad" = 1, "fire" = 1, "acid" = 1) + ///How beautiful is this material per unit? + var/beauty_modifier = 0 + ///Can be used to override the sound items make, lets add some SLOSHing. + var/item_sound_override + ///Can be used to override the stepsound a turf makes. MORE SLOOOSH + var/turf_sound_override + ///what texture icon state to overlay + var/texture_layer_icon_state + ///a cached filter for the texture icon + var/cached_texture_filter + +/datum/material/New() + . = ..() + if(texture_layer_icon_state) + var/texture_icon = icon('icons/materials/composite.dmi', texture_layer_icon_state) + cached_texture_filter = filter(type="layer", icon=texture_icon, blend_mode = BLEND_INSET_OVERLAY) ///This proc is called when the material is added to an object. /datum/material/proc/on_applied(atom/source, amount, material_flags) @@ -32,13 +46,27 @@ Simple datum which is instanced once per type and is used for every object of sa source.add_atom_colour(color, FIXED_COLOUR_PRIORITY) if(alpha) source.alpha = alpha + if(texture_layer_icon_state) + ADD_KEEP_TOGETHER(source, MATERIAL_SOURCE(src)) + source.filters += cached_texture_filter if(material_flags & MATERIAL_ADD_PREFIX) source.name = "[name] [source.name]" + if(beauty_modifier) + addtimer(CALLBACK(source, /datum.proc/_AddElement, list(/datum/element/beauty, beauty_modifier * amount)), 0) + if(istype(source, /obj)) //objs on_applied_obj(source, amount, material_flags) + else if(isturf(source, /turf)) //turfs + on_applied_turf(source, amount, material_flags) + + source.mat_update_desc(src) + +///This proc is called when a material updates an object's description +/atom/proc/mat_update_desc(/datum/material/mat) + return ///This proc is called when the material is added to an object specifically. /datum/material/proc/on_applied_obj(var/obj/o, amount, material_flags) if(material_flags & MATERIAL_AFFECT_STATISTICS) @@ -56,6 +84,24 @@ Simple datum which is instanced once per type and is used for every object of sa for(var/i in current_armor) temp_armor_list[i] = current_armor[i] * armor_modifiers[i] o.armor = getArmor(arglist(temp_armor_list)) + if(!isitem(o)) + return + var/obj/item/I = o + if(!item_sound_override) + return + I.hitsound = item_sound_override + I.usesound = item_sound_override + I.throwhitsound = item_sound_override + +/datum/material/proc/on_applied_turf(var/turf/T, amount, material_flags) + if(isopenturf(T)) + if(!turf_sound_override) + return + var/turf/open/O = T + O.footstep = turf_sound_override + O.barefootstep = turf_sound_override + O.clawfootstep = turf_sound_override + O.heavyfootstep = turf_sound_override ///This proc is called when the material is removed from an object. /datum/material/proc/on_removed(atom/source, material_flags) @@ -63,6 +109,9 @@ Simple datum which is instanced once per type and is used for every object of sa if(color) source.remove_atom_colour(FIXED_COLOUR_PRIORITY, color) source.alpha = initial(source.alpha) + if(texture_layer_icon_state) + source.filters -= cached_texture_filter + REMOVE_KEEP_TOGETHER(source, MATERIAL_SOURCE(src)) if(material_flags & MATERIAL_ADD_PREFIX) source.name = initial(source.name) @@ -70,10 +119,16 @@ Simple datum which is instanced once per type and is used for every object of sa if(istype(source, /obj)) //objs on_removed_obj(source, material_flags) + else if(istype(source, /turf)) //turfs + on_removed_turf(source, material_flags) + ///This proc is called when the material is removed from an object specifically. -/datum/material/proc/on_removed_obj(var/obj/o, amount, material_flags) +/datum/material/proc/on_removed_obj(obj/o, material_flags) if(material_flags & MATERIAL_AFFECT_STATISTICS) var/new_max_integrity = initial(o.max_integrity) o.modify_max_integrity(new_max_integrity) o.force = initial(o.force) o.throwforce = initial(o.throwforce) + +/datum/material/proc/on_removed_turf(turf/T, material_flags) + return diff --git a/code/datums/materials/basemats.dm b/code/datums/materials/basemats.dm index f189a91353..721af65449 100644 --- a/code/datums/materials/basemats.dm +++ b/code/datums/materials/basemats.dm @@ -1,24 +1,23 @@ ///Has no special properties. /datum/material/iron name = "iron" - id = "iron" desc = "Common iron ore often found in sedimentary and igneous layers of the crust." color = "#878687" - categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/metal value_per_unit = 0.0025 ///Breaks extremely easily but is transparent. /datum/material/glass name = "glass" - id = "glass" desc = "Glass forged by melting sand." color = "#88cdf1" alpha = 150 - categories = list(MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) integrity_modifier = 0.1 sheet_type = /obj/item/stack/sheet/glass value_per_unit = 0.0025 + beauty_modifier = 0.05 armor_modifiers = list("melee" = 0.2, "bullet" = 0.2, "laser" = 0, "energy" = 1, "bomb" = 0, "bio" = 0.2, "rad" = 0.2, "fire" = 1, "acid" = 0.2) // yeah ok /* @@ -29,45 +28,46 @@ Unless you know what you're doing, only use the first three numbers. They're in ///Has no special properties. Could be good against vampires in the future perhaps. /datum/material/silver name = "silver" - id = "silver" desc = "Silver" color = list(255/255, 284/255, 302/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) - categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/silver value_per_unit = 0.025 + beauty_modifier = 0.075 ///Slight force increase /datum/material/gold name = "gold" - id = "gold" desc = "Gold" color = list(340/255, 240/255, 50/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) //gold is shiny, but not as bright as bananium strength_modifier = 1.2 - categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/gold value_per_unit = 0.0625 + beauty_modifier = 0.15 armor_modifiers = list("melee" = 1.1, "bullet" = 1.1, "laser" = 1.15, "energy" = 1.15, "bomb" = 1, "bio" = 1, "rad" = 1, "fire" = 0.7, "acid" = 1.1) ///Has no special properties /datum/material/diamond name = "diamond" - id = "diamond" desc = "Highly pressurized carbon" color = list(48/255, 272/255, 301/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) alpha = 132 - categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/diamond value_per_unit = 0.25 + beauty_modifier = 0.3 + armor_modifiers = list("melee" = 1.3, "bullet" = 1.3, "laser" = 0.6, "energy" = 1, "bomb" = 1.2, "bio" = 1, "rad" = 1, "fire" = 1, "acid" = 1) ///Is slightly radioactive /datum/material/uranium name = "uranium" - id = "uranium" desc = "Uranium" color = rgb(48, 237, 26) - categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/uranium value_per_unit = 0.05 + beauty_modifier = 0.3 //It shines so beautiful armor_modifiers = list("melee" = 1.5, "bullet" = 1.4, "laser" = 0.5, "energy" = 0.5, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 1, "acid" = 1) /datum/material/uranium/on_applied(atom/source, amount, material_flags) @@ -82,12 +82,12 @@ Unless you know what you're doing, only use the first three numbers. They're in ///Adds firestacks on hit (Still needs support to turn into gas on destruction) /datum/material/plasma name = "plasma" - id = "plasma" desc = "Isn't plasma a state of matter? Oh whatever." color = list(298/255, 46/255, 352/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) - categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/plasma value_per_unit = 0.1 + beauty_modifier = 0.15 armor_modifiers = list("melee" = 1.4, "bullet" = 0.7, "laser" = 0, "energy" = 1.2, "bomb" = 0, "bio" = 1.2, "rad" = 1, "fire" = 0, "acid" = 0.5) /datum/material/plasma/on_applied(atom/source, amount, material_flags) @@ -104,23 +104,23 @@ Unless you know what you're doing, only use the first three numbers. They're in ///Can cause bluespace effects on use. (Teleportation) (Not yet implemented) /datum/material/bluespace name = "bluespace crystal" - id = "bluespace_crystal" desc = "Crystals with bluespace properties" color = list(119/255, 217/255, 396/255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) alpha = 200 categories = list(MAT_CATEGORY_ORE = TRUE) + beauty_modifier = 0.5 sheet_type = /obj/item/stack/sheet/bluespace_crystal value_per_unit = 0.15 ///Honks and slips /datum/material/bananium name = "bananium" - id = "bananium" desc = "Material with hilarious properties" color = list(460/255, 464/255, 0, 0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) //obnoxiously bright yellow - categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/bananium value_per_unit = 0.5 + beauty_modifier = 0.5 armor_modifiers = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 100, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0) //Clowns cant be blown away /datum/material/bananium/on_applied(atom/source, amount, material_flags) @@ -137,66 +137,88 @@ Unless you know what you're doing, only use the first three numbers. They're in ///Mediocre force increase /datum/material/titanium name = "titanium" - id = "titanium" desc = "Titanium" color = "#b3c0c7" strength_modifier = 1.3 - categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/titanium value_per_unit = 0.0625 + beauty_modifier = 0.05 armor_modifiers = list("melee" = 1.35, "bullet" = 1.3, "laser" = 1.3, "energy" = 1.25, "bomb" = 1.25, "bio" = 1, "rad" = 1, "fire" = 0.7, "acid" = 1) /datum/material/runite name = "runite" - id = "runite" desc = "Runite" color = "#3F9995" strength_modifier = 1.3 - categories = list(MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/runite + beauty_modifier = 0.5 armor_modifiers = list("melee" = 1.35, "bullet" = 2, "laser" = 0.5, "energy" = 1.25, "bomb" = 1.25, "bio" = 1, "rad" = 1, "fire" = 1.4, "acid" = 1) //rune is weak against magic lasers but strong against bullets. This is the combat triangle. ///Force decrease /datum/material/plastic name = "plastic" - id = "plastic" desc = "Plastic" color = "#caccd9" strength_modifier = 0.85 sheet_type = /obj/item/stack/sheet/plastic value_per_unit = 0.0125 + beauty_modifier = -0.01 armor_modifiers = list("melee" = 1.5, "bullet" = 1.1, "laser" = 0.3, "energy" = 0.5, "bomb" = 1, "bio" = 1, "rad" = 1, "fire" = 1.1, "acid" = 1) ///Force decrease and mushy sound effect. (Not yet implemented) /datum/material/biomass name = "biomass" - id = "biomass" desc = "Organic matter" color = "#735b4d" strength_modifier = 0.8 value_per_unit = 0.025 +/datum/material/wood + name = "wood" + desc = "Flexible, durable, but flamable. Hard to come across in space." + color = "#bb8e53" + strength_modifier = 0.5 + sheet_type = /obj/item/stack/sheet/mineral/wood + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + value_per_unit = 0.06 + beauty_modifier = 0.1 + armor_modifiers = list("melee" = 1.1, "bullet" = 1.1, "laser" = 0.4, "energy" = 0.4, "bomb" = 1, "bio" = 0.2, "rad" = 0, "fire" = 0, "acid" = 0.3) + +/datum/material/wood/on_applied_obj(obj/source, amount, material_flags) + . = ..() + if(material_flags & MATERIAL_AFFECT_STATISTICS) + var/obj/wooden = source + wooden.resistance_flags |= FLAMMABLE + +/datum/material/wood/on_removed_obj(obj/source, material_flags) + . = ..() + if(material_flags & MATERIAL_AFFECT_STATISTICS) + var/obj/wooden = source + wooden.resistance_flags &= ~FLAMMABLE + ///Stronk force increase /datum/material/adamantine name = "adamantine" - id = "adamantine" desc = "A powerful material made out of magic, I mean science!" color = "#6d7e8e" strength_modifier = 1.5 - categories = list(MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/adamantine value_per_unit = 0.25 + beauty_modifier = 0.4 armor_modifiers = list("melee" = 1.5, "bullet" = 1.5, "laser" = 1.3, "energy" = 1.3, "bomb" = 1, "bio" = 1, "rad" = 1, "fire" = 2.5, "acid" = 1) ///RPG Magic. (Admin only) /datum/material/mythril name = "mythril" - id = "mythril" desc = "How this even exists is byond me" color = "#f2d5d7" - categories = list(MAT_CATEGORY_RIGID = TRUE) + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) sheet_type = /obj/item/stack/sheet/mineral/mythril value_per_unit = 0.75 + beauty_modifier = 0.5 armor_modifiers = list("melee" = 2, "bullet" = 2, "laser" = 2, "energy" = 2, "bomb" = 2, "bio" = 2, "rad" = 2, "fire" = 2, "acid" = 2) /datum/material/mythril/on_applied_obj(atom/source, amount, material_flags) @@ -208,3 +230,134 @@ Unless you know what you're doing, only use the first three numbers. They're in . = ..() if(istype(source, /obj/item)) qdel(source.GetComponent(/datum/component/fantasy)) + +//I don't like sand. It's coarse, and rough, and irritating, and it gets everywhere. +/datum/material/sand + name = "sand" + desc = "You know, it's amazing just how structurally sound sand can be." + color = "#EDC9AF" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/sheet/sandblock + value_per_unit = 0.001 + strength_modifier = 0.5 + integrity_modifier = 0.1 + armor_modifiers = list("melee" = 0.25, "bullet" = 0.25, "laser" = 1.25, "energy" = 0.25, "bomb" = 0.25, "bio" = 0.25, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5) + beauty_modifier = 0.25 + turf_sound_override = FOOTSTEP_SAND + texture_layer_icon_state = "sand" + +//And now for our lavaland dwelling friends, sand, but in stone form! Truly revolutionary. +/datum/material/sandstone + name = "sandstone" + desc = "Bialtaakid 'ant taerif ma hdha." + color = "#B77D31" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/sheet/mineral/sandstone + value_per_unit = 0.0025 + armor_modifiers = list("melee" = 0.5, "bullet" = 0.5, "laser" = 1.25, "energy" = 0.5, "bomb" = 0.5, "bio" = 0.25, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5) + beauty_modifier = 0.3 + turf_sound_override = FOOTSTEP_WOOD + texture_layer_icon_state = "brick" + +/datum/material/snow + name = "snow" + desc = "There's no business like snow business." + color = "#FFFFFF" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/sheet/mineral/snow + value_per_unit = 0.0025 + armor_modifiers = list("melee" = 0.25, "bullet" = 0.25, "laser" = 0.25, "energy" = 0.25, "bomb" = 0.25, "bio" = 0.25, "rad" = 1.5, "fire" = 0.25, "acid" = 1.5) + beauty_modifier = 0.3 + turf_sound_override = FOOTSTEP_SAND + texture_layer_icon_state = "sand" + +/datum/material/runedmetal + name = "runed metal" + desc = "Mir'ntrath barhah Nar'sie." + color = "#3C3434" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/sheet/runed_metal + value_per_unit = 0.75 + armor_modifiers = list("melee" = 1.2, "bullet" = 1.2, "laser" = 1, "energy" = 1, "bomb" = 1.2, "bio" = 1.2, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5) + beauty_modifier = -0.15 + texture_layer_icon_state = "runed" + +/datum/material/bronze + name = "bronze" + desc = "Clock Cult? Never heard of it." + color = "#92661A" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/tile/bronze + value_per_unit = 0.025 + armor_modifiers = list("melee" = 1, "bullet" = 1, "laser" = 1, "energy" = 1, "bomb" = 1, "bio" = 1, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5) + beauty_modifier = 0.2 + +/datum/material/paper + name = "paper" + desc = "Ten thousand folds of pure starchy power." + color = "#E5DCD5" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/sheet/paperframes + value_per_unit = 0.0025 + armor_modifiers = list("melee" = 0.1, "bullet" = 0.1, "laser" = 0.1, "energy" = 0.1, "bomb" = 0.1, "bio" = 0.1, "rad" = 1.5, "fire" = 0, "acid" = 1.5) + beauty_modifier = 0.3 + turf_sound_override = FOOTSTEP_SAND + texture_layer_icon_state = "paper" + +/datum/material/paper/on_applied_obj(obj/source, amount, material_flags) + . = ..() + if(material_flags & MATERIAL_AFFECT_STATISTICS) + var/obj/paper = source + paper.resistance_flags |= FLAMMABLE + paper.obj_flags |= UNIQUE_RENAME + +/datum/material/paper/on_removed_obj(obj/source, material_flags) + if(material_flags & MATERIAL_AFFECT_STATISTICS) + var/obj/paper = source + paper.resistance_flags &= ~FLAMMABLE + return ..() + +/datum/material/cardboard + name = "cardboard" + desc = "They say cardboard is used by hobos to make incredible things." + color = "#5F625C" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/sheet/cardboard + value_per_unit = 0.003 + armor_modifiers = list("melee" = 0.25, "bullet" = 0.25, "laser" = 0.25, "energy" = 0.25, "bomb" = 0.25, "bio" = 0.25, "rad" = 1.5, "fire" = 0, "acid" = 1.5) + beauty_modifier = -0.1 + +/datum/material/cardboard/on_applied_obj(obj/source, amount, material_flags) + . = ..() + if(material_flags & MATERIAL_AFFECT_STATISTICS) + var/obj/cardboard = source + cardboard.resistance_flags |= FLAMMABLE + cardboard.obj_flags |= UNIQUE_RENAME + +/datum/material/cardboard/on_removed_obj(obj/source, material_flags) + if(material_flags & MATERIAL_AFFECT_STATISTICS) + var/obj/cardboard = source + cardboard.resistance_flags &= ~FLAMMABLE + return ..() + +/datum/material/bone + name = "bone" + desc = "Man, building with this will make you the coolest caveman on the block." + color = "#e3dac9" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/sheet/bone + value_per_unit = 0.05 + armor_modifiers = list("melee" = 1.2, "bullet" = 0.75, "laser" = 0.75, "energy" = 1.2, "bomb" = 1, "bio" = 1, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5) + beauty_modifier = -0.2 + +/datum/material/bamboo + name = "bamboo" + desc = "If it's good enough for pandas, it's good enough for you." + color = "#339933" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/sheet/mineral/bamboo + value_per_unit = 0.0025 + armor_modifiers = list("melee" = 0.5, "bullet" = 0.5, "laser" = 0.5, "energy" = 0.5, "bomb" = 0.5, "bio" = 0.51, "rad" = 1.5, "fire" = 0.5, "acid" = 1.5) + beauty_modifier = 0.2 + turf_sound_override = FOOTSTEP_WOOD + texture_layer_icon_state = "bamboo" diff --git a/code/datums/materials/meat.dm b/code/datums/materials/meat.dm new file mode 100644 index 0000000000..14a373f2d2 --- /dev/null +++ b/code/datums/materials/meat.dm @@ -0,0 +1,32 @@ +///It's gross, gets the name of it's owner, and is all kinds of fucked up +/datum/material/meat + name = "meat" + desc = "Meat" + color = rgb(214, 67, 67) + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/sheet/meat + value_per_unit = 0.05 + beauty_modifier = -0.3 + strength_modifier = 0.7 + armor_modifiers = list("melee" = 0.3, "bullet" = 0.3, "laser" = 1.2, "energy" = 1.2, "bomb" = 0.3, "bio" = 0, "rad" = 0.7, "fire" = 1, "acid" = 1) + item_sound_override = 'sound/effects/meatslap.ogg' + turf_sound_override = FOOTSTEP_MEAT + texture_layer_icon_state = "meat" + +/datum/material/meat/on_removed(atom/source, material_flags) + . = ..() + qdel(source.GetComponent(/datum/component/edible)) + +/datum/material/meat/on_applied_obj(obj/O, amount, material_flags) + . = ..() + O.obj_flags |= UNIQUE_RENAME //So you can name it after the person its made from, a depressing comprimise. + make_edible(O, amount, material_flags) + +/datum/material/meat/on_applied_turf(turf/T, amount, material_flags) + . = ..() + make_edible(T, amount, material_flags) + +/datum/material/meat/proc/make_edible(atom/source, amount, material_flags) + var/nutriment_count = 3 * (amount / MINERAL_MATERIAL_AMOUNT) + var/oil_count = 2 * (amount / MINERAL_MATERIAL_AMOUNT) + source.AddComponent(/datum/component/edible, list(/datum/reagent/consumable/nutriment = nutriment_count, /datum/reagent/consumable/cooking_oil = oil_count), null, RAW | MEAT | GROSS, null, 30, list("Fleshy")) diff --git a/code/datums/materials/pizza.dm b/code/datums/materials/pizza.dm new file mode 100644 index 0000000000..2a9542234f --- /dev/null +++ b/code/datums/materials/pizza.dm @@ -0,0 +1,30 @@ +/datum/material/pizza + name = "pizza" + desc = "~Jamme, jamme, n'coppa, jamme ja! Jamme, jamme, n'coppa jamme ja, funi-culi funi-cala funi-culi funi-cala!! Jamme jamme ja funiculi funicula!~" + color = "#FF9F23" + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) + sheet_type = /obj/item/stack/sheet/pizza + value_per_unit = 0.05 + beauty_modifier = 0.1 + strength_modifier = 0.7 + armor_modifiers = list("melee" = 0.3, "bullet" = 0.3, "laser" = 1.2, "energy" = 1.2, "bomb" = 0.3, "bio" = 0, "rad" = 0.7, "fire" = 1, "acid" = 1) + item_sound_override = 'sound/effects/meatslap.ogg' + turf_sound_override = FOOTSTEP_MEAT + texture_layer_icon_state = "pizza" + +/datum/material/pizza/on_removed(atom/source, material_flags) + . = ..() + qdel(source.GetComponent(/datum/component/edible)) + +/datum/material/pizza/on_applied_obj(obj/O, amount, material_flags) + . = ..() + make_edible(O, amount, material_flags) + +/datum/material/pizza/on_applied_turf(turf/T, amount, material_flags) + . = ..() + make_edible(T, amount, material_flags) + +/datum/material/pizza/proc/make_edible(atom/source, amount, material_flags) + var/nutriment_count = 3 * (amount / MINERAL_MATERIAL_AMOUNT) + var/oil_count = 2 * (amount / MINERAL_MATERIAL_AMOUNT) + source.AddComponent(/datum/component/edible, list(/datum/reagent/consumable/nutriment = nutriment_count, /datum/reagent/consumable/cooking_oil = oil_count), null, GRAIN | MEAT | DAIRY | VEGETABLES, null, 30, list("crust", "tomato", "cheese", "meat")) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index a9438fa80b..8ac9bc4276 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -97,9 +97,6 @@ if(current) // remove ourself from our old body's mind variable current.mind = null SStgui.on_transfer(current, new_character) - if(iscarbon(current)) - var/mob/living/carbon/C = current - C.disable_intentional_combat_mode(TRUE) if(key) if(new_character.key != key) //if we're transferring into a body with a key associated which is not ours @@ -334,14 +331,20 @@ /datum/mind/proc/enslave_mind_to_creator(mob/living/creator) if(iscultist(creator)) - SSticker.mode.add_cultist(src) + if(iscultist(creator, TRUE)) + SSticker.mode.add_cultist(src) + else + src.add_antag_datum(/datum/antagonist/cult/neutered/traitor) else if(is_revolutionary(creator)) var/datum/antagonist/rev/converter = creator.mind.has_antag_datum(/datum/antagonist/rev,TRUE) converter.add_revolutionary(src,FALSE) else if(is_servant_of_ratvar(creator)) - add_servant_of_ratvar(current) + if(is_servant_of_ratvar(creator, TRUE)) + add_servant_of_ratvar(current) + else + add_servant_of_ratvar(current, FALSE, FALSE, /datum/antagonist/clockcult/neutered/traitor) else if(is_nuclear_operative(creator)) var/datum/antagonist/nukeop/converter = creator.mind.has_antag_datum(/datum/antagonist/nukeop,TRUE) diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index 1464927c3a..f5692c297a 100644 --- a/code/datums/mood_events/generic_negative_events.dm +++ b/code/datums/mood_events/generic_negative_events.dm @@ -153,7 +153,13 @@ mood_change = -4 timeout = 2400 +/datum/mood_event/graverobbing + description ="I just desecrated someone's grave... I can't believe I did that...\n" + mood_change = -8 + timeout = 3 MINUTES + //These are unused so far but I want to remember them to use them later + /datum/mood_event/cloned_corpse description = "I recently saw my own corpse...\n" mood_change = -6 @@ -162,6 +168,8 @@ description = "HE'S CUTTING ME OPEN!!\n" mood_change = -8 +//End unused + /datum/mood_event/sad_empath description = "Someone seems upset...\n" mood_change = -2 @@ -199,6 +207,8 @@ mood_change = -2 timeout = 1 MINUTES +//Cursed stuff end. + /datum/mood_event/vampcandle description = "Something is making your mind feel... loose...\n" mood_change = -15 @@ -248,7 +258,7 @@ description = "Something I recently ate was horrifyingly disgusting.\n" mood_change = -5 timeout = 5 MINUTES - + /datum/mood_event/nanite_sadness description = "+++++++HAPPINESS SUPPRESSION+++++++\n" mood_change = -7 @@ -256,3 +266,7 @@ /datum/mood_event/nanite_sadness/add_effects(message) description = "+++++++[message]+++++++\n" +/datum/mood_event/artbad + description = "I've produced better art than that from my ass.\n" + mood_change = -2 + timeout = 1200 diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index 1e9a53cf57..95177f6869 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -182,3 +182,17 @@ description = "What a peculiar emblem. It makes me feel hopeful for my future.\n" mood_change = 5 +/datum/mood_event/artok + description = "It's nice to see people are making art around here.\n" + mood_change = 2 + timeout = 2 MINUTES + +/datum/mood_event/artgood + description = "What a thought-provoking piece of art. I'll remember that for a while.\n" + mood_change = 3 + timeout = 3 MINUTES + +/datum/mood_event/artgreat + description = "That work of art was so great it made me believe in the goodness of humanity. Says a lot in a place like this.\n" + mood_change = 4 + timeout = 4 MINUTES diff --git a/code/datums/mutations/_mutations.dm b/code/datums/mutations/_mutations.dm index 9edaa7605c..db739c5100 100644 --- a/code/datums/mutations/_mutations.dm +++ b/code/datums/mutations/_mutations.dm @@ -116,7 +116,8 @@ owner.apply_overlay(layer_used) if(power) owner.RemoveSpell(power) - qdel(src) + qdel(power) + SEND_SIGNAL(owner, COMSIG_HUMAN_MUTATION_LOSS, src) return 0 return 1 diff --git a/code/datums/mutations/actions.dm b/code/datums/mutations/actions.dm index 2c10838314..7e6d567cfa 100644 --- a/code/datums/mutations/actions.dm +++ b/code/datums/mutations/actions.dm @@ -42,6 +42,7 @@ school = "evocation" charge_max = 600 clothes_req = NONE + antimagic_allowed = TRUE range = 20 base_icon_state = "fireball" action_icon_state = "fireball0" @@ -122,6 +123,7 @@ desc = "A rare genome that attracts odd forces not usually observed. May sometimes pull you in randomly." school = "evocation" clothes_req = NONE + antimagic_allowed = TRUE charge_max = 600 invocation = "DOOOOOOOOOOOOOOOOOOOOM!!!" invocation_type = "shout" @@ -155,6 +157,7 @@ dropmessage = "You let the electricity from your hand dissipate." hand_path = /obj/item/melee/touch_attack/shock charge_max = 400 + antimagic_allowed = TRUE clothes_req = NONE action_icon_state = "zap" @@ -212,6 +215,7 @@ desc = "Get a scent off of the item you're currently holding to track it. With an empty hand, you'll track the scent you've remembered." charge_max = 100 clothes_req = NONE + antimagic_allowed = TRUE range = -1 include_user = TRUE action_icon_state = "nose" @@ -289,6 +293,7 @@ name = "Drop a limb" desc = "Concentrate to make a random limb pop right off your body." clothes_req = NONE + antimagic_allowed = TRUE charge_max = 100 action_icon_state = "autotomy" @@ -326,6 +331,7 @@ name = "Lay Web" desc = "Drops a web. Only you will be able to traverse your web easily, making it pretty good for keeping you safe." clothes_req = NONE + antimagic_allowed = TRUE charge_max = 4 SECONDS //the same time to lay a web action_icon = 'icons/mob/actions/actions_genetic.dmi' action_icon_state = "lay_web" @@ -367,6 +373,7 @@ name = "Launch spike" desc = "Shoot your tongue out in the direction you're facing, embedding it and dealing damage until they remove it." clothes_req = NONE + antimagic_allowed = TRUE charge_max = 100 action_icon = 'icons/mob/actions/actions_genetic.dmi' action_icon_state = "spike" @@ -405,6 +412,8 @@ w_class = WEIGHT_CLASS_SMALL sharpness = IS_SHARP var/mob/living/carbon/human/fired_by + /// if we missed our target + var/missed = TRUE /obj/item/hardened_spike/Initialize(mapload, firedby) . = ..() @@ -412,13 +421,12 @@ addtimer(CALLBACK(src, .proc/checkembedded), 5 SECONDS) /obj/item/hardened_spike/proc/checkembedded() - if(ishuman(loc)) - var/mob/living/carbon/human/embedtest = loc - for(var/l in embedtest.bodyparts) - var/obj/item/bodypart/limb = l - if(src in limb.embedded_objects) - return limb - unembedded() + if(missed) + unembedded() + +/obj/item/hardened_spike/embedded(atom/target) + if(isbodypart(target)) + missed = FALSE /obj/item/hardened_spike/unembedded() var/turf/T = get_turf(src) @@ -489,11 +497,7 @@ var/obj/item/bodypart/L = spikey.checkembedded() - L.embedded_objects -= spikey //this is where it would deal damage, if it transfers chems it removes itself so no damage spikey.forceMove(get_turf(L)) transfered.visible_message("[spikey] falls out of [transfered]!") - if(!transfered.has_embedded_objects()) - transfered.clear_alert("embeddedobject") - SEND_SIGNAL(transfered, COMSIG_CLEAR_MOOD_EVENT, "embedded") - spikey.unembedded() + diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm index 9f8c74e2db..866ea85dbf 100644 --- a/code/datums/mutations/body.dm +++ b/code/datums/mutations/body.dm @@ -82,7 +82,7 @@ if(..()) return ADD_TRAIT(owner, TRAIT_DWARF, GENETIC_MUTATION) - owner.transform = owner.transform.Scale(1, 0.8) + owner.AddElement(/datum/element/dwarfism, COMSIG_HUMAN_MUTATION_LOSS, src) passtable_on(owner, GENETIC_MUTATION) owner.visible_message("[owner] suddenly shrinks!", "Everything around you seems to grow..") @@ -90,7 +90,6 @@ if(..()) return REMOVE_TRAIT(owner, TRAIT_DWARF, GENETIC_MUTATION) - owner.transform = owner.transform.Scale(1, 1.25) passtable_off(owner, GENETIC_MUTATION) owner.visible_message("[owner] suddenly grows!", "Everything around you seems to shrink..") diff --git a/code/datums/position_point_vector.dm b/code/datums/position_point_vector.dm index 608683c3dc..482e15c57d 100644 --- a/code/datums/position_point_vector.dm +++ b/code/datums/position_point_vector.dm @@ -189,6 +189,12 @@ x += mpx * (multiplier) y += mpy * (multiplier) +/datum/point/vector/proc/pixel_increment(pixels = 32, update_iteration = TRUE, realistic_iteration = FALSE) + if(update_iteration) + iteration += realistic_iteration? round(pixels / speed) : 1 + x += sin(angle) * pixels + y += cos(angle) * pixels + /datum/point/vector/proc/return_vector_after_increments(amount = 7, multiplier = 1, force_simulate = FALSE) var/datum/point/vector/v = copy_to() if(force_simulate) diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm index 8f3811ca71..933eaf082e 100644 --- a/code/datums/ruins/lavaland.dm +++ b/code/datums/ruins/lavaland.dm @@ -250,4 +250,12 @@ cost = 5 placement_weight = 3 always_place = TRUE - allow_duplicates = TRUE + allow_duplicates = TRUE + +/datum/map_template/ruin/lavaland/elephant_graveyard + name = "Elephant Graveyard" + id = "Graveyard" + description = "An abandoned graveyard, calling to those unable to continue." + suffix = "lavaland_surface_elephant_graveyard.dmm" + allow_duplicates = FALSE + cost = 10 diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index 6e4b1a6305..d275684bba 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -162,6 +162,10 @@ port_id = "pirate" can_be_bought = FALSE +/datum/map_template/shuttle/hunter + port_id = "hunter" + can_be_bought = FALSE + /datum/map_template/shuttle/ruin //For random shuttles in ruins port_id = "ruin" can_be_bought = FALSE @@ -170,6 +174,11 @@ port_id = "snowdin" can_be_bought = FALSE +/datum/map_template/shuttle/snow_taxi + port_id = "snow" + can_be_bought = FALSE + suffix = "taxi" + // Shuttles start here: /datum/map_template/shuttle/emergency/backup @@ -453,6 +462,10 @@ suffix = "whiteship_pod" name = "Salvage Pod" +/datum/map_template/shuttle/whiteship/cog + suffix = "cog" + name = "NT Prisoner Transport" + /datum/map_template/shuttle/cargo/box suffix = "box" name = "supply shuttle (Box)" @@ -557,6 +570,10 @@ suffix = "cog" name = "arrival shuttle (Cog)" +/datum/map_template/shuttle/arrival/snaxi + suffix = "snaxi" + name = "arrival shuttle (Snaxi)" + /datum/map_template/shuttle/aux_base/default suffix = "default" name = "auxilliary base (Default)" @@ -604,3 +621,15 @@ /datum/map_template/shuttle/snowdin/excavation suffix = "excavation" name = "Snowdin Excavation Elevator" + +/datum/map_template/shuttle/hunter/space_cop + suffix = "space_cop" + name = "Police Spacevan" + +/datum/map_template/shuttle/hunter/russian + suffix = "russian" + name = "Russian Cargo Ship" + +/datum/map_template/shuttle/hunter/bounty + suffix = "bounty" + name = "Bounty Hunter Ship" diff --git a/code/datums/skills/_check_skills.dm b/code/datums/skills/_check_skills.dm index d9dc6dad3d..d02a716b8a 100644 --- a/code/datums/skills/_check_skills.dm +++ b/code/datums/skills/_check_skills.dm @@ -11,6 +11,66 @@ if(!mind.skill_holder) to_chat(usr, "How do you check the skills of [(usr == src)? "yourself when you are" : "something"] without the capability for skills? (PROBABLY A BUG, PRESS F1.)") return - var/datum/browser/B = new(usr, "skilldisplay_[REF(src)]", "Skills of [src]") - B.set_content(mind.skill_holder.html_readout()) - B.open() + + mind.skill_holder.ui_interact(src) + +/datum/skill_holder/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.always_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "skillpanel", "[owner.name]'s Skills", 620, 580, master_ui, state) + ui.set_autoupdate(FALSE) // This UI is only ever opened by one person, and never is updated outside of user input. + ui.open() + else if(need_static_data_update) + update_static_data(user) + need_static_data_update = FALSE + +/datum/skill_holder/ui_static_data(mob/user) + . = list() + .["skills"] = list() + for(var/path in GLOB.skill_datums) + var/datum/skill/S = GLOB.skill_datums[path] + var/list/dat = S.get_skill_data(src) + if(islist(dat["modifiers"])) + dat["modifiers"] = jointext(dat["modifiers"], ", ") + dat["percent_base"] = (dat["value_base"] / dat["max_value"]) + dat["percent_mod"] = (dat["value_mod"] / dat["max_value"]) + .["skills"] += list(dat) + +/datum/skill_holder/ui_data(mob/user) + . = list() + .["playername"] = owner.name + .["see_skill_mods"] = see_skill_mods + .["admin"] = check_rights(R_DEBUG, FALSE) + +/datum/skill_holder/ui_act(action, params) + . = ..() + if(.) + return + switch(action) + if("toggle_mods") + see_skill_mods = !see_skill_mods + return TRUE + if ("adj_exp") + if(!check_rights(R_DEBUG)) + return + var/skill = text2path(params["skill"]) + var/number = input("Please insert the amount of experience/progress you'd like to add/subtract:") as num|null + if (number) + owner.set_skill_value(skill, owner.get_skill_value(skill, FALSE) + number) + return TRUE + if ("set_exp") + if(!check_rights(R_DEBUG)) + return + var/skill = text2path(params["skill"]) + var/number = input("Please insert the number you want to set the player's exp/progress to:") as num|null + if (!isnull(number)) + owner.set_skill_value(skill, number) + return TRUE + if ("set_lvl") + if(!check_rights(R_DEBUG)) + return + var/datum/skill/level/S = GLOB.skill_datums[text2path(params["skill"])] + var/number = input("Please insert a whole number between 0[S.associative ? " ([S.unskilled_tier])" : ""] and [S.max_levels][S.associative ? " ([S.levels[S.max_levels]])" : ""] corresponding to the level you'd like to set the player to.") as num|null + if (number >= 0 && number <= S.max_levels) + owner.set_skill_value(S.type, S.get_skill_level_value(number)) + return TRUE diff --git a/code/datums/skills/_skill.dm b/code/datums/skills/_skill.dm index f52945536f..eecf416b1b 100644 --- a/code/datums/skills/_skill.dm +++ b/code/datums/skills/_skill.dm @@ -8,20 +8,12 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) continue S = new path .[S.type] = S - -/proc/sanitize_skill_value(path, value) - var/datum/skill/S = GLOB.skill_datums[path] - // don't check, if we runtime let it happen. - return S.sanitize_value(value) - -/proc/is_skill_value_greater(path, existing, new_value) - var/datum/skill/S = GLOB.skill_datums[path] - // don't check, if we runtime let it happen. - return S.is_value_greater(existing, new_value) + . = sortTim(., /proc/cmp_skill_categories, TRUE) /** * Skill datums */ + /datum/skill /// Our name var/name @@ -29,16 +21,26 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) var/desc /// Color of the name as shown in the html readout var/name_color = "#F0F0F0" // White on dark surface. - /// Our progression type + /// Our progression type. These are mostly used to skip typechecks overhead, don't go around messing with these. var/progression_type /// Abstract type var/abstract_type = /datum/skill - /// skill threshold used in generic skill modifiers calculations. - var/list/competency_thresholds = list(0, 0, 0) - /// Multiplier of the difference of the holder skill value and the selected threshold. - var/list/competency_mults = list(0, 0, 0) - /// In which way this skil can affect or be affected through actions. - var/skill_flags = SKILL_USE_MOOD|SKILL_TRAIN_MOOD + /// List of max levels. Only used in level skills, but present here for helper macros. + var/max_levels = INFINITY + /// skill threshold used in generic skill competency operations. + var/list/competency_thresholds + /// Base multiplier used in skill competency operations. + var/base_multiplier = 1 + /// Value added to the base multiplier depending on overall competency compared to maximum value/level. + var/competency_multiplier = 1 + /// Experience gain multiplier gained from using items. + var/item_skill_gain_multi = 1 + /// Skill gain quantisation + var/skill_gain_quantisation = 0.1 + /// A list of ways this skill can affect or be affected through actions and skill modifiers. + var/list/skill_traits = list(SKILL_SANITY, SKILL_INTELLIGENCE) + /// Index of this skill in the UI + var/ui_category = SKILL_UI_CAT_MISC /** * Ensures what someone's setting as a value for this skill is valid. @@ -62,10 +64,28 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) return new_value > existing /** - * Standard value "render" + * Get a list of data used in the skill panel menu. */ -/datum/skill/proc/standard_render_value(value, level) - return value +/datum/skill/proc/get_skill_data(datum/skill_holder/H) + var/skill_value = H.owner.get_skill_value(type, FALSE) + . = list( + "name" = name, + "desc" = desc, + "path" = type, + "value_base" = skill_value, + "value_mod" = skill_value, + "modifiers" = "None", + "max_value" = 1 //To avoid division by zero later on. + ) + var/list/mods = LAZYACCESS(H.skill_value_mods, type) + if(mods) + var/list/mod_names = list() + for(var/k in mods) + var/datum/skill_modifier/M = GLOB.skill_modifiers[k] + mod_names |= M.name + skill_value = M.apply_modifier(skill_value, type, H, MODIFIER_TARGET_VALUE) + .["value_mod"] = skill_value + .["modifiers"] = mod_names //Will be jointext()'d later. // Just saying, the choice to use different sub-parent-types is to force coders to resolve issues as I won't be implementing custom procs to grab skill levels in a certain context. // Aka: So people don't forget to change checks if they change a skill's progression type. @@ -73,30 +93,37 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) /datum/skill/binary abstract_type = /datum/skill/binary progression_type = SKILL_PROGRESSION_BINARY - competency_thresholds = list(FALSE, TRUE, TRUE) - competency_mults = list(0.5, 0.5, 0.5) + competency_thresholds = list(THRESHOLD_COMPETENT = FALSE, THRESHOLD_EXPERT = TRUE, THRESHOLD_MASTER = TRUE) /datum/skill/binary/sanitize_value(new_value) - return new_value? TRUE : FALSE + return new_value >= 1 ? TRUE : FALSE -/datum/skill/binary/standard_render_value(value, level) - return value? "Yes" : "No" +/datum/skill/binary/get_skill_data(datum/skill_holder/H) + . = ..() + .["base_readout"] = .["value_base"] ? "Learned: Yes" : "Learned: No" + .["mod_readout"] = .["value_mod"] ? "Learned: Yes" : "Learned: No" /datum/skill/numerical abstract_type = /datum/skill/numerical progression_type = SKILL_PROGRESSION_NUMERICAL + competency_thresholds = list(THRESHOLD_COMPETENT = 25, THRESHOLD_EXPERT = 50, THRESHOLD_MASTER = 75) /// Max value of this skill var/max_value = 100 /// Min value of this skill var/min_value = 0 - /// Display as a percent in standard_render_value? - var/display_as_percent = FALSE + +/datum/skill/numerical/New() + ..() + skill_gain_quantisation = item_skill_gain_multi = item_skill_gain_multi * (max_value - min_value) * STD_NUM_SKILL_ITEM_GAIN_MULTI /datum/skill/numerical/sanitize_value(new_value) return clamp(new_value, min_value, max_value) -/datum/skill/numerical/standard_render_value(value, level) - return display_as_percent? "[round(value/max_value/100, 0.01)]%" : "[value] / [max_value]" +/datum/skill/numerical/get_skill_data(datum/skill_holder/H) + . = ..() + .["base_readout"] = "Skill Progress: \[[.["value_base"]] / [max_value]\]" + .["mod_readout"] = "Skill Progress: \[[.["value_mod"]] / [max_value]\]" + .["max_value"] = max_value /datum/skill/enum abstract_type = /datum/skill/enum @@ -114,9 +141,9 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) /datum/skill/level abstract_type = /datum/skill/level progression_type = SKILL_PROGRESSION_LEVEL + max_levels = STD_MAX_LVL var/standard_xp_lvl_up = STD_XP_LVL_UP //the standard required to level up. def: 100 var/xp_lvl_multiplier = STD_XP_LVL_MULTI //standard required level up exp multiplier. def: 2 (100, 200, 400, 800 etc.) - var/max_levels = STD_MAX_LVL var/level_up_method = STANDARD_LEVEL_UP //how levels are calculated. var/list/levels = list() //level thresholds, if associative, these will be preceded by tiers such as "novice" or "trained" var/associative = FALSE //See above. @@ -128,13 +155,7 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) var/max_assoc = "" var/max_assoc_start = 1 for(var/lvl in 1 to max_levels) - var/value - switch(level_up_method) - if(STANDARD_LEVEL_UP) - value = XP_LEVEL(standard_xp_lvl_up, xp_lvl_multiplier, lvl) - if(DWARFY_LEVEL_UP) - value = DORF_XP_LEVEL(standard_xp_lvl_up, xp_lvl_multiplier, lvl) - value = round(value, 1) + var/value = round(get_skill_level_value(lvl), 1) if(!associative) levels += value continue @@ -172,23 +193,69 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) else if(. < 0) to_chat(M.current, "I feel like I've become worse at [name]!") -/datum/skill/level/standard_render_value(value, level) - var/current_lvl = associative ? (!level ? unskilled_tier : levels[level]) : level +/datum/skill/level/get_skill_data(datum/skill_holder/H) + . = ..() + var/skill_value_base = .["value_base"] + var/skill_value_mod = .["value_mod"] + .["level_based"] = TRUE + + var/level = LAZYACCESS(H.skill_levels, type) || 0 var/current_lvl_xp_sum = 0 if(level) current_lvl_xp_sum = associative ? levels[levels[level]] : levels[level] - var/next_index = max(max_levels, level+1) + var/next_index = min(max_levels, level+1) var/next_lvl_xp = associative ? levels[levels[next_index]] : levels[next_index] if(next_lvl_xp > current_lvl_xp_sum) next_lvl_xp -= current_lvl_xp_sum + .["lvl_base_num"] = .["lvl_mod_num"] = level + .["lvl_base"] = .["lvl_mod"] = associative ? (!level ? unskilled_tier : levels[level]) : level + .["base_style"] = .["mod_style"] = "font-weight:bold; color:hsl([(level+1)*(350/max_levels+1)], 50%, 50%)" + .["xp_next_lvl_base"] = .["xp_next_lvl_mod"] = "\[[skill_value_base - current_lvl_xp_sum]/[next_lvl_xp]\]" + .["max_lvl"] = max_levels + var/max_value = associative ? levels[levels[max_levels]] : levels[max_levels] + .["max_value"] = max_value - return "[associative ? current_lvl : "Lvl. [current_lvl]"] ([value - current_lvl_xp_sum]/[next_lvl_xp])[level == max_levels ? " \[MAX!\]" : ""]" + .["base_readout"] = "Overall Skill Progress: \[[skill_value_base]/[max_value]\]" + .["mod_readout"] = "Overall Skill Progress: \[[skill_value_mod]/[max_value]\]" + + var/list/mods = LAZYACCESS(H.skill_level_mods, type) + if(mods) //I'm not proud of doing the same-ish process twice a row but here we go. + var/list/mod_names = .["modifiers"] + if(!mod_names) + .["modifiers"] = mod_names = list() + for(var/k in mods) + var/datum/skill_modifier/M = GLOB.skill_modifiers[k] + mod_names |= M.name + level = M.apply_modifier(level, type, H, MODIFIER_TARGET_LEVEL) + + if(level) + current_lvl_xp_sum = associative ? levels[levels[level]] : levels[level] + else + current_lvl_xp_sum = 0 + next_index = min(max_levels, level+1) + next_lvl_xp = associative ? levels[levels[next_index]] : levels[next_index] + if(next_lvl_xp > current_lvl_xp_sum) + next_lvl_xp -= current_lvl_xp_sum + .["lvl_mod_num"] = level + .["lvl_mod"] = associative ? (!level ? unskilled_tier : levels[level]) : level + .["mod_style"] = "font-weight:bold; color:hsl([(level+1)*(300/(max_levels+1))], 50%, 50%)" + .["xp_next_lvl_mod"] = "\[[skill_value_mod - current_lvl_xp_sum]/[next_lvl_xp]\]" + +/** + * Gets the base value required to reach a level specified by the 'num' arg. + */ +/datum/skill/level/proc/get_skill_level_value(num) + switch(level_up_method) + if(STANDARD_LEVEL_UP) + . = XP_LEVEL(standard_xp_lvl_up, xp_lvl_multiplier, num) + if(DWARFY_LEVEL_UP) + . = DORF_XP_LEVEL(standard_xp_lvl_up, xp_lvl_multiplier, num) /datum/skill/level/job + abstract_type = /datum/skill/level/job levels = list("Basic", "Trained", "Experienced", "Master") - competency_thresholds = list(JOB_SKILL_TRAINED, JOB_SKILL_EXPERT, JOB_SKILL_MASTER) - competency_mults = list(0.15, 0.1, 0.1) + competency_thresholds = list(THRESHOLD_COMPETENT = JOB_SKILL_TRAINED, THRESHOLD_EXPERT = JOB_SKILL_EXPERT, THRESHOLD_MASTER = JOB_SKILL_MASTER) associative = TRUE //quite the reference, no? @@ -202,7 +269,6 @@ GLOBAL_LIST_INIT_TYPED(skill_datums, /datum/skill, init_skill_datums()) "Proficient", "Talented", "Adept", "Expert", "Professional", "Accomplished", "Great", "Master", "High Master", "Grand Master", "Legendary") - competency_thresholds = list(DORF_SKILL_COMPETENT, DORF_SKILL_EXPERT, DORF_SKILL_MASTER) - competency_mults = list(0.15, 0.1, 0.08) + competency_thresholds = list(THRESHOLD_COMPETENT = DORF_SKILL_COMPETENT, THRESHOLD_EXPERT = DORF_SKILL_EXPERT, THRESHOLD_MASTER = DORF_SKILL_MASTER) associative = TRUE unskilled_tier = "Dabbling" diff --git a/code/datums/skills/_skill_holder.dm b/code/datums/skills/_skill_holder.dm index e252b4c9c6..73748417c3 100644 --- a/code/datums/skills/_skill_holder.dm +++ b/code/datums/skills/_skill_holder.dm @@ -1,8 +1,8 @@ /** * Skill holder datums + * All procs are tied to the mind, since they are always expected to have a skill holder anyway. */ /datum/skill_holder - var/datum/mind/owner /// Our list of skills and values. Lazylist. Associative. Keys are datum typepaths to the skill. var/list/skills /// Same as [skills] but affinities, which are multiplied to increase amount when gaining skills. @@ -10,66 +10,100 @@ /// Let's say we want to get a specific skill "level" without looping through a proc everytime. /// Only supported by skills with tiers or levels. var/list/skill_levels + /// current skill modifiers lists, per value, affinity, level. + var/list/skill_value_mods + var/list/skill_affinity_mods + var/list/skill_level_mods + /// List of all current skill modifiers, so we don't add the same ones twice. + var/list/all_current_skill_modifiers + /// List of original values stored at the time a modifier with the MODIFIER_SKILL_ORIGIN_DIFF enabled was added. + var/list/original_values + var/list/original_affinities + var/list/original_levels + /// The mind datum this skill is associated with, only used for the check_skills UI + var/datum/mind/owner + /// For UI updates. + var/need_static_data_update = TRUE + /// Whether modifiers and final skill values or only base values are displayed. + var/see_skill_mods = TRUE + /// The current selected skill category. + var/selected_category -/datum/skill_holder/New(datum/mind/M) - . = ..() - owner = M +/datum/skill_holder/New(owner) + ..() + src.owner = owner /** * Grabs the value of a skill. */ -/datum/skill_holder/proc/get_skill_value(skill) +/datum/mind/proc/get_skill_value(skill, apply_modifiers = TRUE) if(!ispath(skill)) CRASH("Invalid get_skill_value call. Use typepaths.") //until a time when we somehow need text ids for dynamic skills, I'm enforcing this. - if(!skills) - return null - return skills[skill] + if(!skill_holder.skills) + . = 0 + else + . = skill_holder.skills[skill] || 0 + if(apply_modifiers && skill_holder.skill_value_mods) + var/L = LAZYACCESS(skill_holder.skill_value_mods, skill) + for(var/k in L) + var/datum/skill_modifier/M = GLOB.skill_modifiers[k] + . = M.apply_modifier(., skill, skill_holder, MODIFIER_TARGET_VALUE) /** * Grabs the level of a skill. Only supported by skills with tiers or levels. */ -/datum/skill_holder/proc/get_skill_level(skill) +/datum/mind/proc/get_skill_level(skill, apply_modifiers = TRUE, round = FALSE) if(!ispath(skill, /datum/skill)) CRASH("Invalid get_skill_value call. Use skill typepaths.") //until a time when we somehow need text ids for dynamic skills, I'm enforcing this. - if(!skill_levels) - return 0 - return skill_levels[skill] + if(!skill_holder.skill_levels) + . = 0 + else + . = skill_holder.skill_levels[skill] || 0 + if(apply_modifiers && skill_holder.skill_level_mods) + var/L = LAZYACCESS(skill_holder.skill_level_mods, skill) + for(var/k in L) + var/datum/skill_modifier/M = GLOB.skill_modifiers[k] + . = M.apply_modifier(., skill, skill_holder, MODIFIER_TARGET_LEVEL) + . = SANITIZE_SKILL_LEVEL(skill, round ? round(., 1) : .) /** * Grabs our affinity for a skill. !!This is a multiplier!! */ -/datum/skill_holder/proc/get_skill_affinity(skill) +/datum/mind/proc/get_skill_affinity(skill, apply_modifiers = TRUE) . = 1 if(!ispath(skill, /datum/skill)) CRASH("Invalid get_skill_affinity call. Use skill typepaths.") //until a time when we somehow need text ids for dynamic skills, I'm enforcing this. - var/affinity = LAZYACCESS(skill_affinities, skill) + var/affinity = LAZYACCESS(skill_holder.skill_affinities, skill) if(!isnull(affinity)) . = affinity - var/list/wrapped = list(.) - SEND_SIGNAL(owner.current, COMSIG_MOB_SKILL_GET_AFFINITY, skill, wrapped) - . = wrapped[1] + if(apply_modifiers && skill_holder.skill_affinity_mods) + var/L = LAZYACCESS(skill_holder.skill_affinity_mods, skill) + for(var/k in L) + var/datum/skill_modifier/M = GLOB.skill_modifiers[k] + . = M.apply_modifier(., skill, skill_holder, MODIFIER_TARGET_AFFINITY) /** * Sets the value of a skill. */ -/datum/skill_holder/proc/set_skill_value(skill, value, silent = FALSE) +/datum/mind/proc/set_skill_value(skill, value, silent = FALSE) if(!ispath(skill, /datum/skill)) CRASH("Invalid set_skill_value call. Use skill typepaths.") //until a time when we somehow need text ids for dynamic skills, I'm enforcing this. var/datum/skill/S = GLOB.skill_datums[skill] value = S.sanitize_value(value) if(!isnull(value)) - LAZYINITLIST(skills) - S.set_skill_value(src, value, owner, silent) + LAZYINITLIST(skill_holder.skills) + S.set_skill_value(skill_holder, value, src, silent) + skill_holder.need_static_data_update = TRUE return TRUE return FALSE /** * Boosts a skill to a value if not aobve */ -/datum/skill_holder/proc/boost_skill_value_to(skill, value, silent = FALSE) - var/current = get_skill_value(skill) - if(!is_skill_value_greater(skill, current, value)) +/datum/mind/proc/boost_skill_value_to(skill, value, silent = FALSE, current) + current = current || get_skill_value(skill, FALSE) + if(!IS_SKILL_VALUE_GREATER(skill, current, value)) return FALSE set_skill_value(skill, value, silent) return TRUE @@ -78,20 +112,18 @@ * Automatic skill increase, multiplied by skill affinity if existing. * Only works if skill is numerical. */ -/datum/skill_holder/proc/auto_gain_experience(skill, value, maximum, silent = FALSE) +/datum/mind/proc/auto_gain_experience(skill, value, maximum, silent = FALSE) if(!ispath(skill, /datum/skill)) CRASH("Invalid set_skill_value call. Use skill typepaths.") var/datum/skill/S = GLOB.skill_datums[skill] if(S.progression_type != SKILL_PROGRESSION_NUMERICAL && S.progression_type != SKILL_PROGRESSION_LEVEL) CRASH("You cannot auto increment a non numerical(experience skill!") - var/current = get_skill_value(skill) + var/current = get_skill_value(skill, FALSE) var/affinity = get_skill_affinity(skill) - var/target_value = current + (value * affinity) - if(maximum) - target_value = max(target_value, maximum) - if(target_value == maximum) //no more experience to gain, early return. - return - boost_skill_value_to(skill, target_value, silent) + var/target_value = round(current + (value * affinity), S.skill_gain_quantisation) + if(maximum && target_value >= maximum) //no more experience to gain, early return. + return + boost_skill_value_to(skill, target_value, silent, current) /** * Generic value modifier proc that uses one skill. @@ -100,22 +132,23 @@ * * threshold : The difficulty of the action, in short. Refer to __DEFINES/skills/defines.dm for the defines. * * modifier_is_multiplier : wheter the modifier is a multiplier or a divisor. */ -/datum/skill_holder/proc/action_skills_mod(skill, value, threshold, modifier_is_multiplier = TRUE) - var/mod +/datum/mind/proc/action_skill_mod(skill, value, threshold, modifier_is_multiplier = TRUE) var/datum/skill/S = GLOB.skill_datums[skill] if(!S) - return + return value + var/mod = S.base_multiplier switch(S.progression_type) if(SKILL_PROGRESSION_LEVEL) - mod = LAZYACCESS(skill_levels, S.type) + var/datum/skill/level/L = S + var/skill_lvl = get_skill_level(L.type) + mod += skill_lvl/(L.max_levels+max(L.competency_thresholds[threshold]-skill_lvl, 0))*L.competency_multiplier + if(SKILL_PROGRESSION_NUMERICAL) + var/datum/skill/numerical/N = S + var/skill_val = get_skill_value(N.type) + mod += skill_val/(N.max_value+max(N.competency_thresholds[threshold]-skill_val, 0))*N.competency_multiplier else - mod = LAZYACCESS(skills, S.type) - mod = (1+(mod-S.competency_thresholds[threshold])*S.competency_mults[threshold]) - - var/list/comsig_values = list(mod) - SEND_SIGNAL(owner.current, COMSIG_MOB_ACTION_SKILL_MOD, args, comsig_values) - mod = comsig_values[MOD_VALUES_SKILL_MOD] - + var/comp_threshold = S.competency_thresholds[threshold] + mod += (comp_threshold ? (get_skill_value(S.type) / comp_threshold) : get_skill_value(S.type))*S.competency_multiplier . = modifier_is_multiplier ? value*mod : value/mod /** @@ -123,49 +156,41 @@ * Args: * * item/I : the item used in this action. its used_skills list variable contains the skills exercised with it. * * value : the value to modify, may be a delay, damage, probability. - * * flags : the required flags that each skill (either in I.used_skills or the skill datum skill_flags) must have to influence + * * traits : the required traits each skill (either in I.used_skills or the skill datum skill_traits) must have to influence * * the value. - * * bad_flags : the opposite of the above, skills that must not be present to impact the value. + * * bad_traits : the opposite of the above. * * modifier_is_multiplier : wheter the modifier is a multiplier or a divisor. */ -/datum/skill_holder/proc/item_action_skills_mod(obj/item/I, value, flags = NONE, bad_flags = NONE, modifier_is_multiplier = TRUE) +/datum/mind/proc/item_action_skills_mod(obj/item/I, value, traits, bad_traits, modifier_is_multiplier = TRUE) . = value var/sum = 0 var/divisor = 0 - var/list/checked_skills + var/one_trait = istext(traits) + var/one_bad_trait = istext(bad_traits) for(var/k in I.used_skills) var/datum/skill/S = GLOB.skill_datums[k] if(!S) continue - var/our_flags = (I.used_skills[k]|S.skill_flags) - if((flags && !(our_flags & flags)) || (bad_flags && our_flags & bad_flags)) + var/our_traits = S.skill_traits + our_traits |= I.used_skills[k] + if(traits && !(one_trait ? (traits in our_traits) : length(our_traits & traits))) continue - var/mod + if(bad_traits && (one_bad_trait ? (bad_traits in our_traits) : length(our_traits & bad_traits))) + continue + var/mod = S.base_multiplier switch(S.progression_type) if(SKILL_PROGRESSION_LEVEL) - mod = LAZYACCESS(skill_levels, S.type) + var/datum/skill/level/L = S + var/skill_lvl = get_skill_level(L.type) + mod += skill_lvl/(L.max_levels+max(L.competency_thresholds[I.skill_difficulty]-skill_lvl, 0))*L.competency_multiplier + if(SKILL_PROGRESSION_NUMERICAL) + var/datum/skill/numerical/N = S + var/skill_val = get_skill_value(N.type) + mod += skill_val/(N.max_value+max(N.competency_thresholds[I.skill_difficulty]-skill_val, 0))*N.competency_multiplier else - mod = LAZYACCESS(skills, S.type) - sum += 1+(mod - S.competency_thresholds[I.skill_difficulty])*S.competency_mults[I.skill_difficulty] - LAZYADD(checked_skills, S) - - var/list/comsig_values = list(sum, divisor, checked_skills) - SEND_SIGNAL(owner.current, COMSIG_MOB_ITEM_ACTION_SKILLS_MOD, args, comsig_values) - sum = comsig_values[MOD_VALUES_ITEM_SKILLS_SUM] - divisor = comsig_values[MOD_VALUES_ITEM_SKILLS_DIV] - + var/comp_threshold = S.competency_thresholds[I.skill_difficulty] + mod += (comp_threshold ? (get_skill_value(S.type) / comp_threshold) : get_skill_value(S.type))*S.competency_multiplier + sum += mod + divisor++ if(divisor) . = modifier_is_multiplier ? value*(sum/divisor) : value/(sum/divisor) - -/** - * Generates a HTML readout of our skills. - * Port to tgui-next when? - */ -/datum/skill_holder/proc/html_readout() - var/list/out = list("

    Skills


    ") - out += "" - for(var/path in skills) - var/datum/skill/S = GLOB.skill_datums[path] - out += "" - out += "
    SkillValue
    [S.name][S.standard_render_value(skills[path], LAZYACCESS(skill_levels, path) || 0)]
    " - return out.Join("") diff --git a/code/datums/skills/_skill_modifier.dm b/code/datums/skills/_skill_modifier.dm new file mode 100644 index 0000000000..c38cbf23c6 --- /dev/null +++ b/code/datums/skills/_skill_modifier.dm @@ -0,0 +1,204 @@ +GLOBAL_LIST_EMPTY_TYPED(skill_modifiers, /datum/skill_modifier) +GLOBAL_LIST_EMPTY(potential_skills_per_mod) +GLOBAL_LIST_EMPTY(potential_mods_per_skill) + +/** + * Base skill modifier datum, used to modify a player skills without directly touching their values, levels and affinity + * and cause lots of edge cases. These are fairly simple overall... make a subtype though, don't use this one. + */ +/datum/skill_modifier + /// Name and description of the skill modifier, used in the UI + var/name = "???" + /// flags for this skill modifier. + var/modifier_flags = NONE + /// target skills, can be a specific skill typepath or a list of skill traits. + var/target_skills = /datum/skill + /// the GLOB.potential_skills_per_mod key generated on runtime. You shouldn't be var-editing it. + var/target_skills_key + /// The identifier key this skill modifier is associated with. + var/identifier + /// skill affinity modifier, can be a multiplier or addendum, depending on the modifier_flags. + var/affinity_mod = 1 + /// skill value modifier, see above. + var/value_mod = 1 + /// skill level modifier, see above. + var/level_mod = 1 + /// Priority of this skill modifier compared to other ones. + var/priority = MODIFIER_SKILL_PRIORITY_DEF + +/datum/skill_modifier/New(id, register = FALSE) + identifier = GET_SKILL_MOD_ID(type, id) + if(id) + var/former_id = identifier + var/dupe = 0 + while(GLOB.skill_modifiers[identifier]) + identifier = "[former_id][++dupe]" + + if(register) + register() + +/datum/skill_modifier/proc/register() + if(GLOB.skill_modifiers[identifier]) + CRASH("Skill modifier identifier \"[identifier]\" already taken.") + GLOB.skill_modifiers[identifier] = src + if(ispath(target_skills)) + target_skills_key = target_skills + var/list/mod_L = GLOB.potential_mods_per_skill[target_skills] + if(!mod_L) + mod_L = GLOB.potential_mods_per_skill[target_skills] = list() + else + BINARY_INSERT(identifier, mod_L, datum/skill_modifier, src, priority, COMPARE_VALUE) + mod_L[identifier] = src + GLOB.potential_skills_per_mod[target_skills_key] = list(target_skills) + else //Should be a list. + var/list/T = target_skills + T = sortTim(target_skills, /proc/cmp_text_asc) //Sort the list contents alphabetically. + target_skills_key = T.Join("-") + var/list/L = GLOB.potential_skills_per_mod[target_skills_key] + if(!L) + L = list() + for(var/path in GLOB.skill_datums) + if(GLOB.skill_datums[path].skill_traits & target_skills) + L += path + GLOB.potential_skills_per_mod[target_skills_key] = L + for(var/path in L) + var/list/mod_L = GLOB.potential_mods_per_skill[path] + if(!mod_L) + mod_L = GLOB.potential_mods_per_skill[path] = list() + else + BINARY_INSERT(identifier, mod_L, datum/skill_modifier, src, priority, COMPARE_VALUE) + mod_L[identifier] = src + +/datum/skill_modifier/Destroy() + for(var/path in GLOB.potential_skills_per_mod[target_skills_key]) + var/mod_L = GLOB.potential_mods_per_skill[path] + mod_L -= identifier + if(!length(mod_L)) + GLOB.potential_mods_per_skill -= path + GLOB.skill_modifiers -= identifier + return ..() + +#define ADD_MOD_STEP(L, P, O, G) \ + var/__L = L[P];\ + if(!__L){\ + L[P] = list(id)\ + } else {\ + L[P] = GLOB.potential_mods_per_skill[P] & (__L + id)\ + }\ + if(M.modifier_flags & MODIFIER_SKILL_ORIGIN_DIFF){\ + LAZYADDASSOC(O, id, "[P]" = G)\ + } + +/datum/mind/proc/add_skill_modifier(id) + if(LAZYACCESS(skill_holder.all_current_skill_modifiers, id)) + return + var/datum/skill_modifier/M = GLOB.skill_modifiers[id] + if(!M) + CRASH("Invalid add_skill_modifier id: [id].") + if(M.modifier_flags & MODIFIER_SKILL_BODYBOUND && !current) + CRASH("Body-bound skill modifier [M] was tried to be added to a mob-less mind.") + + if(M.modifier_flags & MODIFIER_SKILL_VALUE) + LAZYINITLIST(skill_holder.skill_value_mods) + if(M.modifier_flags & MODIFIER_SKILL_AFFINITY) + LAZYINITLIST(skill_holder.skill_affinity_mods) + if(M.modifier_flags & MODIFIER_SKILL_LEVEL) + LAZYINITLIST(skill_holder.skill_level_mods) + for(var/path in GLOB.potential_skills_per_mod[M.target_skills_key]) + if(M.modifier_flags & MODIFIER_SKILL_VALUE) + ADD_MOD_STEP(skill_holder.skill_value_mods, path, skill_holder.original_values, get_skill_value(path, FALSE)) + if(M.modifier_flags & MODIFIER_SKILL_AFFINITY) + ADD_MOD_STEP(skill_holder.skill_affinity_mods, path, skill_holder.original_affinities, get_skill_affinity(path, FALSE)) + if(M.modifier_flags & MODIFIER_SKILL_LEVEL) + ADD_MOD_STEP(skill_holder.skill_level_mods, path, skill_holder.original_levels, get_skill_level(path, FALSE)) + LAZYSET(skill_holder.all_current_skill_modifiers, id, TRUE) + skill_holder.need_static_data_update = TRUE + + if(M.modifier_flags & MODIFIER_SKILL_BODYBOUND) + M.RegisterSignal(src, COMSIG_MIND_TRANSFER, /datum/skill_modifier.proc/on_mind_transfer) + M.RegisterSignal(current, COMSIG_MOB_ON_NEW_MIND, /datum/skill_modifier.proc/on_mob_new_mind, TRUE) + RegisterSignal(M, COMSIG_PARENT_PREQDELETED, .proc/on_skill_modifier_deletion) + +#undef ADD_MOD_STEP + +#define REMOVE_MOD_STEP(L, P, O)\ + LAZYREMOVEASSOC(L, P, id);\ + if(M.modifier_flags & MODIFIER_SKILL_ORIGIN_DIFF){\ + LAZYREMOVEASSOC(O, id, "[P]")\ + } + +/datum/mind/proc/remove_skill_modifier(id, mind_transfer = FALSE) + if(!LAZYACCESS(skill_holder.all_current_skill_modifiers, id)) + return + var/datum/skill_modifier/M = GLOB.skill_modifiers[id] + if(!M) + CRASH("Invalid remove_skill_modifier id: [id].") + + if(!skill_holder.skill_value_mods && !skill_holder.skill_affinity_mods && !skill_holder.skill_level_mods) + return + for(var/path in GLOB.potential_skills_per_mod[M.target_skills_key]) + if(M.modifier_flags & MODIFIER_SKILL_VALUE && skill_holder.skill_value_mods) + REMOVE_MOD_STEP(skill_holder.skill_value_mods, path, skill_holder.original_values) + if(M.modifier_flags & MODIFIER_SKILL_AFFINITY && skill_holder.skill_affinity_mods) + REMOVE_MOD_STEP(skill_holder.skill_affinity_mods, path, skill_holder.original_affinities) + if(M.modifier_flags & MODIFIER_SKILL_LEVEL && skill_holder.skill_level_mods) + REMOVE_MOD_STEP(skill_holder.skill_level_mods, path, skill_holder.original_levels) + LAZYREMOVE(skill_holder.all_current_skill_modifiers, id) + skill_holder.need_static_data_update = TRUE + + if(!mind_transfer && M.modifier_flags & MODIFIER_SKILL_BODYBOUND) + M.UnregisterSignal(src, COMSIG_MIND_TRANSFER) + M.UnregisterSignal(current, list(COMSIG_MOB_ON_NEW_MIND)) + UnregisterSignal(M, COMSIG_PARENT_PREQDELETED) + +#undef REMOVE_MOD_STEP + +/datum/mind/proc/on_skill_modifier_deletion(datum/skill_modifier/source) + remove_skill_modifier(source.identifier) + +/datum/skill_modifier/proc/apply_modifier(value, skillpath, datum/skill_holder/H, method = MODIFIER_TARGET_VALUE) + . = value + var/mod = value_mod + switch(method) + if(MODIFIER_TARGET_LEVEL) + mod = level_mod + if(MODIFIER_TARGET_AFFINITY) + mod = affinity_mod + + if(modifier_flags & MODIFIER_USE_THRESHOLDS && istext(mod)) + var/datum/skill/S = GLOB.skill_datums[skillpath] + if(method == MODIFIER_TARGET_VALUE && S.progression_type == SKILL_PROGRESSION_LEVEL) + var/datum/skill/level/L = S + mod = L.get_skill_level_value(L.competency_thresholds[mod]) + else + mod = S.competency_thresholds[mod] + + var/diff = 0 + if(modifier_flags & (MODIFIER_SKILL_VIRTUE|MODIFIER_SKILL_HANDICAP)) + if(modifier_flags & MODIFIER_SKILL_VIRTUE) + . = max(., mod) + if(modifier_flags & MODIFIER_SKILL_HANDICAP) + . = min(., mod) + diff = . - mod + else if(modifier_flags & MODIFIER_SKILL_MULT) + . *= mod + else + . += mod + + if(modifier_flags & MODIFIER_SKILL_ORIGIN_DIFF) + var/list/to_access = H.original_values + switch(method) + if(MODIFIER_TARGET_LEVEL) + to_access = H.original_levels + if(MODIFIER_TARGET_AFFINITY) + to_access = H.original_affinities + . += value - diff - LAZYACCESS(to_access[identifier], "[skillpath]") + +///Body bound modifier signal procs. +/datum/skill_modifier/proc/on_mind_transfer(datum/mind/source, mob/new_character, mob/old_character) + source.remove_skill_modifier(identifier, TRUE) + UnregisterSignal(source, COMSIG_MIND_TRANSFER) + +/datum/skill_modifier/proc/on_mob_new_mind(mob/source) + source.mind.add_skill_modifier(identifier) + RegisterSignal(source.mind, COMSIG_MIND_TRANSFER, /datum/skill_modifier.proc/on_mind_transfer) diff --git a/code/datums/skills/engineering.dm b/code/datums/skills/engineering.dm index 59c9436e46..1226664953 100644 --- a/code/datums/skills/engineering.dm +++ b/code/datums/skills/engineering.dm @@ -1,6 +1,6 @@ /datum/skill/level/job/wiring name = "Wiring" - desc = "How proficient and knowledged you are at wiring beyond laying cables on the floor." + desc = "How proficient and knowledged you are at wiring beyond making post-futuristic wire art." name_color = COLOR_PALE_ORANGE - competency_thresholds = list(JOB_SKILL_BASIC, JOB_SKILL_EXPERT, JOB_SKILL_MASTER) - skill_flags = SKILL_USE_MOOD|SKILL_TRAIN_MOOD|SKILL_USE_TOOL|SKILL_TRAINING_TOOL + skill_traits = list(SKILL_SANITY, SKILL_INTELLIGENCE, SKILL_USE_TOOL, SKILL_TRAINING_TOOL) + ui_category = SKILL_UI_CAT_ENG diff --git a/code/datums/skills/medical.dm b/code/datums/skills/medical.dm index aaae1236a6..4cf10c4c96 100644 --- a/code/datums/skills/medical.dm +++ b/code/datums/skills/medical.dm @@ -1,5 +1,6 @@ /datum/skill/numerical/surgery name = "Surgery" - desc = "How proficient you are at doing surgery." + desc = "How proficient you are at performing surgical procedures." name_color = COLOR_PALE_BLUE_GRAY - competency_mults = list(0.025, 0.025, 0.025) // 60% surgery speed up at max value of 100. + competency_multiplier = 1.5 // 60% surgery speed up at max value of 100, considering the base multiplier. + ui_category = SKILL_UI_CAT_MED diff --git a/code/datums/skills/modifiers/job.dm b/code/datums/skills/modifiers/job.dm new file mode 100644 index 0000000000..e989ab11e3 --- /dev/null +++ b/code/datums/skills/modifiers/job.dm @@ -0,0 +1,36 @@ +/// Jobbie skill modifiers. + +/datum/skill_modifier/job + name = "Job Training" + modifier_flags = MODIFIER_SKILL_VALUE|MODIFIER_SKILL_VIRTUE|MODIFIER_SKILL_ORIGIN_DIFF + priority = MODIFIER_SKILL_PRIORITY_MAX + +/datum/skill_modifier/job/surgery + target_skills = /datum/skill/numerical/surgery + value_mod = STARTING_SKILL_SURGERY_MEDICAL + +/datum/skill_modifier/job/affinity + modifier_flags = MODIFIER_SKILL_AFFINITY|MODIFIER_SKILL_VIRTUE + affinity_mod = STARTING_SKILL_AFFINITY_DEF_JOB + +/datum/skill_modifier/job/affinity/surgery + target_skills = /datum/skill/numerical/surgery + +/datum/skill_modifier/job/affinity/wiring + target_skills = /datum/skill/level/job/wiring + +/// Level skill modifiers below. +/datum/skill_modifier/job/level + modifier_flags = MODIFIER_SKILL_VALUE|MODIFIER_SKILL_LEVEL|MODIFIER_SKILL_VIRTUE|MODIFIER_SKILL_ORIGIN_DIFF + level_mod = JOB_SKILL_TRAINED + +/datum/skill_modifier/job/level/New(id, register = FALSE) + if(level_mod) + value_mod = GET_STANDARD_LVL(level_mod) + ..() + +/datum/skill_modifier/job/level/wiring + target_skills = /datum/skill/level/job/wiring + +/datum/skill_modifier/job/level/wiring/basic + level_mod = JOB_SKILL_BASIC diff --git a/code/datums/skills/modifiers/mood.dm b/code/datums/skills/modifiers/mood.dm new file mode 100644 index 0000000000..a22b75d5b5 --- /dev/null +++ b/code/datums/skills/modifiers/mood.dm @@ -0,0 +1,10 @@ +/datum/skill_modifier/bad_mood + name = "Mood (Dejected)" + modifier_flags = MODIFIER_SKILL_VALUE|MODIFIER_SKILL_LEVEL|MODIFIER_SKILL_MULT|MODIFIER_SKILL_BODYBOUND + target_skills = list(SKILL_SANITY) + +/datum/skill_modifier/great_mood + name = "Mood (Elated)" + modifier_flags = MODIFIER_SKILL_AFFINITY|MODIFIER_SKILL_MULT|MODIFIER_SKILL_BODYBOUND + target_skills = list(SKILL_SANITY) + affinity_mod = 1.2 diff --git a/code/datums/skills/modifiers/organs.dm b/code/datums/skills/modifiers/organs.dm new file mode 100644 index 0000000000..313604f6b2 --- /dev/null +++ b/code/datums/skills/modifiers/organs.dm @@ -0,0 +1,15 @@ +/datum/skill_modifier/brain_damage + name = "Brain Damage" + target_skills = list(SKILL_INTELLIGENCE) + modifier_flags = MODIFIER_SKILL_VALUE|MODIFIER_SKILL_AFFINITY|MODIFIER_SKILL_LEVEL|MODIFIER_SKILL_MULT|MODIFIER_SKILL_BODYBOUND + value_mod = 0.85 + level_mod = 0.85 + affinity_mod = 0.85 + +/datum/skill_modifier/heavy_brain_damage + name = "Brain Damage (Severe)" + target_skills = list(SKILL_INTELLIGENCE) + modifier_flags = MODIFIER_SKILL_VALUE|MODIFIER_SKILL_AFFINITY|MODIFIER_SKILL_LEVEL|MODIFIER_SKILL_BODYBOUND|MODIFIER_SKILL_HANDICAP|MODIFIER_USE_THRESHOLDS + priority = MODIFIER_SKILL_PRIORITY_LOW + value_mod = THRESHOLD_COMPETENT + level_mod = THRESHOLD_COMPETENT diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 4c200f110d..faed65e9c4 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -81,11 +81,11 @@ owner.adjustStaminaLoss(-0.5) //reduce stamina loss by 0.5 per tick, 10 per 2 seconds if(human_owner && human_owner.drunkenness) human_owner.drunkenness *= 0.997 //reduce drunkenness by 0.3% per tick, 6% per 2 seconds - if(prob(20)) - if(carbon_owner) - carbon_owner.handle_dreams() - if(prob(10) && owner.health > owner.crit_threshold) - owner.emote("snore") + if(carbon_owner && !carbon_owner.dreaming && prob(2)) + carbon_owner.dream() + // 2% per second, tick interval is in deciseconds + if(prob((tick_interval+1) * 0.2) && owner.health > owner.crit_threshold) + owner.emote("snore") /datum/status_effect/staggered id = "staggered" @@ -120,11 +120,13 @@ /datum/status_effect/mesmerize/on_creation(mob/living/new_owner, set_duration) . = ..() ADD_TRAIT(owner, TRAIT_MUTE, "mesmerize") + ADD_TRAIT(owner, TRAIT_COMBAT_MODE_LOCKED, "mesmerize") owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/mesmerize) /datum/status_effect/mesmerize/on_remove() . = ..() REMOVE_TRAIT(owner, TRAIT_MUTE, "mesmerize") + REMOVE_TRAIT(owner, TRAIT_COMBAT_MODE_LOCKED, "mesmerize") owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/mesmerize) /datum/status_effect/mesmerize/on_creation(mob/living/new_owner, set_duration) @@ -363,9 +365,9 @@ status_type = STATUS_EFFECT_REPLACE alert_type = null var/mutable_appearance/marked_underlay - var/obj/item/twohanded/kinetic_crusher/hammer_synced + var/obj/item/kinetic_crusher/hammer_synced -/datum/status_effect/crusher_mark/on_creation(mob/living/new_owner, obj/item/twohanded/kinetic_crusher/new_hammer_synced) +/datum/status_effect/crusher_mark/on_creation(mob/living/new_owner, obj/item/kinetic_crusher/new_hammer_synced) . = ..() if(.) hammer_synced = new_hammer_synced @@ -709,8 +711,9 @@ datum/status_effect/pacify if(hearing_args[HEARING_SPEAKER] == owner) return var/mob/living/carbon/C = owner + var/hypnomsg = uncostumize_say(hearing_args[HEARING_RAW_MESSAGE], hearing_args[HEARING_MESSAGE_MODE]) C.cure_trauma_type(/datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY) //clear previous hypnosis - addtimer(CALLBACK(C, /mob/living/carbon.proc/gain_trauma, /datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY, hearing_args[HEARING_RAW_MESSAGE]), 10) + addtimer(CALLBACK(C, /mob/living/carbon.proc/gain_trauma, /datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY, hypnomsg), 10) addtimer(CALLBACK(C, /mob/living.proc/Stun, 60, TRUE, TRUE), 15) //Take some time to think about it qdel(src) @@ -793,3 +796,44 @@ datum/status_effect/pacify name = "Genetic Breakdown" desc = "I don't feel so good. Your body can't handle the mutations! You have one minute to remove your mutations, or you will be met with a horrible fate." icon_state = "dna_melt" + +/datum/status_effect/fake_virus + id = "fake_virus" + duration = 1800//3 minutes + status_type = STATUS_EFFECT_REPLACE + tick_interval = 1 + alert_type = null + var/msg_stage = 0//so you dont get the most intense messages immediately + +/datum/status_effect/fake_virus/tick() + var/fake_msg = "" + var/fake_emote = "" + switch(msg_stage) + if(0 to 300) + if(prob(1)) + fake_msg = pick("[pick("Your head hurts.", "Your head pounds.")]", + "[pick("You're having difficulty breathing.", "Your breathing becomes heavy.")]", + "[pick("You feel dizzy.", "Your head spins.")]", + "[pick("You swallow excess mucus.", "You lightly cough.")]", + "[pick("Your head hurts.", "Your mind blanks for a moment.")]", + "[pick("Your throat hurts.", "You clear your throat.")]") + if(301 to 600) + if(prob(2)) + fake_msg = pick("[pick("Your head hurts a lot.", "Your head pounds incessantly.")]", + "[pick("Your windpipe feels like a straw.", "Your breathing becomes tremendously difficult.")]", + "You feel very [pick("dizzy","woozy","faint")].", + "[pick("You hear a ringing in your ear.", "Your ears pop.")]", + "You nod off for a moment.") + else + if(prob(3)) + if(prob(50))// coin flip to throw a message or an emote + fake_msg = pick("[pick("Your head hurts!", "You feel a burning knife inside your brain!", "A wave of pain fills your head!")]", + "[pick("Your lungs hurt!", "It hurts to breathe!")]", + "[pick("You feel nauseated.", "You feel like you're going to throw up!")]") + else + fake_emote = pick("cough", "sniff", "sneeze") + if(fake_emote) + owner.emote(fake_emote) + else if(fake_msg) + to_chat(owner, fake_msg) + msg_stage++ diff --git a/code/datums/status_effects/status_effect.dm b/code/datums/status_effects/status_effect.dm index 33c8384d72..12c223f500 100644 --- a/code/datums/status_effects/status_effect.dm +++ b/code/datums/status_effects/status_effect.dm @@ -6,6 +6,7 @@ var/id = "effect" //Used for screen alerts. var/duration = -1 //How long the status effect lasts in DECISECONDS. Enter -1 for an effect that never ends unless removed through some means. var/tick_interval = 10 //How many deciseconds between ticks, approximately. Leave at 10 for every second. + var/next_tick //The scheduled time for the next tick. var/mob/living/owner //The mob affected by the status effect. var/on_remove_on_mob_delete = FALSE //if we call on_remove() when the mob is deleted var/examine_text //If defined, this text will appear when the mob is examined - to use he, she etc. use "SUBJECTPRONOUN" and replace it in the examines themselves @@ -31,7 +32,7 @@ return if(duration != -1) duration = world.time + duration - tick_interval = world.time + tick_interval + next_tick = world.time + tick_interval if(alert_type) var/obj/screen/alert/status_effect/A = owner.throw_alert(id, alert_type) A.attached_effect = src //so the alert can reference us, if it needs to @@ -52,9 +53,9 @@ if(!owner) qdel(src) return - if(tick_interval < world.time) + if(next_tick < world.time) tick() - tick_interval = world.time + initial(tick_interval) + next_tick = world.time + tick_interval if(duration != -1 && duration < world.time) qdel(src) @@ -221,7 +222,7 @@ threshold_crossed = FALSE //resets threshold effect if we fall below threshold so threshold effect can trigger again on_threshold_drop() if(stacks_added > 0) - tick_interval += delay_before_decay //refreshes time until decay + next_tick += delay_before_decay //refreshes time until decay stacks = min(stacks, max_stacks) status_overlay.icon_state = "[overlay_state][stacks]" status_underlay.icon_state = "[underlay_state][stacks]" diff --git a/code/datums/tgs_event_handler.dm b/code/datums/tgs_event_handler.dm new file mode 100644 index 0000000000..731be64183 --- /dev/null +++ b/code/datums/tgs_event_handler.dm @@ -0,0 +1,39 @@ +/datum/tgs_event_handler/impl + var/datum/timedevent/reattach_timer + +/datum/tgs_event_handler/impl/HandleEvent(event_code, ...) + switch(event_code) + if(TGS_EVENT_REBOOT_MODE_CHANGE) + var/list/reboot_mode_lookup = list ("[TGS_REBOOT_MODE_NORMAL]" = "be normal", "[TGS_REBOOT_MODE_SHUTDOWN]" = "shutdown the server", "[TGS_REBOOT_MODE_RESTART]" = "hard restart the server") + var old_reboot_mode = args[2] + var new_reboot_mode = args[3] + message_admins("TGS: Reboot will no longer [reboot_mode_lookup["[old_reboot_mode]"]], it will instead [reboot_mode_lookup["[new_reboot_mode]"]]") + if(TGS_EVENT_PORT_SWAP) + message_admins("TGS: Changing port from [world.port] to [args[2]]") + if(TGS_EVENT_INSTANCE_RENAMED) + message_admins("TGS: Instance renamed to from [world.TgsInstanceName()] to [args[2]]") + if(TGS_EVENT_COMPILE_START) + message_admins("TGS: Deployment started, new game version incoming...") + if(TGS_EVENT_COMPILE_CANCELLED) + message_admins("TGS: Deployment cancelled!") + if(TGS_EVENT_COMPILE_FAILURE) + message_admins("TGS: Deployment failed!") + if(TGS_EVENT_DEPLOYMENT_COMPLETE) + message_admins("TGS: Deployment complete!") + to_chat(world, "Server updated, changes will be applied on the next round...") + if(TGS_EVENT_WATCHDOG_DETACH) + message_admins("TGS restarting...") + reattach_timer = addtimer(CALLBACK(src, .proc/LateOnReattach), 1 MINUTES) + if(TGS_EVENT_WATCHDOG_REATTACH) + var/datum/tgs_version/old_version = world.TgsVersion() + var/datum/tgs_version/new_version = args[2] + if(!old_version.Equals(new_version)) + to_chat(world, "TGS updated to v[old_version.deprefixed_parameter]") + else + message_admins("TGS: Back online") + if(reattach_timer) + deltimer(reattach_timer) + reattach_timer = null + +/datum/tgs_event_handler/impl/proc/LateOnReattach() + message_admins("Warning: TGS hasn't notified us of it coming back for a full minute! Is there a problem?") diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm index d1b5240798..4b039aa1b5 100644 --- a/code/datums/traits/neutral.dm +++ b/code/datums/traits/neutral.dm @@ -10,6 +10,15 @@ lose_text = "You can taste again!" medical_record_text = "Patient suffers from ageusia and is incapable of tasting food or reagents." +/datum/quirk/snob + name = "Snob" + desc = "You care about the finer things, if a room doesn't look nice its just not really worth it, is it?" + value = 0 + gain_text = "You feel like you understand what things should look like." + lose_text = "Well who cares about deco anyways?" + medical_record_text = "Patient seems to be rather stuck up." + mob_trait = TRAIT_SNOB + /datum/quirk/pineapple_liker name = "Ananas Affinity" desc = "You find yourself greatly enjoying fruits of the ananas genus. You can't seem to ever get enough of their sweet goodness!" diff --git a/code/datums/weather/weather_types/radiation_storm.dm b/code/datums/weather/weather_types/radiation_storm.dm index 43b2ba9744..4638508d1c 100644 --- a/code/datums/weather/weather_types/radiation_storm.dm +++ b/code/datums/weather/weather_types/radiation_storm.dm @@ -18,7 +18,7 @@ area_type = /area protected_areas = list(/area/maintenance, /area/ai_monitored/turret_protected/ai_upload, /area/ai_monitored/turret_protected/ai_upload_foyer, - /area/ai_monitored/turret_protected/ai, /area/storage/emergency/starboard, /area/storage/emergency/port, /area/shuttle, /area/security/prison, /area/ruin, /area/space/nearstation) + /area/ai_monitored/turret_protected/ai, /area/storage/emergency/starboard, /area/storage/emergency/port, /area/shuttle, /area/security/prison, /area/ruin, /area/space/nearstation, /area/icemoon) target_trait = ZTRAIT_STATION immunity_type = "rad" diff --git a/code/datums/wires/_wires.dm b/code/datums/wires/_wires.dm index 22bcf0a568..11e7e12bd8 100644 --- a/code/datums/wires/_wires.dm +++ b/code/datums/wires/_wires.dm @@ -11,9 +11,6 @@ if(A.attachable) return TRUE -/atom - var/datum/wires/wires = null - /atom/proc/attempt_wire_interaction(mob/user) if(!wires) return WIRE_INTERACTION_FAIL @@ -138,7 +135,7 @@ if(current_users[user]) return FALSE if(req_skill && user?.mind) - var/level_diff = req_skill - user.mind.skill_holder.get_skill_level(/datum/skill/level/job/wiring) + var/level_diff = req_skill - user.mind.get_skill_level(/datum/skill/level/job/wiring, round = TRUE) if(level_diff > 0) LAZYSET(current_users, user, TRUE) to_chat(user, "You begin cutting [holder]'s [color] wire...") @@ -167,7 +164,7 @@ if(current_users[user]) return FALSE if(req_skill && user?.mind) - var/level_diff = req_skill - user.mind.skill_holder.get_skill_level(/datum/skill/level/job/wiring) + var/level_diff = req_skill - user.mind.get_skill_level(/datum/skill/level/job/wiring, round = TRUE) if(level_diff > 0) LAZYSET(current_users, user, TRUE) to_chat(user, "You begin pulsing [holder]'s [color] wire...") @@ -255,7 +252,7 @@ var/reveal_wires = FALSE // Admin ghost can see a purpose of each wire. - if(IsAdminGhost(user) || user.mind.skill_holder.get_skill_level(/datum/skill/level/job/wiring) >= req_knowledge) + if(IsAdminGhost(user) || user.mind.get_skill_level(/datum/skill/level/job/wiring) >= req_knowledge) reveal_wires = TRUE // Same for anyone with an abductor multitool. diff --git a/code/datums/wires/apc.dm b/code/datums/wires/apc.dm index 997c77aa51..19b2b8dda8 100644 --- a/code/datums/wires/apc.dm +++ b/code/datums/wires/apc.dm @@ -30,6 +30,7 @@ if(WIRE_POWER1, WIRE_POWER2) // Short for a long while. if(!A.shorted) A.shorted = TRUE + A.update() addtimer(CALLBACK(A, /obj/machinery/power/apc.proc/reset, wire), 1200) if(WIRE_IDSCAN) // Unlock for a little while. A.locked = FALSE @@ -49,6 +50,7 @@ else A.shorted = TRUE A.shock(usr, 50) + A.update() if(WIRE_AI) // Disable AI control. if(mend) A.aidisabled = FALSE diff --git a/code/datums/wires/explosive.dm b/code/datums/wires/explosive.dm index dc4db9e85d..25493f2e30 100644 --- a/code/datums/wires/explosive.dm +++ b/code/datums/wires/explosive.dm @@ -75,8 +75,8 @@ /datum/wires/explosive/gibtonite - holder_type = /obj/item/twohanded/required/gibtonite + holder_type = /obj/item/gibtonite /datum/wires/explosive/gibtonite/explode() - var/obj/item/twohanded/required/gibtonite/P = holder + var/obj/item/gibtonite/P = holder P.GibtoniteReaction(null, 2) \ No newline at end of file diff --git a/code/datums/world_topic.dm b/code/datums/world_topic.dm index 30699d36f4..261e423640 100644 --- a/code/datums/world_topic.dm +++ b/code/datums/world_topic.dm @@ -74,6 +74,25 @@ for(var/client/C in GLOB.clients) C.AnnouncePR(final_composed) +/datum/world_topic/auto_bunker_passthrough + keyword = "auto_bunker_override" + require_comms_key = TRUE + +/datum/world_topic/auto_bunker_passthrough/Run(list/input) + if(!CONFIG_GET(flag/allow_cross_server_bunker_override)) + return "Function Disabled" + var/ckeytobypass = input["ckey"] + var/is_new_ckey = !(ckey(ckeytobypass) in GLOB.bunker_passthrough) + var/sender = input["source"] || "UNKNOWN" + GLOB.bunker_passthrough |= ckey(ckeytobypass) + GLOB.bunker_passthrough[ckey(ckeytobypass)] = world.realtime + SSpersistence.SavePanicBunker() //we can do this every time, it's okay + if(!is_new_ckey) + log_admin("AUTO BUNKER: [ckeytobypass] given access (incoming comms from [sender]).") + message_admins("AUTO BUNKER: [ckeytobypass] given access (incoming comms from [sender]).") + send2irc("Panic Bunker", "AUTO BUNKER: [ckeytobypass] given access (incoming comms from [sender]).") + return "Success" + /datum/world_topic/ahelp_relay keyword = "Ahelp" require_comms_key = TRUE diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 5fac1a4b65..dabbe93bec 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -38,6 +38,10 @@ var/poweralm = TRUE var/lightswitch = TRUE + var/totalbeauty = 0 //All beauty in this area combined, only includes indoor area. + var/beauty = 0 // Beauty average per open turf in the area + var/beauty_threshold = 150 //If a room is too big it doesn't have beauty. + var/requires_power = TRUE /// This gets overridden to 1 for space in area/Initialize(). var/always_unpowered = FALSE @@ -65,7 +69,7 @@ /// Hides area from player Teleport function. var/hidden = FALSE /// Is the area teleport-safe: no space / radiation / aggresive mobs / other dangers - var/safe = FALSE + var/safe = FALSE /// If false, loading multiple maps with this area type will create multiple instances. var/unique = TRUE @@ -192,6 +196,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) /area/LateInitialize() if(!base_area) //we don't want to run it twice. power_change() // all machines set to current power level, also updates icon + update_beauty() /area/proc/reg_in_areas_in_z() if(contents.len) @@ -538,6 +543,16 @@ GLOBAL_LIST_EMPTY(teleportlocs) L.client.played = TRUE addtimer(CALLBACK(L.client, /client/proc/ResetAmbiencePlayed), 600) +///Divides total beauty in the room by roomsize to allow us to get an average beauty per tile. +/area/proc/update_beauty() + if(!areasize) + beauty = 0 + return FALSE + if(areasize >= beauty_threshold) + beauty = 0 + return FALSE //Too big + beauty = totalbeauty / areasize + /area/Exited(atom/movable/M) SEND_SIGNAL(src, COMSIG_AREA_EXITED, M) SEND_SIGNAL(M, COMSIG_EXIT_AREA, src) //The atom that exits the area diff --git a/code/game/area/areas/centcom.dm b/code/game/area/areas/centcom.dm index 1241b7a240..96b621acd8 100644 --- a/code/game/area/areas/centcom.dm +++ b/code/game/area/areas/centcom.dm @@ -32,7 +32,8 @@ /area/centcom/vip name = "VIP Zone" dynamic_lighting = DYNAMIC_LIGHTING_DISABLED - /area/centcom/winterball + +/area/centcom/winterball name = "winterball Zone" dynamic_lighting = DYNAMIC_LIGHTING_DISABLED diff --git a/code/game/area/areas/ruins/lavaland.dm b/code/game/area/areas/ruins/lavaland.dm index 76f090d5e3..19a1fd503d 100644 --- a/code/game/area/areas/ruins/lavaland.dm +++ b/code/game/area/areas/ruins/lavaland.dm @@ -32,6 +32,14 @@ /area/ruin/powered/seedvault icon_state = "dk_yellow" +/area/ruin/unpowered/elephant_graveyard + name = "Elephant Graveyard" + icon_state = "dk_yellow" + +/area/ruin/powered/graveyard_shuttle + name = "Elephant Graveyard" + icon_state = "green" + /area/ruin/unpowered/syndicate_lava_base name = "Secret Base" icon_state = "dk_yellow" diff --git a/code/game/area/areas/ruins/space.dm b/code/game/area/areas/ruins/space.dm index 59c195ded1..a9f48af64e 100644 --- a/code/game/area/areas/ruins/space.dm +++ b/code/game/area/areas/ruins/space.dm @@ -129,7 +129,26 @@ icon_state = "crew_quarters" +//Ruin of Space Diner +/area/ruin/space/diner + name = "Space Diner" + +/area/ruin/space/diner/interior + name = "Space Diner" + icon_state = "maintbar" + has_gravity = STANDARD_GRAVITY + blob_allowed = FALSE //Nope, no winning in the diner as a blob. Gotta eat the main station. + +/area/ruin/space/diner/solars + requires_power = FALSE + dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT + valid_territory = FALSE + blob_allowed = FALSE + flags_1 = NONE + ambientsounds = ENGINEERING + name = "Space Diner Solar Array" + icon_state = "yellow" //Ruin of Derelict Oupost diff --git a/code/game/area/areas/shuttles.dm b/code/game/area/areas/shuttles.dm index ab4fa10d44..43ea487894 100644 --- a/code/game/area/areas/shuttles.dm +++ b/code/game/area/areas/shuttles.dm @@ -93,6 +93,13 @@ /area/shuttle/abandoned/pod name = "Abandoned Ship Pod" +////////////////////////////Bounty Hunter Shuttles//////////////////////////// +/area/shuttle/hunter + name = "Hunter Shuttle" + dynamic_lighting = DYNAMIC_LIGHTING_DISABLED + blob_allowed = FALSE + canSmoothWithAreas = /area/shuttle/hunter + ////////////////////////////Single-area shuttles//////////////////////////// /area/shuttle/transit @@ -103,6 +110,10 @@ /area/shuttle/custom name = "Custom player shuttle" +/area/shuttle/custom/powered + name = "Custom Powered player shuttle" + requires_power = FALSE + /area/shuttle/arrival name = "Arrival Shuttle" unique = TRUE // SSjob refers to this area for latejoiners @@ -200,4 +211,7 @@ name = "Tiny Freighter" /area/shuttle/caravan/freighter3 - name = "Tiny Freighter" \ No newline at end of file + name = "Tiny Freighter" + +/area/shuttle/snowtaxi + name = "Snow Taxi" diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 98027acc61..bbd38e9021 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -8,6 +8,13 @@ var/interaction_flags_atom = NONE var/datum/reagents/reagents = null + var/flags_ricochet = NONE + + ///When a projectile tries to ricochet off this atom, the projectile ricochet chance is multiplied by this + var/ricochet_chance_mod = 1 + ///When a projectile ricochets off this atom, it deals the normal damage * this modifier to this atom + var/ricochet_damage_mod = 0.33 + //This atom's HUD (med/sec, etc) images. Associative list. var/list/image/hud_list = null //HUD images that this atom can provide. @@ -41,12 +48,15 @@ var/rad_insulation = RAD_NO_INSULATION ///The custom materials this atom is made of, used by a lot of things like furniture, walls, and floors (if I finish the functionality, that is.) + ///The list referenced by this var can be shared by multiple objects and should not be directly modified. Instead, use [set_custom_materials][/atom/proc/set_custom_materials]. var/list/custom_materials ///Bitfield for how the atom handles materials. var/material_flags = NONE ///Modifier that raises/lowers the effect of the amount of a material, prevents small and easy to get items from being death machines. var/material_modifier = 1 + var/datum/wires/wires = null + var/icon/blood_splatter_icon var/list/fingerprints var/list/fingerprintshidden @@ -105,11 +115,8 @@ if (canSmoothWith) canSmoothWith = typelist("canSmoothWith", canSmoothWith) - var/temp_list = list() - for(var/i in custom_materials) - temp_list[SSmaterials.GetMaterialRef(i)] = custom_materials[i] //Get the proper instanced version - custom_materials = null //Null the list to prepare for applying the materials properly - set_custom_materials(temp_list) + // apply materials properly from the default custom_materials value + set_custom_materials(custom_materials) ComponentInitialize() @@ -139,8 +146,27 @@ return ..() +/** + * Checks if a projectile should ricochet off of us. Projectiles get final say. + * [__DEFINES/projectiles.dm] for return values. + */ +/atom/proc/check_projectile_ricochet(obj/item/projectile/P) + return (flags_1 & DEFAULT_RICOCHET_1)? PROJECTILE_RICOCHET_YES : PROJECTILE_RICOCHET_NO + /atom/proc/handle_ricochet(obj/item/projectile/P) - return + var/turf/p_turf = get_turf(P) + var/face_direction = get_dir(src, p_turf) + var/face_angle = dir2angle(face_direction) + var/incidence_s = GET_ANGLE_OF_INCIDENCE(face_angle, (P.Angle + 180)) + var/a_incidence_s = abs(incidence_s) + if(a_incidence_s > 90 && a_incidence_s < 270) + return FALSE + if((P.flag in list("bullet", "bomb")) && P.ricochet_incidence_leeway) + if((a_incidence_s < 90 && a_incidence_s < 90 - P.ricochet_incidence_leeway) || (a_incidence_s > 270 && a_incidence_s -270 > P.ricochet_incidence_leeway)) + return + var/new_angle_s = SIMPLIFY_DEGREES(face_angle + incidence_s) + P.setAngle(new_angle_s) + return TRUE /atom/proc/CanPass(atom/movable/mover, turf/target) return !density @@ -313,10 +339,11 @@ . += desc if(custom_materials) + var/list/materials_list = list() for(var/i in custom_materials) var/datum/material/M = i - . += "It is made out of [M.name]." - + materials_list += "[M.name]" + . += "It is made out of [english_list(materials_list)]." if(reagents) if(reagents.reagents_holder_flags & TRANSPARENT) . += "It contains:" @@ -409,7 +436,7 @@ var/blood_id = get_blood_id() if(!(blood_id in GLOB.blood_reagent_types)) return - return list("ANIMAL DNA" = "Y-") + return list("color" = BLOOD_COLOR_HUMAN, "ANIMAL DNA" = "Y-") /mob/living/carbon/get_blood_dna_list() var/blood_id = get_blood_id() @@ -417,13 +444,15 @@ return var/list/blood_dna = list() if(dna) + blood_dna["color"] = dna.species.exotic_blood_color //so when combined, the list grows with the number of colors blood_dna[dna.unique_enzymes] = dna.blood_type else + blood_dna["color"] = BLOOD_COLOR_HUMAN blood_dna["UNKNOWN DNA"] = "X*" return blood_dna /mob/living/carbon/alien/get_blood_dna_list() - return list("UNKNOWN DNA" = "X*") + return list("color" = BLOOD_COLOR_XENO, "UNKNOWN DNA" = "X*") //to add a mob's dna info into an object's blood_DNA list. /atom/proc/transfer_mob_blood_dna(mob/living/L) @@ -434,18 +463,33 @@ LAZYINITLIST(blood_DNA) //if our list of DNA doesn't exist yet, initialise it. var/old_length = blood_DNA.len blood_DNA |= new_blood_dna + var/changed = FALSE + if(!blood_DNA["color"]) + blood_DNA["color"] = new_blood_dna["color"] + changed = TRUE + else + var/old = blood_DNA["color"] + blood_DNA["color"] = BlendRGB(blood_DNA["color"], new_blood_dna["color"]) + changed = old != blood_DNA["color"] if(blood_DNA.len == old_length) return FALSE - return TRUE + return changed //to add blood dna info to the object's blood_DNA list /atom/proc/transfer_blood_dna(list/blood_dna, list/datum/disease/diseases) LAZYINITLIST(blood_DNA) + var/old_length = blood_DNA.len blood_DNA |= blood_dna if(blood_DNA.len > old_length) - return TRUE + . = TRUE //some new blood DNA was added + if(!blood_dna["color"]) + return + if(!blood_DNA["color"]) + blood_DNA["color"] = blood_dna["color"] + else + blood_DNA["color"] = BlendRGB(blood_DNA["color"], blood_dna["color"]) //to add blood from a mob onto something, and transfer their dna info /atom/proc/add_mob_blood(mob/living/M) @@ -514,28 +558,7 @@ return TRUE /atom/proc/blood_DNA_to_color() - var/list/colors = list()//first we make a list of all bloodtypes present - for(var/bloop in blood_DNA) - if(colors[blood_DNA[bloop]]) - colors[blood_DNA[bloop]]++ - else - colors[blood_DNA[bloop]] = 1 - - var/final_rgb = BLOOD_COLOR_HUMAN //a default so we don't have white blood graphics if something messed up - - if(colors.len) - var/sum = 0 //this is all shitcode, but it works; trust me - final_rgb = bloodtype_to_color(colors[1]) - sum = colors[colors[1]] - if(colors.len > 1) - var/i = 2 - while(i <= colors.len) - var/tmp = colors[colors[i]] - final_rgb = BlendRGB(final_rgb, bloodtype_to_color(colors[i]), tmp/(tmp+sum)) - sum += tmp - i++ - - return final_rgb + return (blood_DNA && blood_DNA["color"]) || BLOOD_COLOR_HUMAN /atom/proc/clean_blood() . = blood_DNA? TRUE : FALSE @@ -581,6 +604,14 @@ SEND_SIGNAL(src, COMSIG_ATOM_RCD_ACT, user, the_rcd, passed_mode) return FALSE +/** + * Respond to a electric bolt action on our item + * + * Default behaviour is to return, we define here to allow for cleaner code later on + */ +/atom/proc/zap_act(power, zap_flags, shocked_targets) + return + /atom/proc/storage_contents_dump_act(obj/item/storage/src_object, mob/user) if(GetComponent(/datum/component/storage)) return component_storage_contents_dump_act(src_object, user) @@ -835,6 +866,17 @@ /atom/proc/GenerateTag() return +/** + * Called after a shuttle is loaded **from map template initially**. + * + * @params + * * port - Mobile port/shuttle + * * dock - Stationary dock the shuttle's at + * * idnum - ID number of the shuttle + */ +/atom/proc/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) + return + // Generic logging helper /atom/proc/log_message(message, message_type, color=null, log_globally=TRUE) if(!log_globally) @@ -927,14 +969,14 @@ Proc for attack log creation, because really why not target.log_message(reverse_message, LOG_ATTACK, color="orange", log_globally=FALSE) // Filter stuff -/atom/movable/proc/add_filter(name,priority,list/params) +/atom/proc/add_filter(name,priority,list/params) LAZYINITLIST(filter_data) var/list/p = params.Copy() p["priority"] = priority filter_data[name] = p update_filters() -/atom/movable/proc/update_filters() +/atom/proc/update_filters() filters = null filter_data = sortTim(filter_data, /proc/cmp_filter_data_priority, TRUE) for(var/f in filter_data) @@ -943,11 +985,11 @@ Proc for attack log creation, because really why not arguments -= "priority" filters += filter(arglist(arguments)) -/atom/movable/proc/get_filter(name) +/atom/proc/get_filter(name) if(filter_data && filter_data[name]) return filters[filter_data.Find(name)] -/atom/movable/proc/remove_filter(name) +/atom/proc/remove_filter(name) if(filter_data && filter_data[name]) filter_data -= name update_filters() @@ -958,26 +1000,21 @@ Proc for attack log creation, because really why not ///Sets the custom materials for an item. /atom/proc/set_custom_materials(var/list/materials, multiplier = 1) - - if(!materials) - materials = custom_materials - if(custom_materials) //Only runs if custom materials existed at first. Should usually be the case but check anyways for(var/i in custom_materials) var/datum/material/custom_material = SSmaterials.GetMaterialRef(i) custom_material.on_removed(src, material_flags) //Remove the current materials if(!length(materials)) + custom_materials = null return - custom_materials = list() //Reset the list + if(material_flags) + for(var/x in materials) + var/datum/material/custom_material = SSmaterials.GetMaterialRef(x) + custom_material.on_applied(src, materials[x] * multiplier * material_modifier, material_flags) - for(var/x in materials) - var/datum/material/custom_material = SSmaterials.GetMaterialRef(x) - - if(material_flags & MATERIAL_EFFECTS) - custom_material.on_applied(src, materials[custom_material] * multiplier * material_modifier, material_flags) - custom_materials[custom_material] += materials[x] * multiplier + custom_materials = SSmaterials.FindOrCreateMaterialCombo(materials, multiplier) /** * Returns true if this atom has gravity for the passed in turf diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index fe617ddb0f..9736f473e8 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -37,6 +37,8 @@ var/throwforce = 0 var/datum/component/orbiter/orbiting var/can_be_z_moved = TRUE + ///If we were without gravity and another animation happened, the bouncing will stop, and we need to restart it in next life(). + var/floating_need_update = FALSE var/zfalling = FALSE @@ -56,10 +58,6 @@ em_block = new(src, render_target) vis_contents += em_block -/atom/movable/Destroy() - QDEL_NULL(em_block) - return ..() - /atom/movable/proc/update_emissive_block() if(blocks_emissive != EMISSIVE_BLOCK_GENERIC) return @@ -183,14 +181,15 @@ return TRUE /atom/movable/proc/stop_pulling() - if(pulling) - pulling.pulledby = null - var/mob/living/ex_pulled = pulling - pulling = null - setGrabState(0) - if(isliving(ex_pulled)) - var/mob/living/L = ex_pulled - L.update_mobility()// mob gets up if it was lyng down in a chokehold + if(!pulling) + return + pulling.pulledby = null + var/mob/living/ex_pulled = pulling + pulling = null + setGrabState(0) + if(isliving(ex_pulled)) + var/mob/living/L = ex_pulled + L.update_mobility()// mob gets up if it was lyng down in a chokehold /atom/movable/proc/Move_Pulled(atom/A) if(!pulling) @@ -232,10 +231,12 @@ /atom/movable/Destroy(force) QDEL_NULL(proximity_monitor) QDEL_NULL(language_holder) + QDEL_NULL(em_block) unbuckle_all_mobs(force=1) . = ..() + if(loc) //Restore air flow if we were blocking it (movables with ATMOS_PASS_PROC will need to do this manually if necessary) if(((CanAtmosPass == ATMOS_PASS_DENSITY && density) || CanAtmosPass == ATMOS_PASS_NO) && isturf(loc)) @@ -493,15 +494,16 @@ /atom/movable/proc/float(on) if(throwing) return - if(on && !(movement_type & FLOATING)) + if(on && (!(movement_type & FLOATING) || floating_need_update)) animate(src, pixel_y = pixel_y + 2, time = 10, loop = -1) sleep(10) animate(src, pixel_y = pixel_y - 2, time = 10, loop = -1) - setMovetype(movement_type | FLOATING) - else if (!on && (movement_type & FLOATING)) + if(!(movement_type & FLOATING)) + setMovetype(movement_type | FLOATING) + else if (!on && movement_type & FLOATING) animate(src, pixel_y = initial(pixel_y), time = 10) setMovetype(movement_type & ~FLOATING) - + floating_need_update = FALSE /* Language procs * Unless you are doing something very specific, these are the ones you want to use. diff --git a/code/game/gamemodes/clown_ops/bananium_bomb.dm b/code/game/gamemodes/clown_ops/bananium_bomb.dm index ce864007f0..695fc79169 100644 --- a/code/game/gamemodes/clown_ops/bananium_bomb.dm +++ b/code/game/gamemodes/clown_ops/bananium_bomb.dm @@ -51,4 +51,4 @@ H.dna.add_mutation(CLOWNMUT) H.dna.add_mutation(SMILE) - H.gain_trauma(/datum/brain_trauma/mild/phobia, TRAUMA_RESILIENCE_LOBOTOMY, "clowns") //MWA HA HA + H.gain_trauma(/datum/brain_trauma/mild/phobia/clowns, TRAUMA_RESILIENCE_LOBOTOMY) //MWA HA HA diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm index 4d3ea2d02e..afa3dbfeaa 100644 --- a/code/game/gamemodes/clown_ops/clown_weapons.dm +++ b/code/game/gamemodes/clown_ops/clown_weapons.dm @@ -202,7 +202,7 @@ icon_state = "moustacheg" clumsy_check = GRENADE_NONCLUMSY_FUMBLE -/obj/item/grenade/chem_grenade/teargas/moustache/prime() +/obj/item/grenade/chem_grenade/teargas/moustache/prime(mob/living/lanced_by) var/list/check_later = list() for(var/mob/living/carbon/C in get_turf(src)) check_later += C diff --git a/code/game/gamemodes/gangs/dominator.dm b/code/game/gamemodes/gangs/dominator.dm index dca50be5b9..db145ffacc 100644 --- a/code/game/gamemodes/gangs/dominator.dm +++ b/code/game/gamemodes/gangs/dominator.dm @@ -48,9 +48,6 @@ /obj/machinery/dominator/hulk_damage() return (max_integrity - integrity_failure) / DOM_HULK_HITS_REQUIRED -/obj/machinery/dominator/tesla_act() - qdel(src) - /obj/machinery/dominator/update_icon() cut_overlays() if(stat & BROKEN) @@ -148,9 +145,9 @@ new /obj/item/stack/sheet/plasteel(src.loc) qdel(src) -/obj/machinery/dominator/attacked_by(obj/item/I, mob/living/user) +/obj/machinery/dominator/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1) add_fingerprint(user) - ..() + return ..() /obj/machinery/dominator/attack_hand(mob/user) if(operating || (stat & BROKEN)) @@ -243,4 +240,4 @@ #undef DOM_BLOCKED_SPAM_CAP #undef DOM_REQUIRED_TURFS -#undef DOM_HULK_HITS_REQUIRED \ No newline at end of file +#undef DOM_HULK_HITS_REQUIRED diff --git a/code/game/gamemodes/gangs/gang_decals.dm b/code/game/gamemodes/gangs/gang_decals.dm index 7aaed769d9..a37b4cb63b 100644 --- a/code/game/gamemodes/gangs/gang_decals.dm +++ b/code/game/gamemodes/gangs/gang_decals.dm @@ -10,7 +10,7 @@ /obj/effect/decal/cleanable/crayon/gang icon = 'icons/effects/crayondecal.dmi' layer = ABOVE_NORMAL_TURF_LAYER //Harder to hide - plane = GAME_PLANE + plane = ABOVE_WALL_PLANE do_icon_rotate = FALSE //These are designed to always face south, so no rotation please. var/datum/team/gang/gang diff --git a/code/game/gamemodes/gangs/gang_items.dm b/code/game/gamemodes/gangs/gang_items.dm index d3ccb5a355..7d6ecd00f6 100644 --- a/code/game/gamemodes/gangs/gang_items.dm +++ b/code/game/gamemodes/gangs/gang_items.dm @@ -288,7 +288,7 @@ datum/gang_item/clothing/shades //Addition: Why not have cool shades on a gang m name = "Fragmentation Grenade" id = "frag nade" cost = 5 - item_path = /obj/item/grenade/syndieminibomb/concussion/frag + item_path = /obj/item/grenade/frag /datum/gang_item/equipment/implant_breaker name = "Implant Breaker" diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 3b95b1281f..6312dc08a4 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -201,10 +201,13 @@ GLOBAL_LIST_EMPTY(objectives) return won || ..() /datum/objective/assassinate/once/process() - won = check_completion() + won = check_midround_completion() if(won) STOP_PROCESSING(SSprocessing,src) +/datum/objective/assassinate/once/proc/check_midround_completion() + return won || !considered_alive(target) //The target afking / logging off for a bit during the round doesn't complete it, but them being afk at roundend does. + /datum/objective/assassinate/internal var/stolen = 0 //Have we already eliminated this target? diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm index 7e25b69d15..f6b0c8e24b 100644 --- a/code/game/gamemodes/objective_items.dm +++ b/code/game/gamemodes/objective_items.dm @@ -36,6 +36,7 @@ targetitem = /obj/item/gun/energy/e_gun/hos difficulty = 10 excludefromjob = list("Head Of Security") + altitems = list(/obj/item/gun/ballistic/revolver/mws, /obj/item/choice_beacon/hosgun) //We now look for either the alt verson of the hos gun or the beacon picker. /datum/objective_item/steal/handtele name = "a hand teleporter." diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm index e1fbb636c8..e97d276296 100644 --- a/code/game/gamemodes/sandbox/h_sandbox.dm +++ b/code/game/gamemodes/sandbox/h_sandbox.dm @@ -2,8 +2,7 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE) -/mob - var/datum/hSB/sandbox = null + /mob/proc/CanBuild() sandbox = new/datum/hSB sandbox.owner = src.ckey diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index 2f3645a248..23f065318e 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -44,7 +44,7 @@ /datum/game_mode/wizard/are_special_antags_dead() - for(var/datum/mind/wizard in wizards) + for(var/datum/mind/wizard in wizards | apprentices) if(isliving(wizard.current) && wizard.current.stat!=DEAD) return FALSE @@ -58,6 +58,14 @@ return TRUE +/datum/game_mode/wizard/check_finished() + . = ..() + if(.) + finished = TRUE + else if(gamemode_ready && are_special_antags_dead() && !CONFIG_GET(keyed_list/continuous)[config_tag]) + finished = TRUE + . = TRUE + /datum/game_mode/wizard/set_round_result() ..() if(finished) diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 3f2edd7174..5402c8f41e 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -37,6 +37,11 @@ reset_chem_buttons() RefreshParts() add_inital_chems() + new_occupant_dir = dir + +/obj/machinery/sleeper/setDir(newdir) + . = ..() + new_occupant_dir = dir /obj/machinery/sleeper/on_deconstruction() var/obj/item/reagent_containers/sleeper_buffer/buffer = new (loc) @@ -429,3 +434,45 @@ /obj/machinery/sleeper/old icon_state = "oldpod" + +/obj/machinery/sleeper/party + name = "party pod" + desc = "'Sleeper' units were once known for their healing properties, until a lengthy investigation revealed they were also dosing patients with deadly lead acetate. This appears to be one of those old 'sleeper' units repurposed as a 'Party Pod'. It’s probably not a good idea to use it." + icon_state = "partypod" + idle_power_usage = 3000 + circuit = /obj/item/circuitboard/machine/sleeper/party + var/leddit = FALSE //Get it like reddit and lead alright fine + ui_x = 310 + ui_y = 400 + + controls_inside = TRUE + possible_chems = list( + list(/datum/reagent/consumable/ethanol/beer, /datum/reagent/consumable/laughter), + list(/datum/reagent/spraytan,/datum/reagent/barbers_aid), + list(/datum/reagent/colorful_reagent,/datum/reagent/hair_dye), + list(/datum/reagent/drug/space_drugs,/datum/reagent/baldium) + )//Exclusively uses non-lethal, "fun" chems. At an obvious downside. + var/spray_chems = list( + /datum/reagent/spraytan, /datum/reagent/hair_dye, /datum/reagent/baldium, /datum/reagent/barbers_aid + )//Chemicals that need to have a touch or vapor reaction to be applied, not the standard chamber reaction. + enter_message = "You're surrounded by some funky music inside the chamber. You zone out as you feel waves of krunk vibe within you." + +/obj/machinery/sleeper/party/inject_chem(chem, mob/user) + if(leddit) + occupant.reagents.add_reagent(/datum/reagent/toxin/leadacetate, 4) //You're injecting chemicals into yourself from a recalled, decrepit medical machine. What did you expect? + else if (prob(20)) + occupant.reagents.add_reagent(/datum/reagent/toxin/leadacetate, rand(1,3)) + if(chem in spray_chems) + var/datum/reagents/holder = new() + holder.add_reagent(chem_buttons[chem], 10) //I hope this is the correct way to do this. + holder.reaction(occupant, VAPOR, 0) + holder.trans_to(occupant, 10) + playsound(src.loc, 'sound/effects/spray2.ogg', 50, TRUE, -6) + if(user) + log_combat(user, occupant, "sprayed [chem] into", addition = "via [src]") + return TRUE + ..() + +/obj/machinery/sleeper/party/emag_act(mob/user) + ..() + leddit = TRUE diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index 93121a0753..096b40ddb7 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -92,6 +92,8 @@ Class Procs: pressure_resistance = 15 max_integrity = 200 layer = BELOW_OBJ_LAYER //keeps shit coming out of the machine from ending up underneath it. + flags_ricochet = RICOCHET_HARD + ricochet_chance_mod = 0.3 anchored = TRUE interaction_flags_atom = INTERACT_ATOM_ATTACK_HAND | INTERACT_ATOM_UI_INTERACT @@ -110,7 +112,8 @@ Class Procs: var/state_open = FALSE var/critical_machine = FALSE //If this machine is critical to station operation and should have the area be excempted from power failures. var/list/occupant_typecache //if set, turned into typecache in Initialize, other wise, defaults to mob/living typecache - var/atom/movable/occupant = null + var/atom/movable/occupant + var/new_occupant_dir = SOUTH //The direction the occupant will be set to look at when entering the machine. var/speed_process = FALSE // Process as fast as possible? var/obj/item/circuitboard/circuit // Circuit to be created and inserted when the machinery is created // For storing and overriding ui id and dimensions @@ -217,6 +220,7 @@ Class Procs: if(target && !target.has_buckled_mobs() && (!isliving(target) || !mobtarget.buckled)) occupant = target target.forceMove(src) + target.setDir(new_occupant_dir) updateUsrDialog() update_icon() @@ -520,11 +524,11 @@ Class Procs: /obj/machinery/proc/can_be_overridden() . = 1 -/obj/machinery/tesla_act(power, tesla_flags, shocked_objects) - ..() - if(prob(85) && (tesla_flags & TESLA_MACHINE_EXPLOSIVE)) +/obj/machinery/zap_act(power, zap_flags, shocked_objects) + . = ..() + if(prob(85) && (zap_flags & ZAP_MACHINE_EXPLOSIVE)) explosion(src, 1, 2, 4, flame_range = 2, adminlog = FALSE, smoke = FALSE) - if(tesla_flags & TESLA_OBJ_DAMAGE) + else if(zap_flags & ZAP_OBJ_DAMAGE) take_damage(power/2000, BURN, "energy") if(prob(40)) emp_act(EMP_LIGHT) diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 3b32213509..1f0687151d 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -46,28 +46,16 @@ "Dinnerware", "Imported" ) - var/list/allowed_materials = list( - /datum/material/iron, - /datum/material/glass, - /datum/material/gold, - /datum/material/silver, - /datum/material/diamond, - /datum/material/uranium, - /datum/material/plasma, - /datum/material/bluespace, - /datum/material/bananium, - /datum/material/titanium, - /datum/material/runite, - /datum/material/plastic, - /datum/material/adamantine, - /datum/material/mythril - ) + var/list/allowed_materials /// Base print speed var/base_print_speed = 10 /obj/machinery/autolathe/Initialize() - AddComponent(/datum/component/material_container, allowed_materials, _show_on_examine=TRUE, _after_insert=CALLBACK(src, .proc/AfterMaterialInsert)) + var/list/mats = allowed_materials + if(!mats) + mats = SSmaterials.materialtypes_by_category[MAT_CATEGORY_RIGID] + AddComponent(/datum/component/material_container, mats, _show_on_examine=TRUE, _after_insert=CALLBACK(src, .proc/AfterMaterialInsert)) . = ..() wires = new /datum/wires/autolathe(src) stored_research = new stored_research diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 3a90707bbe..71de04ee99 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -16,10 +16,13 @@ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF /obj/machinery/button/Initialize(mapload, ndir = 0, built = 0) - if(istext(id) && mapload) - if(copytext(id, 1, 2) == "!") - id = SSmapping.get_obfuscated_id(id) + if(istext(id) && mapload && id[1] == "!") + id = SSmapping.get_obfuscated_id(id) . = ..() + var/turf/T = get_turf_pixel(src) + if(iswallturf(T)) + plane = ABOVE_WALL_PLANE + if(built) setDir(ndir) pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24) @@ -27,7 +30,6 @@ panel_open = TRUE update_icon() - if(!built && !device && device_type) device = new device_type(src) diff --git a/code/game/machinery/camera/presets.dm b/code/game/machinery/camera/presets.dm index 021232f435..33e250fa59 100644 --- a/code/game/machinery/camera/presets.dm +++ b/code/game/machinery/camera/presets.dm @@ -75,7 +75,7 @@ // UPGRADE PROCS /obj/machinery/camera/proc/upgradeEmpProof() - AddComponent(/datum/component/empprotection, EMP_PROTECT_SELF | EMP_PROTECT_WIRES | EMP_PROTECT_CONTENTS) + AddElement(/datum/element/empprotection, EMP_PROTECT_SELF | EMP_PROTECT_WIRES | EMP_PROTECT_CONTENTS) assembly.upgrades.Add(new /obj/item/stack/sheet/mineral/plasma(assembly)) upgrades |= CAMERA_UPGRADE_EMP_PROOF diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index cfe9d14663..6f798a41ef 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -26,6 +26,7 @@ var/efficiency var/datum/mind/clonemind + var/get_clone_mind = CLONEPOD_GET_MIND var/grab_ghost_when = CLONER_MATURE_CLONE var/internal_radio = TRUE @@ -134,43 +135,44 @@ return examine(user) //Start growing a human clone in the pod! -/obj/machinery/clonepod/proc/growclone(ckey, clonename, ui, mutation_index, mindref, datum/species/mrace, list/features, factions, list/quirks, datum/bank_account/insurance) +/obj/machinery/clonepod/proc/growclone(ckey, clonename, ui, mutation_index, mindref, blood_type, datum/species/mrace, list/features, factions, list/quirks, datum/bank_account/insurance, list/traumas) if(panel_open) return FALSE if(mess || attempting) return FALSE - clonemind = locate(mindref) in SSticker.minds - if(!istype(clonemind)) //not a mind - return FALSE - if(!QDELETED(clonemind.current)) - if(clonemind.current.stat != DEAD) //mind is associated with a non-dead body + if(get_clone_mind == CLONEPOD_GET_MIND) + clonemind = locate(mindref) in SSticker.minds + if(!istype(clonemind)) //not a mind return FALSE - if(clonemind.current.suiciding) // Mind is associated with a body that is suiciding. + if(!QDELETED(clonemind.current)) + if(clonemind.current.stat != DEAD) //mind is associated with a non-dead body + return FALSE + if(clonemind.current.suiciding) // Mind is associated with a body that is suiciding. + return FALSE + if(AmBloodsucker(clonemind.current)) //If the mind is a bloodsucker + return FALSE + if(clonemind.active) //somebody is using that mind + if( ckey(clonemind.key)!=ckey ) + return FALSE + else + // get_ghost() will fail if they're unable to reenter their body + var/mob/dead/observer/G = clonemind.get_ghost() + if(!G) + return FALSE + if(G.suiciding) // The ghost came from a body that is suiciding. + return FALSE + if(clonemind.damnation_type) //Can't clone the damned. + INVOKE_ASYNC(src, .proc/horrifyingsound) + mess = TRUE + update_icon() return FALSE - if(AmBloodsucker(clonemind.current)) //If the mind is a bloodsucker - return FALSE - if(clonemind.active) //somebody is using that mind - if( ckey(clonemind.key)!=ckey ) - return FALSE - else - // get_ghost() will fail if they're unable to reenter their body - var/mob/dead/observer/G = clonemind.get_ghost() - if(!G) - return FALSE - if(G.suiciding) // The ghost came from a body that is suiciding. - return FALSE - if(clonemind.damnation_type) //Can't clone the damned. - INVOKE_ASYNC(src, .proc/horrifyingsound) - mess = TRUE - update_icon() - return FALSE current_insurance = insurance attempting = TRUE //One at a time!! countdown.start() var/mob/living/carbon/human/H = new /mob/living/carbon/human(src) - H.hardset_dna(ui, mutation_index, H.real_name, null, mrace, features) + H.hardset_dna(ui, mutation_index, H.real_name, blood_type, mrace, features) H.easy_randmut(NEGATIVE+MINOR_NEGATIVE) //100% bad mutation. Can be cured with mutadone. @@ -192,7 +194,14 @@ ADD_TRAIT(H, TRAIT_NOCRITDAMAGE, CLONING_POD_TRAIT) H.Unconscious(80) - clonemind.transfer_to(H) + if(clonemind) + clonemind.transfer_to(H) + + else if(get_clone_mind == CLONEPOD_POLL_MIND) + var/list/candidates = pollCandidatesForMob("Do you want to play as [clonename]'s defective clone? (Don't ERP without permission from the original)", null, null, null, 100, H, POLL_IGNORE_CLONE) + if(LAZYLEN(candidates)) + var/mob/C = pick(candidates) + H.key = C.key if(grab_ghost_when == CLONER_FRESH_CLONE) H.grab_ghost() @@ -209,6 +218,12 @@ var/datum/quirk/Q = new V(H) Q.on_clone(quirks[V]) + for(var/t in traumas) + var/datum/brain_trauma/BT = t + var/datum/brain_trauma/cloned_trauma = BT.on_clone() + if(cloned_trauma) + H.gain_trauma(cloned_trauma, BT.resilience) + H.set_cloned_appearance() H.give_genitals(TRUE) @@ -271,9 +286,6 @@ var/obj/item/bodypart/BP = I BP.attach_limb(mob_occupant) - //Premature clones may have brain damage. - mob_occupant.adjustOrganLoss(ORGAN_SLOT_BRAIN, -((speed_coeff / 2) * dmg_mult)) - use_power(7500) //This might need tweaking. else if((mob_occupant && mob_occupant.cloneloss <= (100 - heal_level))) @@ -399,6 +411,8 @@ to_chat(occupant, "There is a bright flash!
    You feel like a new being.
    ") mob_occupant.flash_act() + mob_occupant.adjustOrganLoss(ORGAN_SLOT_BRAIN, mob_occupant.getCloneLoss()) + occupant.forceMove(T) update_icon() mob_occupant.domutcheck(1) //Waiting until they're out before possible monkeyizing. The 1 argument forces powers to manifest. @@ -474,10 +488,9 @@ unattached_flesh.Cut() H.setCloneLoss(CLONE_INITIAL_DAMAGE) //Yeah, clones start with very low health, not with random, because why would they start with random health - //H.setOrganLoss(ORGAN_SLOT_BRAIN, CLONE_INITIAL_DAMAGE) - // In addition to being cellularly damaged and having barely any - - // brain function, they also have no limbs or internal organs. + // In addition to being cellularly damaged, they also have no limbs or internal organs. + // Applying brainloss is done when the clone leaves the pod, so application of traumas can happen. + // based on the level of damage sustained. if(!HAS_TRAIT(H, TRAIT_NODISMEMBER)) var/static/list/zones = list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG) @@ -545,6 +558,17 @@ . += "cover-on" . += "panel" +//Experimental cloner; clones a body regardless of the owner's status, letting a ghost control it instead +/obj/machinery/clonepod/experimental + name = "experimental cloning pod" + desc = "An ancient cloning pod. It seems to be an early prototype of the experimental cloners used in Nanotrasen Stations." + icon = 'icons/obj/machines/cloning.dmi' + icon_state = "pod_0" + req_access = null + circuit = /obj/item/circuitboard/machine/clonepod/experimental + internal_radio = FALSE + get_clone_mind = CLONEPOD_POLL_MIND + /* * Manual -- A big ol' manual. */ diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 2d9880578c..8a91c266a0 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -42,9 +42,9 @@ /obj/item/clothing/mask/facehugger/toy = ARCADE_WEIGHT_RARE, /obj/item/gun/ballistic/automatic/toy/pistol/unrestricted = ARCADE_WEIGHT_TRICK, /obj/item/hot_potato/harmless/toy = ARCADE_WEIGHT_RARE, - /obj/item/twohanded/dualsaber/toy = ARCADE_WEIGHT_RARE, - /obj/item/twohanded/dualsaber/hypereutactic/toy = ARCADE_WEIGHT_RARE, - /obj/item/twohanded/dualsaber/hypereutactic/toy/rainbow = ARCADE_WEIGHT_RARE, + /obj/item/dualsaber/toy = ARCADE_WEIGHT_RARE, + /obj/item/dualsaber/hypereutactic/toy = ARCADE_WEIGHT_RARE, + /obj/item/dualsaber/hypereutactic/toy/rainbow = ARCADE_WEIGHT_RARE, /obj/item/storage/box/snappops = ARCADE_WEIGHT_TRICK, /obj/item/clothing/under/syndicate/tacticool = ARCADE_WEIGHT_TRICK, diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index eb7f194229..70a59230b2 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -175,6 +175,12 @@ clockwork = TRUE //it'd look very weird light_power = 0 +/obj/machinery/computer/security/telescreen/Initialize() + . = ..() + var/turf/T = get_turf_pixel(src) + if(iswallturf(T)) + plane = ABOVE_WALL_PLANE + /obj/machinery/computer/security/telescreen/update_icon_state() icon_state = initial(icon_state) if(stat & BROKEN) @@ -251,3 +257,12 @@ name = "AI upload monitor" desc = "A telescreen that connects to the AI upload's camera network." network = list("aiupload") + +// Subtype that connects to shuttles. +/obj/machinery/computer/security/shuttle + circuit = /obj/item/circuitboard/computer/security/shuttle + +/obj/machinery/computer/security/shuttle/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) + for(var/i in network) + network -= i + network += "[idnum][i]" diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 981a5643a8..400ce041c7 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -8,6 +8,7 @@ circuit = /obj/item/circuitboard/computer/cloning req_access = list(ACCESS_HEADS) //ONLY USED FOR RECORD DELETION RIGHT NOW. var/obj/machinery/dna_scannernew/scanner = null //Linked scanner. For scanning. + var/clonepod_type = /obj/machinery/clonepod var/list/pods //Linked cloning pods var/temp = "Inactive" var/scantemp_ckey @@ -17,6 +18,7 @@ var/obj/item/disk/data/diskette = null //Mostly so the geneticist can steal everything. var/loading = 0 // Nice loading text var/autoprocess = 0 + var/use_records = TRUE // Old experimental cloner. var/list/records = list() light_color = LIGHT_COLOR_BLUE @@ -36,29 +38,32 @@ return ..() /obj/machinery/computer/cloning/proc/GetAvailablePod(mind = null) - if(pods) - for(var/P in pods) - var/obj/machinery/clonepod/pod = P - if(pod.occupant && pod.clonemind == mind) - return null - if(pod.is_operational() && !(pod.occupant || pod.mess)) - return pod + if(!pods) + return + for(var/P in pods) + var/obj/machinery/clonepod/pod = P + if(pod.occupant && pod.get_clone_mind == CLONEPOD_GET_MIND && pod.clonemind == mind) + return null + if(pod.is_operational() && !(pod.occupant || pod.mess)) + return pod /obj/machinery/computer/cloning/proc/HasEfficientPod() - if(pods) - for(var/P in pods) - var/obj/machinery/clonepod/pod = P - if(pod.is_operational() && pod.efficiency > 5) - return TRUE + if(!pods) + return + for(var/P in pods) + var/obj/machinery/clonepod/pod = P + if(pod.is_operational() && pod.efficiency > 5) + return TRUE /obj/machinery/computer/cloning/proc/GetAvailableEfficientPod(mind = null) - if(pods) - for(var/P in pods) - var/obj/machinery/clonepod/pod = P - if(pod.occupant && pod.clonemind == mind) - return pod - else if(!. && pod.is_operational() && !(pod.occupant || pod.mess) && pod.efficiency > 5) - . = pod + if(!pods) + return + for(var/P in pods) + var/obj/machinery/clonepod/pod = P + if(pod.occupant && pod.clonemind == mind) + return pod + else if(!. && pod.is_operational() && !(pod.occupant || pod.mess) && pod.efficiency > 5) + . = pod /obj/machinery/computer/cloning/process() if(!(scanner && LAZYLEN(pods) && autoprocess)) @@ -73,7 +78,7 @@ if(pod.occupant) continue //how though? - if(pod.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"], R.fields["features"], R.fields["factions"], R.fields["quirks"], R.fields["bank_account"])) + if(pod.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["blood_type"], R.fields["mrace"], R.fields["features"], R.fields["factions"], R.fields["quirks"], R.fields["bank_account"], R.fields["traumas"])) temp = "[R.fields["name"]] => Cloning cycle in progress..." records -= R @@ -103,12 +108,10 @@ return null /obj/machinery/computer/cloning/proc/findcloner() - var/obj/machinery/clonepod/podf = null - + var/obj/machinery/clonepod/podf for(var/direction in GLOB.cardinals) - - podf = locate(/obj/machinery/clonepod, get_step(src, direction)) - if (!isnull(podf) && podf.is_operational()) + podf = locate(clonepod_type, get_step(src, direction)) + if(podf?.is_operational()) AttachCloner(podf) /obj/machinery/computer/cloning/proc/AttachCloner(obj/machinery/clonepod/pod) @@ -132,7 +135,7 @@ else if(istype(W, /obj/item/multitool)) var/obj/item/multitool/P = W - if(istype(P.buffer, /obj/machinery/clonepod)) + if(istype(P.buffer, clonepod_type)) if(get_area(P.buffer) != get_area(src)) to_chat(user, "-% Cannot link machines across power zones. Buffer cleared %-") P.buffer = null @@ -157,13 +160,14 @@ var/dat = "" dat += "Refresh" - if(scanner && HasEfficientPod() && scanner.scan_level >= AUTOCLONING_MINIMAL_LEVEL) - if(!autoprocess) - dat += "Autoclone" + if(use_records) + if(scanner && HasEfficientPod() && scanner.scan_level >= AUTOCLONING_MINIMAL_LEVEL) + if(!autoprocess) + dat += "Autoclone" + else + dat += "Stop autoclone" else - dat += "Stop autoclone" - else - dat += "Autoclone" + dat += "Autoclone" dat += "

    Cloning Pod Status

    " dat += "
    [temp] 
    " @@ -190,26 +194,29 @@ else if(loading) dat += "[scanner_occupant] => Scanning..." else - if(scanner_occupant.ckey != scantemp_ckey) - scantemp = "Ready to Scan" - scantemp_ckey = scanner_occupant.ckey + if(use_records) + if(scanner_occupant.ckey != scantemp_ckey) + scantemp = "Ready to Scan" + scantemp_ckey = scanner_occupant.ckey + else + scantemp = "Ready to Clone" dat += "[scanner_occupant] => [scantemp]" dat += "" if(scanner_occupant) - dat += "Start Scan" - dat += "
    [src.scanner.locked ? "Unlock Scanner" : "Lock Scanner"]" + dat += "[use_records ? "Start Scan" : "Clone"]" + dat += "
    [scanner.locked ? "Unlock Scanner" : "Lock Scanner"]" else - dat += "Start Scan" - - // Database - dat += "

    Database Functions

    " - if (src.records.len && src.records.len > 0) - dat += "View Records ([src.records.len])
    " - else - dat += "View Records (0)
    " - if (src.diskette) - dat += "Eject Disk
    " + dat += "[use_records ? "Start Scan" : "Clone"]" + if(use_records) + // Database + dat += "

    Database Functions

    " + if (src.records.len && src.records.len > 0) + dat += "View Records ([src.records.len])
    " + else + dat += "View Records (0)
    " + if (src.diskette) + dat += "Eject Disk
    " @@ -290,24 +297,19 @@ autoprocess = FALSE STOP_PROCESSING(SSmachines, src) playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + . = TRUE else if ((href_list["scan"]) && !isnull(scanner) && scanner.is_operational()) scantemp = "" - loading = 1 + loading = TRUE src.updateUsrDialog() playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) say("Initiating scan...") var/prev_locked = scanner.locked scanner.locked = TRUE - spawn(20) - src.scan_occupant(scanner.occupant) - - loading = 0 - src.updateUsrDialog() - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - scanner.locked = prev_locked - + addtimer(CALLBACK(src, .proc/finish_scan, scanner.occupant, prev_locked), 2 SECONDS) + . = TRUE //No locking an open scanner. else if ((href_list["lock"]) && !isnull(scanner) && scanner.is_operational()) @@ -317,8 +319,17 @@ else scanner.locked = FALSE playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) + . = TRUE - else if(href_list["view_rec"]) + + else if (href_list["refresh"]) + src.updateUsrDialog() + playsound(src, "terminal_type", 25, 0) + . = TRUE + + if(. || !use_records) + return + if(href_list["view_rec"]) playsound(src, "terminal_type", 25, 0) src.active_record = find_record("id", href_list["view_rec"], records) if(active_record) @@ -330,6 +341,7 @@ src.menu = 3 else src.temp = "Record missing." + . = TRUE else if (href_list["del_rec"]) if ((!src.active_record) || (src.menu < 3)) @@ -353,8 +365,9 @@ else src.temp = "Access Denied." playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + . = TRUE - else if (href_list["disk"]) //Load or eject. + else if (href_list["disk"] && use_records) //Load or eject. switch(href_list["disk"]) if("load") if (!diskette || !istype(diskette.fields) || !diskette.fields["name"] || !diskette.fields) @@ -392,10 +405,7 @@ diskette.name = "data disk - '[src.diskette.fields["name"]]'" src.temp = "Save successful." playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - - else if (href_list["refresh"]) - src.updateUsrDialog() - playsound(src, "terminal_type", 25, 0) + . = TRUE else if (href_list["clone"]) var/datum/data/record/C = find_record("id", href_list["clone"], records) @@ -415,7 +425,7 @@ else if(pod.occupant) temp = "Cloning cycle already in progress." playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - else if(pod.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["features"], C.fields["factions"], C.fields["quirks"], C.fields["bank_account"])) + else if(pod.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["blood_type"], C.fields["mrace"], C.fields["features"], C.fields["factions"], C.fields["quirks"], C.fields["bank_account"], C.fields["traumas"])) temp = "[C.fields["name"]] => Cloning cycle in progress..." playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) records.Remove(C) @@ -429,53 +439,49 @@ else temp = "Data corruption." playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + . = TRUE - else if (href_list["menu"]) - src.menu = text2num(href_list["menu"]) + else if (href_list["menu"] && use_records) + menu = text2num(href_list["menu"]) playsound(src, "terminal_type", 25, 0) + . = TRUE +/obj/machinery/computer/cloning/proc/finish_scan(mob/living/L, prev_locked) + if(!scanner || !L) + return src.add_fingerprint(usr) src.updateUsrDialog() - return + + if(use_records) + scan_occupant(L) + else + clone_occupant(L) + + loading = FALSE + src.updateUsrDialog() + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) + scanner.locked = prev_locked /obj/machinery/computer/cloning/proc/scan_occupant(occupant) var/mob/living/mob_occupant = get_mob_or_brainmob(occupant) var/datum/dna/dna var/datum/bank_account/has_bank_account + + // Do not use unless you know what they are. + var/mob/living/carbon/C = mob_occupant + var/mob/living/brain/B = mob_occupant + if(ishuman(mob_occupant)) - var/mob/living/carbon/C = mob_occupant dna = C.has_dna() var/obj/item/card/id/I = C.get_idcard() if(I) has_bank_account = I.registered_account if(isbrain(mob_occupant)) - var/mob/living/brain/B = mob_occupant dna = B.stored_dna - if(!istype(dna)) - scantemp = "Unable to locate valid genetic data." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - return - if(mob_occupant.suiciding || mob_occupant.hellbound) - scantemp = "Subject's brain is not responding to scanning stimuli." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - return - if((HAS_TRAIT(mob_occupant, TRAIT_NOCLONE)) && (src.scanner.scan_level < 2)) - scantemp = "Subject no longer contains the fundamental materials required to create a living clone." - playsound(src, 'sound/machines/terminal_alert.ogg', 50, 0) - return - if ((!mob_occupant.ckey) || (!mob_occupant.client)) - scantemp = "Mental interface failure." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - return - if (find_record("ckey", mob_occupant.ckey, records)) - scantemp = "Subject already in database." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - return - if(SSeconomy.full_ancap && !has_bank_account) - scantemp = "Subject is either missing an ID card with a bank account on it, or does not have an account to begin with. Please ensure the ID card is on the body before attempting to scan." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + if(!can_scan(dna, mob_occupant, FALSE, has_bank_account)) return + var/datum/data/record/R = new() if(dna.species) // We store the instance rather than the path, because some @@ -497,11 +503,17 @@ R.fields["features"] = dna.features R.fields["factions"] = mob_occupant.faction R.fields["quirks"] = list() - R.fields["bank_account"] = has_bank_account for(var/V in mob_occupant.roundstart_quirks) var/datum/quirk/T = V R.fields["quirks"][T.type] = T.clone_data() + R.fields["traumas"] = list() + if(ishuman(mob_occupant)) + R.fields["traumas"] = C.get_traumas() + if(isbrain(mob_occupant)) + R.fields["traumas"] = B.get_traumas() + + R.fields["bank_account"] = has_bank_account if (!isnull(mob_occupant.mind)) //Save that mind so traitors can continue traitoring after cloning. R.fields["mind"] = "[REF(mob_occupant.mind)]" @@ -520,3 +532,78 @@ board.records = records scantemp = "Subject successfully scanned." playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) + +//Used by the experimental cloning computer. +/obj/machinery/computer/cloning/proc/clone_occupant(occupant) + var/mob/living/mob_occupant = get_mob_or_brainmob(occupant) + var/datum/dna/dna + if(ishuman(mob_occupant)) + var/mob/living/carbon/C = mob_occupant + dna = C.has_dna() + if(isbrain(mob_occupant)) + var/mob/living/brain/B = mob_occupant + dna = B.stored_dna + + if(!can_scan(dna, mob_occupant, TRUE)) + return + + var/clone_species + if(dna.species) + clone_species = dna.species + else + var/datum/species/rando_race = pick(GLOB.roundstart_races) + clone_species = rando_race.type + + var/obj/machinery/clonepod/pod = GetAvailablePod() + //Can't clone without someone to clone. Or a pod. Or if the pod is busy. Or full of gibs. + if(!LAZYLEN(pods)) + temp = "No Clonepods detected." + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + else if(!pod) + temp = "No Clonepods available." + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + else if(pod.occupant) + temp = "Cloning cycle already in progress." + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + else + pod.growclone(null, mob_occupant.real_name, dna.uni_identity, dna.mutation_index, null, dna.blood_type, clone_species, dna.features, mob_occupant.faction) + temp = "[mob_occupant.real_name] => Cloning data sent to pod." + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) + +/obj/machinery/computer/cloning/proc/can_scan(datum/dna/dna, mob/living/mob_occupant, experimental = FALSE, datum/bank_account/account) + if(!istype(dna)) + scantemp = "Unable to locate valid genetic data." + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + return + if(!experimental) + if(mob_occupant.suiciding || mob_occupant.hellbound) + scantemp = "Subject's brain is not responding to scanning stimuli." + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + return + if((HAS_TRAIT(mob_occupant, TRAIT_NOCLONE)) && (src.scanner.scan_level < 2)) + scantemp = "Subject no longer contains the fundamental materials required to create a living clone." + playsound(src, 'sound/machines/terminal_alert.ogg', 50, 0) + return + if (!experimental) + if(!mob_occupant.ckey || !mob_occupant.client) + scantemp = "Mental interface failure." + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + return + if (find_record("ckey", mob_occupant.ckey, records)) + scantemp = "Subject already in database." + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + return + if(SSeconomy.full_ancap && !account) + scantemp = "Subject is either missing an ID card with a bank account on it, or does not have an account to begin with. Please ensure the ID card is on the body before attempting to scan." + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) + return + return TRUE + +//Prototype cloning console, much more rudimental and lacks modern functions such as saving records, autocloning, or safety checks. +/obj/machinery/computer/cloning/prototype + name = "prototype cloning console" + desc = "Used to operate an experimental cloner." + icon_screen = "dna" + icon_keyboard = "med_key" + circuit = /obj/item/circuitboard/computer/cloning/prototype + clonepod_type = /obj/machinery/clonepod/experimental diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 07f95c17ff..9330a30555 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -242,6 +242,7 @@ if((isnull(user) || istype(user)) && state_open && !panel_open) ..(user) var/mob/living/mob_occupant = occupant + investigate_log("Cryogenics machine closed with occupant [key_name(occupant)] by user [key_name(user)].", INVESTIGATE_CRYOGENICS) if(mob_occupant && mob_occupant.stat != DEAD) to_chat(occupant, "You feel cool air surround you. You go numb as your senses turn inward.") if(mob_occupant.client)//if they're logged in @@ -251,12 +252,15 @@ icon_state = "cryopod" /obj/machinery/cryopod/open_machine() + if(occupant) + investigate_log("Cryogenics machine opened with occupant [key_name(occupant)] inside.", INVESTIGATE_CRYOGENICS) ..() icon_state = "cryopod-open" density = TRUE name = initial(name) /obj/machinery/cryopod/container_resist(mob/living/user) + investigate_log("Cryogenics machine container resisted by [key_name(user)] with occupant [key_name(occupant)].", INVESTIGATE_CRYOGENICS) visible_message("[occupant] emerges from [src]!", "You climb out of [src]!") open_machine() @@ -304,6 +308,8 @@ var/mob/living/mob_occupant = occupant var/list/obj/item/cryo_items = list() + + investigate_log("Despawning [key_name(mob_occupant)].", INVESTIGATE_CRYOGENICS) //Handle Borg stuff first if(iscyborg(mob_occupant)) diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 67113fcf78..252e6cf6b3 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -70,14 +70,13 @@ if(W.amount < 5) to_chat(user, "You need at least five wooden planks to make a wall!") return - else - to_chat(user, "You start adding [I] to [src]...") - if(do_after(user, 50, target=src)) - W.use(5) - var/turf/T = get_turf(src) - T.PlaceOnTop(/turf/closed/wall/mineral/wood/nonmetal) - qdel(src) - return + to_chat(user, "You start adding [I] to [src]...") + if(do_after(user, 50, target=src)) + W.use(5) + var/turf/T = get_turf(src) + T.PlaceOnTop(/turf/closed/wall/mineral/wood/nonmetal) + qdel(src) + return return ..() @@ -170,7 +169,8 @@ to_chat(user, "[src] is now in [mode] mode.") -/obj/item/grenade/barrier/prime() +/obj/item/grenade/barrier/prime(mob/living/lanced_by) + . = ..() new /obj/structure/barricade/security(get_turf(src.loc)) switch(mode) if(VERTICAL) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 5665edfba2..8959cd8cc9 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -413,8 +413,8 @@ // shock user with probability prb (if all connections & power are working) // returns TRUE if shocked, FALSE otherwise // The preceding comment was borrowed from the grille's shock script -/obj/machinery/door/airlock/proc/shock(mob/user, prb) - if(!hasPower()) // unpowered, no shock +/obj/machinery/door/airlock/proc/shock(mob/living/user, prb) + if(!istype(user) || !hasPower()) // unpowered, no shock return FALSE if(shockCooldown > world.time) return FALSE //Already shocked someone recently? @@ -577,11 +577,17 @@ cut_overlays() add_overlay(frame_overlay) add_overlay(filling_overlay) - add_overlay(lights_overlay) + if(lights_overlay) + add_overlay(lights_overlay) + var/mutable_appearance/lights_vis = mutable_appearance(lights_overlay.icon, lights_overlay.icon_state) + add_overlay(lights_vis) add_overlay(panel_overlay) add_overlay(weld_overlay) add_overlay(sparks_overlay) - add_overlay(damag_overlay) + if(damag_overlay) + add_overlay(damag_overlay) + var/mutable_appearance/damage_vis = mutable_appearance(damag_overlay.icon, damag_overlay.icon_state) + add_overlay(damage_vis) add_overlay(note_overlay) check_unres() @@ -1052,11 +1058,11 @@ to_chat(user, "The airlock's bolts prevent it from being forced!") else if( !welded && !operating) if(!beingcrowbarred) //being fireaxe'd - var/obj/item/twohanded/fireaxe/F = I - if(F.wielded) - INVOKE_ASYNC(src, (density ? .proc/open : .proc/close), 2) - else - to_chat(user, "You need to be wielding the fire axe to do that!") + var/obj/item/fireaxe/axe = I + if(!axe.wielded) + to_chat(user, "You need to be wielding \the [axe] to do that!") + return + INVOKE_ASYNC(src, (density ? .proc/open : .proc/close), 2) else INVOKE_ASYNC(src, (density ? .proc/open : .proc/close), 2) diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index fed54f55f8..ae6930f5fb 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -1,7 +1,7 @@ /obj/item/electronics/airlock name = "airlock electronics" req_access = list(ACCESS_MAINT_TUNNELS) - custom_price = 50 + custom_price = PRICE_CHEAP var/list/accesses = list() var/one_access = 0 diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index cd22b2dc05..1d39372dec 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -21,6 +21,7 @@ icon = 'icons/obj/status_display.dmi' icon_state = "frame" desc = "A remote control for a door." + plane = ABOVE_WALL_PLANE req_access = list(ACCESS_SECURITY) density = FALSE var/id // id of linked machinery/lockers diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index abf1e0ab4f..25ce121df4 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -12,13 +12,14 @@ armor = list("melee" = 30, "bullet" = 30, "laser" = 20, "energy" = 20, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 70) CanAtmosPass = ATMOS_PASS_DENSITY flags_1 = PREVENT_CLICK_UNDER_1 + ricochet_chance_mod = 0.8 interaction_flags_atom = INTERACT_ATOM_UI_INTERACT var/secondsElectrified = 0 var/air_tight = FALSE //TRUE means density will be set as soon as the door begins to close var/shockedby - var/visible = TRUE + var/visible = TRUE // To explain: Whether the door can block line of sight when closed or not. var/operating = FALSE var/glass = FALSE var/welded = FALSE @@ -207,7 +208,7 @@ return max_moles - min_moles > 20 /obj/machinery/door/attackby(obj/item/I, mob/user, params) - if(user.a_intent != INTENT_HARM && (I.tool_behaviour == TOOL_CROWBAR || istype(I, /obj/item/twohanded/fireaxe))) + if(user.a_intent != INTENT_HARM && (I.tool_behaviour == TOOL_CROWBAR || istype(I, /obj/item/fireaxe))) try_to_crowbar(I, user) return 1 else if(I.tool_behaviour == TOOL_WELDER) diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 5b28faeb4f..e359c6331f 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -408,7 +408,7 @@ /obj/item/electronics/firelock name = "firelock circuitry" - custom_price = 50 + custom_price = PRICE_CHEAP desc = "A circuit board used in construction of firelocks." icon_state = "mainboard" diff --git a/code/game/machinery/doors/shutters.dm b/code/game/machinery/doors/shutters.dm index 87e8c8f6a7..362dde1157 100644 --- a/code/game/machinery/doors/shutters.dm +++ b/code/game/machinery/doors/shutters.dm @@ -53,7 +53,9 @@ if("opening") rad_insulation = 1 if("closing") - rad_insulation = 0.2 + rad_insulation = -0.5 + +// A 3x3 N2 SM setup won't irradiate you if you're behind the shutter at -0.9 insulation. If it starts to delam, it'll start irradiating you slowly. Keep the value between -0.1 to -0.9 /obj/machinery/door/poddoor/shutters/window name = "windowed shutters" diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 492e90720c..c9c577231e 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -54,6 +54,15 @@ else icon_state = "[src.base_state]open" +/obj/machinery/door/window/update_atom_colour() + if((color && (color_hex2num(color) < 255))) + visible = TRUE + if(density) + set_opacity(TRUE) + else + visible = FALSE + set_opacity(density && visible) + /obj/machinery/door/window/proc/open_and_close() open() if(src.check_access(null)) @@ -143,16 +152,18 @@ do_animate("opening") playsound(src.loc, 'sound/machines/windowdoor.ogg', 100, 1) src.icon_state ="[src.base_state]open" - sleep(10) + addtimer(CALLBACK(src, .proc/finish_opening), 10) + return TRUE +/obj/machinery/door/window/proc/finish_opening() + operating = FALSE density = FALSE -// src.sd_set_opacity(0) //TODO: why is this here? Opaque windoors? ~Carn + if(visible) + set_opacity(FALSE) air_update_turf(1) update_freelook_sight() - if(operating == 1) //emag again operating = FALSE - return 1 /obj/machinery/door/window/close(forced=0) if (src.operating) @@ -171,10 +182,13 @@ density = TRUE air_update_turf(1) update_freelook_sight() - sleep(10) + addtimer(CALLBACK(src, .proc/finish_closing), 10) + return TRUE +/obj/machinery/door/window/proc/finish_closing() + if(visible) + set_opacity(TRUE) operating = FALSE - return 1 /obj/machinery/door/window/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) diff --git a/code/game/machinery/embedded_controller/simple_vent_controller.dm b/code/game/machinery/embedded_controller/simple_vent_controller.dm index 6c8467dbd3..6416de70f1 100644 --- a/code/game/machinery/embedded_controller/simple_vent_controller.dm +++ b/code/game/machinery/embedded_controller/simple_vent_controller.dm @@ -34,7 +34,7 @@ /obj/machinery/embedded_controller/radio/simple_vent_controller icon = 'icons/obj/airlock_machines.dmi' icon_state = "airlock_control_standby" - + plane = ABOVE_WALL_PLANE name = "vent controller" density = FALSE diff --git a/code/game/machinery/exp_cloner.dm b/code/game/machinery/exp_cloner.dm deleted file mode 100644 index 2c669aac80..0000000000 --- a/code/game/machinery/exp_cloner.dm +++ /dev/null @@ -1,298 +0,0 @@ -//Experimental cloner; clones a body regardless of the owner's status, letting a ghost control it instead -/obj/machinery/clonepod/experimental - name = "experimental cloning pod" - desc = "An ancient cloning pod. It seems to be an early prototype of the experimental cloners used in Nanotrasen Stations." - icon = 'icons/obj/machines/cloning.dmi' - icon_state = "pod_0" - req_access = null - circuit = /obj/item/circuitboard/machine/clonepod/experimental - internal_radio = FALSE - -//Start growing a human clone in the pod! -/obj/machinery/clonepod/experimental/growclone(clonename, ui, mutation_index, mindref, last_death, blood_type, datum/species/mrace, list/features, factions, list/quirks) - if(panel_open) - return FALSE - if(mess || attempting) - return FALSE - - attempting = TRUE //One at a time!! - countdown.start() - - var/mob/living/carbon/human/H = new /mob/living/carbon/human(src) - - H.hardset_dna(ui, mutation_index, H.real_name, blood_type, mrace, features) - - if(efficiency > 2) - var/list/unclean_mutations = (GLOB.not_good_mutations|GLOB.bad_mutations) - H.dna.remove_mutation_group(unclean_mutations) - if(efficiency > 5 && prob(20)) - H.easy_randmut(POSITIVE) - if(efficiency < 3 && prob(50)) - var/mob/M = H.easy_randmut(NEGATIVE+MINOR_NEGATIVE) - if(ismob(M)) - H = M - - H.silent = 20 //Prevents an extreme edge case where clones could speak if they said something at exactly the right moment. - occupant = H - - if(!clonename) //to prevent null names - clonename = "clone ([rand(1,999)])" - H.real_name = clonename - - icon_state = "pod_1" - //Get the clone body ready - maim_clone(H) - ADD_TRAIT(H, TRAIT_STABLEHEART, "cloning") - ADD_TRAIT(H, TRAIT_EMOTEMUTE, "cloning") - ADD_TRAIT(H, TRAIT_MUTE, "cloning") - ADD_TRAIT(H, TRAIT_NOBREATH, "cloning") - ADD_TRAIT(H, TRAIT_NOCRITDAMAGE, "cloning") - H.Unconscious(80) - - var/list/candidates = pollCandidatesForMob("Do you want to play as [clonename]'s defective clone?", null, null, null, 100, H) - if(LAZYLEN(candidates)) - var/mob/C = pick(candidates) - H.key = C.key - - if(grab_ghost_when == CLONER_FRESH_CLONE) - H.grab_ghost() - to_chat(H, "Consciousness slowly creeps over you as your body regenerates.
    So this is what cloning feels like?
    ") - - if(grab_ghost_when == CLONER_MATURE_CLONE) - H.ghostize(TRUE) //Only does anything if they were still in their old body and not already a ghost - to_chat(H.get_ghost(TRUE), "Your body is beginning to regenerate in a cloning pod. You will become conscious when it is complete.") - - if(H) - H.faction |= factions - - H.set_cloned_appearance() - - H.suiciding = FALSE - attempting = FALSE - return TRUE - - -//Prototype cloning console, much more rudimental and lacks modern functions such as saving records, autocloning, or safety checks. -/obj/machinery/computer/prototype_cloning - name = "prototype cloning console" - desc = "Used to operate an experimental cloner." - icon_screen = "dna" - icon_keyboard = "med_key" - circuit = /obj/item/circuitboard/computer/prototype_cloning - var/obj/machinery/dna_scannernew/scanner = null //Linked scanner. For scanning. - var/list/pods //Linked experimental cloning pods - var/temp = "Inactive" - var/scantemp = "Ready to Scan" - var/loading = FALSE // Nice loading text - - light_color = LIGHT_COLOR_BLUE - -/obj/machinery/computer/prototype_cloning/Initialize() - . = ..() - updatemodules(TRUE) - -/obj/machinery/computer/prototype_cloning/Destroy() - if(pods) - for(var/P in pods) - DetachCloner(P) - pods = null - return ..() - -/obj/machinery/computer/prototype_cloning/proc/GetAvailablePod(mind = null) - if(pods) - for(var/P in pods) - var/obj/machinery/clonepod/experimental/pod = P - if(pod.is_operational() && !(pod.occupant || pod.mess)) - return pod - -/obj/machinery/computer/prototype_cloning/proc/updatemodules(findfirstcloner) - scanner = findscanner() - if(findfirstcloner && !LAZYLEN(pods)) - findcloner() - -/obj/machinery/computer/prototype_cloning/proc/findscanner() - var/obj/machinery/dna_scannernew/scannerf = null - - // Loop through every direction - for(var/direction in GLOB.cardinals) - // Try to find a scanner in that direction - scannerf = locate(/obj/machinery/dna_scannernew, get_step(src, direction)) - // If found and operational, return the scanner - if (!isnull(scannerf) && scannerf.is_operational()) - return scannerf - - // If no scanner was found, it will return null - return null - -/obj/machinery/computer/prototype_cloning/proc/findcloner() - var/obj/machinery/clonepod/experimental/podf = null - for(var/direction in GLOB.cardinals) - podf = locate(/obj/machinery/clonepod/experimental, get_step(src, direction)) - if (!isnull(podf) && podf.is_operational()) - AttachCloner(podf) - -/obj/machinery/computer/prototype_cloning/proc/AttachCloner(obj/machinery/clonepod/experimental/pod) - if(!pod.connected) - pod.connected = src - LAZYADD(pods, pod) - -/obj/machinery/computer/prototype_cloning/proc/DetachCloner(obj/machinery/clonepod/experimental/pod) - pod.connected = null - LAZYREMOVE(pods, pod) - -/obj/machinery/computer/prototype_cloning/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/multitool)) - var/obj/item/multitool/P = W - - if(istype(P.buffer, /obj/machinery/clonepod/experimental)) - if(get_area(P.buffer) != get_area(src)) - to_chat(user, "-% Cannot link machines across power zones. Buffer cleared %-") - P.buffer = null - return - to_chat(user, "-% Successfully linked [P.buffer] with [src] %-") - var/obj/machinery/clonepod/experimental/pod = P.buffer - if(pod.connected) - pod.connected.DetachCloner(pod) - AttachCloner(pod) - else - P.buffer = src - to_chat(user, "-% Successfully stored [REF(P.buffer)] [P.buffer.name] in buffer %-") - return - else - return ..() - -/obj/machinery/computer/prototype_cloning/attack_hand(mob/user) - if(..()) - return - interact(user) - -/obj/machinery/computer/prototype_cloning/interact(mob/user) - user.set_machine(src) - add_fingerprint(user) - - if(..()) - return - - updatemodules(TRUE) - - var/dat = "" - dat += "Refresh" - - dat += "

    Cloning Pod Status

    " - dat += "
    [temp] 
    " - - if (isnull(src.scanner) || !LAZYLEN(pods)) - dat += "

    Modules

    " - //dat += "Reload Modules" - if (isnull(src.scanner)) - dat += "ERROR: No Scanner detected!
    " - if (!LAZYLEN(pods)) - dat += "ERROR: No Pod detected
    " - - // Scan-n-Clone - if (!isnull(src.scanner)) - var/mob/living/scanner_occupant = get_mob_or_brainmob(scanner.occupant) - - dat += "

    Cloning

    " - - dat += "
    " - if(!scanner_occupant) - dat += "Scanner Unoccupied" - else if(loading) - dat += "[scanner_occupant] => Scanning..." - else - scantemp = "Ready to Clone" - dat += "[scanner_occupant] => [scantemp]" - dat += "
    " - - if(scanner_occupant) - dat += "Clone" - dat += "
    [src.scanner.locked ? "Unlock Scanner" : "Lock Scanner"]" - else - dat += "Clone" - - var/datum/browser/popup = new(user, "cloning", "Prototype Cloning System Control") - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.open() - -/obj/machinery/computer/prototype_cloning/Topic(href, href_list) - if(..()) - return - - if(loading) - return - - else if ((href_list["clone"]) && !isnull(scanner) && scanner.is_operational()) - scantemp = "" - - loading = TRUE - updateUsrDialog() - playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) - say("Initiating scan...") - - spawn(20) - clone_occupant(scanner.occupant) - loading = FALSE - updateUsrDialog() - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - - //No locking an open scanner. - else if ((href_list["lock"]) && !isnull(scanner) && scanner.is_operational()) - if ((!scanner.locked) && (scanner.occupant)) - scanner.locked = TRUE - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - else - scanner.locked = FALSE - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - - else if (href_list["refresh"]) - updateUsrDialog() - playsound(src, "terminal_type", 25, 0) - - add_fingerprint(usr) - updateUsrDialog() - return - -/obj/machinery/computer/prototype_cloning/proc/clone_occupant(occupant) - var/mob/living/mob_occupant = get_mob_or_brainmob(occupant) - var/datum/dna/dna - if(ishuman(mob_occupant)) - var/mob/living/carbon/C = mob_occupant - dna = C.has_dna() - if(isbrain(mob_occupant)) - var/mob/living/brain/B = mob_occupant - dna = B.stored_dna - - if(!istype(dna)) - scantemp = "Unable to locate valid genetic data." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - return - if((HAS_TRAIT(mob_occupant, TRAIT_NOCLONE)) && (src.scanner.scan_level < 2)) - scantemp = "Subject no longer contains the fundamental materials required to create a living clone." - playsound(src, 'sound/machines/terminal_alert.ogg', 50, 0) - return - - var/clone_species - if(dna.species) - clone_species = dna.species - else - var/datum/species/rando_race = pick(GLOB.roundstart_races) - clone_species = rando_race.type - - var/obj/machinery/clonepod/pod = GetAvailablePod() - //Can't clone without someone to clone. Or a pod. Or if the pod is busy. Or full of gibs. - if(!LAZYLEN(pods)) - temp = "No Clonepods detected." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - else if(!pod) - temp = "No Clonepods available." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - else if(pod.occupant) - temp = "Cloning cycle already in progress." - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - else - pod.growclone(mob_occupant.real_name, dna.uni_identity, dna.mutation_index, null, null, dna.blood_type, clone_species, dna.features, mob_occupant.faction) - temp = "[mob_occupant.real_name] => Cloning data sent to pod." - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) - diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 6501a5b45e..0b23e650d7 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -2,7 +2,7 @@ /obj/item/electronics/firealarm name = "fire alarm electronics" - custom_price = 50 + custom_price = PRICE_CHEAP desc = "A fire alarm circuit. Can handle heat levels up to 40 degrees celsius." /obj/item/wallframe/firealarm @@ -17,6 +17,7 @@ desc = "\"Pull this in case of emergency\". Thus, keep pulling it forever." icon = 'icons/obj/monitors.dmi' icon_state = "fire0" + plane = ABOVE_WALL_PLANE max_integrity = 250 integrity_failure = 0.4 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 30) diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index 7bef255aff..f4f1aa0637 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -5,6 +5,7 @@ desc = "A wall-mounted flashbulb device." icon = 'icons/obj/stationobjs.dmi' icon_state = "mflash1" + plane = ABOVE_WALL_PLANE max_integrity = 250 integrity_failure = 0.4 light_color = LIGHT_COLOR_WHITE @@ -20,6 +21,7 @@ name = "portable flasher" desc = "A portable flashing device. Wrench to activate and deactivate. Cannot detect slow movements." icon_state = "pflash1-p" + plane = GAME_PLANE strength = 80 anchored = FALSE base_state = "pflash" diff --git a/code/game/machinery/harvester.dm b/code/game/machinery/harvester.dm index 244c300905..141f261688 100644 --- a/code/game/machinery/harvester.dm +++ b/code/game/machinery/harvester.dm @@ -20,6 +20,11 @@ . = ..() if(prob(1)) name = "auto-autopsy" + new_occupant_dir = dir + +/obj/machinery/harvester/setDir(newdir) + . = ..() + new_occupant_dir = dir /obj/machinery/harvester/RefreshParts() interval = 0 diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 3a79ff3c82..621e486e90 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -34,7 +34,7 @@ GLOBAL_LIST_EMPTY(network_holopads) desc = "It's a floor-mounted device for projecting holographic images." icon_state = "holopad0" layer = LOW_OBJ_LAYER - plane = FLOOR_PLANE + plane = ABOVE_WALL_PLANE flags_1 = HEAR_1 use_power = IDLE_POWER_USE idle_power_usage = 5 diff --git a/code/game/machinery/hypnochair.dm b/code/game/machinery/hypnochair.dm new file mode 100644 index 0000000000..1b57f61b79 --- /dev/null +++ b/code/game/machinery/hypnochair.dm @@ -0,0 +1,205 @@ +/obj/machinery/hypnochair + name = "enhanced interrogation chamber" + desc = "A device used to perform \"enhanced interrogation\" through invasive mental conditioning." + icon = 'icons/obj/machines/implantchair.dmi' + icon_state = "hypnochair" + circuit = /obj/item/circuitboard/machine/hypnochair + density = TRUE + opacity = 0 + ui_x = 375 + ui_y = 480 + var/mob/living/carbon/victim = null ///Keeps track of the victim to apply effects if it teleports away + var/interrogating = FALSE ///Is the device currently interrogating someone? + var/start_time = 0 ///Time when the interrogation was started, to calculate effect in case of interruption + var/trigger_phrase = "" ///Trigger phrase to implant + var/timerid = 0 ///Timer ID for interrogations + + var/message_cooldown = 0 ///Cooldown for breakout message + +/obj/machinery/hypnochair/Initialize() + . = ..() + open_machine() + update_icon() + +/obj/machinery/hypnochair/attackby(obj/item/I, mob/user, params) + if(!occupant && default_deconstruction_screwdriver(user, icon_state, icon_state, I)) + update_icon() + return + + if(default_pry_open(I)) + return + + if(default_deconstruction_crowbar(I)) + return + + return ..() + +/obj/machinery/hypnochair/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.notcontained_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "hypnochair", name, ui_x, ui_y, master_ui, state) + ui.open() + +/obj/machinery/hypnochair/ui_data() + var/list/data = list() + data["occupied"] = occupant ? TRUE : FALSE + data["open"] = state_open + data["interrogating"] = interrogating + + data["occupant"] = list() + if(occupant) + var/mob/living/mob_occupant = occupant + data["occupant"]["name"] = mob_occupant.name + data["occupant"]["stat"] = mob_occupant.stat + + data["trigger"] = trigger_phrase + + return data + +/obj/machinery/hypnochair/ui_act(action, params) + if(..()) + return + switch(action) + if("door") + if(state_open) + close_machine() + else + if(!interrogating) + open_machine() + . = TRUE + if("set_phrase") + set_phrase(params["phrase"]) + . = TRUE + if("interrogate") + if(!interrogating) + interrogate() + else + interrupt_interrogation() + . = TRUE + +/obj/machinery/hypnochair/proc/set_phrase(phrase) + trigger_phrase = phrase + +/obj/machinery/hypnochair/proc/interrogate() + if(!trigger_phrase) + playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 25, TRUE) + return + var/mob/living/carbon/C = occupant + if(!istype(C)) + playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 25, TRUE) + return + victim = C + if(!(C.get_eye_protection() > 0)) + to_chat(C, "Strobing coloured lights assault you relentlessly! You're losing your ability to think straight!") + C.become_blind("hypnochair") + ADD_TRAIT(C, TRAIT_DEAF, "hypnochair") + interrogating = TRUE + START_PROCESSING(SSobj, src) + start_time = world.time + update_icon() + timerid = addtimer(CALLBACK(src, .proc/finish_interrogation), 450, TIMER_STOPPABLE) + +/obj/machinery/hypnochair/process() + var/mob/living/carbon/C = occupant + if(!istype(C) || C != victim) + interrupt_interrogation() + return + if(prob(10) && !(C.get_eye_protection() > 0)) + to_chat(C, "[pick(\ + "...blue... red... green... blue, red, green, blueredgreenblueredgreen",\ + "...pretty colors...",\ + "...you keep hearing words, but you can't seem to understand them...",\ + "...so peaceful...",\ + "...an annoying buzz in your ears..."\ + )]") + +/obj/machinery/hypnochair/proc/finish_interrogation() + interrogating = FALSE + STOP_PROCESSING(SSobj, src) + update_icon() + var/temp_trigger = trigger_phrase + trigger_phrase = "" //Erase evidence, in case the subject is able to look at the panel afterwards + audible_message("[src] pings!") + playsound(src, 'sound/machines/ping.ogg', 30, TRUE) + + if(QDELETED(victim) || victim != occupant) + victim = null + return + victim.cure_blind("hypnochair") + REMOVE_TRAIT(victim, TRAIT_DEAF, "hypnochair") + if(!(victim.get_eye_protection() > 0)) + victim.cure_trauma_type(/datum/brain_trauma/severe/hypnotic_trigger, TRAUMA_RESILIENCE_SURGERY) + if(prob(90)) + victim.gain_trauma(new /datum/brain_trauma/severe/hypnotic_trigger(temp_trigger), TRAUMA_RESILIENCE_SURGERY) + else + victim.gain_trauma(new /datum/brain_trauma/severe/hypnotic_stupor(), TRAUMA_RESILIENCE_SURGERY) + victim = null + +/obj/machinery/hypnochair/proc/interrupt_interrogation() + deltimer(timerid) + interrogating = FALSE + STOP_PROCESSING(SSobj, src) + update_icon() + + if(QDELETED(victim)) + victim = null + return + victim.cure_blind("hypnochair") + REMOVE_TRAIT(victim, TRAIT_DEAF, "hypnochair") + if(!(victim.get_eye_protection() > 0)) + var/time_diff = world.time - start_time + switch(time_diff) + if(0 to 100) + victim.confused += 10 + victim.Dizzy(100) + victim.blur_eyes(5) + if(101 to 200) + victim.confused += 15 + victim.Dizzy(200) + victim.blur_eyes(10) + if(prob(25)) + victim.apply_status_effect(/datum/status_effect/trance, rand(50,150), FALSE) + if(201 to INFINITY) + victim.confused += 20 + victim.Dizzy(300) + victim.blur_eyes(15) + if(prob(65)) + victim.apply_status_effect(/datum/status_effect/trance, rand(50,150), FALSE) + victim = null + +/obj/machinery/hypnochair/update_icon_state() + icon_state = initial(icon_state) + if(state_open) + icon_state += "_open" + if(occupant) + if(interrogating) + icon_state += "_active" + else + icon_state += "_occupied" + +/obj/machinery/hypnochair/container_resist(mob/living/user) + user.changeNext_move(CLICK_CD_BREAKOUT) + user.last_special = world.time + CLICK_CD_BREAKOUT + user.visible_message("You see [user] kicking against the door of [src]!", \ + "You lean on the back of [src] and start pushing the door open... (this will take about [DisplayTimeText(600)].)", \ + "You hear a metallic creaking from [src].") + if(do_after(user,(600), target = src)) + if(!user || user.stat != CONSCIOUS || user.loc != src || state_open) + return + user.visible_message("[user] successfully broke out of [src]!", \ + "You successfully break out of [src]!") + open_machine() + +/obj/machinery/hypnochair/relaymove(mob/user) + if(message_cooldown <= world.time) + message_cooldown = world.time + 50 + to_chat(user, "[src]'s door won't budge!") + +/obj/machinery/hypnochair/MouseDrop_T(mob/target, mob/user) + if(user.stat || !Adjacent(user) || !user.Adjacent(target) || !isliving(target) || !user.IsAdvancedToolUser()) + return + if(isliving(user)) + var/mob/living/L = user + if(!(L.mobility_flags & MOBILITY_STAND)) + return + close_machine(target) diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index ad5df7cea0..cd9e9dc83f 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -13,7 +13,8 @@ var/obj/item/reagent_containers/beaker var/static/list/drip_containers = typecacheof(list(/obj/item/reagent_containers/blood, /obj/item/reagent_containers/food, - /obj/item/reagent_containers/glass)) + /obj/item/reagent_containers/glass, + /obj/item/reagent_containers/chem_pack)) /obj/machinery/iv_drip/Initialize(mapload) . = ..() diff --git a/code/game/machinery/lightswitch.dm b/code/game/machinery/lightswitch.dm index b2a35dcf41..421e3433ca 100644 --- a/code/game/machinery/lightswitch.dm +++ b/code/game/machinery/lightswitch.dm @@ -5,6 +5,7 @@ name = "light switch" icon = 'icons/obj/power.dmi' icon_state = "light1" + plane = ABOVE_WALL_PLANE desc = "Make dark." var/on = TRUE var/area/area = null diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index ff79038a96..1887ee46c0 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -679,7 +679,7 @@ /obj/machinery/porta_turret/syndicate/ComponentInitialize() . = ..() - AddComponent(/datum/component/empprotection, EMP_PROTECT_SELF | EMP_PROTECT_WIRES) + AddElement(/datum/element/empprotection, EMP_PROTECT_SELF | EMP_PROTECT_WIRES) /obj/machinery/porta_turret/syndicate/energy icon_state = "standard_stun" @@ -788,7 +788,7 @@ /obj/machinery/porta_turret/centcom_shuttle/ComponentInitialize() . = ..() - AddComponent(/datum/component/empprotection, EMP_PROTECT_SELF | EMP_PROTECT_WIRES) + AddElement(/datum/element/empprotection, EMP_PROTECT_SELF | EMP_PROTECT_WIRES) /obj/machinery/porta_turret/centcom_shuttle/assess_perp(mob/living/carbon/human/perp) return 0 diff --git a/code/game/machinery/porta_turret/portable_turret_cover.dm b/code/game/machinery/porta_turret/portable_turret_cover.dm index afb00d4ee2..7fdb9b38be 100644 --- a/code/game/machinery/porta_turret/portable_turret_cover.dm +++ b/code/game/machinery/porta_turret/portable_turret_cover.dm @@ -70,8 +70,8 @@ else return ..() -/obj/machinery/porta_turret_cover/attacked_by(obj/item/I, mob/user) - parent_turret.attacked_by(I, user) +/obj/machinery/porta_turret_cover/attacked_by(obj/item/I, mob/user, attackchain_flags = NONE, damage_multiplier = 1) + return parent_turret.attacked_by(I, user) /obj/machinery/porta_turret_cover/attack_alien(mob/living/carbon/alien/humanoid/user) parent_turret.attack_alien(user) diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 8545e6f35c..426c818ccb 100755 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -17,7 +17,9 @@ /obj/item/melee/baton, /obj/item/ammo_box/magazine/recharge, /obj/item/modular_computer, - /obj/item/twohanded/electrostaff, + /obj/item/ammo_casing/mws_batt, + /obj/item/ammo_box/magazine/mws_mag, + /obj/item/electrostaff, /obj/item/gun/ballistic/automatic/magrifle)) /obj/machinery/recharger/RefreshParts() @@ -143,6 +145,29 @@ using_power = TRUE update_icon() return + + if(istype(charging, /obj/item/ammo_casing/mws_batt)) + var/obj/item/ammo_casing/mws_batt/R = charging + if(R.cell.charge < R.cell.maxcharge) + R.cell.give(R.cell.chargerate * recharge_coeff) + use_power(250 * recharge_coeff) + using_power = 1 + if(R.BB == null) + R.chargeshot() + update_icon(using_power) + + if(istype(charging, /obj/item/ammo_box/magazine/mws_mag)) + var/obj/item/ammo_box/magazine/mws_mag/R = charging + for(var/B in R.stored_ammo) + var/obj/item/ammo_casing/mws_batt/batt = B + if(batt.cell.charge < batt.cell.maxcharge) + batt.cell.give(batt.cell.chargerate * recharge_coeff) + use_power(250 * recharge_coeff) + using_power = 1 + if(batt.BB == null) + batt.chargeshot() + update_icon(using_power) + else return PROCESS_KILL diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index dc9f280e48..8680aa69e6 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -100,44 +100,61 @@ eat(AM) . = ..() -/obj/machinery/recycler/proc/eat(atom/AM0, sound=TRUE) +/obj/machinery/recycler/proc/eat(atom/AM0) if(stat & (BROKEN|NOPOWER) || safety_mode) return var/list/to_eat - to_eat = AM0.GetAllContentsIgnoring(GLOB.typecache_mob) + to_eat = list(AM0) var/items_recycled = 0 + var/buzz = FALSE for(var/i in to_eat) var/atom/movable/AM = i + if(QDELETED(AM)) + continue var/obj/item/bodypart/head/as_head = AM var/obj/item/mmi/as_mmi = AM - var/brain_holder = istype(AM, /obj/item/organ/brain) || (istype(as_head) && as_head.brain) || (istype(as_mmi) && as_mmi.brain) || isbrain(AM) || istype(AM, /obj/item/dullahan_relay) + var/brain_holder = istype(AM, /obj/item/organ/brain) || (istype(as_head) && as_head.brain) || (istype(as_mmi) && as_mmi.brain) || istype(AM, /obj/item/dullahan_relay) if(brain_holder) - emergency_stop(AM) - else if(isliving(AM)) - if((obj_flags & EMAGGED)||((!allowed(AM))&&(!ishuman(AM)))) - crush_living(AM) + if(obj_flags & EMAGGED) + continue else emergency_stop(AM) + return + else if(isliving(AM)) + if((obj_flags & EMAGGED)||((!allowed(AM))&&(!ishuman(AM)))) + to_eat += crush_living(AM) + else + emergency_stop(AM) + return else if(isitem(AM)) var/obj/O = AM if(O.resistance_flags & INDESTRUCTIBLE) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 0) + buzz = TRUE O.forceMove(loc) else - recycle_item(AM) + to_eat += recycle_item(AM) items_recycled++ else - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 0) + buzz = TRUE AM.forceMove(loc) - if(items_recycled && sound) + if(items_recycled) playsound(src, item_recycle_sound, 50, 1) + if(buzz) + playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 0) /obj/machinery/recycler/proc/recycle_item(obj/item/I) + . = list() + for(var/A in I) + var/atom/movable/AM = A + AM.forceMove(loc) + if(AM.loc == loc) + . += AM + I.forceMove(loc) var/obj/item/grown/log/L = I if(istype(L)) @@ -172,6 +189,7 @@ /obj/machinery/recycler/proc/crush_living(mob/living/L) + . = list() L.forceMove(loc) if(issilicon(L)) @@ -193,7 +211,7 @@ if(eat_victim_items) for(var/obj/item/I in L.get_equipped_items(TRUE)) if(L.dropItemToGround(I)) - eat(I, sound=FALSE) + . += I // Instantly lie down, also go unconscious from the pain, before you die. L.Unconscious(100) diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 000585a4be..e1f55da551 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -9,13 +9,14 @@ GLOBAL_LIST_EMPTY(allConsoles) #define NO_NEW_MESSAGE 0 #define NORMAL_MESSAGE_PRIORITY 1 #define HIGH_MESSAGE_PRIORITY 2 -#define EXTREME_MESSAGE_PRIORITY 3 // not implemented, will probably require some hacking... everything needs to have a hidden feature in this game. +#define EXTREME_MESSAGE_PRIORITY 3 // is implimented, does require hacking. everything needs to have a hidden feature in this game. /obj/machinery/requests_console name = "requests console" desc = "A console intended to send requests to different departments on the station." icon = 'icons/obj/terminals.dmi' icon_state = "req_comp0" + plane = ABOVE_WALL_PLANE var/department = "Unknown" //The list of all departments on the station (Determined from this variable on each unit) Set this to the same thing if you want several consoles in one department var/list/messages = list() //List of all messages var/departmentType = 0 @@ -47,9 +48,9 @@ GLOBAL_LIST_EMPTY(allConsoles) var/announceAuth = FALSE //Will be set to 1 when you authenticate yourself for announcements var/msgVerified = "" //Will contain the name of the person who verified it var/msgStamped = "" //If a message is stamped, this will contain the stamp name - var/message = ""; - var/dpt = ""; //the department which will be receiving the message - var/priority = -1 ; //Priority of the message being sent + var/message = "" + var/dpt = "" //the department which will be receiving the message + var/priority = NORMAL_MESSAGE_PRIORITY //Priority of the message being sent. why is the default -1?? var/obj/item/radio/Radio var/emergency //If an emergency has been called by this device. Acts as both a cooldown and lets the responder know where it the emergency was triggered from var/receive_ore_updates = FALSE //If ore redemption machines will send an update when it receives new ores. @@ -61,16 +62,17 @@ GLOBAL_LIST_EMPTY(allConsoles) update_icon() /obj/machinery/requests_console/update_icon_state() - if(stat & NOPOWER) + if(CHECK_BITFIELD(stat, NOPOWER)) set_light(0) else - set_light(1.4,0.7,"#34D352")//green light + set_light(1.4, 0.7, "#34D352")//green light + if(open) if(!hackState) icon_state="req_comp_open" else icon_state="req_comp_rewired" - else if(stat & NOPOWER) + else if(CHECK_BITFIELD(stat, NOPOWER)) if(icon_state != "req_comp_off") icon_state = "req_comp_off" else @@ -121,7 +123,7 @@ GLOBAL_LIST_EMPTY(allConsoles) GLOB.req_console_information += department Radio = new /obj/item/radio(src) - Radio.listening = 0 + Radio.listening = FALSE /obj/machinery/requests_console/Destroy() QDEL_NULL(Radio) @@ -130,164 +132,173 @@ GLOBAL_LIST_EMPTY(allConsoles) /obj/machinery/requests_console/ui_interact(mob/user) . = ..() + if(open) //no. + return + var/dat = "" - if(!open) - switch(screen) - if(1) //req. assistance - dat += "Which department do you need assistance from?

    " - dat += "" - for(var/dpt in GLOB.req_console_assistance) - if (dpt != department) - dat += "" - dat += "" - dat += "" - dat += "" - dat += "
    [dpt]Normal High" - if(hackState) - dat += "EXTREME" - dat += "
    " - dat += "
    << Back
    " + switch(screen) + if(1) //req. assistance + dat += "Which department do you need assistance from?

    " + dat += "" + for(var/dpt in GLOB.req_console_assistance) + if(dpt == department) + continue + dat += "" + dat += "" + dat += "" + dat += "" + dat += "
    [dpt]" + dat += "Normal" + dat += "High" + if(hackState) + dat += "EXTREME" + dat += "
    " + dat += "
    << Back
    " - if(2) //req. supplies - dat += "Which department do you need supplies from?

    " - dat += "" - for(var/dpt in GLOB.req_console_supplies) - if (dpt != department) - dat += "" - dat += "" - dat += "" - dat += "" - dat += "
    [dpt]Normal High" - if(hackState) - dat += "EXTREME" - dat += "
    " - dat += "
    << Back
    " + if(2) //req. supplies + dat += "Which department do you need supplies from?

    " + dat += "" + for(var/dpt in GLOB.req_console_supplies) + if(dpt == department) + continue - if(3) //relay information - dat += "Which department would you like to send information to?

    " - dat += "
    " - for(var/dpt in GLOB.req_console_information) - if (dpt != department) - dat += "" - dat += "" - dat += "" - dat += "" - dat += "
    [dpt]Normal High" - if(hackState) - dat += "EXTREME" - dat += "
    " - dat += "
    << Back
    " + dat += "" + dat += "[dpt]" + dat += "" + dat += "Normal" + dat += "High" + if(hackState) + dat += "EXTREME" + dat += "" + dat += "" + dat += "" + dat += "
    << Back
    " - if(6) //sent successfully - dat += "Message sent.

    " - dat += "Continue
    " + if(3) //relay information + dat += "Which department would you like to send information to?

    " + dat += "" + for(var/dpt in GLOB.req_console_information) + if(dpt == department) + continue + dat += "" + dat += "" + dat += "" + dat += "" + dat += "
    [dpt]" + dat += "Normal" + dat += "High" + if(hackState) + dat += "EXTREME" + dat += "
    " + dat += "
    << Back
    " - if(7) //unsuccessful; not sent - dat += "An error occurred.

    " - dat += "Continue
    " + if(6) //sent successfully + dat += "Message sent.

    " + dat += "Continue
    " - if(8) //view messages - for (var/obj/machinery/requests_console/Console in GLOB.allConsoles) - if (Console.department == department) - Console.newmessagepriority = NO_NEW_MESSAGE - Console.update_icon() + if(7) //unsuccessful; not sent + dat += "An error occurred.

    " + dat += "Continue
    " - newmessagepriority = NO_NEW_MESSAGE - update_icon() - var/messageComposite = "" - for(var/msg in messages) // This puts more recent messages at the *top*, where they belong. - messageComposite = "
    [msg]
    " + messageComposite - dat += messageComposite - dat += "
    << Back to Main Menu
    " + if(8) //view messages + for(var/obj/machinery/requests_console/Console in GLOB.allConsoles) + if(Console.department == department) + Console.newmessagepriority = NO_NEW_MESSAGE + Console.update_icon() - if(9) //authentication before sending - dat += "Message Authentication

    " - dat += "Message for [dpt]: [message]

    " - dat += "
    You may authenticate your message now by scanning your ID or your stamp

    " - dat += "Validated by: [msgVerified ? msgVerified : "Not Validated"]
    " - dat += "Stamped by: [msgStamped ? msgStamped : "Not Stamped"]

    " - dat += "Send Message
    " - dat += "
    << Discard Message
    " + newmessagepriority = NO_NEW_MESSAGE + update_icon() + var/messageComposite = "" + for(var/msg in messages) // This puts more recent messages at the *top*, where they belong. + messageComposite = "
    [msg]
    " + messageComposite + dat += messageComposite + dat += "
    << Back to Main Menu
    " - if(10) //send announcement - dat += "

    Station-wide Announcement

    " - if(announceAuth) - dat += "
    Authentication accepted

    " - else - dat += "
    Swipe your card to authenticate yourself

    " - dat += "Message: [message ? message : "No Message"]
    " - dat += "[message ? "Edit" : "Write"] Message

    " - if ((announceAuth || IsAdminGhost(user)) && message) - dat += "Announce Message
    " - else - dat += "Announce Message
    " - dat += "
    << Back
    " + if(9) //authentication before sending + dat += "Message Authentication

    " + dat += "Message for [dpt]: [message]

    " + dat += "
    You may authenticate your message now by scanning your ID or your stamp

    " + + dat += "Validated by: [msgVerified ? "[msgVerified]" : "Not Validated"]
    " + dat += "Stamped by: [msgStamped ? "[msgStamped]" : "Not Stamped"]

    " + + dat += "Send Message

    " + dat += "<< Discard Message
    " - else //main menu - screen = 0 - announceAuth = FALSE - if (newmessagepriority == NORMAL_MESSAGE_PRIORITY) - dat += "
    There are new messages

    " - if (newmessagepriority == HIGH_MESSAGE_PRIORITY) - dat += "
    There are new PRIORITY messages

    " - if (newmessagepriority == EXTREME_MESSAGE_PRIORITY) - dat += "
    There are new EXTREME PRIORITY messages

    " - dat += "View Messages

    " + if(10) //send announcement + dat += "

    Station-wide Announcement

    " + if(announceAuth) + dat += "
    Authentication accepted

    " + else + dat += "
    Swipe your card to authenticate yourself

    " + dat += "Message: [message ? message : "No Message"]
    " + dat += "[message ? "Edit" : "Write"] Message

    " + if((announceAuth || IsAdminGhost(user)) && message) + dat += "Announce Message
    " + else + dat += "Announce Message
    " + dat += "
    << Back
    " - dat += "Request Assistance
    " - dat += "Request Supplies
    " - dat += "Relay Anonymous Information

    " + else //main menu + screen = 0 + announceAuth = FALSE + if(newmessagepriority == NORMAL_MESSAGE_PRIORITY) + dat += "
    There are new messages

    " + if(newmessagepriority == HIGH_MESSAGE_PRIORITY) + dat += "
    There are new PRIORITY messages

    " + if(newmessagepriority == EXTREME_MESSAGE_PRIORITY) + dat += "
    There are new EXTREME PRIORITY messages

    " - if(!emergency) - dat += "Emergency: Security
    " - dat += "Emergency: Engineering
    " - dat += "Emergency: Medical

    " - else - dat += "[emergency] has been dispatched to this location.

    " + dat += "View Messages

    " - if(announcementConsole) - dat += "Send Station-wide Announcement

    " - if (silent) - dat += "Speaker OFF" - else - dat += "Speaker ON" - var/datum/browser/popup = new(user, "req_console", "[department] Requests Console", 450, 440) - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) - popup.open() - return + dat += "Request Assistance
    " + dat += "Request Supplies
    " + dat += "Relay Anonymous Information

    " + + if(!emergency) + dat += "Emergency: Security
    " + dat += "Emergency: Engineering
    " + dat += "Emergency: Medical

    " + else + dat += "
    [emergency] has been dispatched to this location.


    " + + if(announcementConsole) + dat += "Send Station-wide Announcement

    " + if(silent) + dat += "Speaker OFF" + else + dat += "Speaker ON" + + var/datum/browser/popup = new(user, "req_console", "[department] Requests Console", 450, 440) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() /obj/machinery/requests_console/Topic(href, href_list) if(..()) return usr.set_machine(src) add_fingerprint(usr) - + if(href_list["write"]) dpt = ckey(reject_bad_text(href_list["write"])) //write contains the string of the receiving department's name var/new_message = stripped_input(usr, "Write your message:", "Awaiting Input", "", MAX_MESSAGE_LEN) if(new_message) message = new_message screen = 9 - if (text2num(href_list["priority"]) < 2) - priority = -1 - else - priority = text2num(href_list["priority"]) + priority = text2num(href_list["priority"]) else dpt = ""; msgVerified = "" msgStamped = "" screen = 0 - priority = -1 + priority = NORMAL_MESSAGE_PRIORITY //:salt: if(href_list["writeAnnouncement"]) var/new_message = reject_bad_text(stripped_input(usr, "Write your message:", "Awaiting Input", "", MAX_MESSAGE_LEN)) if(new_message) message = new_message - if (text2num(href_list["priority"]) < 2) - priority = -1 - else - priority = text2num(href_list["priority"]) + priority = text2num(href_list["priority"]) else message = "" announceAuth = FALSE @@ -295,106 +306,116 @@ GLOBAL_LIST_EMPTY(allConsoles) if(href_list["sendAnnouncement"]) if(!announcementConsole) + updateUsrDialog() return if(isliving(usr)) var/mob/living/L = usr message = L.treat_message(message) minor_announce(message, "[department] Announcement:") GLOB.news_network.SubmitArticle(message, department, "Station Announcements", null) - usr.log_talk(message, LOG_SAY, tag="station announcement from [src]") + usr.log_talk(message, LOG_SAY, tag = "station announcement from [src]") message_admins("[ADMIN_LOOKUPFLW(usr)] has made a station announcement from [src] at [AREACOORD(usr)].") announceAuth = FALSE message = "" screen = 0 if(href_list["emergency"]) - if(!emergency) - var/radio_freq - switch(text2num(href_list["emergency"])) - if(1) //Security - radio_freq = FREQ_SECURITY - emergency = "Security" - if(2) //Engineering - radio_freq = FREQ_ENGINEERING - emergency = "Engineering" - if(3) //Medical - radio_freq = FREQ_MEDICAL - emergency = "Medical" - if(radio_freq) - Radio.set_frequency(radio_freq) - Radio.talk_into(src,"[emergency] emergency in [department]!!",radio_freq) - update_icon() - addtimer(CALLBACK(src, .proc/clear_emergency), 3000) + if(emergency) //already has an emergency? do not continue + updateUsrDialog() + return - if( href_list["department"] && message ) - var/log_msg = message + var/radio_freq + switch(text2num(href_list["emergency"])) + if(1) //Security + radio_freq = FREQ_SECURITY + emergency = "Security" + if(2) //Engineering + radio_freq = FREQ_ENGINEERING + emergency = "Engineering" + if(3) //Medical + radio_freq = FREQ_MEDICAL + emergency = "Medical" + if(radio_freq) + Radio.set_frequency(radio_freq) + Radio.talk_into(src, "[emergency] emergency in [department]!!", radio_freq) + update_icon() + addtimer(CALLBACK(src, .proc/clear_emergency), 5 MINUTES) + + if(href_list["department"] && message) var/sending = message sending += "
    " - if (msgVerified) - sending += msgVerified - sending += "
    " - if (msgStamped) - sending += msgStamped - sending += "
    " - screen = 7 //if it's successful, this will get overrwritten (7 = unsufccessfull, 6 = successfull) - if (sending) - var/pass = FALSE - var/datum/data_rc_msg/log = new(href_list["department"], department, log_msg, msgStamped, msgVerified, priority) - for (var/obj/machinery/telecomms/message_server/MS in GLOB.telecomms_list) - if (MS.toggled) - MS.rc_msgs += log - pass = TRUE + if(msgVerified) + sending += "[msgVerified]
    " + if(msgStamped) + sending += "[msgStamped]
    " + //so you're telling me is you cheated, by making fail happen, then quickly replacing it with 6 - if(pass) - var/radio_freq = 0 - switch(href_list["department"]) - if("bridge") - radio_freq = FREQ_COMMAND - if("medbay") - radio_freq = FREQ_MEDICAL - if("science") - radio_freq = FREQ_SCIENCE - if("engineering") - radio_freq = FREQ_ENGINEERING - if("security") - radio_freq = FREQ_SECURITY - if("cargobay" || "mining") - radio_freq = FREQ_SUPPLY - Radio.set_frequency(radio_freq) - var/authentic - if(msgVerified || msgStamped) - authentic = " (Authenticated)" + var/workingServer = FALSE + var/datum/data_rc_msg/log = new(href_list["department"], department, message, msgStamped, msgVerified, priority) + for(var/obj/machinery/telecomms/message_server/MS in GLOB.telecomms_list) + if(MS.on) //on does the calculations. why would this server still work even though the apc is off?? + LAZYADD(MS.rc_msgs, log) + workingServer = TRUE - var/alert = "" - for (var/obj/machinery/requests_console/Console in GLOB.allConsoles) - if (ckey(Console.department) == ckey(href_list["department"])) - switch(priority) - if(2) //High priority - alert = "PRIORITY Alert in [department][authentic]" - Console.createmessage(src, alert, sending, 2, 1) - if(3) // Extreme Priority - alert = "EXTREME PRIORITY Alert from [department][authentic]" - Console.createmessage(src, alert , sending, 3, 1) - else // Normal priority - alert = "Message from [department][authentic]" - Console.createmessage(src, alert , sending, 1, 1) - screen = 6 + if(!workingServer) + screen = 7 + say("NOTICE: No server detected! Please contact your local engineering team.") + updateUsrDialog() + return - if(radio_freq) - Radio.talk_into(src, "[alert]: [message]", radio_freq) + var/radio_freq = 0 + switch(href_list["department"]) + if("bridge") + radio_freq = FREQ_COMMAND + if("medbay") + radio_freq = FREQ_MEDICAL + if("science") + radio_freq = FREQ_SCIENCE + if("engineering") + radio_freq = FREQ_ENGINEERING + if("security") + radio_freq = FREQ_SECURITY + if("cargobay" || "mining") + radio_freq = FREQ_SUPPLY + Radio.set_frequency(radio_freq) - switch(priority) - if(2) - messages += "High Priority
    To: [dpt]
    [sending]" - else - messages += "To: [dpt]
    [sending]" + var/authentic = "" + if(msgVerified || msgStamped) + authentic = " (Authenticated)" + + var/alert = "" + for(var/obj/machinery/requests_console/C in GLOB.allConsoles) + if(ckey(C.department) != ckey(href_list["department"])) + continue + switch(priority) + if(HIGH_MESSAGE_PRIORITY) //High priority + alert = "PRIORITY Alert from [department][authentic]" + C.createmessage(src, alert, sending, HIGH_MESSAGE_PRIORITY) + if(EXTREME_MESSAGE_PRIORITY) // Extreme Priority + alert = "EXTREME PRIORITY Alert from [department][authentic]" + C.createmessage(src, alert, sending, EXTREME_MESSAGE_PRIORITY) + else // Normal priority + alert = "Message from [department][authentic]" + C.createmessage(src, alert, sending, NORMAL_MESSAGE_PRIORITY) + screen = 6 //if it ever gets here that means (c.department == href_ls["dept"]) + + if(radio_freq) + Radio.talk_into(src, "[alert]: [message]", radio_freq) + //log to (this) + switch(priority) + if(HIGH_MESSAGE_PRIORITY) + messages += "High Priority
    To: [dpt]
    [sending]" + if(EXTREME_MESSAGE_PRIORITY) + messages += "!!!Extreme Priority!!!
    To: [dpt]
    [sending]" else - say("NOTICE: No server detected!") + messages += "To: [dpt]
    [sending]" //Handle screen switching switch(text2num(href_list["setScreen"])) if(null) //skip + updateUsrDialog() + return if(1) //req. assistance screen = 1 if(2) //req. supplies @@ -422,16 +443,14 @@ GLOBAL_LIST_EMPTY(allConsoles) msgVerified = "" msgStamped = "" message = "" - priority = -1 + priority = NORMAL_MESSAGE_PRIORITY // :salt: screen = 0 //Handle silencing the console - switch( href_list["setSilent"] ) - if(null) //skip - if("1") - silent = TRUE - else - silent = FALSE + if(href_list["setSilent"] == "1") + silent = TRUE + else + silent = FALSE updateUsrDialog() return @@ -456,31 +475,32 @@ GLOBAL_LIST_EMPTY(allConsoles) linkedsender = source capitalize(title) switch(priority) - if(2) //High priority + if(HIGH_MESSAGE_PRIORITY) //High priority if(newmessagepriority < HIGH_MESSAGE_PRIORITY) newmessagepriority = HIGH_MESSAGE_PRIORITY update_icon() if(!silent) playsound(src, 'sound/machines/twobeep.ogg', 50, 1) say(title) - messages += "High Priority
    From: [linkedsender]
    [message]" + messages += "High Priority
    From: [linkedsender]
    [message]" //the fuck is this not being sent - if(3) // Extreme Priority + if(EXTREME_MESSAGE_PRIORITY) // Extreme Priority if(newmessagepriority < EXTREME_MESSAGE_PRIORITY) newmessagepriority = EXTREME_MESSAGE_PRIORITY update_icon() - playsound(src, 'sound/machines/twobeep.ogg', 50, 1) - say(title) - messages += "!!!Extreme Priority!!!
    From: [linkedsender]
    [message]" + //we ignore the silent option because this is !!!IMPORTANT!!! + playsound(src, 'sound/machines/twobeep.ogg', 50, 1) + say(title) + messages += "!!!Extreme Priority!!!
    From: [linkedsender]
    [message]" else // Normal priority if(newmessagepriority < NORMAL_MESSAGE_PRIORITY) newmessagepriority = NORMAL_MESSAGE_PRIORITY update_icon() - if(!src.silent) + if(!silent) playsound(src, 'sound/machines/twobeep.ogg', 50, 1) say(title) - messages += "From: [linkedsender]
    [message]" + messages += "From: [linkedsender]
    [message]" /obj/machinery/requests_console/attackby(obj/item/O, mob/user, params) if(istype(O, /obj/item/crowbar)) @@ -504,23 +524,26 @@ GLOBAL_LIST_EMPTY(allConsoles) to_chat(user, "You must open the maintenance panel first!") return - var/obj/item/card/id/ID = O.GetID() - if(ID) + if(istype(O, /obj/item/card/id)) + var/obj/item/card/id/ID = O.GetID() + if(!ID) + return if(screen == 9) - msgVerified = "Verified by [ID.registered_name] ([ID.assignment])" + msgVerified = "Verified by [ID.registered_name] ([ID.assignment])" updateUsrDialog() if(screen == 10) - if (ACCESS_RC_ANNOUNCE in ID.access) + if(ACCESS_RC_ANNOUNCE in ID.access) announceAuth = TRUE else announceAuth = FALSE to_chat(user, "You are not authorized to send announcements!") updateUsrDialog() return - if (istype(O, /obj/item/stamp)) + + if(istype(O, /obj/item/stamp)) if(screen == 9) var/obj/item/stamp/T = O - msgStamped = "Stamped with the [T.name]" + msgStamped = "Stamped with the [T.name]" updateUsrDialog() return return ..() diff --git a/code/game/machinery/sheetifier.dm b/code/game/machinery/sheetifier.dm new file mode 100644 index 0000000000..7b83401194 --- /dev/null +++ b/code/game/machinery/sheetifier.dm @@ -0,0 +1,44 @@ +/obj/machinery/sheetifier + name = "Sheet-meister 2000" + desc = "A very sheety machine" + icon = 'icons/obj/machines/sheetifier.dmi' + icon_state = "base_machine" + density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = 10 + active_power_usage = 100 + circuit = /obj/item/circuitboard/machine/sheetifier + layer = BELOW_OBJ_LAYER + var/busy_processing = FALSE + +/obj/machinery/sheetifier/Initialize() + . = ..() + AddComponent(/datum/component/material_container, list(/datum/material/meat), MINERAL_MATERIAL_AMOUNT * MAX_STACK_SIZE * 2, TRUE, /obj/item/reagent_containers/food/snacks/meat/slab, CALLBACK(src, .proc/CanInsertMaterials), CALLBACK(src, .proc/AfterInsertMaterials)) + +/obj/machinery/sheetifier/update_overlays() + . = ..() + if(stat & (BROKEN|NOPOWER)) + return + var/mutable_appearance/on_overlay = mutable_appearance(icon, "buttons_on") + . += on_overlay + +/obj/machinery/sheetifier/update_icon_state() + icon_state = "base_machine[busy_processing ? "_processing" : ""]" + +/obj/machinery/sheetifier/proc/CanInsertMaterials() + return !busy_processing + +/obj/machinery/sheetifier/proc/AfterInsertMaterials(item_inserted, id_inserted, amount_inserted) + busy_processing = TRUE + update_icon() + var/datum/material/last_inserted_material = id_inserted + var/mutable_appearance/processing_overlay = mutable_appearance(icon, "processing") + processing_overlay.color = last_inserted_material.color + flick_overlay_static(processing_overlay, src, 64) + addtimer(CALLBACK(src, .proc/finish_processing), 64) + +/obj/machinery/sheetifier/proc/finish_processing() + busy_processing = FALSE + update_icon() + var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) + materials.retrieve_all() //Returns all as sheets diff --git a/code/game/machinery/shuttle/custom_shuttle.dm b/code/game/machinery/shuttle/custom_shuttle.dm new file mode 100644 index 0000000000..7c83cade69 --- /dev/null +++ b/code/game/machinery/shuttle/custom_shuttle.dm @@ -0,0 +1,33 @@ +/obj/machinery/shuttle + name = "shuttle component" + desc = "Something for shuttles." + density = TRUE + obj_integrity = 250 + max_integrity = 250 + icon = 'icons/turf/shuttle.dmi' + icon_state = "burst_plasma" + idle_power_usage = 150 + circuit = /obj/item/circuitboard/machine/shuttle/engine + var/icon_state_closed = "burst_plasma" + var/icon_state_open = "burst_plasma_open" + var/icon_state_off = "burst_plasma_off" + +/obj/machinery/shuttle/Initialize() + . = ..() + GLOB.custom_shuttle_machines += src + +/obj/machinery/shuttle/Destroy() + . = ..() + GLOB.custom_shuttle_machines -= src + +/obj/machinery/shuttle/attackby(obj/item/I, mob/living/user, params) + if(default_deconstruction_screwdriver(user, icon_state_open, icon_state_closed, I)) + return + if(default_pry_open(I)) + return + if(panel_open) + if(default_change_direction_wrench(user, I)) + return + if(default_deconstruction_crowbar(I)) + return + return ..() diff --git a/code/game/machinery/shuttle/shuttle_engine.dm b/code/game/machinery/shuttle/shuttle_engine.dm new file mode 100644 index 0000000000..1b2ce686d2 --- /dev/null +++ b/code/game/machinery/shuttle/shuttle_engine.dm @@ -0,0 +1,138 @@ +//----------------------------------------------- +//-------------Engine Thrusters------------------ +//----------------------------------------------- + +#define ENGINE_HEAT_TARGET 600 +#define ENGINE_HEATING_POWER 5000000 + +/obj/machinery/shuttle/engine + name = "shuttle thruster" + desc = "A thruster for shuttles." + density = TRUE + obj_integrity = 250 + max_integrity = 250 + icon = 'icons/turf/shuttle.dmi' + icon_state = "burst_plasma" + idle_power_usage = 150 + circuit = /obj/item/circuitboard/machine/shuttle/engine + var/thrust = 0 + var/fuel_use = 0 + var/bluespace_capable = TRUE + var/cooldown = 0 + var/thruster_active = FALSE + var/datum/weakref/attached_heater + +/obj/machinery/shuttle/engine/plasma + name = "plasma thruster" + desc = "A thruster that burns plasma stored in an adjacent plasma thruster heater." + icon_state = "burst_plasma" + icon_state_off = "burst_plasma_off" + + idle_power_usage = 0 + circuit = /obj/item/circuitboard/machine/shuttle/engine/plasma + thrust = 25 + fuel_use = 0.24 + bluespace_capable = FALSE + cooldown = 45 + +/obj/machinery/shuttle/engine/void + name = "void thruster" + desc = "A thruster using technology to breach voidspace for propulsion." + icon_state = "burst_void" + icon_state_off = "burst_void" + icon_state_closed = "burst_void" + icon_state_open = "burst_void_open" + idle_power_usage = 0 + circuit = /obj/item/circuitboard/machine/shuttle/engine/void + thrust = 400 + fuel_use = 0 + bluespace_capable = TRUE + cooldown = 90 + +/obj/machinery/shuttle/engine/Initialize() + . = ..() + check_setup() + +/obj/machinery/shuttle/engine/on_construction() + . = ..() + check_setup() + +/obj/machinery/shuttle/engine/Destroy() + attached_heater = FALSE + thruster_active = FALSE + return ..() + +/obj/machinery/shuttle/engine/proc/check_setup() + if(!anchored) + attached_heater = null + update_engine() + return + var/heater_turf + switch(dir) + if(NORTH) + heater_turf = get_offset_target_turf(src, 0, 1) + if(SOUTH) + heater_turf = get_offset_target_turf(src, 0, -1) + if(EAST) + heater_turf = get_offset_target_turf(src, 1, 0) + if(WEST) + heater_turf = get_offset_target_turf(src, -1, 0) + if(!heater_turf) + attached_heater = null + update_engine() + return + attached_heater = null + for(var/obj/machinery/atmospherics/components/unary/shuttle/heater/as_heater in heater_turf) + if(as_heater.dir != dir) + continue + if(as_heater.panel_open) + continue + if(!as_heater.anchored) + continue + attached_heater = WEAKREF(as_heater) + break + update_engine() + return + +/obj/machinery/shuttle/engine/proc/update_engine() + if(!attached_heater) + icon_state = icon_state_off + thruster_active = FALSE + return + var/obj/machinery/atmospherics/components/unary/shuttle/heater/resolved_heater = attached_heater.resolve() + if(panel_open) + thruster_active = FALSE + else if(resolved_heater?.hasFuel(1)) + icon_state = icon_state_closed + thruster_active = TRUE + else + thruster_active = FALSE + icon_state = icon_state_off + return + +/obj/machinery/shuttle/engine/void/update_engine() + if(panel_open) + thruster_active = FALSE + return + thruster_active = TRUE + icon_state = icon_state_closed + return + +//Thanks to spaceheater.dm for inspiration :) +/obj/machinery/shuttle/engine/proc/fireEngine() + var/turf/heatTurf = loc + if(!heatTurf) + return + var/datum/gas_mixture/env = heatTurf.return_air() + var/heat_cap = env.heat_capacity() + var/req_power = abs(env.return_temperature() - ENGINE_HEAT_TARGET) * heat_cap + req_power = min(req_power, ENGINE_HEATING_POWER) + var/deltaTemperature = req_power / heat_cap + if(deltaTemperature < 0) + return + env.temperature += deltaTemperature + air_update_turf() + +/obj/machinery/shuttle/engine/default_change_direction_wrench(mob/user, obj/item/I) + . = ..() + update_engine() diff --git a/code/game/machinery/shuttle/shuttle_heater.dm b/code/game/machinery/shuttle/shuttle_heater.dm new file mode 100644 index 0000000000..3c36e53b5a --- /dev/null +++ b/code/game/machinery/shuttle/shuttle_heater.dm @@ -0,0 +1,132 @@ +//----------------------------------------------- +//--------------Engine Heaters------------------- +//This uses atmospherics, much like a thermomachine, +//but instead of changing temp, it stores plasma and uses +//it for the engine. +//----------------------------------------------- +/obj/machinery/atmospherics/components/unary/shuttle + name = "shuttle atmospherics device" + desc = "This does something to do with shuttle atmospherics" + icon_state = "heater" + icon = 'icons/turf/shuttle.dmi' + +/obj/machinery/atmospherics/components/unary/shuttle/heater + name = "engine heater" + desc = "Directs energy into compressed particles in order to power an attached thruster." + icon_state = "heater_pipe" + var/icon_state_closed = "heater_pipe" + var/icon_state_open = "heater_pipe_open" + var/icon_state_off = "heater_pipe" + idle_power_usage = 50 + circuit = /obj/item/circuitboard/machine/shuttle/heater + + density = TRUE + max_integrity = 400 + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 30) + layer = OBJ_LAYER + showpipe = TRUE + + pipe_flags = PIPING_ONE_PER_TURF | PIPING_DEFAULT_LAYER_ONLY + + var/gas_type = /datum/gas/plasma + var/efficiency_multiplier = 1 + var/gas_capacity = 0 + +/obj/machinery/atmospherics/components/unary/shuttle/heater/New() + . = ..() + GLOB.custom_shuttle_machines += src + SetInitDirections() + update_adjacent_engines() + updateGasStats() + +/obj/machinery/atmospherics/components/unary/shuttle/heater/Destroy() + . = ..() + update_adjacent_engines() + GLOB.custom_shuttle_machines -= src + +/obj/machinery/atmospherics/components/unary/shuttle/heater/on_construction() + ..(dir, dir) + SetInitDirections() + update_adjacent_engines() + +/obj/machinery/atmospherics/components/unary/shuttle/heater/default_change_direction_wrench(mob/user, obj/item/I) + if(!..()) + return FALSE + SetInitDirections() + var/obj/machinery/atmospherics/node = nodes[1] + if(node) + node.disconnect(src) + nodes[1] = null + if(!parents[1]) + return + nullifyPipenet(parents[1]) + + atmosinit() + node = nodes[1] + if(node) + node.atmosinit() + node.addMember(src) + build_network() + return TRUE + +/obj/machinery/atmospherics/components/unary/shuttle/heater/RefreshParts() + var/cap = 0 + var/eff = 0 + for(var/obj/item/stock_parts/matter_bin/M in component_parts) + cap += M.rating + for(var/obj/item/stock_parts/micro_laser/L in component_parts) + eff += L.rating + gas_capacity = 5000 * ((cap - 1) ** 2) + 1000 + efficiency_multiplier = round(((eff / 2) / 2.8) ** 2, 0.1) + updateGasStats() + +/obj/machinery/atmospherics/components/unary/shuttle/heater/examine(mob/user) + . = ..() + var/datum/gas_mixture/air_contents = airs[1] + . += "The engine heater's gas dial reads [air_contents.return_volume()] liters in internal tank.
    " + +/obj/machinery/atmospherics/components/unary/shuttle/heater/proc/updateGasStats() + var/datum/gas_mixture/air_contents = airs[1] + if(!air_contents) + return + air_contents.volume = gas_capacity + air_contents.temperature = T20C + +/obj/machinery/atmospherics/components/unary/shuttle/heater/proc/hasFuel(var/required) + var/datum/gas_mixture/air_contents = airs[1] + var/moles = air_contents.total_moles() + return moles >= required + +/obj/machinery/atmospherics/components/unary/shuttle/heater/proc/consumeFuel(var/amount) + var/datum/gas_mixture/air_contents = airs[1] + air_contents.remove(amount) + return + +/obj/machinery/atmospherics/components/unary/shuttle/heater/attackby(obj/item/I, mob/living/user, params) + update_adjacent_engines() + if(default_deconstruction_screwdriver(user, icon_state_open, icon_state_closed, I)) + return + if(default_pry_open(I)) + return + if(panel_open) + if(default_change_direction_wrench(user, I)) + return + if(default_deconstruction_crowbar(I)) + return + return ..() + +/obj/machinery/atmospherics/components/unary/shuttle/heater/proc/update_adjacent_engines() + var/engine_turf + switch(dir) + if(NORTH) + engine_turf = get_offset_target_turf(src, 0, -1) + if(SOUTH) + engine_turf = get_offset_target_turf(src, 0, 1) + if(EAST) + engine_turf = get_offset_target_turf(src, -1, 0) + if(WEST) + engine_turf = get_offset_target_turf(src, 1, 0) + if(!engine_turf) + return + for(var/obj/machinery/shuttle/engine/E in engine_turf) + E.check_setup() diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index 01d236a534..ffabee1606 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -115,8 +115,8 @@ return PROCESS_KILL /obj/machinery/space_heater/RefreshParts() - var/laser = 0 - var/cap = 0 + var/laser = 2 + var/cap = 1 for(var/obj/item/stock_parts/micro_laser/M in component_parts) laser += M.rating for(var/obj/item/stock_parts/capacitor/M in component_parts) @@ -166,6 +166,11 @@ else return ..() +/obj/machinery/space_heater/wrench_act(mob/living/user, obj/item/I) + ..() + default_unfasten_wrench(user, I, 5) + return TRUE + /obj/machinery/space_heater/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ datum/tgui/master_ui = null, datum/ui_state/state = GLOB.physical_state) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm index 746c17f225..3bb67e2a1c 100644 --- a/code/game/machinery/status_display.dm +++ b/code/game/machinery/status_display.dm @@ -21,6 +21,7 @@ desc = null icon = 'icons/obj/status_display.dmi' icon_state = "frame" + plane = ABOVE_WALL_PLANE density = FALSE use_power = IDLE_POWER_USE idle_power_usage = 10 @@ -289,7 +290,7 @@ if("shuttle_id") update() -/obj/machinery/status_display/shuttle/proc/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override) +/obj/machinery/status_display/shuttle/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override) if (port && (shuttle_id == initial(shuttle_id) || override)) shuttle_id = port.id update() diff --git a/code/game/machinery/telecomms/computers/logbrowser.dm b/code/game/machinery/telecomms/computers/logbrowser.dm index f2b2c594b7..fdf6ba121c 100644 --- a/code/game/machinery/telecomms/computers/logbrowser.dm +++ b/code/game/machinery/telecomms/computers/logbrowser.dm @@ -1,215 +1,164 @@ - +/* + The log console for viewing the entire telecomms + network log +*/ /obj/machinery/computer/telecomms/server name = "telecommunications server monitoring console" icon_screen = "comm_logs" desc = "Has full access to all details and record of the telecommunications network it's monitoring." + circuit = /obj/item/circuitboard/computer/comm_server + req_access = list(ACCESS_TCOMSAT) - var/screen = 0 // the screen number: - var/list/servers = list() // the servers located by the computer - var/obj/machinery/telecomms/server/SelectedServer + var/list/machinelist = list() // the servers located by the computer + var/obj/machinery/telecomms/server/SelectedMachine = null var/network = "NULL" // the network to probe - var/temp = "" // temporary feedback messages + var/notice = "" + var/universal_translate = FALSE // set to TRUE(1) if it can translate nonhuman speech - var/universal_translate = 0 // set to 1 if it can translate nonhuman speech +/obj/machinery/computer/telecomms/server/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "tcommsserver", "Telecomms Server Monitor", 575, 400, master_ui, state) + ui.open() - req_access = list(ACCESS_TCOMSAT) - circuit = /obj/item/circuitboard/computer/comm_server +/obj/machinery/computer/telecomms/server/ui_data(mob/user) + var/list/data_out = list() + data_out["network"] = network + data_out["notice"] = notice -/obj/machinery/computer/telecomms/server/ui_interact(mob/user) - . = ..() - var/dat = "Telecommunication Server Monitor
    Telecommunications Server Monitor
    " + data_out["servers"] = list() + for(var/obj/machinery/telecomms/server/T in machinelist) + var/list/data = list( + name = T.name, + id = T.id, + ref = REF(T) + ) + data_out["servers"] += list(data) + data_out["servers"] = sortList(data_out["servers"]) //a-z sort - switch(screen) + if(!SelectedMachine) //null is bad. + data_out["selected"] = null //but in js, null is good. + return data_out + data_out["selected"] = list( + name = SelectedMachine.name, + id = SelectedMachine.id, + status = SelectedMachine.on, + traffic = SelectedMachine.totaltraffic, //note: total traffic, not traffic! + ref = REF(SelectedMachine) + ) + data_out["selected_logs"] = list() - // --- Main Menu --- + if(!LAZYLEN(SelectedMachine.log_entries)) + return data_out + + for(var/datum/comm_log_entry/C in SelectedMachine.log_entries) + var/list/data = list() + data["name"] = C.name //name of the file + data["ref"] = REF(C) + data["input_type"] = C.input_type //type of input ("Speech File" | "Execution Error"). - if(0) - dat += "
    [temp]
    " - dat += "
    Current Network: [network]
    " - if(servers.len) - dat += "
    Detected Telecommunication Servers:
      " - for(var/obj/machinery/telecomms/T in servers) - dat += "
    • [REF(T)] [T.name] ([T.id])
    • " - dat += "
    " - dat += "
    \[Flush Buffer\]" + if(C.input_type == "Speech File") //there is a reason why this is not a switch. + data["source"] = list( + name = C.parameters["name"], //name of the mob | obj + job = C.parameters["job"] //job of the mob | obj + ) + // -- Determine race of orator -- + var/mobtype = C.parameters["mobtype"] + var/race // The actual race of the mob + + if(ispath(mobtype, /mob/living/carbon/human) || ispath(mobtype, /mob/living/brain)) + race = "Humanoid" + else if(ispath(mobtype, /mob/living/simple_animal/slime)) + race = "Slime" // NT knows a lot about slimes, but not aliens. Can identify slimes + else if(ispath(mobtype, /mob/living/carbon/monkey)) + race = "Monkey" + else if(ispath(mobtype, /mob/living/silicon) || C.parameters["job"] == "AI") + race = "Artificial Life" // sometimes M gets deleted prematurely for AIs... just check the job + else if(isobj(mobtype)) + race = "Machinery" + else if(ispath(mobtype, /mob/living/simple_animal)) + race = "Domestic Animal" else - dat += "
    No servers detected. Scan for servers: \[Scan\]" + race = "Unidentifiable" + data["race"] = race + // based on [/atom/movable/proc/lang_treat] + var/message = C.parameters["message"] + var/language = C.parameters["language"] - // --- Viewing Server --- + if(universal_translate || user.has_language(language)) + message = message + else if(!user.has_language(language)) + var/datum/language/D = GLOB.language_datum_instances[language] + message = D.scramble(message) + else if(language) + message = "(unintelligible)" - if(1) - dat += "
    [temp]
    " - dat += "
    \[Main Menu\] \[Refresh\]
    " - dat += "
    Current Network: [network]" - dat += "
    Selected Server: [SelectedServer.id]" + data["message"] = message - if(SelectedServer.totaltraffic >= 1024) - dat += "
    Total recorded traffic: [round(SelectedServer.totaltraffic / 1024)] Terrabytes

    " - else - dat += "
    Total recorded traffic: [SelectedServer.totaltraffic] Gigabytes

    " + else if(C.input_type == "Execution Error") + data["message"] = C.parameters["message"] + else + data["message"] = "(unintelligible)" + + data_out["selected_logs"] += list(data) + return data_out - dat += "Stored Logs:
      " - - var/i = 0 - for(var/datum/comm_log_entry/C in SelectedServer.log_entries) - i++ - - - // If the log is a speech file - if(C.input_type == "Speech File") - dat += "
    1. [C.name] \[X\]
      " - - // -- Determine race of orator -- - - var/mobtype = C.parameters["mobtype"] - var/race // The actual race of the mob - - if(ispath(mobtype, /mob/living/carbon/human) || ispath(mobtype, /mob/living/brain)) - race = "Humanoid" - - // NT knows a lot about slimes, but not aliens. Can identify slimes - else if(ispath(mobtype, /mob/living/simple_animal/slime)) - race = "Slime" - - else if(ispath(mobtype, /mob/living/carbon/monkey)) - race = "Monkey" - - // sometimes M gets deleted prematurely for AIs... just check the job - else if(ispath(mobtype, /mob/living/silicon) || C.parameters["job"] == "AI") - race = "Artificial Life" - - else if(isobj(mobtype)) - race = "Machinery" - - else if(ispath(mobtype, /mob/living/simple_animal)) - race = "Domestic Animal" - - else - race = "Unidentifiable" - - dat += "Data type: [C.input_type]
      " - dat += "Source: [C.parameters["name"]] (Job: [C.parameters["job"]])
      " - dat += "Class: [race]
      " - var/message = C.parameters["message"] - var/language = C.parameters["language"] - - // based on [/atom/movable/proc/lang_treat] - if (universal_translate || user.has_language(language)) - message = "\"[message]\"" - else if (!user.has_language(language)) - var/datum/language/D = GLOB.language_datum_instances[language] - message = "\"[D.scramble(message)]\"" - else if (language) - message = "(unintelligible)" - - dat += "Contents: [message]
      " - dat += "

    2. " - - else if(C.input_type == "Execution Error") - dat += "
    3. [C.name] \[X\]
      " - dat += "Error: \"[C.parameters["message"]]\"
      " - dat += "

    4. " - - else - dat += "
    5. [C.name] \[X\]
      " - dat += "Data type: [C.input_type]
      " - dat += "Contents: (unintelligible)
      " - dat += "

    6. " - - - dat += "
    " - - - - user << browse(dat, "window=comm_monitor;size=575x400") - onclose(user, "server_control") - - temp = "" - return - - -/obj/machinery/computer/telecomms/server/Topic(href, href_list) +/obj/machinery/computer/telecomms/server/ui_act(action, params) if(..()) return - - - add_fingerprint(usr) - usr.set_machine(src) - - if(href_list["viewserver"]) - screen = 1 - for(var/obj/machinery/telecomms/T in servers) - if(T.id == href_list["viewserver"]) - SelectedServer = T - break - - if(href_list["operation"]) - switch(href_list["operation"]) - - if("release") - servers = list() - screen = 0 - - if("mainmenu") - screen = 0 - - if("scan") - if(servers.len > 0) - temp = "- FAILED: CANNOT PROBE WHEN BUFFER FULL -" - - else - for(var/obj/machinery/telecomms/server/T in urange(25, src)) - if(T.network == network) - servers.Add(T) - - if(!servers.len) - temp = "- FAILED: UNABLE TO LOCATE SERVERS IN \[[network]\] -" - else - temp = "- [servers.len] SERVERS PROBED & BUFFERED -" - - screen = 0 - - if(href_list["delete"]) - - if(!src.allowed(usr) && !(obj_flags & EMAGGED)) - to_chat(usr, "ACCESS DENIED.") + switch(action) + if("mainmenu") + SelectedMachine = null + notice = "" return + if("release") + machinelist = list() + notice = "" + return + if("network") //network change, flush the selected machine and buffer + var/newnet = sanitize(sanitize_text(params["value"], network)) + if(length(newnet) > 15) //i'm looking at you, you href fuckers + notice = "FAILED: Network tag string too lengthy" + return + network = newnet + SelectedMachine = null + machinelist = list() + return + if("probe") + if(LAZYLEN(machinelist) > 0) + notice = "FAILED: Cannot probe when buffer full" + return + + for(var/obj/machinery/telecomms/T in GLOB.telecomms_list) //telecomms just went global! + if(T.network == network) + LAZYADD(machinelist, T) - if(SelectedServer) + if(!LAZYLEN(machinelist)) + notice = "FAILED: Unable to locate network entities in \[[network]\]" + return + if("viewmachine") + for(var/obj/machinery/telecomms/T in machinelist) + if(T.id == params["value"]) + SelectedMachine = T + break + if("delete") + if(!src.allowed(usr) && !CHECK_BITFIELD(obj_flags, EMAGGED)) + to_chat(usr, "ACCESS DENIED.") + return - var/datum/comm_log_entry/D = SelectedServer.log_entries[text2num(href_list["delete"])] - - temp = "- DELETED ENTRY: [D.name] -" - - SelectedServer.log_entries.Remove(D) + if(!SelectedMachine) + notice = "ALERT: No server detected. Server may be nonresponsive." + return + var/datum/comm_log_entry/D = locate(params["value"]) + if(!istype(D)) + notice = "NOTICE: Object not found" + return + notice = "Deleted entry: [D.name]" + LAZYREMOVE(SelectedMachine.log_entries, D) qdel(D) - - else - temp = "- FAILED: NO SELECTED MACHINE -" - - if(href_list["network"]) - - var/newnet = stripped_input(usr, "Which network do you want to view?", "Comm Monitor", network) - - if(newnet && ((usr in range(1, src)) || hasSiliconAccessInArea(usr))) - if(length(newnet) > 15) - temp = "- FAILED: NETWORK TAG STRING TOO LENGHTLY -" - - else - - network = newnet - screen = 0 - servers = list() - temp = "- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -" - - updateUsrDialog() - return - -/obj/machinery/computer/telecomms/server/attackby() - . = ..() - updateUsrDialog() \ No newline at end of file diff --git a/code/game/machinery/telecomms/computers/message.dm b/code/game/machinery/telecomms/computers/message.dm index 5e39997872..41d417967b 100644 --- a/code/game/machinery/telecomms/computers/message.dm +++ b/code/game/machinery/telecomms/computers/message.dm @@ -3,241 +3,360 @@ Lets you read PDA and request console messages. */ -#define LINKED_SERVER_NONRESPONSIVE (!linkedServer || (linkedServer.stat & (NOPOWER|BROKEN))) - // The monitor itself. /obj/machinery/computer/message_monitor name = "message monitor console" desc = "Used to monitor the crew's PDA messages, as well as request console messages." icon_screen = "comm_logs" circuit = /obj/item/circuitboard/computer/message_monitor - //Server linked to. + + //Servers, and server linked to. + var/network = "tcommsat" // the network to probe + var/list/machinelist = list() // the servers located by the computer var/obj/machinery/telecomms/message_server/linkedServer = null + //Sparks effect - For emag var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread + //Messages - Saves me time if I want to change something. - var/noserver = "ALERT: No server detected." - var/incorrectkey = "ALERT: Incorrect decryption key!" - var/defaultmsg = "Welcome. Please select an option." - var/rebootmsg = "%$&(�: Critical %$$@ Error // !RestArting! - ?pLeaSe wAit!" + var/noserver = "ALERT: No server detected. Server may be nonresponsive." + var/incorrectkey = "ALERT: Incorrect decryption key!" + var/rebootmsg = "%$�(�:SYS&EM INTRN@L ACfES VIOL�TIa█ DEtE₡TED! Ree3ARcinG A█ BAaKUP RdST�RE PbINT \[0xcff32ca/ - PLfASE aAIT" + //Computer properties - var/screen = 0 // 0 = Main menu, 1 = Message Logs, 2 = Hacked screen, 3 = Custom Message var/hacking = FALSE // Is it being hacked into by the AI/Cyborg - var/message = "System bootup complete. Please select an option." // The message that shows on the main menu. - var/auth = FALSE // Are they authenticated? - var/optioncount = 7 + var/message = "" // The message that shows on the main menu. + var/auth = FALSE // Are they authenticated? + // Custom Message Properties - var/customsender = "System Administrator" var/obj/item/pda/customrecepient = null + var/customsender = "System Administrator" var/customjob = "Admin" var/custommessage = "This is a test, please ignore." light_color = LIGHT_COLOR_GREEN +/obj/machinery/computer/message_monitor/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE,\ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + + if(!ui) + ui = new(user, src, ui_key, "telepdalog", name, 727, 510, master_ui, state) + ui.open() + +/obj/machinery/computer/message_monitor/ui_static_data(mob/user) + var/list/data_out = list() + + if(!linkedServer || !auth) // no need building this if the usr isn't authenticated + return data_out + + data_out["recon_logs"] = list() + var/i1 = 0 + for(var/datum/data_rc_msg/rc in linkedServer.rc_msgs) + i1++ + if(i1 > 3000) + break + var/list/data = list( + sender = rc.send_dpt, + recipient = rc.rec_dpt, + message = rc.message, + stamp = rc.stamp, + auth = rc.id_auth, + priority = rc.priority, + ref = REF(rc) + ) + data_out["recon_logs"] += list(data) + + data_out["message_logs"] = list() + var/i2 = 0 + for(var/datum/data_pda_msg/pda in linkedServer.pda_msgs) + i2++ + if(i2 > 3000) + break + var/list/data = list( + sender = pda.sender, + recipient = pda.recipient, + message = pda.message, + picture = pda.picture ? TRUE : FALSE, + ref = REF(pda) + ) + data_out["message_logs"] += list(data) + + return data_out + +/obj/machinery/computer/message_monitor/ui_data(mob/user) + var/list/data_out = list() + + data_out["notice"] = message + data_out["authenticated"] = auth + data_out["network"] = network + + var/mob/living/silicon/S = user + if(istype(S) && S.hack_software) + data_out["canhack"] = TRUE + + data_out["hacking"] = (hacking || CHECK_BITFIELD(obj_flags, EMAGGED)) + if(hacking) + data_out["borg"] = ((isAI(user) || iscyborg(user)) && !CHECK_BITFIELD(obj_flags, EMAGGED)) //even borgs can't read emag + return data_out + + data_out["servers"] = list() + for(var/obj/machinery/telecomms/message_server/T in machinelist) + var/list/data = list( + name = T.name, + id = T.id, + ref = REF(T) + ) + data_out["servers"] += list(data) // This /might/ cause an oom. Too bad! + data_out["servers"] = sortList(data_out["servers"]) //a-z sort + + data_out["fake_message"] = list( + sender = customsender, + job = customjob, + message = custommessage, + recepient = (customrecepient ? "[customrecepient.owner] ([customrecepient.ownjob])" : null) + ) + + if(!linkedServer) + data_out["selected"] = null + return data_out + + data_out["selected"] = list( + name = linkedServer.name, + id = linkedServer.id, + ref = REF(linkedServer), + status = (linkedServer.on && (linkedServer.toggled != FALSE)) // returns true if server is running + ) + return data_out + +/obj/machinery/computer/message_monitor/ui_act(action, params) + if(..()) + return + switch(action) + if("mainmenu") //deselect + linkedServer = null + auth = FALSE + message = "" + return + if("release") //release server listing + machinelist = list() + message = "" + return + if("network") //network change, flush the selected machine and buffer, and de-auth them, if blank, return default + var/newnet = sanitize(sanitize_text(params["value"], network)) + if(length(newnet) > 15) //i'm looking at you, you href fuckers + message = "FAILED: Network tag string too lengthy" + return + network = newnet + linkedServer = null + machinelist = list() + auth = FALSE + message = "NOTICE: Network change detected. Server disconnected, please re-authenticate." + return + if("probe") //probe network for the pda serbs + if(LAZYLEN(machinelist) > 0) + message = "FAILED: Cannot probe when buffer full" + return + + for(var/obj/machinery/telecomms/message_server/T in GLOB.telecomms_list) + if(T.network == network) + LAZYADD(machinelist, T) + + if(!LAZYLEN(machinelist)) + message = "FAILED: Unable to locate network entities in \[[network]\]" + return + if("viewmachine") //selected but not authorized + for(var/obj/machinery/telecomms/message_server/T in machinelist) + if(T.id == params["value"]) + linkedServer = T + break + + if("auth") + if(!(linkedServer.on && (linkedServer.toggled != FALSE))) + message = noserver + return + if(auth) + auth = FALSE + update_static_data(usr) //make sure it's cleared! + return + var/dkey = stripped_input(usr, "Please enter the decryption key.") + if(dkey && dkey == "") + return + if(linkedServer.decryptkey == dkey) + auth = TRUE + else + message = incorrectkey + update_static_data(usr) + if("change_auth") + if(!auth) + message = "WARNING: Auth failed! Please log in to change the password!" + return + else if(!(linkedServer.on && (linkedServer.toggled != FALSE))) + message = noserver + return + + var/dkey = stripped_input(usr, "Please enter the old decryption key.") + if(dkey && dkey != "") + if(linkedServer.decryptkey == dkey) + var/newkey = stripped_input(usr, "Please enter the new key (3 - 20 characters max):") + if(!ISINRANGE(length(newkey), 3, 20)) + message = "NOTICE: Decryption key length too long/short!" + return + if(newkey && newkey != "") + linkedServer.decryptkey = newkey + message = "NOTICE: Decryption key set." + return + message = incorrectkey + + if("hack") + if(!(linkedServer.on && (linkedServer.toggled != FALSE))) + message = noserver + return + + var/mob/living/silicon/S = usr + if(istype(S) && S.hack_software) + hacking = TRUE + //Time it takes to bruteforce is dependant on the password length. + addtimer(CALLBACK(src, .proc/BruteForce, usr), (10 SECONDS) * length(linkedServer.decryptkey)) + + if("del_log") + if(!auth) + message = "WARNING: Auth failed! Delete aborted!" + return + else if(!(linkedServer.on && (linkedServer.toggled != FALSE))) + message = noserver + return + + var/datum/data_ref = locate(params["ref"]) + if(istype(data_ref, /datum/data_rc_msg)) + LAZYREMOVE(linkedServer.rc_msgs, data_ref) + message = "NOTICE: Log Deleted!" + else if(istype(data_ref, /datum/data_pda_msg)) + LAZYREMOVE(linkedServer.pda_msgs, data_ref) + message = "NOTICE: Log Deleted!" + else + message = "NOTICE: Log not found! It may have already been deleted" + update_static_data(usr) + + if("clear_log") + if(!auth) + message = "WARNING: Auth failed! Delete aborted!" + return + else if(!(linkedServer.on && (linkedServer.toggled != FALSE))) + message = noserver + return + + var/what = params["value"] + if(what == "pda_logs") + linkedServer.pda_msgs = list() + if(what == "rc_msgs") + linkedServer.rc_msgs = list() + update_static_data(usr) + if("fake") + if(!auth) + message = "WARNING: Auth failed!" + return + else if(!(linkedServer.on && (linkedServer.toggled != FALSE))) + message = noserver + return + + if("reset" in params) + ResetMessage() + return + if("send" in params) + if(isnull(customrecepient)) + message = "NOTICE: No recepient selected!" + return + if(length(custommessage) <= 0 || custommessage == "") + message = "NOTICE: No message entered!" + return + if(length(customjob) <= 0 || customjob == "") + customjob = "Admin" + return + if(length(customsender) <= 0 || customsender == "") + customsender = "UNKNOWN" + //sanitize text!!! + var/datum/signal/subspace/pda/signal = new(src, list( + "name" = sanitize(customsender), + "job" = sanitize(customjob), + "message" = sanitize(custommessage), + "emojis" = TRUE, + "targets" = list("[customrecepient.owner] ([customrecepient.ownjob])") + )) + // this will log the signal and transmit it to the target + linkedServer.receive_information(signal, null) + usr.log_message("(PDA: [name] | [usr.real_name]) sent \"[sanitize(custommessage)]\" to [signal.format_target()]", LOG_PDA) + message = "" + return + // Do not check if it's blank yet + // But do check if it's above our set limit (for people who manualy send hrefs at us!) + if("sender" in params) + var/S = params["sender"] + if(length(S) > MAX_NAME_LEN) + message = "FAILED: Job string too lengthy" + return + customsender = S + return + if("job" in params) + var/J = params["job"] + if(length(J) > 100) + message = "FAILED: Job string too lengthy" + return + + customjob = J + return + if("message" in params) + var/M = params["message"] + if(length(M) > MAX_MESSAGE_LEN) + message = "FAILED: Message string too lengthy" + return + custommessage = M + return + + if("recepient" in params) + // Get out list of viable PDAs + var/list/obj/item/pda/sendPDAs = get_viewable_pdas() + if(GLOB.PDAs && LAZYLEN(GLOB.PDAs) > 0) + customrecepient = input(usr, "Select a PDA from the list.") as null|anything in sortNames(sendPDAs) + else + customrecepient = null + return + if("refresh") + update_static_data(usr) + /obj/machinery/computer/message_monitor/attackby(obj/item/O, mob/living/user, params) - if(istype(O, /obj/item/screwdriver) && (obj_flags & EMAGGED)) - //Stops people from just unscrewing the monitor and putting it back to get the console working again. + if(istype(O, /obj/item/screwdriver) && CHECK_BITFIELD(obj_flags, EMAGGED)) + //Stops people from just unscrewing the monitor and putting it back to get the console working again. + //Why this though, you should make it emag to a board level. (i wont do it) to_chat(user, "It is too hot to mess with!") else return ..() /obj/machinery/computer/message_monitor/emag_act(mob/user) . = ..() - if(obj_flags & EMAGGED) + if(CHECK_BITFIELD(obj_flags, EMAGGED)) return if(isnull(linkedServer)) to_chat(user, "A no server error appears on the screen.") return - obj_flags |= EMAGGED - screen = 2 + ENABLE_BITFIELD(obj_flags, EMAGGED) spark_system.set_up(5, 0, src) spark_system.start() var/obj/item/paper/monitorkey/MK = new(loc, linkedServer) // Will help make emagging the console not so easy to get away with. MK.info += "

    �%@%(*$%&(�&?*(%&�/{}" - var/time = 100 * length(linkedServer.decryptkey) - addtimer(CALLBACK(src, .proc/UnmagConsole), time) - message = rebootmsg + addtimer(CALLBACK(src, .proc/UnmagConsole), (10 SECONDS) * length(linkedServer.decryptkey)) + //message = rebootmsg return TRUE /obj/machinery/computer/message_monitor/New() . = ..() GLOB.telecomms_list += src -/obj/machinery/computer/message_monitor/Initialize() - ..() - return INITIALIZE_HINT_LATELOAD - -/obj/machinery/computer/message_monitor/LateInitialize() - //Is the server isn't linked to a server, and there's a server available, default it to the first one in the list. - if(!linkedServer) - for(var/obj/machinery/telecomms/message_server/S in GLOB.telecomms_list) - linkedServer = S - break - /obj/machinery/computer/message_monitor/Destroy() GLOB.telecomms_list -= src . = ..() -/obj/machinery/computer/message_monitor/ui_interact(mob/living/user) - . = ..() - //If the computer is being hacked or is emagged, display the reboot message. - if(hacking || (obj_flags & EMAGGED)) - message = rebootmsg - var/dat = "
    " - - if(auth) - dat += "

    \[Authenticated\] /" - dat += " Server Power: [linkedServer && linkedServer.toggled ? "\[On\]":"\[Off\]"]

    " - else - dat += "

    \[Unauthenticated\] /" - dat += " Server Power: [linkedServer && linkedServer.toggled ? "\[On\]":"\[Off\]"]

    " - - if(hacking || (obj_flags & EMAGGED)) - screen = 2 - else if(!auth || LINKED_SERVER_NONRESPONSIVE) - if(LINKED_SERVER_NONRESPONSIVE) - message = noserver - screen = 0 - - switch(screen) - //Main menu - if(0) - // = TAB - var/i = 0 - dat += "
    [++i]. Link To A Server
    " - if(auth) - if(LINKED_SERVER_NONRESPONSIVE) - dat += "
    ERROR: Server not found!
    " - else - dat += "
    [++i]. View Message Logs
    " - dat += "
    [++i]. View Request Console Logs
    " - dat += "
    [++i]. Clear Message Logs
    " - dat += "
    [++i]. Clear Request Console Logs
    " - dat += "
    [++i]. Set Custom Key
    " - dat += "
    [++i]. Send Admin Message
    " - else - for(var/n = ++i; n <= optioncount; n++) - dat += "
    [n]. ---------------
    " - var/mob/living/silicon/S = usr - if(istype(S) && S.hack_software) - //Malf/Traitor AIs can bruteforce into the system to gain the Key. - dat += "
    *&@#. Bruteforce Key
    " - else - dat += "
    " - - //Bottom message - if(!auth) - dat += "

    Please authenticate with the server in order to show additional options." - else - dat += "

    Reg, #514 forbids sending messages to a Head of Staff containing Erotic Rendering Properties." - - //Message Logs - if(1) - var/index = 0 - dat += "
    Back - Refresh

    " - dat += "" - for(var/datum/data_pda_msg/pda in linkedServer.pda_msgs) - index++ - if(index > 3000) - break - // Del - Sender - Recepient - Message - // X - Al Green - Your Mom - WHAT UP!? - dat += "" - dat += "
    XSenderRecipientMessage
    X
    [pda.sender][pda.recipient][pda.message][pda.picture ? " (Photo)":""]
    " - //Hacking screen. - if(2) - if(isAI(user) || iscyborg(user)) - dat += "Brute-forcing for server key.
    It will take 20 seconds for every character that the password has." - dat += "In the meantime, this console can reveal your true intentions if you let someone access it. Make sure no humans enter the room during that time." - else - //It's the same message as the one above but in binary. Because robots understand binary and humans don't... well I thought it was clever. - dat += {"01000010011100100111010101110100011001010010110
    - 10110011001101111011100100110001101101001011011100110011
    - 10010000001100110011011110111001000100000011100110110010
    - 10111001001110110011001010111001000100000011010110110010
    - 10111100100101110001000000100100101110100001000000111011
    - 10110100101101100011011000010000001110100011000010110101
    - 10110010100100000001100100011000000100000011100110110010
    - 10110001101101111011011100110010001110011001000000110011
    - 00110111101110010001000000110010101110110011001010111001
    - 00111100100100000011000110110100001100001011100100110000
    - 10110001101110100011001010111001000100000011101000110100
    - 00110000101110100001000000111010001101000011001010010000
    - 00111000001100001011100110111001101110111011011110111001
    - 00110010000100000011010000110000101110011001011100010000
    - 00100100101101110001000000111010001101000011001010010000
    - 00110110101100101011000010110111001110100011010010110110
    - 10110010100101100001000000111010001101000011010010111001
    - 10010000001100011011011110110111001110011011011110110110
    - 00110010100100000011000110110000101101110001000000111001
    - 00110010101110110011001010110000101101100001000000111100
    - 10110111101110101011100100010000001110100011100100111010
    - 10110010100100000011010010110111001110100011001010110111
    - 00111010001101001011011110110111001110011001000000110100
    - 10110011000100000011110010110111101110101001000000110110
    - 00110010101110100001000000111001101101111011011010110010
    - 10110111101101110011001010010000001100001011000110110001
    - 10110010101110011011100110010000001101001011101000010111
    - 00010000001001101011000010110101101100101001000000111001
    - 10111010101110010011001010010000001101110011011110010000
    - 00110100001110101011011010110000101101110011100110010000
    - 00110010101101110011101000110010101110010001000000111010
    - 00110100001100101001000000111001001101111011011110110110
    - 10010000001100100011101010111001001101001011011100110011
    - 10010000001110100011010000110000101110100001000000111010
    - 001101001011011010110010100101110"} - - //Fake messages - if(3) - dat += "
    Back - Reset

    " - - dat += {" - - - - "} - //Sender - Sender's Job - Recepient - Message - //Al Green- Your Dad - Your Mom - WHAT UP!? - - dat += {" - - - "} - dat += "
    SenderSender's JobRecipientMessage
    [customsender][customjob][customrecepient ? customrecepient.owner : "NONE"][custommessage]

    Send" - - //Request Console Logs - if(4) - - var/index = 0 - /* data_rc_msg - X - 5% - var/rec_dpt = "Unspecified" //name of the person - 15% - var/send_dpt = "Unspecified" //name of the sender- 15% - var/message = "Blank" //transferred message - 300px - var/stamp = "Unstamped" - 15% - var/id_auth = "Unauthenticated" - 15% - var/priority = "Normal" - 10% - */ - dat += "
    Back - Refresh

    " - dat += {" - "} - for(var/datum/data_rc_msg/rc in linkedServer.rc_msgs) - index++ - if(index > 3000) - break - // Del - Sender - Recepient - Message - // X - Al Green - Your Mom - WHAT UP!? - dat += {" - "} - dat += "
    XSending Dep.Receiving Dep.MessageStampID Auth.Priority.
    X
    [rc.send_dpt][rc.rec_dpt][rc.message][rc.stamp][rc.id_auth][rc.priority]
    " - - message = defaultmsg - var/datum/browser/popup = new(user, "hologram_console", name, 700, 700) - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) - popup.open() - /obj/machinery/computer/message_monitor/proc/BruteForce(mob/user) if(isnull(linkedServer)) to_chat(user, "Could not complete brute-force: Linked Server Disconnected!") @@ -245,10 +364,11 @@ var/currentKey = linkedServer.decryptkey to_chat(user, "Brute-force completed! The key is '[currentKey]'.") hacking = FALSE - screen = 0 // Return the screen back to normal + message = "" /obj/machinery/computer/message_monitor/proc/UnmagConsole() - obj_flags &= ~EMAGGED + DISABLE_BITFIELD(obj_flags, EMAGGED) + message = "" /obj/machinery/computer/message_monitor/proc/ResetMessage() customsender = "System Administrator" @@ -256,199 +376,12 @@ custommessage = "This is a test, please ignore." customjob = "Admin" -/obj/machinery/computer/message_monitor/Topic(href, href_list) - if(..()) - return - - if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || hasSiliconAccessInArea(usr)) - //Authenticate - if (href_list["auth"]) - if(LINKED_SERVER_NONRESPONSIVE) - message = noserver - else if(auth) - auth = FALSE - screen = 0 - else - var/dkey = trim(input(usr, "Please enter the decryption key.") as text|null) - if(dkey && dkey != "") - if(linkedServer.decryptkey == dkey) - auth = TRUE - else - message = incorrectkey - - //Turn the server on/off. - if (href_list["active"]) - if(LINKED_SERVER_NONRESPONSIVE) - message = noserver - else if(auth) - linkedServer.toggled = !linkedServer.toggled - //Find a server - if (href_list["find"]) - var/list/message_servers = list() - for (var/obj/machinery/telecomms/message_server/M in GLOB.telecomms_list) - message_servers += M - - if(message_servers.len > 1) - linkedServer = input(usr, "Please select a server.", "Select a server.", null) as null|anything in message_servers - message = "NOTICE: Server selected." - else if(message_servers.len > 0) - linkedServer = message_servers[1] - message = "NOTICE: Only Single Server Detected - Server selected." - else - message = noserver - - //View the logs - KEY REQUIRED - if (href_list["view_logs"]) - if(LINKED_SERVER_NONRESPONSIVE) - message = noserver - else if(auth) - screen = 1 - - //Clears the logs - KEY REQUIRED - if (href_list["clear_logs"]) - if(LINKED_SERVER_NONRESPONSIVE) - message = noserver - else if(auth) - linkedServer.pda_msgs = list() - message = "NOTICE: Logs cleared." - //Clears the request console logs - KEY REQUIRED - if (href_list["clear_requests"]) - if(LINKED_SERVER_NONRESPONSIVE) - message = noserver - else if(auth) - linkedServer.rc_msgs = list() - message = "NOTICE: Logs cleared." - //Change the password - KEY REQUIRED - if (href_list["pass"]) - if(LINKED_SERVER_NONRESPONSIVE) - message = noserver - else if(auth) - var/dkey = stripped_input(usr, "Please enter the decryption key.") - if(dkey && dkey != "") - if(linkedServer.decryptkey == dkey) - var/newkey = trim(input(usr,"Please enter the new key (3 - 16 characters max):")) - if(length(newkey) <= 3) - message = "NOTICE: Decryption key too short!" - else if(length(newkey) > 16) - message = "NOTICE: Decryption key too long!" - else if(newkey && newkey != "") - linkedServer.decryptkey = newkey - message = "NOTICE: Decryption key set." - else - message = incorrectkey - - //Hack the Console to get the password - if (href_list["hack"]) - var/mob/living/silicon/S = usr - if(istype(S) && S.hack_software) - hacking = TRUE - screen = 2 - //Time it takes to bruteforce is dependant on the password length. - spawn(100*length(linkedServer.decryptkey)) - if(src && linkedServer && usr) - BruteForce(usr) - //Delete the log. - if (href_list["delete_logs"]) - //Are they on the view logs screen? - if(screen == 1) - if(LINKED_SERVER_NONRESPONSIVE) - message = noserver - else //if(istype(href_list["delete_logs"], /datum/data_pda_msg)) - linkedServer.pda_msgs -= locate(href_list["delete_logs"]) - message = "NOTICE: Log Deleted!" - //Delete the request console log. - if (href_list["delete_requests"]) - //Are they on the view logs screen? - if(screen == 4) - if(LINKED_SERVER_NONRESPONSIVE) - message = noserver - else //if(istype(href_list["delete_logs"], /datum/data_pda_msg)) - linkedServer.rc_msgs -= locate(href_list["delete_requests"]) - message = "NOTICE: Log Deleted!" - //Create a custom message - if (href_list["msg"]) - if(LINKED_SERVER_NONRESPONSIVE) - message = noserver - else if(auth) - screen = 3 - //Fake messaging selection - KEY REQUIRED - if (href_list["select"]) - if(LINKED_SERVER_NONRESPONSIVE) - message = noserver - screen = 0 - else - switch(href_list["select"]) - - //Reset - if("Reset") - ResetMessage() - - //Select Your Name - if("Sender") - customsender = stripped_input(usr, "Please enter the sender's name.") || customsender - - //Select Receiver - if("Recepient") - //Get out list of viable PDAs - var/list/obj/item/pda/sendPDAs = get_viewable_pdas() - if(GLOB.PDAs && GLOB.PDAs.len > 0) - customrecepient = input(usr, "Select a PDA from the list.") as null|anything in sortNames(sendPDAs) - else - customrecepient = null - - //Enter custom job - if("RecJob") - customjob = stripped_input(usr, "Please enter the sender's job.") || customjob - - //Enter message - if("Message") - custommessage = stripped_input(usr, "Please enter your message.") || custommessage - - //Send message - if("Send") - if(isnull(customsender) || customsender == "") - customsender = "UNKNOWN" - - if(isnull(customrecepient)) - message = "NOTICE: No recepient selected!" - return attack_hand(usr) - - if(isnull(custommessage) || custommessage == "") - message = "NOTICE: No message entered!" - return attack_hand(usr) - - var/datum/signal/subspace/pda/signal = new(src, list( - "name" = "[customsender]", - "job" = "[customjob]", - "message" = custommessage, - "emojis" = TRUE, - "targets" = list("[customrecepient.owner] ([customrecepient.ownjob])") - )) - // this will log the signal and transmit it to the target - linkedServer.receive_information(signal, null) - usr.log_message("(PDA: [name] | [usr.real_name]) sent \"[custommessage]\" to [signal.format_target()]", LOG_PDA) - - - //Request Console Logs - KEY REQUIRED - if(href_list["view_requests"]) - if(LINKED_SERVER_NONRESPONSIVE) - message = noserver - else if(auth) - screen = 4 - - if (href_list["back"]) - screen = 0 - - return attack_hand(usr) - -#undef LINKED_SERVER_NONRESPONSIVE - /obj/item/paper/monitorkey name = "monitor decryption key" /obj/item/paper/monitorkey/Initialize(mapload, obj/machinery/telecomms/message_server/server) ..() - if (server) + if(server) print(server) return INITIALIZE_HINT_NORMAL else @@ -460,7 +393,7 @@ add_overlay("paper_words") /obj/item/paper/monitorkey/LateInitialize() - for (var/obj/machinery/telecomms/message_server/server in GLOB.telecomms_list) - if (server.decryptkey) + for(var/obj/machinery/telecomms/message_server/server in GLOB.telecomms_list) + if(server.decryptkey) print(server) break diff --git a/code/game/machinery/telecomms/computers/telemonitor.dm b/code/game/machinery/telecomms/computers/telemonitor.dm index 23c03514ca..bca16a0de4 100644 --- a/code/game/machinery/telecomms/computers/telemonitor.dm +++ b/code/game/machinery/telecomms/computers/telemonitor.dm @@ -1,4 +1,3 @@ - /* Telecomms monitor tracks the overall trafficing of a telecommunications network and displays a heirarchy of linked machines. @@ -10,117 +9,98 @@ icon_screen = "comm_monitor" desc = "Monitors the details of the telecommunications network it's synced with." - var/screen = 0 // the screen number: var/list/machinelist = list() // the machines located by the computer - var/obj/machinery/telecomms/SelectedMachine + var/obj/machinery/telecomms/SelectedMachine = null var/network = "NULL" // the network to probe + var/notice = "" - var/temp = "" // temporary feedback messages circuit = /obj/item/circuitboard/computer/comm_monitor -/obj/machinery/computer/telecomms/monitor/ui_interact(mob/user) - . = ..() - var/dat = "Telecommunications Monitor
    Telecommunications Monitor
    " +/obj/machinery/computer/telecomms/monitor/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE,\ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) - switch(screen) + if(!ui) + ui = new(user, src, ui_key, "telemonitor", name, 575, 400, master_ui, state) + ui.open() +/obj/machinery/computer/telecomms/monitor/ui_data(mob/user) + var/list/data_out = list() + data_out["network"] = network + data_out["notice"] = notice - // --- Main Menu --- + data_out["servers"] = list() + for(var/obj/machinery/telecomms/T in machinelist) + var/list/data = list( + name = T.name, + id = T.id, + ref = REF(T) + ) + data_out["servers"] += list(data) + data_out["servers"] = sortList(data_out["servers"]) - if(0) - dat += "
    [temp]

    " - dat += "
    Current Network: [network]
    " - if(machinelist.len) - dat += "
    Detected Network Entities:
      " - for(var/obj/machinery/telecomms/T in machinelist) - dat += "
    • [REF(T)] [T.name] ([T.id])
    • " - dat += "
    " - dat += "
    \[Flush Buffer\]" - else - dat += "\[Probe Network\]" + if(!SelectedMachine) //null is bad. + data_out["selected"] = null //but in js, null is good. + return data_out + + data_out["selected"] = list( + name = SelectedMachine.name, + id = SelectedMachine.id, + status = SelectedMachine.on, + traffic = SelectedMachine.traffic, + netspeed = SelectedMachine.netspeed, + freq_listening = SelectedMachine.freq_listening, + long_range_link = SelectedMachine.long_range_link, + ref = REF(SelectedMachine) + ) + data_out["selected_servers"] = list() + for(var/obj/machinery/telecomms/T in SelectedMachine.links) + if(!T.hide) + var/list/data = list( + name = T.name, + id = T.id, + ref = REF(T) + ) + data_out["selected_servers"] += list(data) + return data_out - // --- Viewing Machine --- - - if(1) - dat += "
    [temp]
    " - dat += "
    \[Main Menu\]
    " - dat += "
    Current Network: [network]
    " - dat += "Selected Network Entity: [SelectedMachine.name] ([SelectedMachine.id])
    " - dat += "Linked Entities:
      " - for(var/obj/machinery/telecomms/T in SelectedMachine.links) - if(!T.hide) - dat += "
    1. [REF(T.id)] [T.name] ([T.id])
    2. " - dat += "
    " - - - - user << browse(dat, "window=comm_monitor;size=575x400") - onclose(user, "server_control") - - temp = "" - return - - -/obj/machinery/computer/telecomms/monitor/Topic(href, href_list) +/obj/machinery/computer/telecomms/monitor/ui_act(action, params) if(..()) return + switch(action) + if("mainmenu") + SelectedMachine = null + notice = "" + return + if("release") + machinelist = list() + notice = "" + return + if("network") //network change, flush the selected machine and buffer + var/newnet = sanitize(sanitize_text(params["value"], network)) + if(length(newnet) > 15) //i'm looking at you, you href fuckers + notice = "FAILED: Network tag string too lengthy" + return + network = newnet + SelectedMachine = null + machinelist = list() + return + if("probe") + if(LAZYLEN(machinelist) > 0) + notice = "FAILED: Cannot probe when buffer full" + return + + for(var/obj/machinery/telecomms/T in GLOB.telecomms_list) + if(T.network == network) + LAZYADD(machinelist, T) - - add_fingerprint(usr) - usr.set_machine(src) - - if(href_list["viewmachine"]) - screen = 1 - for(var/obj/machinery/telecomms/T in machinelist) - if(T.id == href_list["viewmachine"]) - SelectedMachine = T - break - - if(href_list["operation"]) - switch(href_list["operation"]) - - if("release") - machinelist = list() - screen = 0 - - if("mainmenu") - screen = 0 - - if("probe") - if(machinelist.len > 0) - temp = "- FAILED: CANNOT PROBE WHEN BUFFER FULL -" - - else - for(var/obj/machinery/telecomms/T in urange(25, src)) - if(T.network == network) - machinelist.Add(T) - - if(!machinelist.len) - temp = "- FAILED: UNABLE TO LOCATE NETWORK ENTITIES IN \[[network]\] -" - else - temp = "- [machinelist.len] ENTITIES LOCATED & BUFFERED -" - - screen = 0 - - - if(href_list["network"]) - - var/newnet = stripped_input(usr, "Which network do you want to view?", "Comm Monitor", network) - if(newnet && ((usr in range(1, src)) || hasSiliconAccessInArea(usr))) - if(length(newnet) > 15) - temp = "- FAILED: NETWORK TAG STRING TOO LENGHTLY -" - - else - network = newnet - screen = 0 - machinelist = list() - temp = "- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -" - - updateUsrDialog() - return - -/obj/machinery/computer/telecomms/monitor/attackby() - . = ..() - updateUsrDialog() \ No newline at end of file + if(!LAZYLEN(machinelist)) + notice = "FAILED: Unable to locate network entities in \[[network]\]" + return + if("viewmachine") + for(var/obj/machinery/telecomms/T in machinelist) + if(T.id == params["value"]) + SelectedMachine = T + break diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm index 4de8929b6b..6d299f4413 100644 --- a/code/game/machinery/telecomms/machine_interactions.dm +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -9,9 +9,9 @@ var/temp = "" // output message /obj/machinery/telecomms/attackby(obj/item/P, mob/user, params) - var/icon_closed = initial(icon_state) var/icon_open = "[initial(icon_state)]_o" + if(!on) icon_closed = "[initial(icon_state)]_off" icon_open = "[initial(icon_state)]_o_off" @@ -27,78 +27,240 @@ else return ..() -/obj/machinery/telecomms/ui_interact(mob/user) - . = ..() - // You need a multitool to use this, or be silicon - if(!hasSiliconAccessInArea(user)) - // istype returns false if the value is null - if(!istype(user.get_active_held_item(), /obj/item/multitool)) - return +/obj/machinery/telecomms/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE,\ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) + if(!canInteract(user)) + if(ui) + ui.close() //haha no. + return + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + + if(!ui) + ui = new(user, src, ui_key, "teleinteract", "[name] Access", 520, 500, master_ui, state) + ui.open() + +/obj/machinery/telecomms/ui_data(mob/user) + . = list() //cpypaste from the vending bus + .["notice"] = temp + .["multitool"] = FALSE var/obj/item/multitool/P = get_multitool(user) - var/dat - dat = "[name]

    [name] Access

    " - dat += "
    [temp]
    " - dat += "
    Power Status: [toggled ? "On" : "Off"]" - if(on && toggled) - if(id != "" && id) - dat += "
    Identification String: [id]" - else - dat += "
    Identification String: NULL" - dat += "
    Network: [network]" - dat += "
    Prefabrication: [autolinkers.len ? "TRUE" : "FALSE"]" - if(hide) - dat += "
    Shadow Link: ACTIVE" + if(P) + .["multitool"] = TRUE + .["multitool_buf"] = null //to clean the list! + var/obj/machinery/telecomms/T = P.buffer + if(istype(T)) + .["multitool_buf"] = list( + name = T.name, + id = T.id + ) - //Show additional options for certain machines. - dat += Options_Menu() + .["machine"] = list() + .["machine"]["power"] = toggled + .["machine"]["id"] = id + .["machine"]["network"] = network + .["machine"]["prefab"] = LAZYLEN(autolinkers) ? TRUE : FALSE + .["machine"]["hidden"] = hide - dat += "
    Linked Network Entities:
      " + .["links"] = list() + for(var/obj/machinery/telecomms/T in links) + if(T.hide && !hide) + continue + var/list/data = list( + name = T.name, + id = T.id, + ref = REF(T) + ) + .["links"] += list(data) - var/i = 0 - for(var/obj/machinery/telecomms/T in links) - i++ - if(T.hide && !hide) - continue - dat += "
    1. [REF(T)] [T.name] ([T.id]) \[X\]
    2. " - dat += "
    " + .["freq_listening"] = freq_listening - dat += "
    Filtering Frequencies: " +/obj/machinery/telecomms/relay/ui_data(mob/user) + . = ..() + .["machine"]["isrelay"] = TRUE + .["machine"]["broadcast"] = broadcasting + .["machine"]["receiving"] = receiving - i = 0 - if(length(freq_listening)) - for(var/x in freq_listening) - i++ - if(i < length(freq_listening)) - dat += "[format_frequency(x)] GHz\[X\]; " - else - dat += "[format_frequency(x)] GHz\[X\]" - else - dat += "NONE" +/obj/machinery/telecomms/bus/ui_data(mob/user) + . = ..() + .["machine"]["isbus"] = TRUE + .["machine"]["chang_frequency"] = change_frequency + .["machine"]["chang_freq_value"] = change_freq_value - dat += "
    \[Add Filter\]" - dat += "
    " - - if(P) - var/obj/machinery/telecomms/T = P.buffer - if(istype(T)) - dat += "

    MULTITOOL BUFFER: [T] ([T.id]) \[Link\] \[Flush\]" - else - dat += "

    MULTITOOL BUFFER:
    \[Add Machine\]" - - dat += "
    " +/obj/machinery/telecomms/ui_act(action, params, datum/tgui/ui) + if(!canInteract(usr)) + if(ui) + ui.close() //haha no. + return temp = "" - user << browse(dat, "window=tcommachine;size=520x500;can_resize=0") - onclose(user, "tcommachine") - return TRUE + + switch(action) + if("toggle") + toggled = !toggled + temp = "-% [src.name] has been [toggled ? "activated" : "deactivated"]. %-" + update_power() + return + if("machine") + if("id" in params) + if(!canAccess(usr)) + return + //if the text is blank, return the id it was using + var/newid = sanitize_text(reject_bad_text(params["id"]), id) // reject_bad_text can return null! + if(length(newid) > 255) + temp = "-% Too many characters in new id tag. %-" + return + temp = "-% New ID assigned: \"[newid]\". %-" + id = newid + return + if("network" in params) + if(!canAccess(usr)) + return + var/newnet = sanitize(sanitize_text(params["network"], network)) + if(length(newnet) > 15) + temp = "-% Too many characters in new network tag. %-" + return + network = newnet + links = list() + temp = "-% New network tag assigned: \"[network]\" %-" + return + if("multitool") + var/obj/item/multitool/P = get_multitool(usr) + if("Link" in params) + if(!canAccess(usr)) + return + if(!istype(P)) + temp = "-% Unable to acquire buffer %-" + return + + var/obj/machinery/telecomms/T = P.buffer + if(!istype(T) || T == src) + temp = "-% Unable to acquire buffer %-" + return + + if(!(src in T.links)) + LAZYADD(T.links, src) + + if(!(T in links)) + LAZYADD(links, T) + temp = "-% Successfully linked with [REF(T)] [T.name] %-" + + if("Flush" in params) + if(!istype(P)) + temp = "-% Unable to acquire multitool %-" + return + + temp = "-% Buffer successfully flushed. %-" + P.buffer = null + + if("Add" in params) + if(!canAccess(usr)) + return + if(!istype(P)) + temp = "-% Unable to acquire multitool %-" + return + + P.buffer = src + temp = "% Successfully stored [REF(P.buffer)] [P.buffer.name] in buffer %-" + + if("unlink") + var/obj/machinery/telecomms/T = locate(params["value"]) + if(!canAccess(usr)) + return + if(!istype(T)) + temp = "-% Unable to locate machine to unlink from, try again. %-" + return + + temp = "-% Removed [REF(T)] [T.name] from linked entities. %-" + if(T.links) //lazyrem makes blank list null, which is good but some might cause runtime ee's + T.links.Remove(src) + links.Remove(T) + if("freq") + if("add" in params) + var/newfreq = input("Specify a new frequency to filter (GHz). Decimals assigned automatically.", src.name, null) as null|num + if(!canAccess(usr) || !newfreq || isnull(newfreq)) + return + + if(findtext(num2text(newfreq), ".")) // did they not read the text? + newfreq *= 10 // shift the decimal one place + + newfreq = sanitize_frequency(newfreq, TRUE) //sanitize + if(newfreq == FREQ_SYNDICATE) + temp = "-% Error: Interference preventing filtering frequency: \"[newfreq] GHz\" %-" + return + if(newfreq in freq_listening) + temp = "-% Error: Frequency already filtered %-" + return + + LAZYADD(freq_listening, newfreq) + temp = "-% New frequency filter assigned: \"[newfreq] GHz\" %-" + + if("remove" in params) + if(!canAccess(usr)) + return + var/x = text2num(params["remove"]) + temp = "-% Removed frequency filter [x] %-" + freq_listening.Remove(x) + +/obj/machinery/telecomms/relay/ui_act(action, params) + ..() + switch(action) + if("relay") + if("broadcast" in params) + if(!canAccess(usr)) + return + broadcasting = !broadcasting + temp = "-% Broadcasting mode changed. %-" + return + if("receiving" in params) + if(!canAccess(usr)) + return + receiving = !receiving + temp = "-% Receiving mode changed. %-" + +/obj/machinery/telecomms/bus/ui_act(action, params) + ..() + switch(action) + if("frequency") + if("toggle" in params) + if(!canAccess(usr)) + return + change_frequency = !change_frequency + return + if("adjust" in params) + var/newfreq = text2num(params["adjust"]) + if(!canAccess(usr) || !newfreq) + return + // this should return true, unless the href is handcrafted + if(findtext(num2text(newfreq), ".")) + newfreq *= 10 // shift the decimal one place + + newfreq = sanitize_frequency(newfreq, TRUE) + if(newfreq == FREQ_SYNDICATE) + temp = "-% Error: Interference preventing filtering frequency: \"[newfreq] GHz\" %-" + return + + change_freq_value = newfreq + temp = "-% New frequency to change to assigned: \"[newfreq] GHz\" %-" + return + +// Check if the user can use it. +/obj/machinery/telecomms/proc/canInteract(mob/user) + if(hasSiliconAccessInArea(user) || istype(user.get_active_held_item(), /obj/item/multitool)) + return TRUE + return FALSE +// Check if the user is nearby and has a multitool. +/obj/machinery/telecomms/proc/canAccess(mob/user) + if((canInteract(user) && in_range(user, src)) || hasSiliconAccessInArea(user)) + return TRUE + return FALSE // Returns a multitool from a user depending on their mobtype. - /obj/machinery/telecomms/proc/get_multitool(mob/user) - - var/obj/item/multitool/P = null - // Let's double check - if(!hasSiliconAccessInArea(user) && istype(user.get_active_held_item(), /obj/item/multitool)) - P = user.get_active_held_item() + if(!canInteract(user)) + return null + var/obj/item/multitool/P = user.get_active_held_item() + // Is the ref not a null? and is it the actual type? + if(istype(P)) + return P else if(isAI(user)) var/mob/living/silicon/ai/U = user P = U.aiMulti @@ -106,170 +268,3 @@ if(istype(user.get_active_held_item(), /obj/item/multitool)) P = user.get_active_held_item() return P - -// Additional Options for certain machines. Use this when you want to add an option to a specific machine. -// Example of how to use below. - -/obj/machinery/telecomms/proc/Options_Menu() - return "" - -// The topic for Additional Options. Use this for checking href links for your specific option. -// Example of how to use below. -/obj/machinery/telecomms/proc/Options_Topic(href, href_list) - return - -// RELAY - -/obj/machinery/telecomms/relay/Options_Menu() - var/dat = "" - dat += "
    Broadcasting: [broadcasting ? "YES" : "NO"]" - dat += "
    Receiving: [receiving ? "YES" : "NO"]" - return dat - -/obj/machinery/telecomms/relay/Options_Topic(href, href_list) - - if(href_list["receive"]) - receiving = !receiving - temp = "-% Receiving mode changed. %-" - if(href_list["broadcast"]) - broadcasting = !broadcasting - temp = "-% Broadcasting mode changed. %-" - -// BUS - -/obj/machinery/telecomms/bus/Options_Menu() - var/dat = "
    Change Signal Frequency: [change_frequency ? "YES ([change_frequency])" : "NO"]" - return dat - -/obj/machinery/telecomms/bus/Options_Topic(href, href_list) - - if(href_list["change_freq"]) - - var/newfreq = input(usr, "Specify a new frequency for new signals to change to. Enter null to turn off frequency changing. Decimals assigned automatically.", src, network) as null|num - if(canAccess(usr)) - if(newfreq) - if(findtext(num2text(newfreq), ".")) - newfreq *= 10 // shift the decimal one place - if(newfreq < 10000) - change_frequency = newfreq - temp = "-% New frequency to change to assigned: \"[newfreq] GHz\" %-" - else - change_frequency = 0 - temp = "-% Frequency changing deactivated %-" - - -/obj/machinery/telecomms/Topic(href, href_list) - if(..()) - return - - if(!hasSiliconAccessInArea(usr)) - if(!istype(usr.get_active_held_item(), /obj/item/multitool)) - return - - var/obj/item/multitool/P = get_multitool(usr) - - if(href_list["input"]) - switch(href_list["input"]) - - if("toggle") - - toggled = !toggled - temp = "-% [src] has been [toggled ? "activated" : "deactivated"]." - update_power() - - - if("id") - var/newid = reject_bad_text(stripped_input(usr, "Specify the new ID for this machine", src, id, MAX_MESSAGE_LEN)) - if(newid && canAccess(usr)) - id = newid - temp = "-% New ID assigned: \"[id]\" %-" - - if("network") - var/newnet = stripped_input(usr, "Specify the new network for this machine. This will break all current links.", src, network) - if(newnet && canAccess(usr)) - - if(length(newnet) > 15) - temp = "-% Too many characters in new network tag %-" - - else - for(var/obj/machinery/telecomms/T in links) - T.links.Remove(src) - - network = newnet - links = list() - temp = "-% New network tag assigned: \"[network]\" %-" - - - if("freq") - var/newfreq = input(usr, "Specify a new frequency to filter (GHz). Decimals assigned automatically.", src, network) as null|num - if(newfreq && canAccess(usr)) - if(findtext(num2text(newfreq), ".")) - newfreq *= 10 // shift the decimal one place - if(newfreq == FREQ_SYNDICATE) - temp = "-% Error: Interference preventing filtering frequency: \"[newfreq] GHz\" %-" - else - if(!(newfreq in freq_listening) && newfreq < 10000) - freq_listening.Add(newfreq) - temp = "-% New frequency filter assigned: \"[newfreq] GHz\" %-" - - if(href_list["delete"]) - - // changed the layout about to workaround a pesky runtime -- Doohl - - var/x = text2num(href_list["delete"]) - temp = "-% Removed frequency filter [x] %-" - freq_listening.Remove(x) - - if(href_list["unlink"]) - - if(text2num(href_list["unlink"]) <= length(links)) - var/obj/machinery/telecomms/T = links[text2num(href_list["unlink"])] - if(T) - temp = "-% Removed [REF(T)] [T.name] from linked entities. %-" - - // Remove link entries from both T and src. - - if(T.links) - T.links.Remove(src) - links.Remove(T) - - else - temp = "-% Unable to locate machine to unlink from, try again. %-" - - if(href_list["link"]) - - if(P) - var/obj/machinery/telecomms/T = P.buffer - if(istype(T) && T != src) - if(!(src in T.links)) - T.links += src - - if(!(T in links)) - links += T - - temp = "-% Successfully linked with [REF(T)] [T.name] %-" - - else - temp = "-% Unable to acquire buffer %-" - - if(href_list["buffer"]) - - P.buffer = src - temp = "-% Successfully stored [REF(P.buffer)] [P.buffer.name] in buffer %-" - - - if(href_list["flush"]) - - temp = "-% Buffer successfully flushed. %-" - P.buffer = null - - Options_Topic(href, href_list) - - usr.set_machine(src) - - updateUsrDialog() - -/obj/machinery/telecomms/proc/canAccess(mob/user) - if(hasSiliconAccessInArea(user) || in_range(user, src)) - return TRUE - return FALSE diff --git a/code/game/machinery/telecomms/machines/bus.dm b/code/game/machinery/telecomms/machines/bus.dm index 4732c5bddd..bf3dfe8f7e 100644 --- a/code/game/machinery/telecomms/machines/bus.dm +++ b/code/game/machinery/telecomms/machines/bus.dm @@ -17,7 +17,8 @@ idle_power_usage = 50 netspeed = 40 circuit = /obj/item/circuitboard/machine/telecomms/bus - var/change_frequency = 0 + var/change_frequency = FALSE + var/change_freq_value = 0 /obj/machinery/telecomms/bus/RefreshParts() idle_power_usage = 50 @@ -28,8 +29,8 @@ if(!istype(signal) || !is_freq_listening(signal)) return - if(change_frequency && signal.frequency != FREQ_SYNDICATE) - signal.frequency = change_frequency + if(change_frequency && (change_freq_value && signal.frequency != FREQ_SYNDICATE)) + signal.frequency = change_freq_value if(!istype(machine_from, /obj/machinery/telecomms/processor) && machine_from != src) // Signal must be ready (stupid assuming machine), let's send it // send to one linked processor unit diff --git a/code/game/machinery/telecomms/machines/message_server.dm b/code/game/machinery/telecomms/machines/message_server.dm index ed39bb0578..7f8872ca74 100644 --- a/code/game/machinery/telecomms/machines/message_server.dm +++ b/code/game/machinery/telecomms/machines/message_server.dm @@ -140,11 +140,16 @@ ..() if(href_list["photo"]) var/mob/M = usr - M << browse_rsc(picture.picture_image, "pda_photo.png") - M << browse("PDA Photo" \ - + "" \ - + "" \ - + "", "window=pdaphoto;size=[picture.psize_x]x[picture.psize_y];can-close=true") + + M << browse_rsc(picture.picture_image, "pda_photo.png") + + var/dat = "
    " + dat += "" + dat += "
    " + + var/datum/browser/popup = new(M, "pdaphoto", "PDA Photo", picture.psize_x, picture.psize_y) + popup.set_content(dat) + popup.open() onclose(M, "pdaphoto") /datum/data_rc_msg diff --git a/code/game/machinery/telecomms/machines/server.dm b/code/game/machinery/telecomms/machines/server.dm index ad4599b4c3..6f80cfbf0e 100644 --- a/code/game/machinery/telecomms/machines/server.dm +++ b/code/game/machinery/telecomms/machines/server.dm @@ -33,7 +33,7 @@ totaltraffic += traffic // add current traffic to total traffic // Delete particularly old logs - if (log_entries.len >= 400) + if(LAZYLEN(log_entries) >= 400) //[list].len is not safe log_entries.Cut(1, 2) var/datum/comm_log_entry/log = new diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index d21edffea1..e1b345f507 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -117,9 +117,9 @@ GLOBAL_LIST_EMPTY(telecomms_list) icon_state = "[initial(icon_state)]_off" /obj/machinery/telecomms/proc/update_power() - if(toggled) - if(stat & (BROKEN|NOPOWER|EMPED)) // if powered, on. if not powered, off. if too damaged, off + // if powered, on. if not powered, off. if too damaged, off + if(CHECK_BITFIELD(stat, (BROKEN | NOPOWER | EMPED))) on = FALSE else on = TRUE @@ -137,11 +137,11 @@ GLOBAL_LIST_EMPTY(telecomms_list) /obj/machinery/telecomms/emp_act(severity) . = ..() - if(. & EMP_PROTECT_SELF) + if(CHECK_BITFIELD(., EMP_PROTECT_SELF)) return - if(prob(100/severity)) - if(!(stat & EMPED)) - stat |= EMPED - var/duration = (300 * 10)/severity + if(prob(100 / severity)) + if(!CHECK_BITFIELD(stat, EMPED)) + ENABLE_BITFIELD(stat, EMPED) + var/duration = (300 * 10) / severity spawn(rand(duration - 20, duration + 20)) // Takes a long time for the machines to reboot. - stat &= ~EMPED + DISABLE_BITFIELD(stat, EMPED) diff --git a/code/game/machinery/wishgranter.dm b/code/game/machinery/wishgranter.dm index f618888d98..dcd86c9f24 100644 --- a/code/game/machinery/wishgranter.dm +++ b/code/game/machinery/wishgranter.dm @@ -11,9 +11,6 @@ var/insisting = 0 /obj/machinery/wish_granter/attack_hand(mob/living/carbon/user) - . = ..() - if(.) - return if(charges <= 0) to_chat(user, "The Wish Granter lies silent.") return @@ -22,22 +19,116 @@ to_chat(user, "You feel a dark stirring inside of the Wish Granter, something you want nothing of. Your instincts are better than any man's.") return - else if(is_special_character(user)) - to_chat(user, "Even to a heart as dark as yours, you know nothing good will come of this. Something instinctual makes you pull away.") - else if (!insisting) to_chat(user, "Your first touch makes the Wish Granter stir, listening to you. Are you really sure you want to do this?") insisting++ else - to_chat(user, "You speak. [pick("I want the station to disappear","Humanity is corrupt, mankind must be destroyed","I want to be rich", "I want to rule the world","I want immortality.")]. The Wish Granter answers.") - to_chat(user, "Your head pounds for a moment, before your vision clears. You are the avatar of the Wish Granter, and your power is LIMITLESS! And it's all yours. You need to make sure no one can take it from you. No one can know, first.") + if(is_special_character(user)) + to_chat(user, "You speak. [pick("I want power","Humanity is corrupt, mankind must be destroyed", "I want to rule the world","I want immortality")]. The Wish Granter answers.") + to_chat(user, "Your head pounds for a moment, before your vision clears. The Wish Granter, sensing the darkness in your heart, has given you limitless power, and it's all yours!") + user.dna.add_mutation(HULK) + user.dna.add_mutation(XRAY) + user.dna.add_mutation(SPACEMUT) + user.dna.add_mutation(TK) + user.next_move_modifier *= 0.5 //half the delay between attacks! + to_chat(user, "Things around you feel slower!") + charges-- + insisting = FALSE + to_chat(user, "You have a very great feeling about this!") + else + to_chat(user, "The Wish Granter awaits your wish.") + var/wish = input("You want...","Wish") as null|anything in list("Power","Wealth","The Station To Disappear","To Kill","Nothing") + switch(wish) + if("Power") //Gives infinite power in exchange for infinite power going off in your face! + if(charges <= 0) + return + to_chat(user, "Your wish is granted, but at a terrible cost...") + to_chat(user, "The Wish Granter punishes you for your selfishness, warping itself into a delaminating supermatter shard!") + var/obj/item/stock_parts/cell/infinite/powah = new /obj/item/stock_parts/cell/infinite(get_turf(user)) + if(user.put_in_hands(powah)) + to_chat(user, "[powah] materializes into your hands!") + else + to_chat(user, "[powah] materializes onto the floor.") + var/obj/machinery/power/supermatter_crystal/powerwish = new /obj/machinery/power/supermatter_crystal(loc) + powerwish.damage = 700 //right at the emergency threshold + powerwish.produces_gas = FALSE + charges-- + insisting = FALSE + if(!charges) + qdel(src) + if("Wealth") //Gives 1 million space bucks in exchange for being turned into gold! + if(charges <= 0) + return + to_chat(user, "Your wish is granted, but at a cost...") + to_chat(user, "The Wish Granter punishes you for your selfishness, warping your body to match the greed in your heart.") + new /obj/structure/closet/crate/trashcart/moneywish(loc) + new /obj/structure/closet/crate/trashcart/moneywish(loc) + user.set_species(/datum/species/golem/gold) + charges-- + insisting = FALSE + if(!charges) + qdel(src) + if("The Station To Disappear") //teleports you to the station and makes you blind, making the station disappear for you! + if(charges <= 0) + return + to_chat(user, "Your wish is 'granted', but at a terrible cost...") + to_chat(user, "The Wish Granter punishes you for your selfishness, claiming your soul and warping your eyes to match the darkness in your heart.") + user.dna.add_mutation(BLINDMUT) + var/obj/item/organ/eyes/eyes = user.getorganslot(ORGAN_SLOT_EYES) + if(eyes) + eyes.applyOrganDamage(eyes.maxHealth) + var/list/destinations = list() + for(var/obj/item/beacon/B in GLOB.teleportbeacons) + var/turf/T = get_turf(B) + if(is_station_level(T.z)) + destinations += B + var/chosen_beacon = pick(destinations) + var/obj/effect/portal/jaunt_tunnel/J = new (get_turf(src), src, 100, null, FALSE, get_turf(chosen_beacon)) + try_move_adjacent(J) + playsound(src,'sound/effects/sparks4.ogg',50,1) + charges-- + insisting = FALSE + if(!charges) + qdel(src) + if("To Kill") //Makes you kill things in exchange for rewards! + if(charges <= 0) + return + to_chat(user, "Your wish is granted, but at a terrible cost...") + to_chat(user, "The Wish Granter punishes you for your wickedness, warping itself into a dastardly creature for you to kill! ...but it almost seems to reward you for this.") + var/obj/item/melee/transforming/energy/sword/cx/killreward = new /obj/item/melee/transforming/energy/sword/cx(get_turf(user)) + if(user.put_in_hands(killreward)) + to_chat(user, "[killreward] materializes into your hands!") + else + to_chat(user, "[killreward] materializes onto the floor.") + user.next_move_modifier *= 0.8 //20% less delay between attacks! + to_chat(user, "Things around you feel slightly slower!") + var/mob/living/simple_animal/hostile/venus_human_trap/killwish = new /mob/living/simple_animal/hostile/venus_human_trap(loc) + killwish.maxHealth = 1500 + killwish.health = killwish.maxHealth + killwish.vine_grab_distance = 6 + killwish.melee_damage_upper = 30 + killwish.loot = list(/obj/item/dualsaber/hypereutactic) + charges-- + insisting = FALSE + if(!charges) + qdel(src) + if("Nothing") //Makes the wish granter disappear + if(charges <= 0) + return + to_chat(user, "The Wish Granter vanishes from sight!") + to_chat(user, "You feel as if you just narrowly avoided a terrible fate...") + charges-- + insisting = FALSE + qdel(src) - charges-- - insisting = 0 +//ITEMS THAT IT USES - user.mind.add_antag_datum(/datum/antagonist/wishgranter) +/obj/structure/closet/crate/trashcart/moneywish + desc = "A heavy, metal trashcart with wheels. Filled with cash." + name = "loaded trash cart" - to_chat(user, "You have a very bad feeling about this.") - - return +/obj/structure/closet/crate/trashcart/moneywish/PopulateContents() //25*20*1000=500,000 + for(var/i in 1 to 25) + var/obj/item/stack/spacecash/c1000/lodsamoney = new /obj/item/stack/spacecash/c1000(src) + lodsamoney.amount = lodsamoney.max_amount diff --git a/code/game/mecha/combat/neovgre.dm b/code/game/mecha/combat/neovgre.dm index c678912a21..fdcc4df151 100644 --- a/code/game/mecha/combat/neovgre.dm +++ b/code/game/mecha/combat/neovgre.dm @@ -62,18 +62,21 @@ /obj/mecha/combat/neovgre/process() ..() - if(GLOB.ratvar_awakens) // At this point only timley intervention by lord singulo could hople to stop the superweapon + if(GLOB.ratvar_awakens) // At this point only timley intervention by lord singulo could hope to stop the superweapon cell.charge = INFINITY max_integrity = INFINITY obj_integrity = max_integrity CHECK_TICK //Just to be on the safe side lag wise - else if(cell.charge < cell.maxcharge) - for(var/obj/effect/clockwork/sigil/transmission/T in range(SIGIL_ACCESS_RANGE, src)) - var/delta = min(recharge_rate, cell.maxcharge - cell.charge) - if (get_clockwork_power() <= delta) - cell.charge += delta - adjust_clockwork_power(-delta) - CHECK_TICK + else + if(cell.charge < cell.maxcharge) + for(var/obj/effect/clockwork/sigil/transmission/T in range(SIGIL_ACCESS_RANGE, src)) + var/delta = min(recharge_rate, cell.maxcharge - cell.charge) + if (get_clockwork_power() >= delta) + cell.charge += delta + adjust_clockwork_power(-delta) + if(obj_integrity < max_integrity && istype(loc, /turf/open/floor/clockwork)) + obj_integrity += min(max_integrity - obj_integrity, max_integrity / 200) + CHECK_TICK /obj/mecha/combat/neovgre/Initialize() .=..() @@ -90,7 +93,7 @@ energy_drain = 30 name = "Aribter Laser Cannon" desc = "Please re-attach this to neovgre and stop asking questions about why it looks like a normal Nanotrasen issue Solaris laser cannon - Nezbere" - fire_sound = "sound/weapons/neovgre_laser.ogg" + fire_sound = 'sound/weapons/neovgre_laser.ogg' /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy/neovgre/can_attach(obj/mecha/combat/neovgre/M) if(istype(M)) diff --git a/code/game/mecha/equipment/tools/other_tools.dm b/code/game/mecha/equipment/tools/other_tools.dm index f5a8965716..8039aabd1f 100644 --- a/code/game/mecha/equipment/tools/other_tools.dm +++ b/code/game/mecha/equipment/tools/other_tools.dm @@ -388,7 +388,7 @@ /obj/item/mecha_parts/mecha_equipment/generator/get_equip_info() var/output = ..() if(output) - return "[output] \[[fuel]: [round(fuel.amount*fuel.mats_per_stack,0.1)] cm3\] - [equip_ready?"A":"Dea"]ctivate" + return "[output] \[[fuel]: [round(fuel.amount*MINERAL_MATERIAL_AMOUNT,0.1)] cm3\] - [equip_ready?"A":"Dea"]ctivate" /obj/item/mecha_parts/mecha_equipment/generator/action(target) if(chassis) @@ -398,9 +398,9 @@ /obj/item/mecha_parts/mecha_equipment/generator/proc/load_fuel(var/obj/item/stack/sheet/P) if(P.type == fuel.type && P.amount > 0) - var/to_load = max(max_fuel - fuel.amount*fuel.mats_per_stack,0) + var/to_load = max(max_fuel - fuel.amount*MINERAL_MATERIAL_AMOUNT,0) if(to_load) - var/units = min(max(round(to_load / P.mats_per_stack),1),P.amount) + var/units = min(max(round(to_load / MINERAL_MATERIAL_AMOUNT),1),P.amount) fuel.amount += units P.use(units) occupant_message("[units] unit\s of [fuel] successfully loaded.") @@ -454,7 +454,7 @@ if(cur_charge < chassis.cell.maxcharge) use_fuel = fuel_per_cycle_active chassis.give_power(power_per_cycle) - fuel.amount -= min(use_fuel/fuel.mats_per_stack,fuel.amount) + fuel.amount -= min(use_fuel/MINERAL_MATERIAL_AMOUNT,fuel.amount) update_equip_info() return 1 diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 93228c7fee..ca481f0d80 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -26,6 +26,7 @@ "Firefighter", "Odysseus", "Gygax", + "Medical-Spec Gygax", "Durand", "H.O.N.K", "Phazon", diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index e71276d1b1..d2340a15ea 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -23,11 +23,11 @@ layer = BELOW_MOB_LAYER//icon draw layer infra_luminosity = 15 //byond implementation is bugged. force = 5 - flags_1 = HEAR_1 + flags_1 = HEAR_1|BLOCK_FACE_ATOM_1 var/can_move = 0 //time of next allowed movement - var/mob/living/carbon/occupant = null + var/mob/living/occupant = null var/step_in = 10 //make a step in step_in/10 sec. - var/dir_in = 2//What direction will the mech face when entered/powered on? Defaults to South. + var/dir_in = SOUTH //What direction will the mech face when entered/powered on? Defaults to South. var/normal_step_energy_drain = 10 //How much energy the mech will consume each time it moves. This variable is a backup for when leg actuators affect the energy drain. var/step_energy_drain = 10 var/melee_energy_drain = 15 @@ -495,6 +495,10 @@ occupant_message("Air port connection teared off!") mecha_log_message("Lost connection to gas port.") +/obj/mecha/setDir(newdir) + . = ..() + occupant?.setDir(newdir) + /obj/mecha/Process_Spacemove(var/movement_dir = 0) . = ..() if(.) diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index 19b6d0a9bd..34cb57f661 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -5,44 +5,42 @@ var/base_icon var/looky_helpy = TRUE -/datum/component/construction/mecha/examine(mob/user) +/datum/component/construction/mecha/examine(datum/source, mob/user, list/examine_list) . = ..() if(looky_helpy) switch(steps[index]["key"]) if(TOOL_WRENCH) - . += "The mech could be wrenched into place." + examine_list += "The mech could be wrenched into place." if(TOOL_SCREWDRIVER) - . += "The mech could be screwed into place." + examine_list += "The mech could be screwed into place." if(TOOL_WIRECUTTER) - . += "The mech wires could be trimmed into place." + examine_list += "The mech wires could be trimmed into place." if(/obj/item/stack/cable_coil) - . += "The mech could use some wiring." + examine_list += "The mech could use some wiring." if(/obj/item/circuitboard) - . += "The mech could use a type ofcircuitboard." + examine_list += "The mech could use a type ofcircuitboard." if(/obj/item/stock_parts/scanning_module) - . += "The mech could use a scanning stock part." + examine_list += "The mech could use a scanning stock part." if(/obj/item/stock_parts/capacitor) - . += "The mech could use a power based stock part." + examine_list += "The mech could use a power based stock part." if(/obj/item/stock_parts/cell) - . += "The mech could use a power source." + examine_list += "The mech could use a power source." if(/obj/item/stack/sheet/metal) - . += "The mech could use some sheets of metal." + examine_list += "The mech could use some sheets of metal." if(/obj/item/stack/sheet/plasteel) - . += "The mech could use some sheets of strong steel." + examine_list += "The mech could use some sheets of strong steel." if(/obj/item/bikehorn) - . += "HONK IT!." + examine_list += "HONK IT!." if(/obj/item/clothing/mask/gas/clown_hat) - . += "GIVE IT CLOWN MAKEUP HONK!." + examine_list += "GIVE IT CLOWN MAKEUP HONK!." if(/obj/item/clothing/shoes/clown_shoes) - . += "GIVE IT GOOFY SHOES HONK HONK!." + examine_list += "GIVE IT GOOFY SHOES HONK HONK!." if(/obj/item/mecha_parts/part) - . += "The mech could use a mech part." + examine_list += "The mech could use a mech part." if(/obj/item/stack/ore/bluespace_crystal) - . += "The mech could use a crystal of sorts." + examine_list += "The mech could use a crystal of sorts." if(/obj/item/assembly/signaler/anomaly) - . += "The mech could use a anomaly of sorts." - else - return + examine_list += "The mech could use a anomaly of sorts." /datum/component/construction/mecha/spawn_result() if(!result) @@ -644,6 +642,304 @@ user.visible_message("[user] unfastens Gygax Armor Plates.", "You unfasten Gygax Armor Plates.") return TRUE +//Begin Medigax +/datum/component/construction/unordered/mecha_chassis/medigax + result = /datum/component/construction/mecha/medigax + steps = list( + /obj/item/mecha_parts/part/medigax_torso, + /obj/item/mecha_parts/part/medigax_left_arm, + /obj/item/mecha_parts/part/medigax_right_arm, + /obj/item/mecha_parts/part/medigax_left_leg, + /obj/item/mecha_parts/part/medigax_right_leg, + /obj/item/mecha_parts/part/medigax_head + ) + +/datum/component/construction/mecha/medigax + result = /obj/mecha/medical/medigax + base_icon = "medigax" + steps = list( + //1 + list( + "key" = TOOL_WRENCH, + "desc" = "The hydraulic systems are disconnected." + ), + + //2 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_WRENCH, + "desc" = "The hydraulic systems are connected." + ), + + //3 + list( + "key" = /obj/item/stack/cable_coil, + "amount" = 5, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "The hydraulic systems are active." + ), + + //4 + list( + "key" = TOOL_WIRECUTTER, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "The wiring is added." + ), + + //5 + list( + "key" = /obj/item/circuitboard/mecha/gygax/main, + "action" = ITEM_DELETE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "The wiring is adjusted." + ), + + //6 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "Central control module is installed." + ), + + //7 + list( + "key" = /obj/item/circuitboard/mecha/gygax/peripherals, + "action" = ITEM_DELETE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "Central control module is secured." + ), + + //8 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "Peripherals control module is installed." + ), + + //9 + list( + "key" = /obj/item/circuitboard/mecha/gygax/targeting, + "action" = ITEM_DELETE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "Peripherals control module is secured." + ), + + //10 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "Weapon control module is installed." + ), + + //11 + list( + "key" = /obj/item/stock_parts/scanning_module, + "action" = ITEM_MOVE_INSIDE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "Weapon control module is secured." + ), + + //12 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "Scanner module is installed." + ), + + //13 + list( + "key" = /obj/item/stock_parts/capacitor, + "action" = ITEM_MOVE_INSIDE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "Scanner module is secured." + ), + + //14 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "Capacitor is installed." + ), + + //15 + list( + "key" = /obj/item/stock_parts/cell, + "action" = ITEM_MOVE_INSIDE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "Capacitor is secured." + ), + + //16 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "The power cell is installed." + ), + + //17 + list( + "key" = /obj/item/stack/sheet/metal, + "amount" = 5, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "The power cell is secured." + ), + + //18 + list( + "key" = TOOL_WRENCH, + "back_key" = TOOL_CROWBAR, + "desc" = "Internal armor is installed." + ), + + //19 + list( + "key" = TOOL_WELDER, + "back_key" = TOOL_WRENCH, + "desc" = "Internal armor is wrenched." + ), + + //20 + list( + "key" = /obj/item/mecha_parts/part/medigax_armor, + "action" = ITEM_DELETE, + "back_key" = TOOL_WELDER, + "desc" = "Internal armor is welded." + ), + + //21 + list( + "key" = TOOL_WRENCH, + "back_key" = TOOL_CROWBAR, + "desc" = "External armor is installed." + ), + + //22 + list( + "key" = TOOL_WELDER, + "back_key" = TOOL_WRENCH, + "desc" = "External armor is wrenched." + ), + + ) + +/datum/component/construction/mecha/medigax/action(datum/source, atom/used_atom, mob/user) + return check_step(used_atom,user) + +/datum/component/construction/mecha/medigax/custom_action(obj/item/I, mob/living/user, diff) + if(!..()) + return FALSE + + switch(index) + if(1) + user.visible_message("[user] connects [parent] hydraulic systems", "You connect [parent] hydraulic systems.") + if(2) + if(diff==FORWARD) + user.visible_message("[user] activates [parent] hydraulic systems.", "You activate [parent] hydraulic systems.") + else + user.visible_message("[user] disconnects [parent] hydraulic systems", "You disconnect [parent] hydraulic systems.") + if(3) + if(diff==FORWARD) + user.visible_message("[user] adds the wiring to [parent].", "You add the wiring to [parent].") + else + user.visible_message("[user] deactivates [parent] hydraulic systems.", "You deactivate [parent] hydraulic systems.") + if(4) + if(diff==FORWARD) + user.visible_message("[user] adjusts the wiring of [parent].", "You adjust the wiring of [parent].") + else + user.visible_message("[user] removes the wiring from [parent].", "You remove the wiring from [parent].") + if(5) + if(diff==FORWARD) + user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") + else + user.visible_message("[user] disconnects the wiring of [parent].", "You disconnect the wiring of [parent].") + if(6) + if(diff==FORWARD) + user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") + else + user.visible_message("[user] removes the central control module from [parent].", "You remove the central computer mainboard from [parent].") + if(7) + if(diff==FORWARD) + user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") + else + user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") + if(8) + if(diff==FORWARD) + user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") + else + user.visible_message("[user] removes the peripherals control module from [parent].", "You remove the peripherals control module from [parent].") + if(9) + if(diff==FORWARD) + user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") + else + user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") + if(10) + if(diff==FORWARD) + user.visible_message("[user] secures the weapon control module.", "You secure the weapon control module.") + else + user.visible_message("[user] removes the weapon control module from [parent].", "You remove the weapon control module from [parent].") + if(11) + if(diff==FORWARD) + user.visible_message("[user] installs [I] to [parent].", "You install [I] to [parent].") + else + user.visible_message("[user] unfastens the weapon control module.", "You unfasten the weapon control module.") + if(12) + if(diff==FORWARD) + user.visible_message("[user] secures the scanner module.", "You secure the scanner module.") + else + user.visible_message("[user] removes the scanner module from [parent].", "You remove the scanner module from [parent].") + if(13) + if(diff==FORWARD) + user.visible_message("[user] installs [I] to [parent].", "You install [I] to [parent].") + else + user.visible_message("[user] unfastens the scanner module.", "You unfasten the scanner module.") + if(14) + if(diff==FORWARD) + user.visible_message("[user] secures the capacitor.", "You secure the capacitor.") + else + user.visible_message("[user] removes the capacitor from [parent].", "You remove the capacitor from [parent].") + if(15) + if(diff==FORWARD) + user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") + else + user.visible_message("[user] unfastens the capacitor.", "You unfasten the capacitor.") + if(16) + if(diff==FORWARD) + user.visible_message("[user] secures the power cell.", "You secure the power cell.") + else + user.visible_message("[user] pries the power cell from [parent].", "You pry the power cell from [parent].") + if(17) + if(diff==FORWARD) + user.visible_message("[user] installs the internal armor layer to [parent].", "You install the internal armor layer to [parent].") + else + user.visible_message("[user] unfastens the power cell.", "You unfasten the power cell.") + if(18) + if(diff==FORWARD) + user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") + else + user.visible_message("[user] pries internal armor layer from [parent].", "You pry internal armor layer from [parent].") + if(19) + if(diff==FORWARD) + user.visible_message("[user] welds the internal armor layer to [parent].", "You weld the internal armor layer to [parent].") + else + user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") + if(20) + if(diff==FORWARD) + user.visible_message("[user] installs [I] to [parent].", "You install [I] to [parent].") + else + user.visible_message("[user] cuts the internal armor layer from [parent].", "You cut the internal armor layer from [parent].") + if(21) + if(diff==FORWARD) + user.visible_message("[user] secures Gygax Armor Plates.", "You secure Medical Gygax Armor Plates.") + else + user.visible_message("[user] pries Gygax Armor Plates from [parent].", "You pry Medical Gygax Armor Plates from [parent].") + if(22) + if(diff==FORWARD) + user.visible_message("[user] welds Gygax Armor Plates to [parent].", "You weld Medical Gygax Armor Plates to [parent].") + else + user.visible_message("[user] unfastens Gygax Armor Plates.", "You unfasten Medical Gygax Armor Plates.") + return TRUE +// End Medigax + /datum/component/construction/unordered/mecha_chassis/firefighter result = /datum/component/construction/mecha/firefighter steps = list( diff --git a/code/game/mecha/mecha_defense.dm b/code/game/mecha/mecha_defense.dm index 53768fe9a9..395ac810f4 100644 --- a/code/game/mecha/mecha_defense.dm +++ b/code/game/mecha/mecha_defense.dm @@ -77,7 +77,7 @@ /obj/mecha/attack_animal(mob/living/simple_animal/user) mecha_log_message("Attack by simple animal. Attacker - [user].", color="red") if(!user.melee_damage_upper && !user.obj_damage) - user.emote("custom", message = "[user.friendly] [src].") + user.emote("custom", message = "[user.friendly_verb_continuous] [src].") return 0 else var/play_soundeffect = 1 @@ -282,9 +282,9 @@ else return ..() -/obj/mecha/attacked_by(obj/item/I, mob/living/user) +/obj/mecha/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1) mecha_log_message("Attacked by [I]. Attacker - [user]") - ..() + return ..() /obj/mecha/proc/mech_toxin_damage(mob/living/target) playsound(src, 'sound/effects/spray2.ogg', 50, 1) diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm index 811ffdef35..14df70438f 100644 --- a/code/game/mecha/mecha_parts.dm +++ b/code/game/mecha/mecha_parts.dm @@ -129,6 +129,47 @@ desc = "A set of armor plates designed for the Gygax. Designed to effectively deflect damage with a lightweight construction." icon_state = "gygax_armor" +///////// Medical Gygax + +/obj/item/mecha_parts/chassis/medigax + name = "\improper Medical Gygax chassis" + construct_type = /datum/component/construction/unordered/mecha_chassis/medigax + +/obj/item/mecha_parts/part/medigax_torso + name = "\improper Medical Gygax torso" + desc = "A torso part of Gygax. Contains power unit, processing core and life support systems." + icon_state = "medigax_harness" + +/obj/item/mecha_parts/part/medigax_head + name = "\improper Medical Gygax head" + desc = "A Gygax head. Houses advanced surveillance and targeting sensors." + icon_state = "medigax_head" + +/obj/item/mecha_parts/part/medigax_left_arm + name = "\improper Medical Gygax left arm" + desc = "A Gygax left arm. Data and power sockets are compatible with most exosuit tools and weapons." + icon_state = "medigax_l_arm" + +/obj/item/mecha_parts/part/medigax_right_arm + name = "\improper Medical Gygax right arm" + desc = "A Gygax right arm. Data and power sockets are compatible with most exosuit tools and weapons." + icon_state = "medigax_r_arm" + +/obj/item/mecha_parts/part/medigax_left_leg + name = "\improper Medical Gygax left leg" + desc = "A Gygax left leg. Constructed with advanced servomechanisms and actuators to enable faster speed." + icon_state = "medigax_l_leg" + +/obj/item/mecha_parts/part/medigax_right_leg + name = "\improper Medical Gygax right leg" + desc = "A Gygax right leg. Constructed with advanced servomechanisms and actuators to enable faster speed." + icon_state = "medigax_r_leg" + +/obj/item/mecha_parts/part/medigax_armor + gender = PLURAL + name = "\improper Medical Gygax armor plates" + desc = "A set of armor plates designed for the Gygax. Designed to effectively deflect damage with a lightweight construction." + icon_state = "medigax_armor" //////////// Durand diff --git a/code/game/mecha/mecha_topic.dm b/code/game/mecha/mecha_topic.dm index 0d921dae0a..067cffd319 100644 --- a/code/game/mecha/mecha_topic.dm +++ b/code/game/mecha/mecha_topic.dm @@ -256,7 +256,7 @@ output_access_dialog(id_card, usr) if(href_list["del_req_access"] && add_req_access) - operation_req_access -= text2num(href_list["add_req_access"]) + operation_req_access -= text2num(href_list["del_req_access"]) output_access_dialog(id_card, usr) if(href_list["finish_req_access"]) @@ -333,10 +333,13 @@ send_byjax(occupant,"exosuit.browser","t_port_connection","[internal_tank.connected_port?"Disconnect from":"Connect to"] gas port") if(href_list["dna_lock"]) - if(occupant && !iscarbon(occupant)) - to_chat(occupant, " You do not have any DNA!") + if(!occupant) return - dna_lock = occupant.dna.unique_enzymes + var/mob/living/carbon/C = occupant + if(!istype(C) || !C.dna) + to_chat(C, " You do not have any DNA!") + return + dna_lock = C.dna.unique_enzymes occupant_message("You feel a prick as the needle takes your DNA sample.") if(href_list["reset_dna"]) diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm index ecf39bcb0b..9175489c89 100644 --- a/code/game/mecha/mecha_wreckage.dm +++ b/code/game/mecha/mecha_wreckage.dm @@ -125,6 +125,24 @@ name = "\improper Dark Gygax wreckage" icon_state = "darkgygax-broken" +/obj/structure/mecha_wreckage/medigax + name = "\improper Medical Gygax wreckage" + icon_state = "medigax-broken" + +/obj/structure/mecha_wreckage/medigax/Initialize() + . = ..() + var/list/parts = list(/obj/item/mecha_parts/part/medigax_torso, + /obj/item/mecha_parts/part/medigax_head, + /obj/item/mecha_parts/part/medigax_left_arm, + /obj/item/mecha_parts/part/medigax_right_arm, + /obj/item/mecha_parts/part/medigax_left_leg, + /obj/item/mecha_parts/part/medigax_right_leg) + for(var/i = 0; i < 2; i++) + if(parts.len && prob(40)) + var/part = pick(parts) + welder_salvage += part + parts -= part + /obj/structure/mecha_wreckage/marauder name = "\improper Marauder wreckage" icon_state = "marauder-broken" diff --git a/code/game/mecha/medical/medigax.dm b/code/game/mecha/medical/medigax.dm new file mode 100644 index 0000000000..98b7c9455b --- /dev/null +++ b/code/game/mecha/medical/medigax.dm @@ -0,0 +1,34 @@ +/obj/mecha/medical/medigax + desc = "A Gygax with it's actuator overload stripped and a slick white paint scheme, for medical use, These exosuits are developed and produced by Vey-Med. (© All rights reserved)." + name = "\improper Medical Gygax" + icon_state = "medigax" + step_in = 1.75 // a little faster than an odysseus + max_temperature = 25000 + max_integrity = 250 + wreckage = /obj/structure/mecha_wreckage/odysseus + armor = list("melee" = 25, "bullet" = 20, "laser" = 30, "energy" = 15, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) + internal_damage_threshold = 35 + deflect_chance = 15 + step_energy_drain = 6 + infra_luminosity = 6 + + +/obj/mecha/medical/medigax/moved_inside(mob/living/carbon/human/H) + . = ..() + if(.) + var/datum/atom_hud/hud = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] + hud.add_hud_to(H) + +/obj/mecha/medical/medigax/go_out() + if(isliving(occupant)) + var/mob/living/carbon/human/L = occupant + var/datum/atom_hud/hud = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] + hud.remove_hud_from(L) + ..() + +/obj/mecha/medical/medigax/mmi_moved_inside(obj/item/mmi/mmi_as_oc, mob/user) + . = ..() + if(.) + var/datum/atom_hud/hud = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] + var/mob/living/brain/B = mmi_as_oc.brainmob + hud.add_hud_to(B) diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 6b61eb2ebd..c56731b3d3 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -49,7 +49,9 @@ var/original_name desc = "A large piece of space-resistant printed paper." icon = 'icons/obj/contraband.dmi' + plane = ABOVE_WALL_PLANE anchored = TRUE + buildable_sign = FALSE //Cannot be unwrenched from a wall. var/ruined = FALSE var/random_basetype var/never_random = FALSE // used for the 'random' subclasses. @@ -68,6 +70,8 @@ name = "poster - [name]" desc = "A large piece of space-resistant printed paper. [desc]" + addtimer(CALLBACK(src, /datum.proc/_AddElement, list(/datum/element/beauty, 300)), 0) + /obj/structure/sign/poster/proc/randomise(base_type) var/list/poster_types = subtypesof(base_type) var/list/approved_types = list() @@ -424,6 +428,11 @@ desc = "A poster decipting a snake shaped into an ominous 'S'!" icon_state = "poster47" +/obj/structure/sign/poster/contraband/bountyhunters + name = "Bounty Hunters" + desc = "A poster advertising bounty hunting services. \"I hear you got a problem.\"" + icon_state = "poster48" + /obj/structure/sign/poster/official poster_item_name = "motivational poster" poster_item_desc = "An official Nanotrasen-issued poster to foster a compliant and obedient workforce. It comes with state-of-the-art adhesive backing, for easy pinning to any vertical surface." diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index 5720d5ce34..34996177af 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -5,6 +5,7 @@ var/blood_state = "" //I'm sorry but cleanable/blood code is ass, and so is blood_DNA var/bloodiness = 0 //0-100, amount of blood in this decal, used for making footprints and affecting the alpha of bloody footprints var/mergeable_decal = TRUE //when two of these are on a same tile or do we need to merge them into just one? + var/beauty = 0 /obj/effect/decal/cleanable/Initialize(mapload, list/datum/disease/diseases) . = ..() @@ -26,6 +27,8 @@ if(LAZYLEN(diseases_to_add)) AddComponent(/datum/component/infective, diseases_to_add) + addtimer(CALLBACK(src, /datum.proc/_AddElement, list(/datum/element/beauty, beauty)), 0) + /obj/effect/decal/cleanable/proc/replace_decal(obj/effect/decal/cleanable/C) // Returns true if we should give up in favor of the pre-existing decal if(mergeable_decal) qdel(C) diff --git a/code/game/objects/effects/decals/cleanable/aliens.dm b/code/game/objects/effects/decals/cleanable/aliens.dm index 3afc0ef671..fa4bfe7e67 100644 --- a/code/game/objects/effects/decals/cleanable/aliens.dm +++ b/code/game/objects/effects/decals/cleanable/aliens.dm @@ -3,6 +3,7 @@ name = "xeno blood" desc = "It's green and acidic. It looks like... blood?" color = BLOOD_COLOR_XENO + beauty = -250 /obj/effect/decal/cleanable/blood/splatter/xeno color = BLOOD_COLOR_XENO diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index ab0d1caca4..fa16a95faf 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -7,6 +7,7 @@ blood_state = BLOOD_STATE_BLOOD bloodiness = BLOOD_AMOUNT_PER_DECAL color = BLOOD_COLOR_HUMAN //default so we don't have white splotches everywhere. + beauty = -100 /obj/effect/decal/cleanable/blood/replace_decal(obj/effect/decal/cleanable/blood/C) if (C.blood_DNA) @@ -45,12 +46,14 @@ icon_state = "tracks" desc = "They look like tracks left by wheels." random_icon_states = null + beauty = -50 /obj/effect/decal/cleanable/trail_holder //not a child of blood on purpose name = "blood" icon_state = "ltrails_1" desc = "Your instincts say you shouldn't be following these." random_icon_states = null + beauty = -50 var/list/existing_dirs = list() /obj/effect/decal/cleanable/trail_holder/update_icon() @@ -88,7 +91,7 @@ var/mob/living/carbon/human/H = O var/obj/item/clothing/shoes/S = H.shoes if(S && S.bloody_shoes[blood_state]) - if(color != bloodtype_to_color(S.last_bloodtype)) + if(color != S.last_blood_color) return S.bloody_shoes[blood_state] = max(S.bloody_shoes[blood_state] - BLOOD_LOSS_PER_STEP, 0) shoe_types |= S.type @@ -101,7 +104,7 @@ var/mob/living/carbon/human/H = O var/obj/item/clothing/shoes/S = H.shoes if(S && S.bloody_shoes[blood_state]) - if(color != bloodtype_to_color(S.last_bloodtype))//last entry - we check its color + if(color != S.last_blood_color)//last entry - we check its color return S.bloody_shoes[blood_state] = max(S.bloody_shoes[blood_state] - BLOOD_LOSS_PER_STEP, 0) shoe_types |= S.type diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index e06c172519..2e45bbfca5 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -3,6 +3,7 @@ desc = "Someone should clean that up." icon = 'icons/obj/objects.dmi' icon_state = "shards" + beauty = -50 /obj/effect/decal/cleanable/ash name = "ashes" @@ -10,6 +11,7 @@ icon = 'icons/obj/objects.dmi' icon_state = "ash" mergeable_decal = FALSE + beauty = -50 /obj/effect/decal/cleanable/ash/Initialize() . = ..() @@ -24,6 +26,7 @@ /obj/effect/decal/cleanable/ash/large name = "large pile of ashes" icon_state = "big_ash" + beauty = -100 /obj/effect/decal/cleanable/ash/large/Initialize() . = ..() @@ -34,6 +37,7 @@ desc = "Back to sand." icon = 'icons/obj/shards.dmi' icon_state = "tiny" + beauty = -100 /obj/effect/decal/cleanable/glass/Initialize() . = ..() @@ -52,6 +56,7 @@ canSmoothWith = list(/obj/effect/decal/cleanable/dirt, /turf/closed/wall, /obj/structure/falsewall) smooth = SMOOTH_FALSE mouse_opacity = MOUSE_OPACITY_TRANSPARENT + beauty = -75 /obj/effect/decal/cleanable/dirt/Initialize() . = ..() @@ -72,6 +77,10 @@ desc = "It's still good. Four second rule!" icon_state = "flour" +/obj/effect/decal/cleanable/dirt/dust + name = "dust" + desc = "A thin layer of dust coating the floor." + /obj/effect/decal/cleanable/greenglow/ecto name = "ectoplasmic puddle" desc = "You know who to call." @@ -80,8 +89,11 @@ /obj/effect/decal/cleanable/greenglow name = "glowing goo" desc = "Jeez. I hope that's not for lunch." + light_power = 1 + light_range = 1 light_color = LIGHT_COLOR_GREEN icon_state = "greenglow" + beauty = -300 /obj/effect/decal/cleanable/greenglow/Initialize(mapload) . = ..() @@ -97,6 +109,7 @@ layer = WALL_OBJ_LAYER icon_state = "cobweb1" resistance_flags = FLAMMABLE + beauty = -100 /obj/effect/decal/cleanable/cobweb/cobweb2 icon_state = "cobweb2" @@ -108,10 +121,12 @@ icon = 'icons/effects/effects.dmi' icon_state = "molten" mergeable_decal = FALSE + beauty = -150 /obj/effect/decal/cleanable/molten_object/large name = "big gooey grey mass" icon_state = "big_molten" + beauty = -300 //Vomit (sorry) /obj/effect/decal/cleanable/vomit @@ -120,6 +135,7 @@ icon = 'icons/effects/blood.dmi' icon_state = "vomit_1" random_icon_states = list("vomit_1", "vomit_2", "vomit_3", "vomit_4") + beauty = -150 /obj/effect/decal/cleanable/vomit/attack_hand(mob/user) . = ..() @@ -152,6 +168,7 @@ gender = NEUTER icon = 'icons/effects/tomatodecal.dmi' random_icon_states = list("tomato_floor1", "tomato_floor2", "tomato_floor3") + beauty = -100 /obj/effect/decal/cleanable/plant_smudge name = "plant smudge" diff --git a/code/game/objects/effects/decals/cleanable/robots.dm b/code/game/objects/effects/decals/cleanable/robots.dm index cf030df120..2765330977 100644 --- a/code/game/objects/effects/decals/cleanable/robots.dm +++ b/code/game/objects/effects/decals/cleanable/robots.dm @@ -10,6 +10,7 @@ blood_state = BLOOD_STATE_OIL bloodiness = BLOOD_AMOUNT_PER_DECAL mergeable_decal = FALSE + beauty = -50 /obj/effect/decal/cleanable/robot_debris/Initialize(mapload, list/datum/disease/diseases) . = ..() @@ -50,6 +51,7 @@ random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7") blood_state = BLOOD_STATE_OIL bloodiness = BLOOD_AMOUNT_PER_DECAL + beauty = -100 /obj/effect/decal/cleanable/oil/Initialize() . = ..() @@ -58,6 +60,7 @@ /obj/effect/decal/cleanable/oil/streak random_icon_states = list("streak1", "streak2", "streak3", "streak4", "streak5") + beauty = -50 /obj/effect/decal/cleanable/oil/slippery diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm index 955b9935dd..8cfdad0432 100644 --- a/code/game/objects/effects/decals/crayon.dm +++ b/code/game/objects/effects/decals/crayon.dm @@ -3,7 +3,7 @@ desc = "Graffiti. Damn kids." icon = 'icons/effects/crayondecal.dmi' icon_state = "rune1" - plane = GAME_PLANE //makes the graffiti visible over a wall. + plane = ABOVE_WALL_PLANE //makes the graffiti visible over a wall. gender = NEUTER mergeable_decal = FALSE var/do_icon_rotate = TRUE diff --git a/code/game/objects/effects/decals/decal.dm b/code/game/objects/effects/decals/decal.dm index 3e7706282a..25b262a146 100644 --- a/code/game/objects/effects/decals/decal.dm +++ b/code/game/objects/effects/decals/decal.dm @@ -35,6 +35,7 @@ icon = 'icons/turf/decals.dmi' icon_state = "warningline" layer = TURF_DECAL_LAYER + plane = ABOVE_WALL_PLANE /obj/effect/turf_decal/Initialize() ..() @@ -45,4 +46,4 @@ var/turf/T = loc if(!istype(T)) //you know this will happen somehow CRASH("Turf decal initialized in an object/nullspace") - T.AddComponent(/datum/component/decal, icon, icon_state, dir, CLEAN_GOD, color, null, null, alpha) + T.AddElement(/datum/element/decal, icon, icon_state, turn(dir, -dir2angle(T.dir)), CLEAN_GOD, color, null, null, alpha) diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index 992e9c84a7..6910bb1db0 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -469,6 +469,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player) /obj/effect/landmark/stationroom var/list/templates = list() layer = BULLET_HOLE_LAYER + plane = ABOVE_WALL_PLANE /obj/effect/landmark/stationroom/New() ..() diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index 1fe5e46e25..d5f53b2f1c 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -5,19 +5,21 @@ anchored = TRUE icon = 'icons/obj/items_and_weapons.dmi' icon_state = "uglymine" - var/triggered = 0 + /// We manually check to see if we've been triggered in case multiple atoms cross us in the time between the mine being triggered and it actually deleting, to avoid a race condition with multiple detonations + var/triggered = FALSE /obj/effect/mine/proc/mineEffect(mob/victim) to_chat(victim, "*click*") -/obj/effect/mine/Crossed(AM as mob|obj) - if(isturf(loc)) - if(ismob(AM)) - var/mob/MM = AM - if(!(MM.movement_type & FLYING)) - triggermine(AM) - else - triggermine(AM) +/obj/effect/mine/Crossed(atom/movable/AM) + if(triggered || !isturf(loc)) + return + . = ..() + + if(AM.movement_type & FLYING) + return + + triggermine(AM) /obj/effect/mine/proc/triggermine(mob/victim) if(triggered) @@ -27,9 +29,13 @@ s.set_up(3, 1, src) s.start() mineEffect(victim) + SEND_SIGNAL(src, COMSIG_MINE_TRIGGERED) triggered = 1 qdel(src) +/obj/effect/mine/take_damage(damage_amount, damage_type, damage_flag, sound_effect, attack_dir) + . = ..() + triggermine() /obj/effect/mine/explosive name = "explosive mine" @@ -50,6 +56,18 @@ if(isliving(victim)) victim.DefaultCombatKnockdown(stun_time) +/obj/effect/mine/shrapnel + name = "shrapnel mine" + var/shrapnel_type = /obj/item/projectile/bullet/shrapnel + var/shrapnel_magnitude = 3 + +/obj/effect/mine/shrapnel/mineEffect(mob/victim) + AddComponent(/datum/component/pellet_cloud, projectile_type=shrapnel_type, magnitude=shrapnel_magnitude) + +/obj/effect/mine/shrapnel/sting + name = "stinger mine" + shrapnel_type = /obj/item/projectile/bullet/pellet/stingball + /obj/effect/mine/kickmine name = "kick mine" @@ -105,7 +123,7 @@ /obj/effect/mine/pickup/triggermine(mob/victim) if(triggered) return - triggered = 1 + triggered = TRUE invisibility = INVISIBILITY_ABSTRACT mineEffect(victim) qdel(src) @@ -128,14 +146,13 @@ spawn(0) new /datum/hallucination/delusion(victim, TRUE, "demon",duration,0) - var/obj/item/twohanded/required/chainsaw/doomslayer/chainsaw = new(victim.loc) + var/obj/item/chainsaw/doomslayer/chainsaw = new(victim.loc) victim.log_message("entered a blood frenzy", LOG_ATTACK) ADD_TRAIT(chainsaw, TRAIT_NODROP, CHAINSAW_FRENZY_TRAIT) victim.drop_all_held_items() victim.put_in_hands(chainsaw, forced = TRUE) chainsaw.attack_self(victim) - chainsaw.wield(victim) victim.reagents.add_reagent(/datum/reagent/medicine/adminordrazine,25) to_chat(victim, "KILL, KILL, KILL! YOU HAVE NO ALLIES ANYMORE, KILL THEM ALL!") diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 9893e9c7d3..44164ed86c 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -451,7 +451,7 @@ lootcount = 1 spawn_on_turf = FALSE //Note this is out of a 100 - Meaning the number you see is also the percent its going to pick that -//This is ment for "low" loot that anyone could fine in a toilet, for better gear use high loot toilet +//This is meant for "low" loot that anyone could find in a toilet, for better gear use high loot toilet loot = list("" = 30, /obj/item/lighter = 2, /obj/item/tape/random = 1, @@ -476,7 +476,7 @@ lootcount = 1 spawn_on_turf = FALSE //Note this is out of a 100 - Meaning the number you see is also the percent its going to pick that -//This is ment for "prison" loot that is rather rare and ment for "prisoners if they get a crowbar to fine, or sec. +//This is meant for "prison" loot that is rather rare and meant for "prisoners if they get a crowbar to fine, or sec. loot = list("" = 10, /obj/item/lighter = 5, /obj/item/poster/random_contraband = 5, @@ -491,7 +491,7 @@ /obj/item/kitchen/knife = 5, /obj/item/screwdriver = 5, /obj/item/crowbar/red = 1, //Dont you need a crowbar to open this? - /obj/item/stack/medical/bruise_pack = 3, + /obj/item/stack/medical/suture = 3, /obj/item/reagent_containers/food/drinks/bottle/vodka = 2, /obj/item/radio = 5, /obj/item/flashlight = 4, @@ -611,13 +611,13 @@ /obj/item/clothing/mask/breath = 5, /obj/item/clothing/mask/breath/medical = 1 ) - + /obj/effect/spawner/lootdrop/welder_tools/no_turf spawn_on_turf = FALSE /obj/effect/spawner/lootdrop/low_tools/no_turf spawn_on_turf = FALSE - + /obj/effect/spawner/lootdrop/breathing_tanks/no_turf spawn_on_turf = FALSE @@ -644,3 +644,76 @@ /obj/effect/spawner/lootdrop/glowstick/no_turf spawn_on_turf = FALSE + +// Random Parts + +/obj/effect/spawner/lootdrop/stock_parts + name = "random stock parts spawner" + lootcount = 1 + loot = list( + /obj/item/stock_parts/capacitor, + /obj/item/stock_parts/scanning_module, + /obj/item/stock_parts/manipulator, + /obj/item/stock_parts/micro_laser, + /obj/item/stock_parts/matter_bin, + /obj/item/stock_parts/cell + ) + +// Random Weapon Parts + +/obj/effect/spawner/lootdrop/weapon_parts + name = "random weapon parts spawner 50%" + lootcount = 1 + spawn_on_turf = FALSE + loot = list("" = 50, + /obj/item/weaponcrafting/improvised_parts/rifle_receiver = 13, + /obj/item/weaponcrafting/improvised_parts/shotgun_receiver = 13, + /obj/item/weaponcrafting/improvised_parts/trigger_assembly = 12, + ) + +/obj/effect/spawner/lootdrop/weapon_parts + name = "random weapon parts spawner 20%" + lootcount = 1 + spawn_on_turf = FALSE + loot = list("" = 80, + /obj/item/weaponcrafting/improvised_parts/rifle_receiver = 5, + /obj/item/weaponcrafting/improvised_parts/trigger_assembly = 5, + ) + +/obj/effect/spawner/lootdrop/ammo + name = "random ammo 75%" + lootcount = 1 + spawn_on_turf = FALSE + loot = list("" = 25, + /obj/item/ammo_box/magazine/wt550m9 = 1, + /obj/item/ammo_casing/shotgun/buckshot = 7, + /obj/item/ammo_casing/shotgun/rubbershot = 7, + /obj/item/ammo_casing/a762 = 15, + /obj/item/ammo_box/a762 = 15, + ) + +/obj/effect/spawner/lootdrop/ammo/fiftypercent + name = "random ammo 50%" + lootcount = 1 + spawn_on_turf = FALSE + loot = list("" = 50, + /obj/item/ammo_box/magazine/wt550m9 = 2, + /obj/item/ammo_casing/shotgun/buckshot = 10, + /obj/item/ammo_casing/shotgun/rubbershot = 10, + /obj/item/ammo_casing/a762 = 7, + /obj/item/ammo_box/a762 = 7, + ) + +/obj/effect/spawner/lootdrop/ammo/shotgun + name = "random ammo 50%" + lootcount = 1 + spawn_on_turf = FALSE + loot = list("" = 50, + /obj/item/ammo_box/shotgun/loaded/buckshot = 5, + /obj/item/ammo_box/shotgun/loaded/beanbag = 5, + /obj/item/ammo_box/shotgun/loaded/incendiary = 5, + /obj/item/ammo_casing/shotgun/buckshot = 8, + /obj/item/ammo_casing/shotgun/rubbershot = 9, + /obj/item/ammo_casing/shotgun = 8, + /obj/item/ammo_casing/shotgun/incendiary = 10, + ) diff --git a/code/game/objects/effects/spawners/structure.dm b/code/game/objects/effects/spawners/structure.dm index cdf3f3e6b4..7a151c4312 100644 --- a/code/game/objects/effects/spawners/structure.dm +++ b/code/game/objects/effects/spawners/structure.dm @@ -24,6 +24,23 @@ again. name = "window spawner" spawn_list = list(/obj/structure/grille, /obj/structure/window/fulltile) dir = SOUTH + var/electrochromatic + var/electrochromatic_id + +/obj/effect/spawner/structure/window/Initialize() + . = ..() + if(!electrochromatic) + return + if(!electrochromatic_id) + stack_trace("Electrochromatic window spawner set without electromatic id.") + return + if(electrochromatic_id[1] == "!") + electrochromatic_id = SSmapping.get_obfuscated_id(electrochromatic_id) + for(var/obj/structure/window/W in get_turf(src)) + W.electrochromatic_id = electrochromatic_id + W.make_electrochromatic() + if(electrochromatic == ELECTROCHROMATIC_DIMMED) + W.electrochromatic_dim() /obj/effect/spawner/structure/window/hollow name = "hollow window spawner" @@ -140,13 +157,16 @@ again. spawn_list = list(/obj/structure/grille, /obj/structure/window/reinforced/spawner/north, /obj/structure/window/reinforced/spawner/west) . = ..() -//tinted +//tinted and electrochromatic /obj/effect/spawner/structure/window/reinforced/tinted name = "tinted reinforced window spawner" icon_state = "twindow_spawner" spawn_list = list(/obj/structure/grille, /obj/structure/window/reinforced/tinted/fulltile) +/obj/effect/spawner/structure/window/reinforced/tinted/electrochromatic + name = "electrochromatic reinforced window spawner" + electrochromatic = ELECTROCHROMATIC_DIMMED //shuttle window diff --git a/code/game/objects/effects/temporary_visuals/clockcult.dm b/code/game/objects/effects/temporary_visuals/clockcult.dm index 59c4e23283..9a236c00c3 100644 --- a/code/game/objects/effects/temporary_visuals/clockcult.dm +++ b/code/game/objects/effects/temporary_visuals/clockcult.dm @@ -95,6 +95,56 @@ icon_state = "warden_gaze" duration = 3 +/obj/effect/temp_visual/ratvar/volt_hit + name = "volt blast" + layer = ABOVE_MOB_LAYER + duration = 8 + icon_state = "volt_hit" + light_range = 1.5 + light_power = 2 + light_color = LIGHT_COLOR_ORANGE + var/mob/user + var/damage = 20 + +/obj/effect/temp_visual/ratvar/volt_hit/Initialize(mapload, caster) + . = ..() + user = caster + if(user) + var/matrix/M = new + M.Turn(Get_Angle(src, user)) + transform = M + INVOKE_ASYNC(src, .proc/volthit) + +/obj/effect/temp_visual/ratvar/volt_hit/proc/volthit() + if(user) + Beam(get_turf(user), "volt_ray", time=duration, maxdistance=8, beam_type=/obj/effect/ebeam/volt_ray) + var/hit_amount = 0 + var/turf/T = get_turf(src) + for(var/mob/living/L in T) + if(is_servant_of_ratvar(L)) + continue + var/obj/item/I = L.anti_magic_check() + if(I) + L.visible_message("Strange energy flows into [L]'s [I.name]!", \ + "Your [I.name] shields you from [src]!") + continue + L.visible_message("[L] is struck by a [name]!", "You're struck by a [name]!") + L.apply_damage(damage, BURN, "chest", L.run_armor_check("chest", "laser", "Your armor absorbs [src]!", "Your armor blocks part of [src]!", 0, "Your armor was penetrated by [src]!")) + log_combat(user, L, "struck with a volt blast") + hit_amount++ + for(var/obj/mecha/M in T) + if(M.occupant) + if(is_servant_of_ratvar(M.occupant)) + continue + to_chat(M.occupant, "Your [M.name] is struck by a [name]!") + M.visible_message("[M] is struck by a [name]!") + M.take_damage(damage, BURN, 0, 0) + hit_amount++ + if(hit_amount) + playsound(src, 'sound/machines/defib_zap.ogg', damage*hit_amount, 1, -1) + else + playsound(src, "sparks", 50, 1) + /obj/effect/temp_visual/ratvar/ocular_warden/Initialize() . = ..() pixel_x = rand(-8, 8) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 949ed050f5..90e232938c 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -4,6 +4,9 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) // if true, everyone item when created will have its name changed to be // more... RPG-like. +GLOBAL_VAR_INIT(stickpocalypse, FALSE) // if true, all non-embeddable items will be able to harmlessly stick to people when thrown +GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to embed in people, takes precedence over stickpocalypse + /obj/item name = "item" icon = 'icons/obj/items_and_weapons.dmi' @@ -55,7 +58,17 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) /// How long, in deciseconds, this staggers for, if null it will autocalculate from w_class and force. Unlike total mass this supports 0 and negatives. var/stagger_force + /** + * Set FALSE and then checked at the end of on mob/living/attackby(), set TRUE on living/pre_attacked_by(). + * Should it be FALSE by the end of the item/attack(), that means the item overrode the standard attack behaviour + * and the user still needs the delay applied. We can't be using return values since that'll stop afterattack() from being triggered. + */ + var/attack_delay_done = FALSE + ///next_move click/attack delay of this item. + var/click_delay = CLICK_CD_MELEE + var/slot_flags = 0 //This is used to determine on which slots an item can fit. + var/current_equipped_slot pass_flags = PASSTABLE pressure_resistance = 4 var/obj/item/master = null @@ -95,7 +108,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) mouse_drag_pointer = MOUSE_ACTIVE_POINTER //the icon to indicate this object is being dragged - var/datum/embedding_behavior/embedding + var/list/embedding = NONE var/flags_cover = 0 //for flags such as GLASSESCOVERSEYES var/heat = 0 @@ -132,15 +145,25 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/list/grind_results //A reagent list containing the reagents this item produces when ground up in a grinder - this can be an empty list to allow for reagent transferring only var/list/juice_results //A reagent list containing blah blah... but when JUICED in a grinder! + /* Our block parry data. Should be set in init, or something if you are using it. + * This won't be accessed without ITEM_CAN_BLOCK or ITEM_CAN_PARRY so do not set it unless you have to to save memory. + * If you decide it's a good idea to leave this unset while turning the flags on, you will runtime. Enjoy. + * If this is set to a path, it'll run get_block_parry_data(path). YOU MUST RUN [get_block_parry_data(this)] INSTEAD OF DIRECTLY ACCESSING! + */ + var/datum/block_parry_data/block_parry_data + ///Skills vars //list of skill PATHS exercised when using this item. An associated bitfield can be set to indicate additional ways the skill is used by this specific item. var/list/datum/skill/used_skills - var/skill_difficulty = THRESHOLD_COMPETENT //how difficult it's to use this item in general. + var/skill_difficulty = THRESHOLD_UNTRAINED //how difficult it's to use this item in general. var/skill_gain = DEF_SKILL_GAIN //base skill value gain from using this item. + var/canMouseDown = FALSE + + /obj/item/Initialize() - if (attack_verb) + if(attack_verb) attack_verb = typelist("attack_verb", attack_verb) . = ..() @@ -148,9 +171,6 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) new path(src) actions_types = null - if(GLOB.rpg_loot_items) - AddComponent(/datum/component/fantasy) - if(force_string) item_flags |= FORCE_STRING_OVERRIDE @@ -160,15 +180,10 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) if(damtype == "brute") hitsound = "swing_hit" - if (!embedding) - embedding = getEmbeddingBehavior() - else if (islist(embedding)) - embedding = getEmbeddingBehavior(arglist(embedding)) - else if (!istype(embedding, /datum/embedding_behavior)) - stack_trace("Invalid type [embedding.type] found in .embedding during /obj/item Initialize()") - - if(sharpness) //give sharp objects butchering functionality, for consistency - AddComponent(/datum/component/butchering, 80 * toolspeed) + if(used_skills) + for(var/path in used_skills) + var/datum/skill/S = GLOB.skill_datums[path] + LAZYADD(used_skills[path], S.skill_traits) /obj/item/Destroy() item_flags &= ~DROPDEL //prevent reqdels @@ -179,6 +194,26 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) qdel(X) return ..() +/obj/item/ComponentInitialize() + . = ..() + + // this proc says it's for initializing components, but we're initializing elements too because it's you and me against the world >:) + if(!LAZYLEN(embedding)) + if(GLOB.embedpocalypse) + embedding = EMBED_POINTY + name = "pointy [name]" + else if(GLOB.stickpocalypse) + embedding = EMBED_HARMLESS + name = "sticky [name]" + + updateEmbedding() + + if(GLOB.rpg_loot_items) + AddComponent(/datum/component/fantasy) + + if(sharpness) //give sharp objects butchering functionality, for consistency + AddComponent(/datum/component/butchering, 80 * toolspeed) + /obj/item/proc/check_allowed_items(atom/target, not_inside, target_self) if(((src in target) && !target_self) || (!isturf(target.loc) && !isturf(target) && not_inside)) return 0 @@ -229,8 +264,9 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) if(resistance_flags & FIRE_PROOF) . += "[src] is made of fire-retardant materials." - - + if(item_flags & (ITEM_CAN_BLOCK | ITEM_CAN_PARRY)) + var/datum/block_parry_data/data = return_block_parry_datum(block_parry_data) + . += "[src] has the capacity to be used to block and/or parry. \[Show Stats\]" if(!user.research_scanner) return @@ -285,6 +321,10 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) return if(anchored) return + if(loc == user && current_equipped_slot && current_equipped_slot != SLOT_HANDS) + if(current_equipped_slot in user.check_obscured_slots()) + to_chat(src, "You are unable to unequip that while wearing other garments over it!") + return FALSE if(resistance_flags & ON_FIRE) var/mob/living/carbon/C = user @@ -306,7 +346,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) C.update_damage_overlays() return - if(acid_level > 20 && !ismob(loc))// so we can still remove the clothes on us that have acid. + if(acid_level > 20 && ismob(loc))// so we can still remove the clothes on us that have acid. var/mob/living/carbon/C = user if(istype(C)) if(!C.gloves || (!(C.gloves.resistance_flags & (UNACIDABLE|ACID_PROOF)))) @@ -349,6 +389,11 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) return if(anchored) return + if(loc == user && current_equipped_slot && current_equipped_slot != SLOT_HANDS) + if(current_equipped_slot in user.check_obscured_slots()) + to_chat(src, "You are unable to unequip that while wearing other garments over it!") + return FALSE + SEND_SIGNAL(loc, COMSIG_TRY_STORAGE_TAKE, src, user.loc, TRUE) @@ -392,6 +437,8 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) return ITALICS | REDUCE_RANGE /obj/item/proc/dropped(mob/user) + SHOULD_CALL_PARENT(TRUE) + current_equipped_slot = null for(var/X in actions) var/datum/action/A = X A.Remove(user) @@ -404,6 +451,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) // called just as an item is picked up (loc is not yet changed) /obj/item/proc/pickup(mob/user) + SHOULD_CALL_PARENT(TRUE) SEND_SIGNAL(src, COMSIG_ITEM_PICKUP, user) item_flags |= IN_INVENTORY @@ -420,14 +468,12 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) return usr.client.Click(src, src_location, src_control, params) var/list/directaccess = usr.DirectAccess() //This, specifically, is what requires the copypaste. If this were after the adjacency check, then it'd be impossible to use items in your inventory, among other things. //If this were before the above checks, then trying to click on items would act a little funky and signal overrides wouldn't work. - if(iscarbon(usr)) - var/mob/living/carbon/C = usr - if((C.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) && ((C.CanReach(src) || (src in directaccess)) && (C.CanReach(over) || (over in directaccess)))) - if(!C.get_active_held_item()) - C.UnarmedAttack(src, TRUE) - if(C.get_active_held_item() == src) - melee_attack_chain(C, over) - return TRUE //returning TRUE as a "is this overridden?" flag + if(SEND_SIGNAL(usr, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_ACTIVE) && ((usr.CanReach(src) || (src in directaccess)) && (usr.CanReach(over) || (over in directaccess)))) + if(!usr.get_active_held_item()) + usr.UnarmedAttack(src, TRUE) + if(usr.get_active_held_item() == src) + melee_attack_chain(usr, over) + return TRUE //returning TRUE as a "is this overridden?" flag if(!Adjacent(usr) || !over.Adjacent(usr)) return // should stop you from dragging through windows @@ -440,7 +486,9 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) // for items that can be placed in multiple slots // note this isn't called during the initial dressing of a player /obj/item/proc/equipped(mob/user, slot) + SHOULD_CALL_PARENT(TRUE) . = SEND_SIGNAL(src, COMSIG_ITEM_EQUIPPED, user, slot) + current_equipped_slot = slot if(!(. & COMPONENT_NO_GRANT_ACTIONS)) for(var/X in actions) var/datum/action/A = X @@ -466,11 +514,11 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) //if this is being done by a mob other than M, it will include the mob equipper, who is trying to equip the item to mob M. equipper will be null otherwise. //If you are making custom procs but would like to retain partial or complete functionality of this one, include a 'return ..()' to where you want this to happen. //Set disable_warning to TRUE if you wish it to not give you outputs. -/obj/item/proc/mob_can_equip(mob/living/M, mob/living/equipper, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE) +/obj/item/proc/mob_can_equip(mob/living/M, mob/living/equipper, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE, clothing_check = FALSE, list/return_warning) if(!M) return FALSE - return M.can_equip(src, slot, disable_warning, bypass_equip_delay_self) + return M.can_equip(src, slot, disable_warning, bypass_equip_delay_self, clothing_check, return_warning) /obj/item/verb/verb_pickup() set src in oview(1) @@ -605,6 +653,18 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/itempush = 1 if(w_class < 4) itempush = 0 //too light to push anything + if(isliving(hit_atom)) //Living mobs handle hit sounds differently. + var/volume = get_volume_by_throwforce_and_or_w_class() + if (throwforce > 0) + if (throwhitsound) + playsound(hit_atom, throwhitsound, volume, TRUE, -1) + else if(hitsound) + playsound(hit_atom, hitsound, volume, TRUE, -1) + else + playsound(hit_atom, 'sound/weapons/genhit.ogg',volume, TRUE, -1) + else + playsound(hit_atom, 'sound/weapons/throwtap.ogg', 1, volume, -1) + return hit_atom.hitby(src, 0, itempush, throwingdatum=throwingdatum) /obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force, messy_throw = TRUE) @@ -736,6 +796,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) ..() /obj/item/proc/microwave_act(obj/machinery/microwave/M) + SEND_SIGNAL(src, COMSIG_ITEM_MICROWAVE_ACT, M) if(istype(M) && M.dirty < 100) M.dirty++ @@ -782,14 +843,17 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/user = usr tip_timer = addtimer(CALLBACK(src, .proc/openTip, location, control, params, user), timedelay, TIMER_STOPPABLE)//timer takes delay in deciseconds, but the pref is in milliseconds. dividing by 100 converts it. -/obj/item/MouseExited() +/obj/item/MouseExited(location,control,params) + SEND_SIGNAL(src, COMSIG_ITEM_MOUSE_EXIT, location, control, params) deltimer(tip_timer)//delete any in-progress timer if the mouse is moved off the item before it finishes closeToolTip(usr) +/obj/item/MouseEntered(location,control,params) + SEND_SIGNAL(src, COMSIG_ITEM_MOUSE_ENTER, location, control, params) // Called when a mob tries to use the item as a tool. // Handles most checks. -/obj/item/proc/use_tool(atom/target, mob/living/user, delay, amount=0, volume=0, datum/callback/extra_checks, skill_gain_mult = 1, max_level = INFINITY) +/obj/item/proc/use_tool(atom/target, mob/living/user, delay, amount=0, volume=0, datum/callback/extra_checks, skill_gain_mult = STD_USE_TOOL_MULT) // No delay means there is no start message, and no reason to call tool_start_check before use_tool. // Run the start check here so we wouldn't have to call it manually. if(!delay && !tool_start_check(user, amount)) @@ -802,7 +866,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) if(delay) if(user.mind && used_skills) - delay = user.mind.skill_holder.item_action_skills_mod(src, delay, skill_difficulty, SKILL_USE_TOOL, NONE, FALSE) + delay = user.mind.item_action_skills_mod(src, delay, skill_difficulty, SKILL_USE_TOOL, null, FALSE) // Create a callback with checks that would be called every tick by do_after. var/datum/callback/tool_check = CALLBACK(src, .proc/tool_check_callback, user, amount, extra_checks) @@ -828,11 +892,14 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) if(delay >= MIN_TOOL_SOUND_DELAY) play_tool_sound(target, volume) + if(user.mind && used_skills && skill_gain_mult) + var/gain = skill_gain + delay/SKILL_GAIN_DELAY_DIVISOR for(var/skill in used_skills) - if(!(used_skills[skill] & SKILL_TRAINING_TOOL)) + if(!(SKILL_TRAINING_TOOL in used_skills[skill])) continue - user.mind.skill_holder.auto_gain_experience(skill, skill_gain*skill_gain_mult, GET_STANDARD_LVL(max_level)) + var/datum/skill/S = GLOB.skill_datums[skill] + user.mind.auto_gain_experience(skill, gain*skill_gain_mult*S.item_skill_gain_multi) return TRUE @@ -893,11 +960,13 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) // if w_volume is 0 you fucked up anyways lol return w_volume || AUTO_SCALE_VOLUME(w_class) -/obj/item/proc/embedded(mob/living/carbon/human/embedded_mob) +/obj/item/proc/embedded(atom/embedded_target) return /obj/item/proc/unembedded() - return + if(item_flags & DROPDEL) + QDEL_NULL(src) + return TRUE /** * Sets our slowdown and updates equipment slowdown of any mob we're equipped on. @@ -913,3 +982,135 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) . = ..() if(var_name == NAMEOF(src, slowdown)) set_slowdown(var_value) //don't care if it's a duplicate edit as slowdown'll be set, do it anyways to force normal behavior. +/** + * Does the current embedding var meet the criteria for being harmless? Namely, does it explicitly define the pain multiplier and jostle pain mult to be 0? If so, return true. + * + */ +/obj/item/proc/isEmbedHarmless() + if(embedding) + return !isnull(embedding["pain_mult"]) && !isnull(embedding["jostle_pain_mult"]) && embedding["pain_mult"] == 0 && embedding["jostle_pain_mult"] == 0 + +///In case we want to do something special (like self delete) upon failing to embed in something, return true +/obj/item/proc/failedEmbed() + if(item_flags & DROPDEL) + QDEL_NULL(src) + return TRUE + +/** + + + + * tryEmbed() is for when you want to try embedding something without dealing with the damage + hit messages of calling hitby() on the item while targetting the target. + + + + * + + + + * Really, this is used mostly with projectiles with shrapnel payloads, from [/datum/element/embed/proc/checkEmbedProjectile], and called on said shrapnel. Mostly acts as an intermediate between different embed elements. + + + + * + + + + * Arguments: + + + + * * target- Either a body part, a carbon, or a closed turf. What are we hitting? + + + + * * forced- Do we want this to go through 100%? + + + + */ + + + +/obj/item/proc/tryEmbed(atom/target, forced=FALSE, silent=FALSE) + + + + if(!isbodypart(target) && !iscarbon(target) && !isclosedturf(target)) + + + + return + + + + if(!forced && !LAZYLEN(embedding)) + + + + return + + + + + + + + if(SEND_SIGNAL(src, COMSIG_EMBED_TRY_FORCE, target, forced, silent)) + + + + return TRUE + + + + failedEmbed() + + + + + + + +///For when you want to disable an item's embedding capabilities (like transforming weapons and such), this proc will detach any active embed elements from it. + + + +/obj/item/proc/disableEmbedding() + + + + SEND_SIGNAL(src, COMSIG_ITEM_DISABLE_EMBED) + + + + return + + + + + + + +///For when you want to add/update the embedding on an item. Uses the vars in [/obj/item/embedding], and defaults to config values for values that aren't set. Will automatically detach previous embed elements on this item. + + + +/obj/item/proc/updateEmbedding() + if(!islist(embedding) || !LAZYLEN(embedding)) + return + + AddElement(/datum/element/embed,\ + embed_chance = (!isnull(embedding["embed_chance"]) ? embedding["embed_chance"] : EMBED_CHANCE),\ + fall_chance = (!isnull(embedding["fall_chance"]) ? embedding["fall_chance"] : EMBEDDED_ITEM_FALLOUT),\ + pain_chance = (!isnull(embedding["pain_chance"]) ? embedding["pain_chance"] : EMBEDDED_PAIN_CHANCE),\ + pain_mult = (!isnull(embedding["pain_mult"]) ? embedding["pain_mult"] : EMBEDDED_PAIN_MULTIPLIER),\ + remove_pain_mult = (!isnull(embedding["remove_pain_mult"]) ? embedding["remove_pain_mult"] : EMBEDDED_UNSAFE_REMOVAL_PAIN_MULTIPLIER),\ + rip_time = (!isnull(embedding["rip_time"]) ? embedding["rip_time"] : EMBEDDED_UNSAFE_REMOVAL_TIME),\ + ignore_throwspeed_threshold = (!isnull(embedding["ignore_throwspeed_threshold"]) ? embedding["ignore_throwspeed_threshold"] : FALSE),\ + impact_pain_mult = (!isnull(embedding["impact_pain_mult"]) ? embedding["impact_pain_mult"] : EMBEDDED_IMPACT_PAIN_MULTIPLIER),\ + jostle_chance = (!isnull(embedding["jostle_chance"]) ? embedding["jostle_chance"] : EMBEDDED_JOSTLE_CHANCE),\ + jostle_pain_mult = (!isnull(embedding["jostle_pain_mult"]) ? embedding["jostle_pain_mult"] : EMBEDDED_JOSTLE_PAIN_MULTIPLIER),\ + pain_stam_pct = (!isnull(embedding["pain_stam_pct"]) ? embedding["pain_stam_pct"] : EMBEDDED_PAIN_STAM_PCT),\ + embed_chance_turf_mod = (!isnull(embedding["embed_chance_turf_mod"]) ? embedding["embed_chance_turf_mod"] : EMBED_CHANCE_TURF_MOD)) + return TRUE \ No newline at end of file diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index 7f6e561f55..2fbb45173b 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -143,8 +143,8 @@ RLD //if user can't be seen from A (only checks surroundings' opaqueness) and can't see A. //jarring, but it should stop people from targetting atoms they can't see... //excluding darkness, to allow RLD to be used to light pitch black dark areas. - if(!((user in view(view_range, A)) || (user in viewers(view_range, A)))) - to_chat(user, "You focus, pointing \the [src] at whatever outside your field of vision in the given direction... to no avail.") + if(!((user in view(view_range, A)) || (user in fov_viewers(view_range, A)))) + to_chat(user, "You focus, pointing \the [src] at whatever outside your field of vision in that direction... to no avail.") return FALSE return TRUE @@ -154,7 +154,8 @@ RLD icon_state = "rcd" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' - custom_price = 900 + custom_price = PRICE_ABOVE_EXPENSIVE + custom_premium_price = PRICE_ALMOST_ONE_GRAND max_matter = 160 item_flags = NO_MAT_REDEMPTION | NOBLUDGEON has_ammobar = TRUE @@ -745,7 +746,7 @@ RLD if(istype(A, /obj/machinery/light/)) if(checkResource(deconcost, user)) to_chat(user, "You start deconstructing [A]...") - user.Beam(A,icon_state="nzcrentrs_power",time=15) + user.Beam(A,icon_state="light_beam",time=15) playsound(src.loc, 'sound/machines/click.ogg', 50, 1) if(do_after(user, decondelay, target = A)) if(!useResource(deconcost, user)) @@ -759,7 +760,7 @@ RLD var/turf/closed/wall/W = A if(checkResource(floorcost, user)) to_chat(user, "You start building a wall light...") - user.Beam(A,icon_state="nzcrentrs_power",time=15) + user.Beam(A,icon_state="light_beam",time=15) playsound(src.loc, 'sound/machines/click.ogg', 50, 1) playsound(src.loc, 'sound/effects/light_flicker.ogg', 50, 0) if(do_after(user, floordelay, target = A)) @@ -805,7 +806,7 @@ RLD var/turf/open/floor/F = A if(checkResource(floorcost, user)) to_chat(user, "You start building a floor light...") - user.Beam(A,icon_state="nzcrentrs_power",time=15) + user.Beam(A,icon_state="light_beam",time=15) playsound(src.loc, 'sound/machines/click.ogg', 50, 1) playsound(src.loc, 'sound/effects/light_flicker.ogg', 50, 1) if(do_after(user, floordelay, target = A)) @@ -834,6 +835,12 @@ RLD return TRUE return FALSE +/obj/item/construction/rld/mini + name = "mini-rapid-light-device (MRLD)" + desc = "A device used to rapidly provide lighting sources to an area. Reload with metal, plasteel, glass or compressed matter cartridges." + matter = 100 + max_matter = 100 + /obj/item/rcd_upgrade name = "RCD advanced design disk" desc = "It seems to be empty." diff --git a/code/game/objects/items/RCL.dm b/code/game/objects/items/RCL.dm index f3ea461c74..6e305c30ee 100644 --- a/code/game/objects/items/RCL.dm +++ b/code/game/objects/items/RCL.dm @@ -1,4 +1,4 @@ -/obj/item/twohanded/rcl +/obj/item/rcl name = "rapid cable layer" desc = "A device used to rapidly deploy cables. It has screws on the side which can be removed to slide off the cables. Do not use without insulation!" icon = 'icons/obj/tools.dmi' @@ -23,15 +23,26 @@ var/datum/radial_menu/persistent/wiring_gui_menu var/mob/listeningTo -/obj/item/twohanded/rcl/Initialize() +/obj/item/rcl/Initialize() . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) update_icon() -/obj/item/twohanded/rcl/ComponentInitialize() +/obj/item/rcl/ComponentInitialize() . = ..() AddElement(/datum/element/update_icon_updates_onmob) + AddComponent(/datum/component/two_handed) -/obj/item/twohanded/rcl/attackby(obj/item/W, mob/user) +/// triggered on wield of two handed item +/obj/item/rcl/proc/on_wield(obj/item/source, mob/user) + active = TRUE + +/// triggered on unwield of two handed item +/obj/item/rcl/proc/on_unwield(obj/item/source, mob/user) + active = FALSE + +/obj/item/rcl/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/C = W @@ -86,26 +97,26 @@ else ..() -/obj/item/twohanded/rcl/examine(mob/user) +/obj/item/rcl/examine(mob/user) . = ..() if(loaded) . += "It contains [loaded.amount]/[max_amount] cables." -/obj/item/twohanded/rcl/Destroy() +/obj/item/rcl/Destroy() QDEL_NULL(loaded) last = null listeningTo = null QDEL_NULL(wiring_gui_menu) return ..() -/obj/item/twohanded/rcl/update_icon_state() +/obj/item/rcl/update_icon_state() icon_state = initial(icon_state) item_state = initial(item_state) if(!loaded || !loaded.amount) icon_state += "-empty" item_state += "-0" -/obj/item/twohanded/rcl/update_overlays() +/obj/item/rcl/update_overlays() . = ..() if(!loaded || !loaded.amount) return @@ -113,7 +124,7 @@ cable_overlay.color = GLOB.cable_colors[colors[current_color_index]] . += cable_overlay -/obj/item/twohanded/rcl/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) +/obj/item/rcl/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands || !(loaded?.amount)) return @@ -121,7 +132,7 @@ cable_overlay.color = GLOB.cable_colors[colors[current_color_index]] . += cable_overlay -/obj/item/twohanded/rcl/proc/is_empty(mob/user, loud = 1) +/obj/item/rcl/proc/is_empty(mob/user, loud = 1) update_icon() if(!loaded || !loaded.amount) if(loud) @@ -130,26 +141,23 @@ QDEL_NULL(loaded) loaded = null QDEL_NULL(wiring_gui_menu) - unwield(user) - active = wielded return TRUE return FALSE -/obj/item/twohanded/rcl/pickup(mob/user) +/obj/item/rcl/pickup(mob/user) ..() getMobhook(user) -/obj/item/twohanded/rcl/dropped(mob/wearer) +/obj/item/rcl/dropped(mob/wearer) ..() UnregisterSignal(wearer, COMSIG_MOVABLE_MOVED) listeningTo = null last = null -/obj/item/twohanded/rcl/attack_self(mob/user) +/obj/item/rcl/attack_self(mob/user) ..() - active = wielded if(!active) last = null else if(!last) @@ -158,7 +166,7 @@ last = C break -obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) +obj/item/rcl/proc/getMobhook(mob/to_hook) if(listeningTo == to_hook) return if(listeningTo) @@ -166,7 +174,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) RegisterSignal(to_hook, COMSIG_MOVABLE_MOVED, .proc/trigger) listeningTo = to_hook -/obj/item/twohanded/rcl/proc/trigger(mob/user) +/obj/item/rcl/proc/trigger(mob/user) if(active) layCable(user) if(wiring_gui_menu) //update the wire options as you move @@ -174,7 +182,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) //previous contents of trigger(), lays cable each time the player moves -/obj/item/twohanded/rcl/proc/layCable(mob/user) +/obj/item/rcl/proc/layCable(mob/user) if(!isturf(user.loc)) return if(is_empty(user, 0)) @@ -207,7 +215,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) update_icon() //searches the current tile for a stub cable of the same colour -/obj/item/twohanded/rcl/proc/findLinkingCable(mob/user) +/obj/item/rcl/proc/findLinkingCable(mob/user) var/turf/T if(!isturf(user.loc)) return @@ -223,10 +231,8 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) continue if(C.d1 == 0) return C - return - -/obj/item/twohanded/rcl/proc/wiringGuiGenerateChoices(mob/user) +/obj/item/rcl/proc/wiringGuiGenerateChoices(mob/user) var/fromdir = 0 var/obj/structure/cable/linkingCable = findLinkingCable(user) if(linkingCable) @@ -243,12 +249,12 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) wiredirs[icondir] = img return wiredirs -/obj/item/twohanded/rcl/proc/showWiringGui(mob/user) +/obj/item/rcl/proc/showWiringGui(mob/user) var/list/choices = wiringGuiGenerateChoices(user) wiring_gui_menu = show_radial_menu_persistent(user, src , choices, select_proc = CALLBACK(src, .proc/wiringGuiReact, user), radius = 42) -/obj/item/twohanded/rcl/proc/wiringGuiUpdate(mob/user) +/obj/item/rcl/proc/wiringGuiUpdate(mob/user) if(!wiring_gui_menu) return @@ -259,7 +265,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) //Callback used to respond to interactions with the wiring menu -/obj/item/twohanded/rcl/proc/wiringGuiReact(mob/living/user,choice) +/obj/item/rcl/proc/wiringGuiReact(mob/living/user,choice) if(!choice) //close on a null choice (the center button) QDEL_NULL(wiring_gui_menu) return @@ -290,7 +296,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) wiringGuiUpdate(user) -/obj/item/twohanded/rcl/ui_action_click(mob/user, action) +/obj/item/rcl/ui_action_click(mob/user, action) if(istype(action, /datum/action/item_action/rcl_col)) current_color_index++; if (current_color_index > colors.len) @@ -308,13 +314,13 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) else //open the menu showWiringGui(user) -/obj/item/twohanded/rcl/pre_loaded/Initialize() //Comes preloaded with cable, for testing stuff +/obj/item/rcl/pre_loaded/Initialize() //Comes preloaded with cable, for testing stuff loaded = new() loaded.max_amount = max_amount loaded.amount = max_amount return ..() -/obj/item/twohanded/rcl/ghetto +/obj/item/rcl/ghetto actions_types = list() max_amount = 30 name = "makeshift rapid cable layer" diff --git a/code/game/objects/items/RSF.dm b/code/game/objects/items/RSF.dm index 35843c1030..01b351edd0 100644 --- a/code/game/objects/items/RSF.dm +++ b/code/game/objects/items/RSF.dm @@ -7,7 +7,7 @@ RSF name = "\improper Rapid-Service-Fabricator" desc = "A device used to rapidly deploy service items." icon = 'icons/obj/tools.dmi' - icon_state = "rcd" + icon_state = "rsf" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' opacity = 0 @@ -110,7 +110,7 @@ RSF name = "Cookie Synthesizer" desc = "A self-recharging device used to rapidly deploy cookies." icon = 'icons/obj/tools.dmi' - icon_state = "rcd" + icon_state = "rsf" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' var/matter = 10 diff --git a/code/game/objects/items/airlock_painter.dm b/code/game/objects/items/airlock_painter.dm index 45fea91e49..c9a31a48c2 100644 --- a/code/game/objects/items/airlock_painter.dm +++ b/code/game/objects/items/airlock_painter.dm @@ -125,3 +125,112 @@ user.put_in_hands(ink) to_chat(user, "You remove [ink] from [src].") ink = null + + +/obj/item/airlock_painter/decal + name = "decal painter" + desc = "An airlock painter, reprogramed to use a different style of paint in order to apply decals for floor tiles as well, in addition to repainting doors. Decals break when the floor tiles are removed. Alt-Click to change design." + icon = 'icons/obj/objects.dmi' + icon_state = "decal_sprayer" + item_state = "decalsprayer" + custom_materials = list(/datum/material/iron=2000, /datum/material/glass=500) + var/stored_dir = 2 + var/stored_color = "" + var/stored_decal = "warningline" + var/stored_decal_total = "warningline" + var/color_list = list("","red","white") + var/dir_list = list(1,2,4,8) + var/decal_list = list(list("Warning Line","warningline"), + list("Warning Line Corner","warninglinecorner"), + list("Caution Label","caution"), + list("Directional Arrows","arrows"), + list("Stand Clear Label","stand_clear"), + list("Box","box"), + list("Box Corner","box_corners"), + list("Delivery Marker","delivery"), + list("Warning Box","warn_full")) + +/obj/item/airlock_painter/decal/afterattack(atom/target, mob/user, proximity) + . = ..() + var/turf/open/floor/F = target + if(!proximity) + to_chat(user, "You need to get closer!") + return + if(use_paint(user) && isturf(F)) + F.AddElement(/datum/element/decal, 'icons/turf/decals.dmi', stored_decal_total, turn(stored_dir, -dir2angle(F.dir)), CLEAN_STRONG, color, null, null, alpha) + +/obj/item/airlock_painter/decal/attack_self(mob/user) + if((ink) && (ink.charges >= 1)) + to_chat(user, "[src] beeps to prevent you from removing the toner until out of charges.") + return + . = ..() + +/obj/item/airlock_painter/decal/AltClick(mob/user) + . = ..() + ui_interact(user) + +/obj/item/airlock_painter/decal/Initialize() + . = ..() + ink = new /obj/item/toner/large(src) + +/obj/item/airlock_painter/decal/proc/update_decal_path() + var/yellow_fix = "" //This will have to do until someone refactor's markings.dm + if (stored_color) + yellow_fix = "_" + stored_decal_total = "[stored_decal][yellow_fix][stored_color]" + return + +/obj/item/airlock_painter/decal/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "decal_painter", name, 500, 400, master_ui, state) + ui.open() + +/obj/item/airlock_painter/decal/ui_data(mob/user) + var/list/data = list() + data["decal_direction"] = stored_dir + data["decal_color"] = stored_color + data["decal_style"] = stored_decal + data["decal_list"] = list() + data["color_list"] = list() + data["dir_list"] = list() + + for(var/i in decal_list) + data["decal_list"] += list(list( + "name" = i[1], + "decal" = i[2] + )) + for(var/j in color_list) + data["color_list"] += list(list( + "colors" = j + )) + for(var/k in dir_list) + data["dir_list"] += list(list( + "dirs" = k + )) + return data + +/obj/item/airlock_painter/decal/ui_act(action,list/params) + if(..()) + return + switch(action) + //Lists of decals and designs + if("select decal") + var/selected_decal = params["decals"] + stored_decal = selected_decal + if("select color") + var/selected_color = params["colors"] + stored_color = selected_color + if("selected direction") + var/selected_direction = text2num(params["dirs"]) + stored_dir = selected_direction + update_decal_path() + . = TRUE + +/obj/item/airlock_painter/decal/debug + name = "extreme decal painter" + icon_state = "decal_sprayer_ex" + +/obj/item/airlock_painter/decal/debug/Initialize() + . = ..() + ink = new /obj/item/toner/extreme(src) \ No newline at end of file diff --git a/code/game/objects/items/apc_frame.dm b/code/game/objects/items/apc_frame.dm index 1f6dff490d..3640db2d8a 100644 --- a/code/game/objects/items/apc_frame.dm +++ b/code/game/objects/items/apc_frame.dm @@ -58,18 +58,22 @@ /obj/item/wallframe/proc/after_attach(var/obj/O) transfer_fingerprints_to(O) -/obj/item/wallframe/attackby(obj/item/W, mob/user, params) - ..() - if(istype(W, /obj/item/screwdriver)) - // For camera-building borgs - var/turf/T = get_step(get_turf(user), user.dir) - if(iswallturf(T)) - T.attackby(src, user, params) +/obj/item/wallframe/screwdriver_act(mob/user, obj/item/I) + . = ..() + if(.) + return + // For camera-building borgs + var/turf/T = get_step(get_turf(user), user.dir) + if(iswallturf(T)) + T.attackby(src, user) +/obj/item/wallframe/wrench_act(mob/user, obj/item/I) + if(!custom_materials) + return var/metal_amt = round(custom_materials[SSmaterials.GetMaterialRef(/datum/material/iron)]/MINERAL_MATERIAL_AMOUNT) var/glass_amt = round(custom_materials[SSmaterials.GetMaterialRef(/datum/material/glass)]/MINERAL_MATERIAL_AMOUNT) - if(istype(W, /obj/item/wrench) && (metal_amt || glass_amt)) + if(metal_amt || glass_amt) to_chat(user, "You dismantle [src].") if(metal_amt) new /obj/item/stack/sheet/metal(get_turf(src), metal_amt) diff --git a/code/game/objects/items/binoculars.dm b/code/game/objects/items/binoculars.dm new file mode 100644 index 0000000000..347f0ad3a7 --- /dev/null +++ b/code/game/objects/items/binoculars.dm @@ -0,0 +1,65 @@ +/obj/item/binoculars + name = "binoculars" + desc = "Used for long-distance surveillance." + item_state = "binoculars" + icon_state = "binoculars" + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' + slot_flags = ITEM_SLOT_BELT + w_class = WEIGHT_CLASS_SMALL + var/mob/listeningTo + var/zoom_out_amt = 6 + var/zoom_amt = 10 + +/obj/item/binoculars/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + +/obj/item/binoculars/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=8, force_wielded=12) + +/obj/item/binoculars/Destroy() + listeningTo = null + return ..() + +/obj/item/binoculars/proc/on_wield(obj/item/source, mob/user) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/unwield) + listeningTo = user + user.visible_message("[user] holds [src] up to [user.p_their()] eyes.", "You hold [src] up to your eyes.") + item_state = "binoculars_wielded" + user.regenerate_icons() + if(!user?.client) + return + var/client/C = user.client + var/_x = 0 + var/_y = 0 + switch(user.dir) + if(NORTH) + _y = zoom_amt + if(EAST) + _x = zoom_amt + if(SOUTH) + _y = -zoom_amt + if(WEST) + _x = -zoom_amt + C.change_view(world.view + zoom_out_amt) + C.pixel_x = world.icon_size*_x + C.pixel_y = world.icon_size*_y +/obj/item/binoculars/proc/on_unwield(obj/item/source, mob/user) + unwield(user) + +/obj/item/binoculars/proc/unwield(mob/user) + if(listeningTo) + UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED) + listeningTo = null + user.visible_message("[user] lowers [src].", "You lower [src].") + item_state = "binoculars" + user.regenerate_icons() + if(user && user.client) + user.regenerate_icons() + var/client/C = user.client + C.change_view(CONFIG_GET(string/default_view)) + user.client.pixel_x = 0 + user.client.pixel_y = 0 diff --git a/code/game/objects/items/broom.dm b/code/game/objects/items/broom.dm new file mode 100644 index 0000000000..225644109f --- /dev/null +++ b/code/game/objects/items/broom.dm @@ -0,0 +1,69 @@ +/obj/item/broom + name = "broom" + desc = "This is my BROOMSTICK! It can be used manually or braced with two hands to sweep items as you move. It has a telescopic handle for compact storage." + icon = 'icons/obj/janitor.dmi' + icon_state = "broom0" + lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi' + force = 8 + throwforce = 10 + throw_speed = 3 + throw_range = 7 + w_class = WEIGHT_CLASS_NORMAL + attack_verb = list("swept", "brushed off", "bludgeoned", "whacked") + resistance_flags = FLAMMABLE + +/obj/item/broom/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + +/obj/item/broom/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=8, force_wielded=12, icon_wielded="broom1") + +/obj/item/broom/update_icon_state() + icon_state = "broom0" + +/// triggered on wield of two handed item +/obj/item/broom/proc/on_wield(obj/item/source, mob/user) + to_chat(user, "You brace the [src] against the ground in a firm sweeping stance.") + RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/sweep) + +/// triggered on unwield of two handed item +/obj/item/broom/proc/on_unwield(obj/item/source, mob/user) + UnregisterSignal(user, COMSIG_MOVABLE_MOVED) + +/obj/item/broom/afterattack(atom/A, mob/user, proximity) + . = ..() + if(!proximity) + return + sweep(user, A, FALSE) + +/obj/item/broom/proc/sweep(mob/user, atom/A, moving = TRUE) + var/turf/target + if (!moving) + if (isturf(A)) + target = A + else + target = A.loc + else + target = user.loc + if (!isturf(target)) + return + if (locate(/obj/structure/table) in target.contents) + return + var/i = 0 + for(var/obj/item/garbage in target.contents) + if(!garbage.anchored) + garbage.Move(get_step(target, user.dir), user.dir) + i++ + if(i >= 20) + break + if(i >= 1) + playsound(loc, 'sound/weapons/thudswoosh.ogg', 30, TRUE, -1) + +/obj/item/broom/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) //bless you whoever fixes this copypasta + J.put_in_cart(src, user) + J.mybroom=src + J.update_icon() diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 8a5723e894..58d907e14b 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -83,7 +83,7 @@ /obj/item/card/emag/bluespace name = "bluespace cryptographic sequencer" desc = "It's a blue card with a magnetic strip attached to some circuitry. It appears to have some sort of transmitter attached to it." - color = rgb(40, 130, 255) + icon_state = "emag_bs" prox_check = FALSE /obj/item/card/emag/attack() @@ -166,6 +166,7 @@ slot_flags = ITEM_SLOT_ID armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) resistance_flags = FIRE_PROOF | ACID_PROOF + var/id_type_name = "identification card" var/mining_points = 0 //For redeeming at mining equipment vendors var/list/access = list() var/registered_name = null // The name registered_name on the card @@ -174,6 +175,8 @@ var/bank_support = ID_FREE_BANK_ACCOUNT var/datum/bank_account/registered_account var/obj/machinery/paystand/my_store + var/uses_overlays = TRUE + var/icon/cached_flat_icon /obj/item/card/id/Initialize(mapload) . = ..() @@ -187,6 +190,15 @@ if(ID_LOCKED_BANK_ACCOUNT) registered_account = new /datum/bank_account/remote/non_transferable(pick(GLOB.redacted_strings)) +/obj/item/card/id/Destroy() + if(bank_support == ID_LOCKED_BANK_ACCOUNT) + QDEL_NULL(registered_account) + else + registered_account = null + if(my_store) + my_store.my_card = null + my_store = null + return ..() /obj/item/card/id/vv_edit_var(var_name, var_value) . = ..() @@ -311,20 +323,19 @@ registered_account.bank_card_talk("ERROR: UNABLE TO LOGIN DUE TO SCHEDULED MAINTENANCE. MAINTENANCE IS SCHEDULED TO COMPLETE IN [(registered_account.withdrawDelay - world.time)/10] SECONDS.", TRUE) return - var/amount_to_remove = FLOOR(input(user, "How much do you want to withdraw? Current Balance: [registered_account.account_balance]", "Withdraw Funds", 5) as num|null, 1) + var/amount_to_remove = input(user, "How much do you want to withdraw? Current Balance: [registered_account.account_balance]", "Withdraw Funds", 5) as num|null if(!amount_to_remove || amount_to_remove < 0) return if(!alt_click_can_use_id(user)) return - if(registered_account.adjust_money(-amount_to_remove)) + amount_to_remove = FLOOR(min(amount_to_remove, registered_account.account_balance), 1) + if(amount_to_remove && registered_account.adjust_money(-amount_to_remove)) var/obj/item/holochip/holochip = new (user.drop_location(), amount_to_remove) user.put_in_hands(holochip) to_chat(user, "You withdraw [amount_to_remove] credits into a holochip.") return - else - var/difference = amount_to_remove - registered_account.account_balance - registered_account.bank_card_talk("ERROR: The linked account requires [difference] more credit\s to perform that withdrawal.", TRUE) + registered_account.bank_card_talk("ERROR: The linked account has no sufficient credits to perform that withdrawal.", TRUE) /obj/item/card/id/examine(mob/user) . = ..() @@ -354,20 +365,38 @@ /obj/item/card/id/RemoveID() return src -/* -Usage: -update_label() - Sets the id name to whatever registered_name and assignment is +/obj/item/card/id/update_overlays() + . = ..() + if(!uses_overlays) + return + cached_flat_icon = null + var/job = assignment ? ckey(GetJobName()) : null + if(registered_name == "Captain") + job = "captain" + if(registered_name && registered_name != "Captain") + . += mutable_appearance(icon, "assigned") + if(job) + . += mutable_appearance(icon, "id[job]") + +/obj/item/card/id/proc/get_cached_flat_icon() + if(!cached_flat_icon) + cached_flat_icon = getFlatIcon(src) + return cached_flat_icon + + +/obj/item/card/id/get_examine_string(mob/user, thats = FALSE) + if(uses_overlays) + return "[icon2html(get_cached_flat_icon(), user)] [thats? "That's ":""][get_examine_name(user)]" //displays all overlays in chat + return ..() -update_label("John Doe", "Clowny") - Properly formats the name and occupation and sets the id name to the arguments -*/ /obj/item/card/id/proc/update_label(newname, newjob) if(newname || newjob) name = "[(!newname) ? "identification card" : "[newname]'s ID Card"][(!newjob) ? "" : " ([newjob])"]" + update_icon() return name = "[(!registered_name) ? "identification card" : "[registered_name]'s ID Card"][(!assignment) ? "" : " ([assignment])"]" + update_icon() /obj/item/card/id/silver name = "silver identification card" @@ -380,6 +409,7 @@ update_label("John Doe", "Clowny") /obj/item/card/id/silver/reaper name = "Thirteen's ID Card (Reaper)" access = list(ACCESS_MAINT_TUNNELS) + icon_state = "reaper" assignment = "Reaper" registered_name = "Thirteen" @@ -531,7 +561,7 @@ update_label("John Doe", "Clowny") /obj/item/card/id/ert name = "\improper CentCom ID" desc = "An ERT ID card." - icon_state = "centcom" + icon_state = "ert_commander" registered_name = "Emergency Response Team Commander" assignment = "Emergency Response Team Commander" @@ -540,6 +570,7 @@ update_label("John Doe", "Clowny") . = ..() /obj/item/card/id/ert/Security + icon_state = "ert_security" registered_name = "Security Response Officer" assignment = "Security Response Officer" @@ -548,6 +579,7 @@ update_label("John Doe", "Clowny") . = ..() /obj/item/card/id/ert/Engineer + icon_state = "ert_engineer" registered_name = "Engineer Response Officer" assignment = "Engineer Response Officer" @@ -556,6 +588,7 @@ update_label("John Doe", "Clowny") . = ..() /obj/item/card/id/ert/Medical + icon_state = "ert_medical" registered_name = "Medical Response Officer" assignment = "Medical Response Officer" @@ -564,6 +597,7 @@ update_label("John Doe", "Clowny") . = ..() /obj/item/card/id/ert/chaplain + icon_state = "ert_chaplain" registered_name = "Religious Response Officer" assignment = "Religious Response Officer" @@ -616,40 +650,49 @@ update_label("John Doe", "Clowny") . += "Your sentence is up! You're free!" /obj/item/card/id/prisoner/one + icon_state = "prisoner_001" name = "Prisoner #13-001" registered_name = "Prisoner #13-001" /obj/item/card/id/prisoner/two + icon_state = "prisoner_002" name = "Prisoner #13-002" registered_name = "Prisoner #13-002" /obj/item/card/id/prisoner/three + icon_state = "prisoner_003" name = "Prisoner #13-003" registered_name = "Prisoner #13-003" /obj/item/card/id/prisoner/four + icon_state = "prisoner_004" name = "Prisoner #13-004" registered_name = "Prisoner #13-004" /obj/item/card/id/prisoner/five + icon_state = "prisoner_005" name = "Prisoner #13-005" registered_name = "Prisoner #13-005" /obj/item/card/id/prisoner/six + icon_state = "prisoner_006" name = "Prisoner #13-006" registered_name = "Prisoner #13-006" /obj/item/card/id/prisoner/seven + icon_state = "prisoner_007" name = "Prisoner #13-007" registered_name = "Prisoner #13-007" /obj/item/card/id/mining name = "mining ID" + icon_state = "retro" access = list(ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MAILSORTING, ACCESS_MINERAL_STOREROOM) /obj/item/card/id/away name = "a perfectly generic identification card" desc = "A perfectly generic identification card. Looks like it could use some flavor." + icon_state = "retro" access = list(ACCESS_AWAY_GENERAL) /obj/item/card/id/away/hotel @@ -692,6 +735,7 @@ update_label("John Doe", "Clowny") /obj/item/card/id/departmental_budget name = "departmental card (FUCK)" desc = "Provides access to the departmental budget." + icon_state = "budgetcard" var/department_ID = ACCOUNT_CIV var/department_name = ACCOUNT_CIV_NAME @@ -704,6 +748,7 @@ update_label("John Doe", "Clowny") B.bank_cards += src name = "departmental card ([department_name])" desc = "Provides access to the [department_name]." + icon_state = "[lowertext(department_ID)]_budget" SSeconomy.dep_cards += src /obj/item/card/id/departmental_budget/Destroy() diff --git a/code/game/objects/items/chainsaw.dm b/code/game/objects/items/chainsaw.dm new file mode 100644 index 0000000000..f382aa1ed3 --- /dev/null +++ b/code/game/objects/items/chainsaw.dm @@ -0,0 +1,93 @@ + +// CHAINSAW +/obj/item/chainsaw + name = "chainsaw" + desc = "A versatile power tool. Useful for limbing trees and delimbing humans." + icon_state = "chainsaw_off" + lefthand_file = 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/chainsaw_righthand.dmi' + flags_1 = CONDUCT_1 + force = 13 + var/force_on = 24 + w_class = WEIGHT_CLASS_HUGE + throwforce = 13 + throw_speed = 2 + throw_range = 4 + custom_materials = list(/datum/material/iron=13000) + attack_verb = list("sawed", "torn", "cut", "chopped", "diced") + hitsound = "swing_hit" + sharpness = IS_SHARP + actions_types = list(/datum/action/item_action/startchainsaw) + tool_behaviour = TOOL_SAW + toolspeed = 0.5 + var/on = FALSE + var/wielded = FALSE // track wielded status on item + +/obj/item/chainsaw/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + +/obj/item/chainsaw/ComponentInitialize() + . = ..() + AddComponent(/datum/component/butchering, 30, 100, 0, 'sound/weapons/chainsawhit.ogg', TRUE) + AddComponent(/datum/component/two_handed, require_twohands=TRUE) + AddElement(/datum/element/update_icon_updates_onmob) + +/// triggered on wield of two handed item +/obj/item/chainsaw/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/chainsaw/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/chainsaw/suicide_act(mob/living/carbon/user) + if(on) + user.visible_message("[user] begins to tear [user.p_their()] head off with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(src, 'sound/weapons/chainsawhit.ogg', 100, 1) + var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD) + if(myhead) + myhead.dismember() + else + user.visible_message("[user] smashes [src] into [user.p_their()] neck, destroying [user.p_their()] esophagus! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(src, 'sound/weapons/genhit1.ogg', 100, 1) + return(BRUTELOSS) + +/obj/item/chainsaw/attack_self(mob/user) + on = !on + to_chat(user, "As you pull the starting cord dangling from [src], [on ? "it begins to whirr." : "the chain stops moving."]") + force = on ? force_on : initial(force) + throwforce = on ? force_on : force + update_icon() + var/datum/component/butchering/butchering = src.GetComponent(/datum/component/butchering) + butchering.butchering_enabled = on + + if(on) + hitsound = 'sound/weapons/chainsawhit.ogg' + else + hitsound = "swing_hit" + +/obj/item/chainsaw/update_icon_state() + icon_state = "chainsaw_[on ? "on" : "off"]" + +/obj/item/chainsaw/get_dismemberment_chance() + if(wielded) + . = ..() + +/obj/item/chainsaw/doomslayer + name = "THE GREAT COMMUNICATOR" + desc = "VRRRRRRR!!!" + armour_penetration = 100 + force_on = 30 + +/obj/item/chainsaw/doomslayer/check_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + block_return[BLOCK_RETURN_REFLECT_PROJECTILE_CHANCE] = 100 + return ..() + +/obj/item/chainsaw/doomslayer/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(attack_type & ATTACK_TYPE_PROJECTILE) + owner.visible_message("Ranged attacks just make [owner] angrier!") + playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, 1) + return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL + return ..() diff --git a/code/game/objects/items/chrono_eraser.dm b/code/game/objects/items/chrono_eraser.dm index a9f655a2c2..16bc6897c8 100644 --- a/code/game/objects/items/chrono_eraser.dm +++ b/code/game/objects/items/chrono_eraser.dm @@ -65,7 +65,7 @@ . = ..() AddElement(/datum/element/update_icon_blocker) -/obj/item/gun/energy/chrono_gun/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) +/obj/item/gun/energy/chrono_gun/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0, stam_cost = 0) if(field) field_disconnect(field) ..() diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 6ebeffe90f..de32375642 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -8,6 +8,9 @@ CIGARS SMOKING PIPES CHEAP LIGHTERS ZIPPO +ROLLING PAPER +VAPES +BONGS CIGARETTE PACKETS ARE IN FANCY.DM */ @@ -506,7 +509,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM resistance_flags = FIRE_PROOF light_color = LIGHT_COLOR_FIRE grind_results = list(/datum/reagent/iron = 1, /datum/reagent/fuel = 5, /datum/reagent/oil = 5) - custom_price = 55 + custom_price = PRICE_ALMOST_CHEAP /obj/item/lighter/Initialize() . = ..() @@ -616,6 +619,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM desc = "A cheap-as-free lighter." icon_state = "lighter" fancy = FALSE + custom_price = PRICE_CHEAP_AS_FREE overlay_list = list( "transp", "tall", @@ -790,6 +794,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM reagents.clear_reagents() /obj/item/clothing/mask/vape/equipped(mob/user, slot) + . = ..() if(slot == SLOT_WEAR_MASK) if(!screw) to_chat(user, "You start puffing on the vape.") @@ -799,6 +804,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM to_chat(user, "You need to close the cap first!") /obj/item/clothing/mask/vape/dropped(mob/user) + . = ..() var/mob/living/carbon/C = user if(C.get_item_by_slot(SLOT_WEAR_MASK) == src) ENABLE_BITFIELD(reagents.reagents_holder_flags, NO_REACT) diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm index 32c879e2d2..2fa48582f7 100644 --- a/code/game/objects/items/circuitboards/computer_circuitboards.dm +++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm @@ -14,6 +14,10 @@ name = "Security Cameras (Computer Board)" build_path = /obj/machinery/computer/security +/obj/item/circuitboard/computer/security/shuttle + name = "Shuttlelinking Security Cameras (Computer Board)" + build_path = /obj/machinery/computer/security/shuttle + /obj/item/circuitboard/computer/xenobiology name = "circuit board (Xenobiology Console)" build_path = /obj/machinery/computer/camera_advanced/xenobio @@ -112,9 +116,9 @@ build_path = /obj/machinery/computer/cloning var/list/records = list() -/obj/item/circuitboard/computer/prototype_cloning +/obj/item/circuitboard/computer/cloning/prototype name = "Prototype Cloning (Computer Board)" - build_path = /obj/machinery/computer/prototype_cloning + build_path = /obj/machinery/computer/cloning/prototype /obj/item/circuitboard/computer/arcade/battle name = "Arcade Battle (Computer Board)" @@ -293,6 +297,10 @@ name = "Mining Shuttle (Computer Board)" build_path = /obj/machinery/computer/shuttle/mining +/obj/item/circuitboard/computer/snow_taxi + name = "Snow Taxi (Computer Board)" + build_path = /obj/machinery/computer/shuttle/snow_taxi + /obj/item/circuitboard/computer/white_ship name = "White Ship (Computer Board)" build_path = /obj/machinery/computer/shuttle/white_ship @@ -375,3 +383,11 @@ /obj/item/circuitboard/computer/nanite_cloud_controller name = "Nanite Cloud Control (Computer Board)" build_path = /obj/machinery/computer/nanite_cloud_controller + +/obj/item/circuitboard/computer/shuttle/flight_control + name = "Shuttle Flight Control (Computer Board)" + build_path = /obj/machinery/computer/custom_shuttle + +/obj/item/circuitboard/computer/shuttle/docker + name = "Shuttle Navigation Computer (Computer Board)" + build_path = /obj/machinery/computer/camera_advanced/shuttle_docker/custom diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 0e3744cd84..56eb25f953 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -61,6 +61,14 @@ name = "Experimental Clone Pod (Machine Board)" build_path = /obj/machinery/clonepod/experimental +/obj/item/circuitboard/machine/sheetifier + name = "Sheet-meister 2000 (Machine Board)" + icon_state = "supply" + build_path = /obj/machinery/sheetifier + req_components = list( + /obj/item/stock_parts/manipulator = 2, + /obj/item/stock_parts/matter_bin = 2) + /obj/item/circuitboard/machine/abductor name = "alien board (Report This)" icon_state = "abductor_mod" @@ -692,6 +700,17 @@ def_components = list(/obj/item/stock_parts/cell = /obj/item/stock_parts/cell/high) needs_anchored = FALSE +/obj/item/circuitboard/machine/chem_dispenser/apothecary + name = "Apotechary Chem Dispenser (Machine Board)" + build_path = /obj/machinery/chem_dispenser/apothecary + req_components = list( + /obj/item/stock_parts/matter_bin = 1, + /obj/item/stock_parts/capacitor = 1, + /obj/item/stock_parts/manipulator = 1, + /obj/item/stack/sheet/glass = 1, + /obj/item/stock_parts/cell = 1) + def_components = list(/obj/item/stock_parts/cell = /obj/item/stock_parts/cell/upgraded/plus) + /obj/item/circuitboard/machine/chem_dispenser/drinks name = "Soda Dispenser (Machine Board)" build_path = /obj/machinery/chem_dispenser/drinks @@ -707,6 +726,10 @@ def_components = list(/obj/item/stock_parts/cell = /obj/item/stock_parts/cell/high) needs_anchored = FALSE +/obj/item/circuitboard/machine/sleeper/party + name = "Party Pod (Machine Board)" + build_path = /obj/machinery/sleeper/party + /obj/item/circuitboard/machine/smoke_machine name = "Smoke Machine (Machine Board)" build_path = /obj/machinery/smoke_machine @@ -884,6 +907,16 @@ name = "Departmental Protolathe - Service (Machine Board)" build_path = /obj/machinery/rnd/production/protolathe/department/service +/obj/item/circuitboard/machine/bepis + name = "BEPIS Chamber (Machine Board)" + build_path = /obj/machinery/rnd/bepis + req_components = list( + /obj/item/stack/cable_coil = 5, + /obj/item/stock_parts/capacitor = 1, + /obj/item/stock_parts/manipulator = 1, + /obj/item/stock_parts/micro_laser = 1, + /obj/item/stock_parts/scanning_module = 1) + /obj/item/circuitboard/machine/techfab name = "\improper Techfab (Machine Board)" build_path = /obj/machinery/rnd/production/techfab @@ -1068,3 +1101,37 @@ /obj/item/stock_parts/matter_bin = 3, /obj/item/stock_parts/manipulator = 1, /obj/item/stack/sheet/glass = 1) + +/obj/item/circuitboard/machine/hypnochair + name = "Enhanced Interrogation Chamber (Machine Board)" + icon_state = "security" + build_path = /obj/machinery/hypnochair + req_components = list( + /obj/item/stock_parts/micro_laser = 2, + /obj/item/stock_parts/scanning_module = 2 + ) + +/obj/item/circuitboard/machine/shuttle/engine + name = "Thruster (Machine Board)" + build_path = /obj/machinery/shuttle/engine + req_components = list() + +/obj/item/circuitboard/machine/shuttle/engine/plasma + name = "Plasma Thruster (Machine Board)" + build_path = /obj/machinery/shuttle/engine/plasma + req_components = list(/obj/item/stock_parts/capacitor = 2, + /obj/item/stack/cable_coil = 5, + /obj/item/stock_parts/micro_laser = 1) + +/obj/item/circuitboard/machine/shuttle/engine/void + name = "Void Thruster (Machine Board)" + build_path = /obj/machinery/shuttle/engine/void + req_components = list(/obj/item/stock_parts/capacitor/quadratic = 2, + /obj/item/stack/cable_coil = 5, + /obj/item/stock_parts/micro_laser/quadultra = 1) + +/obj/item/circuitboard/machine/shuttle/heater + name = "Electronic Engine Heater (Machine Board)" + build_path = /obj/machinery/atmospherics/components/unary/shuttle/heater + req_components = list(/obj/item/stock_parts/micro_laser = 2, + /obj/item/stock_parts/matter_bin = 1) diff --git a/code/game/objects/items/clown_items.dm b/code/game/objects/items/clown_items.dm index 050427702d..f5477ae5f6 100644 --- a/code/game/objects/items/clown_items.dm +++ b/code/game/objects/items/clown_items.dm @@ -88,6 +88,7 @@ var/obj/effect/decal/cleanable/C = locate() in target qdel(C) target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) + target.clean_blood() SEND_SIGNAL(target, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_MEDIUM) target.wash_cream() return @@ -180,4 +181,4 @@ name = "Canned Laughter" desc = "Just looking at this makes you want to giggle." icon_state = "laughter" - list_reagents = list(/datum/reagent/consumable/laughter = 50) \ No newline at end of file + list_reagents = list(/datum/reagent/consumable/laughter = 50) diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index f60edf2917..fc98da2c0d 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -91,6 +91,11 @@ refill() +/obj/item/toy/crayon/examine(mob/user) + . = ..() + if(can_change_colour) + . += "Ctrl-click [src] while it's on your person to quickly recolour it." + /obj/item/toy/crayon/proc/refill() if(charges == -1) charges_left = 100 @@ -160,6 +165,12 @@ update_icon() return TRUE +/obj/item/toy/crayon/CtrlClick(mob/user) + if(can_change_colour && !isturf(loc) && user.canUseTopic(src, BE_CLOSE, ismonkey(user))) + select_colour(user) + else + return ..() + /obj/item/toy/crayon/proc/staticDrawables() . = list() @@ -237,14 +248,7 @@ else paint_mode = PAINT_NORMAL if("select_colour") - if(can_change_colour) - var/chosen_colour = input(usr,"","Choose Color",paint_color) as color|null - - if (!isnull(chosen_colour)) - paint_color = chosen_colour - . = TRUE - else - . = FALSE + . = can_change_colour && select_colour(usr) if("enter_text") var/txt = stripped_input(usr,"Choose what to write.", "Scribbles",default = text_buffer) @@ -254,6 +258,13 @@ drawtype = "a" update_icon() +/obj/item/toy/crayon/proc/select_colour(mob/user) + var/chosen_colour = input(user, "", "Choose Color", paint_color) as color|null + if (!isnull(chosen_colour) && user.canUseTopic(src, BE_CLOSE, ismonkey(user))) + paint_color = chosen_colour + return TRUE + return FALSE + /obj/item/toy/crayon/proc/crayon_text_strip(text) var/static/regex/crayon_r = new /regex(@"[^\w!?,.=%#&+\/\-]") return replacetext(lowertext(text), crayon_r, "") @@ -726,12 +737,7 @@ to_chat(usr, "A color that dark on an object like this? Surely not...") return FALSE - - if(istype(target, /obj/structure/window)) - var/obj/structure/window/W = target - W.spraycan_paint(paint_color) - else - target.add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY) + target.add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY) . = use_charges(user, 2) var/fraction = min(1, . / reagents.maximum_volume) diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 3ac3347222..b683ea9934 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -19,7 +19,7 @@ var/on = FALSE //if the paddles are equipped (1) or on the defib (0) var/safety = TRUE //if you can zap people with the defibs on harm mode var/powered = FALSE //if there's a cell in the defib with enough power for a revive, blocks paddles from reviving otherwise - var/obj/item/twohanded/shockpaddles/paddles + var/obj/item/shockpaddles/paddles var/obj/item/stock_parts/cell/cell var/combat = FALSE //can we revive through space suits? var/grab_ghost = FALSE // Do we pull the ghost back into their body? @@ -106,7 +106,6 @@ /obj/item/defibrillator/attackby(obj/item/W, mob/user, params) if(W == paddles) - paddles.unwield() toggle_paddles() else if(istype(W, /obj/item/stock_parts/cell)) var/obj/item/stock_parts/cell/C = W @@ -170,7 +169,6 @@ return else //Remove from their hands and back onto the defib unit - paddles.unwield() remove_paddles(user) update_power() @@ -179,7 +177,7 @@ A.UpdateButtonIcon() /obj/item/defibrillator/proc/make_paddles() - return new /obj/item/twohanded/shockpaddles(src) + return new /obj/item/shockpaddles(src) /obj/item/defibrillator/equipped(mob/user, slot) ..() @@ -256,13 +254,12 @@ /obj/item/defibrillator/compact/combat/loaded/attackby(obj/item/W, mob/user, params) if(W == paddles) - paddles.unwield() toggle_paddles() return //paddles -/obj/item/twohanded/shockpaddles +/obj/item/shockpaddles name = "defibrillator paddles" desc = "A pair of plastic-gripped paddles with flat metal surfaces that are used to deliver powerful electric shocks." icon = 'icons/obj/items_and_weapons.dmi' @@ -284,24 +281,48 @@ var/grab_ghost = FALSE var/tlimit = DEFIB_TIME_LIMIT * 10 var/disarm_shock_time = 10 + var/wielded = FALSE // track wielded status on item - var/mob/listeningTo +/obj/item/shockpaddles/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + if(!req_defib) + return //If it doesn't need a defib, just say it exists + if (!loc || !istype(loc, /obj/item/defibrillator)) //To avoid weird issues from admin spawns + return INITIALIZE_HINT_QDEL + defib = loc + busy = FALSE + update_icon() -/obj/item/twohanded/shockpaddles/ComponentInitialize() +/obj/item/shockpaddles/ComponentInitialize() . = ..() AddElement(/datum/element/update_icon_updates_onmob) + AddComponent(/datum/component/two_handed, force_unwielded=8, force_wielded=12) -/obj/item/twohanded/shockpaddles/equipped(mob/user, slot) +/// triggered on wield of two handed item +/obj/item/shockpaddles/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/shockpaddles/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/shockpaddles/Destroy() + defib = null + return ..() + +/obj/item/shockpaddles/equipped(mob/user, slot) . = ..() if(!req_defib) return RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/check_range) -/obj/item/twohanded/shockpaddles/Moved() +/obj/item/shockpaddles/Moved() . = ..() check_range() -/obj/item/twohanded/shockpaddles/proc/check_range() +/obj/item/shockpaddles/proc/check_range() if(!req_defib || !defib) return if(!in_range(src,defib)) @@ -312,7 +333,7 @@ visible_message("[src] snap back into [defib].") snap_back() -/obj/item/twohanded/shockpaddles/proc/recharge(var/time) +/obj/item/shockpaddles/proc/recharge(var/time) if(req_defib || !time) return cooldown = TRUE @@ -324,57 +345,36 @@ cooldown = FALSE update_icon() -/obj/item/twohanded/shockpaddles/New(mainunit) - ..() - if(check_defib_exists(mainunit, src) && req_defib) - defib = mainunit - forceMove(defib) - busy = FALSE - update_icon() - -/obj/item/twohanded/shockpaddles/update_icon_state() - icon_state = "defibpaddles[wielded]" - item_state = "defibpaddles[wielded]" - if(cooldown) - icon_state = "defibpaddles[wielded]_cooldown" - -/obj/item/twohanded/shockpaddles/suicide_act(mob/user) +/obj/item/shockpaddles/suicide_act(mob/user) user.visible_message("[user] is putting the live paddles on [user.p_their()] chest! It looks like [user.p_theyre()] trying to commit suicide!") if(req_defib) defib.deductcharge(revivecost) playsound(src, 'sound/machines/defib_zap.ogg', 50, 1, -1) return (OXYLOSS) -/obj/item/twohanded/shockpaddles/dropped(mob/user) +/obj/item/shockpaddles/update_icon_state() + icon_state = "defibpaddles[wielded]" + item_state = "defibpaddles[wielded]" + if(cooldown) + icon_state = "defibpaddles[wielded]_cooldown" + +/obj/item/shockpaddles/dropped(mob/user) if(!req_defib) return ..() if(user) UnregisterSignal(user, COMSIG_MOVABLE_MOVED) - var/obj/item/twohanded/offhand/O = user.get_inactive_held_item() - if(istype(O)) - O.unwield() if(user != loc) to_chat(user, "The paddles snap back into the main unit.") snap_back() - return unwield(user) -/obj/item/twohanded/shockpaddles/proc/snap_back() +/obj/item/shockpaddles/proc/snap_back() if(!defib) return defib.on = FALSE forceMove(defib) defib.update_power() -/obj/item/twohanded/shockpaddles/proc/check_defib_exists(mainunit, mob/living/carbon/M, obj/O) - if(!req_defib) - return TRUE //If it doesn't need a defib, just say it exists - if (!mainunit || !istype(mainunit, /obj/item/defibrillator)) //To avoid weird issues from admin spawns - qdel(O) - return FALSE - else - return TRUE - -/obj/item/twohanded/shockpaddles/attack(mob/M, mob/user) +/obj/item/shockpaddles/attack(mob/M, mob/user) if(busy) return @@ -426,18 +426,18 @@ do_help(H, user) -/obj/item/twohanded/shockpaddles/proc/shock_touching(dmg, mob/H) +/obj/item/shockpaddles/proc/shock_touching(dmg, mob/H) if(!H.pulledby || !isliving(H.pulledby)) return if(req_defib && defib.pullshocksafely) H.visible_message("The defibrillator safely discharges the excessive charge into the floor!") return var/mob/living/M = H.pulledby - if(M.electrocute_act(30, src)) + if(M.electrocute_act(30, H)) M.visible_message("[M] is electrocuted by [M.p_their()] contact with [H]!") M.emote("scream") -/obj/item/twohanded/shockpaddles/proc/do_disarm(mob/living/M, mob/living/user) +/obj/item/shockpaddles/proc/do_disarm(mob/living/M, mob/living/user) if(req_defib && defib.safety) return if(!req_defib && !combat) @@ -465,7 +465,7 @@ else recharge(60) -/obj/item/twohanded/shockpaddles/proc/do_harm(mob/living/carbon/H, mob/living/user) +/obj/item/shockpaddles/proc/do_harm(mob/living/carbon/H, mob/living/user) if(req_defib && defib.safety) return if(!req_defib && !combat) @@ -520,7 +520,7 @@ busy = FALSE update_icon() -/obj/item/twohanded/shockpaddles/proc/do_help(mob/living/carbon/H, mob/living/user) +/obj/item/shockpaddles/proc/do_help(mob/living/carbon/H, mob/living/user) user.visible_message("[user] begins to place [src] on [H]'s chest.", "You begin to place [src] on [H]'s chest...") busy = TRUE update_icon() @@ -677,14 +677,14 @@ return TRUE return ..() -/obj/item/twohanded/shockpaddles/cyborg +/obj/item/shockpaddles/cyborg name = "cyborg defibrillator paddles" icon = 'icons/obj/items_and_weapons.dmi' icon_state = "defibpaddles0" item_state = "defibpaddles0" req_defib = FALSE -/obj/item/twohanded/shockpaddles/cyborg/attack(mob/M, mob/user) +/obj/item/shockpaddles/cyborg/attack(mob/M, mob/user) if(iscyborg(user)) var/mob/living/silicon/robot/R = user if(R.emagged) @@ -696,7 +696,7 @@ . = ..() -/obj/item/twohanded/shockpaddles/syndicate +/obj/item/shockpaddles/syndicate name = "syndicate defibrillator paddles" desc = "A pair of paddles used to revive deceased operatives. It possesses both the ability to penetrate armor and to deliver powerful shocks offensively." combat = TRUE diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index aa8c61ae0c..fdc3aa30af 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -1,7 +1,7 @@ /obj/item/flashlight name = "flashlight" desc = "A hand-held emergency light." - custom_price = 100 + custom_price = PRICE_REALLY_CHEAP icon = 'icons/obj/lighting.dmi' icon_state = "flashlight" item_state = "flashlight" @@ -211,6 +211,7 @@ light_color = "#CDDDFF" flashlight_power = 0.9 hitsound = 'sound/weapons/genhit1.ogg' + custom_price = PRICE_ALMOST_CHEAP // the desk lamps are a bit special /obj/item/flashlight/lamp @@ -351,12 +352,13 @@ brightness_on = 6 // luminosity when on light_color = "#FFAA44" flashlight_power = 0.8 + custom_price = PRICE_CHEAP /obj/item/flashlight/lantern/jade name = "jade lantern" desc = "An ornate, green lantern." color = LIGHT_COLOR_GREEN - light_color = LIGHT_COLOR_GREEN + light_color = LIGHT_COLOR_GREEN /obj/item/flashlight/slime gender = PLURAL @@ -429,7 +431,7 @@ /obj/item/flashlight/glowstick name = "glowstick" desc = "A military-grade glowstick." - custom_price = 50 + custom_price = PRICE_CHEAP_AS_FREE w_class = WEIGHT_CLASS_SMALL brightness_on = 4 color = LIGHT_COLOR_GREEN diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index 9c94348fc2..c931d92379 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -135,7 +135,8 @@ outmsg = "You miss the lens of [C] with [src]!" //catpeople - for(var/mob/living/carbon/human/H in view(1,targloc)) + var/list/viewers = fov_viewers(1,targloc) + for(var/mob/living/carbon/human/H in viewers) if(!iscatperson(H) || H.incapacitated() || H.eye_blind ) continue if(!H.lying) @@ -150,7 +151,7 @@ H.visible_message("[H] stares at the light"," You stare at the light... ") //cats! - for(var/mob/living/simple_animal/pet/cat/C in view(1,targloc)) + for(var/mob/living/simple_animal/pet/cat/C in viewers) if(prob(50)) C.visible_message("[C] pounces on the light!","LIGHT!") C.Move(targloc) diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index 5b332cda46..7450cb937c 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -99,7 +99,7 @@ if(href_list["reset_radio_short"]) pai.unshort_radio() if(href_list["setlaws"]) - var/newlaws = stripped_multiline_input("Enter any additional directives you would like your pAI personality to follow. Note that these directives will not override the personality's allegiance to its imprinted master. Conflicting directives will be ignored.", "pAI Directive Configuration", MAX_MESSAGE_LEN) + var/newlaws = stripped_multiline_input(usr, "Enter any additional directives you would like your pAI personality to follow. Note that these directives will not override the personality's allegiance to its imprinted master. Conflicting directives will be ignored.", "pAI Directive Configuration", "", MAX_MESSAGE_LEN) if(newlaws && pai) pai.add_supplied_law(0,newlaws) if(href_list["toggle_holo"]) diff --git a/code/game/objects/items/devices/polycircuit.dm b/code/game/objects/items/devices/polycircuit.dm new file mode 100644 index 0000000000..fb15ce45dc --- /dev/null +++ b/code/game/objects/items/devices/polycircuit.dm @@ -0,0 +1,52 @@ +/obj/item/stack/circuit_stack + name = "polycircuit aggregate" + desc = "A dense, overdesigned cluster of electronics which attempted to function as a multipurpose circuit electronic. Circuits can be removed from it... if you don't bleed out in the process." + icon_state = "circuit_mess" + item_state = "rods" + w_class = WEIGHT_CLASS_TINY + max_amount = 8 + var/circuit_type = /obj/item/electronics/airlock + var/chosen_circuit = "airlock" + +/obj/item/stack/circuit_stack/attack_self(mob/user)// Prevents the crafting menu, and tells you how to use it. + to_chat(user, "You can't use [src] by itself, you'll have to try and remove one of these circuits by hand... carefully.") + +/obj/item/stack/circuit_stack/attack_hand(mob/user) + var/mob/living/carbon/human/H = user + if(!user.get_inactive_held_item() == src) + return ..() + else + if(zero_amount()) + return + chosen_circuit = input("What type of circuit would you like to remove?", "Choose a Circuit Type", chosen_circuit) in list("airlock","firelock","fire alarm","air alarm","APC") + if(zero_amount()) + return + switch(chosen_circuit) + if("airlock") + circuit_type = /obj/item/electronics/airlock + if("firelock") + circuit_type = /obj/item/electronics/firelock + if("fire alarm") + circuit_type = /obj/item/electronics/firealarm + if("air alarm") + circuit_type = /obj/item/electronics/airalarm + if("APC") + circuit_type = /obj/item/electronics/apc + to_chat(user, "You spot your circuit, and carefully attempt to remove it from [src], hold still!") + if(do_after(user, 30, target = user)) + if(!src || QDELETED(src))//Sanity Check. + return + var/returned_circuit = new circuit_type(src) + user.put_in_hands(returned_circuit) + use(1) + if(!amount) + to_chat(user, "You navigate the sharp edges of circuitry and remove the last board.") + else + to_chat(user, "You navigate the sharp edges of circuitry and remove a single board from [src]") + else + H.apply_damage(15, BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) + to_chat(user, "You give yourself a wicked cut on [src]'s many sharp corners and edges!") + ..() + +/obj/item/stack/circuit_stack/full + amount = 8 diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 5728a97dda..6ac2d310a1 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -258,6 +258,9 @@ GLOBAL_LIST_INIT(channel_tokens, list( name = "\proper mini Integrated Subspace Transceiver " subspace_transmission = FALSE +/obj/item/radio/headset/silicon/pai/ComponentInitialize() + . = ..() + AddElement(/datum/element/empprotection, EMP_PROTECT_WIRES) /obj/item/radio/headset/silicon/ai name = "\proper Integrated Subspace Transceiver " diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index ada598866b..f4c317c8ba 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -2,6 +2,7 @@ name = "station intercom" desc = "Talk through this." icon_state = "intercom" + plane = ABOVE_WALL_PLANE anchored = TRUE w_class = WEIGHT_CLASS_BULKY canhear_range = 2 diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 897f452091..5fe9de75aa 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -98,7 +98,7 @@ /obj/item/radio/ComponentInitialize() . = ..() - AddComponent(/datum/component/empprotection, EMP_PROTECT_WIRES) + AddElement(/datum/element/empprotection, EMP_PROTECT_WIRES) /obj/item/radio/interact(mob/user) if(unscrewed && !isAI(user)) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index a6b2673a5a..bc6a721d13 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -6,12 +6,14 @@ T-RAY HEALTH ANALYZER GAS ANALYZER SLIME SCANNER +NANITE SCANNER +GENETICS SCANNER */ /obj/item/t_scanner name = "\improper T-ray scanner" desc = "A terahertz-ray emitter and scanner used to detect underfloor objects such as cables and pipes." - custom_price = 150 + custom_price = PRICE_REALLY_CHEAP icon = 'icons/obj/device.dmi' icon_state = "t-ray0" var/on = FALSE @@ -650,9 +652,10 @@ SLIME SCANNER amount += inaccurate return DisplayTimeText(max(1,amount)) -/proc/atmosanalyzer_scan(mixture, mob/living/user, atom/target = src) +/proc/atmosanalyzer_scan(mixture, mob/living/user, atom/target = src, visible = TRUE) var/icon = target - user.visible_message("[user] has used the analyzer on [icon2html(icon, viewers(user))] [target].", "You use the analyzer on [icon2html(icon, user)] [target].") + if(visible) + user.visible_message("[user] has used the analyzer on [icon2html(icon, viewers(user))] [target].", "You use the analyzer on [icon2html(icon, user)] [target].") to_chat(user, "Results of analysis of [icon2html(icon, user)] [target].") var/list/airs = islist(mixture) ? mixture : list(mixture) diff --git a/code/game/objects/items/devices/sensor_device.dm b/code/game/objects/items/devices/sensor_device.dm index a92d9221c2..a1f4994a64 100644 --- a/code/game/objects/items/devices/sensor_device.dm +++ b/code/game/objects/items/devices/sensor_device.dm @@ -5,7 +5,7 @@ icon_state = "scanner" w_class = WEIGHT_CLASS_SMALL slot_flags = ITEM_SLOT_BELT - custom_price = 900 + custom_price = PRICE_ABOVE_EXPENSIVE /obj/item/sensor_device/attack_self(mob/user) GLOB.crewmonitor.show(user,src) //Proc already exists, just had to call it diff --git a/code/game/objects/items/dualsaber.dm b/code/game/objects/items/dualsaber.dm new file mode 100644 index 0000000000..8c7049c713 --- /dev/null +++ b/code/game/objects/items/dualsaber.dm @@ -0,0 +1,353 @@ +/* + * Double-Bladed Energy Swords - Cheridan + */ +/obj/item/dualsaber + icon_state = "dualsaber0" + lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' + name = "double-bladed energy sword" + desc = "Handle with care." + force = 3 + throwforce = 5 + throw_speed = 3 + throw_range = 5 + w_class = WEIGHT_CLASS_SMALL + item_flags = SLOWS_WHILE_IN_HAND + var/w_class_on = WEIGHT_CLASS_BULKY + hitsound = "swing_hit" + var/hitsound_on = 'sound/weapons/blade1.ogg' + armour_penetration = 35 + var/saber_color = "green" + light_color = "#00ff00"//green + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + max_integrity = 200 + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70) + resistance_flags = FIRE_PROOF + block_parry_data = /datum/block_parry_data/dual_esword + var/hacked = FALSE + /// Can this reflect all energy projectiles? + var/can_reflect = TRUE + var/brightness_on = 6 //TWICE AS BRIGHT AS A REGULAR ESWORD + var/list/possible_colors = list("red", "blue", "green", "purple") + var/list/rainbow_colors = list(LIGHT_COLOR_RED, LIGHT_COLOR_GREEN, LIGHT_COLOR_LIGHT_CYAN, LIGHT_COLOR_LAVENDER) + var/spinnable = TRUE + total_mass = 0.4 //Survival flashlights typically weigh around 5 ounces. + var/total_mass_on = 3.4 + var/wielded = FALSE // track wielded status on item + var/slowdown_wielded = 0 + +/datum/block_parry_data/dual_esword + block_damage_absorption = 2 + block_damage_multiplier = 0.15 + block_damage_multiplier_override = list( + ATTACK_TYPE_MELEE = 0.25 + ) + block_start_delay = 0 // instantaneous block + block_stamina_cost_per_second = 2.5 + block_stamina_efficiency = 3 + block_lock_sprinting = TRUE + // no attacking while blocking + block_lock_attacking = TRUE + block_projectile_mitigation = 75 + + parry_time_windup = 0 + parry_time_active = 8 + parry_time_spindown = 0 + // we want to signal to players the most dangerous phase, the time when automatic counterattack is a thing. + parry_time_windup_visual_override = 1 + parry_time_active_visual_override = 3 + parry_time_spindown_visual_override = 4 + parry_flags = PARRY_DEFAULT_HANDLE_FEEDBACK // esword users can attack while parrying. + parry_time_perfect = 2 // first ds isn't perfect + parry_time_perfect_leeway = 1 + parry_imperfect_falloff_percent = 10 + parry_efficiency_to_counterattack = 100 + parry_efficiency_considered_successful = 25 // VERY generous + parry_efficiency_perfect = 90 + parry_failed_stagger_duration = 3 SECONDS + parry_failed_clickcd_duration = CLICK_CD_MELEE + + // more efficient vs projectiles + block_stamina_efficiency_override = list( + TEXT_ATTACK_TYPE_PROJECTILE = 4 + ) + +/obj/item/dualsaber/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + +/obj/item/dualsaber/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=3, force_wielded=34, \ + wieldsound='sound/weapons/saberon.ogg', unwieldsound='sound/weapons/saberoff.ogg') + +/obj/item/dualsaber/Initialize() + . = ..() + if(LAZYLEN(possible_colors)) + saber_color = pick(possible_colors) + switch(saber_color) + if("red") + light_color = LIGHT_COLOR_RED + if("green") + light_color = LIGHT_COLOR_GREEN + if("blue") + light_color = LIGHT_COLOR_LIGHT_CYAN + if("purple") + light_color = LIGHT_COLOR_LAVENDER + +/// Triggered on wield of two handed item +/// Specific hulk checks due to reflection chance for balance issues and switches hitsounds. +/obj/item/dualsaber/proc/on_wield(obj/item/source, mob/living/carbon/user) + if(user.has_dna() && user.dna.check_mutation(HULK)) + to_chat(user, "You lack the grace to wield this!") + return COMPONENT_TWOHANDED_BLOCK_WIELD + wielded = TRUE + sharpness = IS_SHARP + w_class = w_class_on + total_mass = total_mass_on + hitsound = 'sound/weapons/blade1.ogg' + slowdown += slowdown_wielded + START_PROCESSING(SSobj, src) + set_light(brightness_on) + AddElement(/datum/element/sword_point) + item_flags |= (ITEM_CAN_BLOCK|ITEM_CAN_PARRY) + +/// Triggered on unwield of two handed item +/// switch hitsounds +/obj/item/dualsaber/proc/on_unwield(obj/item/source, mob/living/carbon/user) + sharpness = initial(sharpness) + w_class = initial(w_class) + total_mass = initial(total_mass) + wielded = FALSE + hitsound = "swing_hit" + slowdown_wielded -= slowdown_wielded + STOP_PROCESSING(SSobj, src) + set_light(0) + RemoveElement(/datum/element/sword_point) + item_flags &= ~(ITEM_CAN_BLOCK|ITEM_CAN_PARRY) + +/obj/item/dualsaber/Destroy() + STOP_PROCESSING(SSobj, src) + . = ..() + +/obj/item/dualsaber/update_icon_state() + if(wielded) + icon_state = "dualsaber[saber_color][wielded]" + else + icon_state = "dualsaber0" + clean_blood() + +/obj/item/dualsaber/suicide_act(mob/living/carbon/user) + if(wielded) + user.visible_message("[user] begins spinning way too fast! It looks like [user.p_theyre()] trying to commit suicide!") + var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD)//stole from chainsaw code + var/obj/item/organ/brain/B = user.getorganslot(ORGAN_SLOT_BRAIN) + B.organ_flags &= ~ORGAN_VITAL //this cant possibly be a good idea + var/randdir + for(var/i in 1 to 24)//like a headless chicken! + if(user.is_holding(src)) + randdir = pick(GLOB.alldirs) + user.Move(get_step(user, randdir),randdir) + user.emote("spin") + if (i == 3 && myhead) + myhead.drop_limb() + sleep(3) + else + user.visible_message("[user] panics and starts choking to death!") + return OXYLOSS + else + user.visible_message("[user] begins beating [user.p_them()]self to death with \the [src]'s handle! It probably would've been cooler if [user.p_they()] turned it on first!") + return BRUTELOSS + +/obj/item/dualsaber/attack(mob/target, mob/living/carbon/human/user) + if(user.has_dna() && user.dna.check_mutation(HULK)) + to_chat(user, "You grip the blade too hard and accidentally drop it!") + user.dropItemToGround(src) + return + ..() + if(HAS_TRAIT(user, TRAIT_CLUMSY) && (wielded) && prob(40)) + impale(user) + return + if(spinnable && (wielded) && prob(50)) + INVOKE_ASYNC(src, .proc/jedi_spin, user) + +/obj/item/dualsaber/proc/jedi_spin(mob/living/user) + for(var/i in list(NORTH,SOUTH,EAST,WEST,EAST,SOUTH,NORTH,SOUTH,EAST,WEST,EAST,SOUTH)) + user.setDir(i) + if(i == WEST) + user.emote("flip") + sleep(1) + +/obj/item/dualsaber/proc/impale(mob/living/user) + to_chat(user, "You twirl around a bit before losing your balance and impaling yourself on [src].") + if (force) + user.take_bodypart_damage(20,25) + else + user.adjustStaminaLoss(25) + +/obj/item/dualsaber/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(!wielded) + return NONE + if(can_reflect && is_energy_reflectable_projectile(object) && (attack_type & ATTACK_TYPE_PROJECTILE)) + block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_RETURN_TO_SENDER //no you + return BLOCK_SHOULD_REDIRECT | BLOCK_SUCCESS | BLOCK_REDIRECTED + return ..() + +/obj/item/dualsaber/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) //In case thats just so happens that it is still activated on the groud, prevents hulk from picking it up + if(wielded) + to_chat(user, "You can't pick up such dangerous item with your meaty hands without losing fingers, better not to!") + return 1 + +/obj/item/dualsaber/process() + if(wielded) + if(hacked) + rainbow_process() + open_flame() + else + STOP_PROCESSING(SSobj, src) + +/obj/item/dualsaber/proc/rainbow_process() + light_color = pick(rainbow_colors) + +/obj/item/dualsaber/ignition_effect(atom/A, mob/user) + // same as /obj/item/melee/transforming/energy, mostly + if(!wielded) + return "" + var/in_mouth = "" + if(iscarbon(user)) + var/mob/living/carbon/C = user + if(C.wear_mask) + in_mouth = ", barely missing [user.p_their()] nose" + . = "[user] swings [user.p_their()] [name][in_mouth]. [user.p_they(TRUE)] light[user.p_s()] [user.p_their()] [A.name] in the process." + playsound(loc, hitsound, get_clamped_volume(), 1, -1) + add_fingerprint(user) + // Light your candles while spinning around the room + if(spinnable) + INVOKE_ASYNC(src, .proc/jedi_spin, user) + +/obj/item/dualsaber/green + possible_colors = list("green") + +/obj/item/dualsaber/red + possible_colors = list("red") + +/obj/item/dualsaber/blue + possible_colors = list("blue") + +/obj/item/dualsaber/purple + possible_colors = list("purple") + +/obj/item/dualsaber/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/multitool)) + if(!hacked) + hacked = TRUE + to_chat(user, "2XRNBW_ENGAGE") + saber_color = "rainbow" + update_icon() + else + to_chat(user, "It's starting to look like a triple rainbow - no, nevermind.") + else + return ..() + +///////////////////////////////////////////////////// +// HYPEREUTACTIC Blades ///////////////////////// +///////////////////////////////////////////////////// + +/obj/item/dualsaber/hypereutactic + icon = 'icons/obj/1x2.dmi' + icon_state = "hypereutactic" + lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi' + righthand_file = 'icons/mob/inhands/64x64_righthand.dmi' + item_state = "hypereutactic" + inhand_x_dimension = 64 + inhand_y_dimension = 64 + name = "hypereutactic blade" + desc = "A supermassive weapon envisioned to cleave the very fabric of space and time itself in twain, the hypereutactic blade dynamically flash-forges a hypereutactic crystaline nanostructure capable of passing through most known forms of matter like a hot knife through butter." + force = 7 + hitsound_on = 'sound/weapons/nebhit.ogg' + armour_penetration = 60 + light_color = "#37FFF7" + rainbow_colors = list("#FF0000", "#FFFF00", "#00FF00", "#00FFFF", "#0000FF","#FF00FF", "#3399ff", "#ff9900", "#fb008b", "#9800ff", "#00ffa3", "#ccff00") + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "destroyed", "ripped", "devastated", "shredded") + spinnable = FALSE + total_mass_on = 4 + slowdown_wielded = 1 + +/obj/item/dualsaber/hypereutactic/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=7, force_wielded=40, \ + wieldsound='sound/weapons/nebon.ogg', unwieldsound='sound/weapons/nebhit.ogg') + AddElement(/datum/element/update_icon_updates_onmob) + +/obj/item/dualsaber/hypereutactic/update_icon_state() + return + +/obj/item/dualsaber/hypereutactic/update_overlays() + . = ..() + var/mutable_appearance/blade_overlay = mutable_appearance(icon, "hypereutactic_blade") + var/mutable_appearance/gem_overlay = mutable_appearance(icon, "hypereutactic_gem") + + if(light_color) + blade_overlay.color = light_color + gem_overlay.color = light_color + + . += gem_overlay + + if(wielded) + . += blade_overlay + + clean_blood() + +/obj/item/dualsaber/hypereutactic/AltClick(mob/living/user) + . = ..() + if(!user.canUseTopic(src, BE_CLOSE, FALSE) || hacked) + return + if(user.incapacitated() || !istype(user)) + to_chat(user, "You can't do that right now!") + return + if(alert("Are you sure you want to recolor your blade?", "Confirm Repaint", "Yes", "No") == "Yes") + var/energy_color_input = input(usr,"","Choose Energy Color",light_color) as color|null + if(!energy_color_input || !user.canUseTopic(src, BE_CLOSE, FALSE) || hacked) + return + light_color = sanitize_hexcolor(energy_color_input, desired_format=6, include_crunch=1) + update_icon() + update_light() + return TRUE + +/obj/item/dualsaber/hypereutactic/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) + . = ..() + if(isinhands) + var/mutable_appearance/gem_inhand = mutable_appearance(icon_file, "hypereutactic_gem") + gem_inhand.color = light_color + . += gem_inhand + if(wielded) + var/mutable_appearance/blade_inhand = mutable_appearance(icon_file, "hypereutactic_blade") + blade_inhand.color = light_color + . += blade_inhand + +/obj/item/dualsaber/hypereutactic/examine(mob/user) + . = ..() + if(!hacked) + . += "Alt-click to recolor it." + +/obj/item/dualsaber/hypereutactic/rainbow_process() + . = ..() + update_icon() + update_light() + +/obj/item/dualsaber/hypereutactic/chaplain + name = "divine lightblade" + desc = "A giant blade of bright and holy light, said to cut down the wicked with ease." + force = 5 + block_chance = 50 + armour_penetration = 0 + var/chaplain_spawnable = TRUE + can_reflect = FALSE + obj_flags = UNIQUE_RENAME + +/obj/item/dualsaber/hypereutactic/chaplain/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=5, force_wielded=20, \ + wieldsound='sound/weapons/nebon.ogg', unwieldsound='sound/weapons/nebhit.ogg') + AddComponent(/datum/component/anti_magic, TRUE, TRUE, FALSE, null, null, FALSE) diff --git a/code/game/objects/items/electrostaff.dm b/code/game/objects/items/electrostaff.dm new file mode 100644 index 0000000000..8d1fe4ebd1 --- /dev/null +++ b/code/game/objects/items/electrostaff.dm @@ -0,0 +1,263 @@ + +/obj/item/electrostaff + icon = 'icons/obj/items_and_weapons.dmi' + icon_state = "electrostaff" + item_state = "electrostaff" + lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' + name = "riot suppression electrostaff" + desc = "A large quarterstaff, with massive silver electrodes mounted at the end." + w_class = WEIGHT_CLASS_HUGE + slot_flags = ITEM_SLOT_BACK | ITEM_SLOT_OCLOTHING + throwforce = 15 //if you are a madman and finish someone off with this, power to you. + throw_speed = 1 + item_flags = NO_MAT_REDEMPTION + attack_verb = list("struck", "beaten", "thwacked", "pulped") + total_mass = 5 //yeah this is a heavy thing, beating people with it while it's off is not going to do you any favors. (to curb stun-kill rampaging without it being on) + block_parry_data = /datum/block_parry_data/electrostaff + var/obj/item/stock_parts/cell/cell = /obj/item/stock_parts/cell/high + var/on = FALSE + var/can_block_projectiles = FALSE //can't block guns + var/lethal_cost = 400 //10000/400*20 = 500. decent enough? + var/lethal_damage = 20 + var/lethal_stam_cost = 4 + var/stun_cost = 333 //10000/333*25 = 750. stunbatons are at time of writing 10000/1000*49 = 490. + var/stun_status_effect = STATUS_EFFECT_ELECTROSTAFF //a small slowdown effect + var/stun_stamdmg = 40 + var/stun_status_duration = 25 + var/stun_stam_cost = 3.5 + var/wielded = FALSE // track wielded status on item + +// haha security desword time /s +/datum/block_parry_data/electrostaff + block_damage_absorption = 0 + block_damage_multiplier = 1 + can_block_attack_types = ~ATTACK_TYPE_PROJECTILE // only able to parry non projectiles + block_damage_multiplier_override = list( + TEXT_ATTACK_TYPE_MELEE = 0.5, // only useful on melee and unarmed + TEXT_ATTACK_TYPE_UNARMED = 0.3 + ) + block_start_delay = 0.5 // near instantaneous block + block_stamina_cost_per_second = 3 + block_stamina_efficiency = 2 // haha this is a horrible idea + // more slowdown that deswords because security + block_slowdown = 2 + // no attacking while blocking + block_lock_attacking = TRUE + + parry_time_windup = 1 + parry_time_active = 5 + parry_time_spindown = 0 + parry_time_spindown_visual_override = 1 + parry_flags = PARRY_DEFAULT_HANDLE_FEEDBACK | PARRY_LOCK_ATTACKING // no attacking while parrying + parry_time_perfect = 0 + parry_time_perfect_leeway = 0.5 + parry_efficiency_perfect = 100 + parry_imperfect_falloff_percent = 1 + parry_imperfect_falloff_percent_override = list( + TEXT_ATTACK_TYPE_PROJECTILE = 45 // really crappy vs projectiles + ) + parry_time_perfect_leeway_override = list( + TEXT_ATTACK_TYPE_PROJECTILE = 1 // extremely harsh window for projectiles + ) + // not extremely punishing to fail, but no spamming the parry. + parry_cooldown = 2.5 SECONDS + parry_failed_stagger_duration = 1.5 SECONDS + parry_failed_clickcd_duration = 1 SECONDS + +/obj/item/electrostaff/Initialize(mapload) + . = ..() + if(ispath(cell)) + cell = new cell + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/turn_on) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/turn_off) + +/obj/item/electrostaff/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_multiplier=2, wieldsound="sparks", unwieldsound="sparks") + +/obj/item/electrostaff/Destroy() + STOP_PROCESSING(SSobj, src) + QDEL_NULL(cell) + return ..() + +/obj/item/electrostaff/get_cell() + . = cell + if(iscyborg(loc)) + var/mob/living/silicon/robot/R = loc + . = R.get_cell() + +/obj/item/electrostaff/proc/min_hitcost() + return min(stun_cost, lethal_cost) + +/obj/item/electrostaff/proc/turn_on(obj/item/source, mob/user) + wielded = TRUE + item_flags |= (ITEM_CAN_BLOCK|ITEM_CAN_PARRY) + if(!cell) + if(user) + to_chat(user, "[src] has no cell.") + return + if(cell.charge < min_hitcost()) + if(user) + to_chat(user, "[src] is out of charge.") + return + on = TRUE + START_PROCESSING(SSobj, src) + if(user) + to_chat(user, "You turn [src] on.") + +/obj/item/electrostaff/proc/turn_off(obj/item/source, mob/user) + wielded = FALSE + item_flags &= ~(ITEM_CAN_BLOCK|ITEM_CAN_PARRY) + if(user) + to_chat(user, "You turn [src] off.") + on = FALSE + STOP_PROCESSING(SSobj, src) + +/obj/item/electrostaff/update_icon_state() + if(!wielded) + icon_state = item_state = "electrostaff" + else + icon_state = item_state = (on? "electrostaff_1" : "electrostaff_0") + set_light(7, on? 1 : 0, LIGHT_COLOR_CYAN) + +/obj/item/electrostaff/examine(mob/living/user) + . = ..() + if(cell) + . += "The cell charge is [round(cell.percent())]%." + else + . += "There is no cell installed!" + +/obj/item/electrostaff/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/stock_parts/cell)) + var/obj/item/stock_parts/cell/C = W + if(cell) + to_chat(user, "[src] already has a cell!") + else + if(C.maxcharge < min_hit_cost()) + to_chat(user, "[src] requires a higher capacity cell.") + return + if(!user.transferItemToLoc(W, src)) + return + cell = C + to_chat(user, "You install a cell in [src].") + + else if(W.tool_behaviour == TOOL_SCREWDRIVER) + if(cell) + cell.update_icon() + cell.forceMove(get_turf(src)) + cell = null + to_chat(user, "You remove the cell from [src].") + turn_off(user, TRUE) + else + return ..() + +/obj/item/electrostaff/process() + deductcharge(50) //Wasteful! + +/obj/item/electrostaff/proc/min_hit_cost() + return min(lethal_cost, stun_cost) + +/obj/item/electrostaff/proc/deductcharge(amount) + var/obj/item/stock_parts/cell/C = get_cell() + if(!C) + turn_off() + return FALSE + C.use(min(amount, C.charge)) + if(QDELETED(src)) + return FALSE + if(C.charge < min_hit_cost()) + turn_off() + +/obj/item/electrostaff/attack(mob/living/target, mob/living/user) + if(IS_STAMCRIT(user))//CIT CHANGE - makes it impossible to baton in stamina softcrit + to_chat(user, "You're too exhausted to use [src] properly.")//CIT CHANGE - ditto + return //CIT CHANGE - ditto + if(on && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50)) + clowning_around(user) //ouch! + return + if(iscyborg(target)) + return ..() + var/list/return_list = list() + if(target.mob_run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user, null, return_list) & BLOCK_SUCCESS) //No message; run_block() handles that + playsound(target, 'sound/weapons/genhit.ogg', 50, 1) + return FALSE + if(user.a_intent != INTENT_HARM) + if(stun_act(target, user, null, return_list)) + user.do_attack_animation(target) + user.adjustStaminaLossBuffered(stun_stam_cost) + return + else if(!harm_act(target, user, null, return_list)) + return ..() //if you can't fry them just beat them with it + else //we did harm act them + user.do_attack_animation(target) + user.adjustStaminaLossBuffered(lethal_stam_cost) + +/obj/item/electrostaff/proc/stun_act(mob/living/target, mob/living/user, no_charge_and_force = FALSE, list/block_return = list()) + var/stunforce = block_calculate_resultant_damage(stun_stamdmg, block_return) + if(!no_charge_and_force) + if(!on) + target.visible_message("[user] has bapped [target] with [src]. Luckily it was off.", \ + "[user] has bapped you with [src]. Luckily it was off") + turn_off() //if it wasn't already off + return FALSE + var/obj/item/stock_parts/cell/C = get_cell() + var/chargeleft = C.charge + deductcharge(stun_cost) + if(QDELETED(src) || QDELETED(C)) //boom + return FALSE + if(chargeleft < stun_cost) + stunforce *= round(chargeleft/stun_cost, 0.1) + target.adjustStaminaLoss(stunforce) + target.apply_effect(EFFECT_STUTTER, stunforce) + SEND_SIGNAL(target, COMSIG_LIVING_MINOR_SHOCK) + if(user) + target.lastattacker = user.real_name + target.lastattackerckey = user.ckey + target.visible_message("[user] has shocked [target] with [src]!", \ + "[user] has shocked you with [src]!") + log_combat(user, target, "stunned with an electrostaff") + playsound(src, 'sound/weapons/staff.ogg', 50, 1, -1) + target.apply_status_effect(stun_status_effect, stun_status_duration) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.forcesay(GLOB.hit_appends) + return TRUE + +/obj/item/electrostaff/proc/harm_act(mob/living/target, mob/living/user, no_charge_and_force = FALSE, list/block_return = list()) + var/lethal_force = block_calculate_resultant_damage(lethal_damage, block_return) + if(!no_charge_and_force) + if(!on) + return FALSE //standard item attack + var/obj/item/stock_parts/cell/C = get_cell() + var/chargeleft = C.charge + deductcharge(lethal_cost) + if(QDELETED(src) || QDELETED(C)) //boom + return FALSE + if(chargeleft < stun_cost) + lethal_force *= round(chargeleft/lethal_cost, 0.1) + target.adjustFireLoss(lethal_force) //good against ointment spam + SEND_SIGNAL(target, COMSIG_LIVING_MINOR_SHOCK) + if(user) + target.lastattacker = user.real_name + target.lastattackerckey = user.ckey + target.visible_message("[user] has seared [target] with [src]!", \ + "[user] has seared you with [src]!") + log_combat(user, target, "burned with an electrostaff") + playsound(src, 'sound/weapons/sear.ogg', 50, 1, -1) + return TRUE + +/obj/item/electrostaff/proc/clowning_around(mob/living/user) + user.visible_message("[user] accidentally hits [user.p_them()]self with [src]!", \ + "You accidentally hit yourself with [src]!") + SEND_SIGNAL(user, COMSIG_LIVING_MINOR_SHOCK) + harm_act(user, user, TRUE) + stun_act(user, user, TRUE) + deductcharge(lethal_cost) + +/obj/item/electrostaff/emp_act(severity) + . = ..() + if (!(. & EMP_PROTECT_SELF)) + turn_off() + if(!iscyborg(loc)) + deductcharge(1000 / severity, TRUE, FALSE) diff --git a/code/game/objects/items/fireaxe.dm b/code/game/objects/items/fireaxe.dm new file mode 100644 index 0000000000..41c1cbe915 --- /dev/null +++ b/code/game/objects/items/fireaxe.dm @@ -0,0 +1,71 @@ +/* + * Fireaxe + */ +/obj/item/fireaxe // DEM AXES MAN, marker -Agouri + icon_state = "fireaxe0" + lefthand_file = 'icons/mob/inhands/weapons/axes_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/axes_righthand.dmi' + name = "fire axe" + desc = "Truly, the weapon of a madman. Who would think to fight fire with an axe?" + force = 5 + throwforce = 15 + w_class = WEIGHT_CLASS_BULKY + slot_flags = ITEM_SLOT_BACK + attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP + max_integrity = 200 + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30) + resistance_flags = FIRE_PROOF + var/wielded = FALSE // track wielded status on item + +/obj/item/fireaxe/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + +/obj/item/fireaxe/ComponentInitialize() + . = ..() + AddComponent(/datum/component/butchering, 100, 80, 0 , hitsound) //axes are not known for being precision butchering tools + AddComponent(/datum/component/two_handed, force_unwielded=5, force_wielded=24, icon_wielded="fireaxe1") + +/// triggered on wield of two handed item +/obj/item/fireaxe/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/fireaxe/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/fireaxe/update_icon_state() + icon_state = "fireaxe0" + +/obj/item/fireaxe/suicide_act(mob/user) + user.visible_message("[user] axes [user.p_them()]self from head to toe! It looks like [user.p_theyre()] trying to commit suicide!") + return (BRUTELOSS) + +/obj/item/fireaxe/afterattack(atom/A, mob/living/user, proximity) + . = ..() + if(!proximity || !wielded || IS_STAMCRIT(user)) + return + if(istype(A, /obj/structure/window)) //destroys windows and grilles in one hit (or more if it has a ton of health like plasmaglass) + var/obj/structure/window/W = A + W.take_damage(200, BRUTE, "melee", 0) + else if(istype(A, /obj/structure/grille)) + var/obj/structure/grille/G = A + G.take_damage(40, BRUTE, "melee", 0) + +/* + * Bone Axe + */ +/obj/item/fireaxe/boneaxe // Blatant imitation of the fireaxe, but made out of bone. + icon_state = "bone_axe0" + name = "bone axe" + desc = "A large, vicious axe crafted out of several sharpened bone plates and crudely tied together. Made of monsters, by killing monsters, for killing monsters." + +/obj/item/fireaxe/boneaxe/update_icon_state() + icon_state = "bone_axe0" + +/obj/item/fireaxe/boneaxe/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=5, force_wielded=23, icon_wielded="bone_axe1") diff --git a/code/game/objects/items/flamethrower.dm b/code/game/objects/items/flamethrower.dm index 156b26e659..f293e6579a 100644 --- a/code/game/objects/items/flamethrower.dm +++ b/code/game/objects/items/flamethrower.dm @@ -196,9 +196,8 @@ sleep(1) previousturf = T operating = FALSE - for(var/mob/M in viewers(1, loc)) - if((M.client && M.machine == src)) - attack_self(M) + if(usr.machine == src) + attack_self(usr) /obj/item/flamethrower/proc/default_ignite(turf/target, release_amount = 0.05) diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index bafffa18e3..4ad71f7c46 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -510,7 +510,7 @@ oneuse = FALSE remarks = list("So that is how icing is made!", "Placing fruit on top? How simple...", "Huh layering cake seems harder then this...", "This book smells like candy", "A clown must have made this page, or they forgot to spell check it before printing...", "Wait, a way to cook slime to be safe?") -/obj/item/book/granter/crafting_recipe/coldcooking //IceCream +/obj/item/book/granter/crafting_recipe/coldcooking //Icecream name = "Cooking with Ice" desc = "A cook book that teaches you many old icecream treats." crafting_recipe_types = list(/datum/crafting_recipe/food/banana_split, /datum/crafting_recipe/food/root_float, /datum/crafting_recipe/food/bluecharrie_float, /datum/crafting_recipe/food/charrie_float) diff --git a/code/game/objects/items/grenades/antigravity.dm b/code/game/objects/items/grenades/antigravity.dm index 43b2f94986..b6700599a3 100644 --- a/code/game/objects/items/grenades/antigravity.dm +++ b/code/game/objects/items/grenades/antigravity.dm @@ -2,16 +2,17 @@ name = "antigravity grenade" icon_state = "emp" item_state = "emp" - + var/range = 7 var/forced_value = 0 var/duration = 300 -/obj/item/grenade/antigravity/prime() +/obj/item/grenade/antigravity/prime(mob/living/lanced_by) + . = ..() update_mob() - + for(var/turf/T in view(range,src)) - var/datum/component/C = T.AddComponent(/datum/component/forced_gravity,forced_value) - QDEL_IN(C,duration) - + T.AddElement(/datum/element/forced_gravity, forced_value) + addtimer(CALLBACK(T, /datum/.proc/_RemoveElement, list(forced_value)), duration) + qdel(src) diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm index 91dde2899d..f06dd634c6 100644 --- a/code/game/objects/items/grenades/chem_grenade.dm +++ b/code/game/objects/items/grenades/chem_grenade.dm @@ -97,7 +97,7 @@ to_chat(user, "You add [A] to the [initial(name)] assembly.") else if(stage == EMPTY && istype(I, /obj/item/stack/cable_coil)) - if (I.use_tool(src, user, 0, 1, max_level = JOB_SKILL_BASIC)) + if (I.use_tool(src, user, 0, 1, skill_gain_mult = TRIVIAL_USE_TOOL_MULT)) det_time = 50 // In case the cable_coil was removed and readded. stage_change(WIRED) to_chat(user, "You rig the [initial(name)] assembly.") @@ -174,10 +174,11 @@ message_admins(message) user.log_message("primed [src] ([reagent_string])",LOG_GAME) -/obj/item/grenade/chem_grenade/prime() +/obj/item/grenade/chem_grenade/prime(mob/living/lanced_by) if(stage != READY) return FALSE + . = ..() var/list/datum/reagents/reactants = list() for(var/obj/item/reagent_containers/glass/G in beakers) reactants += G.reagents @@ -217,7 +218,7 @@ ignition_temp = 25 // Large grenades are slightly more effective at setting off heat-sensitive mixtures than smaller grenades. threatscale = 1.1 // 10% more effective. -/obj/item/grenade/chem_grenade/large/prime() +/obj/item/grenade/chem_grenade/large/prime(mob/living/lanced_by) if(stage != READY) return FALSE @@ -286,7 +287,7 @@ return ..() -/obj/item/grenade/chem_grenade/adv_release/prime() +/obj/item/grenade/chem_grenade/adv_release/prime(mob/living/lanced_by) if(stage != READY) return FALSE diff --git a/code/game/objects/items/grenades/clusterbuster.dm b/code/game/objects/items/grenades/clusterbuster.dm index c16b4a30a1..9980ff34ce 100644 --- a/code/game/objects/items/grenades/clusterbuster.dm +++ b/code/game/objects/items/grenades/clusterbuster.dm @@ -14,7 +14,8 @@ var/max_spawned = 8 var/segment_chance = 35 -/obj/item/grenade/clusterbuster/prime() +/obj/item/grenade/clusterbuster/prime(mob/living/lanced_by) + . = ..() update_mob() var/numspawned = rand(min_spawned,max_spawned) var/again = 0 @@ -59,7 +60,7 @@ step_away(src,loc) addtimer(CALLBACK(src, .proc/prime), rand(15,60)) -/obj/item/grenade/clusterbuster/segment/prime() +/obj/item/grenade/clusterbuster/segment/prime(mob/living/lanced_by) new payload_spawner(drop_location(), payload, rand(min_spawned,max_spawned)) playsound(src, prime_sound, 75, 1, -3) qdel(src) diff --git a/code/game/objects/items/grenades/emgrenade.dm b/code/game/objects/items/grenades/emgrenade.dm index 99cf4bdf99..815a3b343c 100644 --- a/code/game/objects/items/grenades/emgrenade.dm +++ b/code/game/objects/items/grenades/emgrenade.dm @@ -4,7 +4,8 @@ icon_state = "emp" item_state = "emp" -/obj/item/grenade/empgrenade/prime() +/obj/item/grenade/empgrenade/prime(mob/living/lanced_by) + . = ..() update_mob() empulse(src, 4, 10) qdel(src) diff --git a/code/game/objects/items/grenades/flashbang.dm b/code/game/objects/items/grenades/flashbang.dm index 6f79df28fe..f51db9fa4c 100644 --- a/code/game/objects/items/grenades/flashbang.dm +++ b/code/game/objects/items/grenades/flashbang.dm @@ -6,7 +6,8 @@ righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' var/flashbang_range = 7 //how many tiles away the mob will be stunned. -/obj/item/grenade/flashbang/prime() +/obj/item/grenade/flashbang/prime(mob/living/lanced_by) + . = ..() update_mob() var/flashbang_turf = get_turf(src) if(!flashbang_turf) @@ -42,3 +43,92 @@ var/distance = get_dist(get_turf(M), source) if(M.flash_act(affect_silicon = 1)) M.DefaultCombatKnockdown(max(200/max(1,distance), 60)) + +/obj/item/grenade/stingbang + name = "stingbang" + icon_state = "timeg" + item_state = "flashbang" + lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' + var/flashbang_range = 1 //how many tiles away the mob will be stunned. + shrapnel_type = /obj/item/projectile/bullet/pellet/stingball + shrapnel_radius = 5 + custom_premium_price = 700 // mostly gotten through cargo, but throw in one for the sec vendor ;) + +/obj/item/grenade/stingbang/mega + name = "mega stingbang" + shrapnel_type = /obj/item/projectile/bullet/pellet/stingball/mega + shrapnel_radius = 12 + +/obj/item/grenade/stingbang/prime(mob/living/lanced_by) + if(iscarbon(loc)) + var/mob/living/carbon/C = loc + var/obj/item/bodypart/B = C.get_holding_bodypart_of_item(src) + if(B) + C.visible_message("[src] goes off in [C]'s hand, blowing [C.p_their()] [B.name] to bloody shreds!", "[src] goes off in your hand, blowing your [B.name] to bloody shreds!") + B.dismember() + + . = ..() + update_mob() + var/flashbang_turf = get_turf(src) + if(!flashbang_turf) + return + do_sparks(rand(5, 9), FALSE, src) + playsound(flashbang_turf, 'sound/weapons/flashbang.ogg', 50, TRUE, 8, 0.9) + new /obj/effect/dummy/lighting_obj (flashbang_turf, LIGHT_COLOR_WHITE, (flashbang_range + 2), 2, 1) + for(var/mob/living/M in get_hearers_in_view(flashbang_range, flashbang_turf)) + pop(get_turf(M), M) + qdel(src) + +/obj/item/grenade/stingbang/proc/pop(turf/T , mob/living/M) + if(M.stat == DEAD) //They're dead! + return + M.show_message("POP", MSG_AUDIBLE) + var/distance = max(0,get_dist(get_turf(src),T)) + +//Flash + if(M.flash_act(affect_silicon = 1)) + M.Paralyze(max(10/max(1,distance), 5)) + M.Knockdown(max(100/max(1,distance), 60)) + +//Bang + if(!distance || loc == M || loc == M.loc) + M.Paralyze(20) + M.Knockdown(200) + M.soundbang_act(1, 200, 10, 15) + if(M.apply_damages(10, 10)) + to_chat(M, "The blast from \the [src] bruises and burns you!") + + // only checking if they're on top of the tile, cause being one tile over will be its own punishment + +// Grenade that releases more shrapnel the more times you use it in hand between priming and detonation (sorta like the 9bang from MW3), for admin goofs +/obj/item/grenade/primer + name = "rotfrag grenade" + desc = "A grenade that generates more shrapnel the more you rotate it in your hand after pulling the pin. This one releases shrapnel shards." + icon_state = "timeg" + item_state = "flashbang" + lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' + var/rots_per_mag = 3 /// how many times we need to "rotate" the charge in hand per extra tile of magnitude + shrapnel_type = /obj/item/projectile/bullet/shrapnel + var/rots = 1 /// how many times we've "rotated" the charge + +/obj/item/grenade/primer/attack_self(mob/user) + . = ..() + if(active) + user.playsound_local(user, 'sound/misc/box_deploy.ogg', 50, TRUE) + rots++ + user.changeNext_move(CLICK_CD_RAPID) + +/obj/item/grenade/primer/prime(mob/living/lanced_by) + shrapnel_radius = round(rots / rots_per_mag) + . = ..() + qdel(src) + +/obj/item/grenade/primer/stingbang + name = "rotsting" + desc = "A grenade that generates more shrapnel the more you rotate it in your hand after pulling the pin. This one releases stingballs." + lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' + rots_per_mag = 2 + shrapnel_type = /obj/item/projectile/bullet/pellet/stingball diff --git a/code/game/objects/items/grenades/ghettobomb.dm b/code/game/objects/items/grenades/ghettobomb.dm index 1725d84dcc..3553d79faf 100644 --- a/code/game/objects/items/grenades/ghettobomb.dm +++ b/code/game/objects/items/grenades/ghettobomb.dm @@ -45,12 +45,13 @@ /obj/item/grenade/iedcasing/attack_self(mob/user) // if(!active) - if(clown_check(user)) + if(!botch_check(user)) to_chat(user, "You light the [name]!") cut_overlay("improvised_grenade_filled") preprime(user, null, FALSE) -/obj/item/grenade/iedcasing/prime() //Blowing that can up +/obj/item/grenade/iedcasing/prime(mob/living/lanced_by) //Blowing that can up + . = ..() update_mob() explosion(src.loc,-1,-1,2, flame_range = 4) // small explosion, plus a very large fireball. qdel(src) diff --git a/code/game/objects/items/grenades/grenade.dm b/code/game/objects/items/grenades/grenade.dm index 8a41ee4601..7a6157bf65 100644 --- a/code/game/objects/items/grenades/grenade.dm +++ b/code/game/objects/items/grenades/grenade.dm @@ -17,10 +17,31 @@ var/det_time = 50 var/display_timer = 1 var/clumsy_check = GRENADE_CLUMSY_FUMBLE + var/sticky = FALSE + // I moved the explosion vars and behavior to base grenades because we want all grenades to call [/obj/item/grenade/proc/prime] so we can send COMSIG_GRENADE_PRIME + ///how big of a devastation explosion radius on prime + var/ex_dev = 0 + ///how big of a heavy explosion radius on prime + var/ex_heavy = 0 + ///how big of a light explosion radius on prime + var/ex_light = 0 + ///how big of a flame explosion radius on prime + var/ex_flame = 0 + + // dealing with creating a [/datum/component/pellet_cloud] on prime + /// if set, will spew out projectiles of this type + var/shrapnel_type + /// the higher this number, the more projectiles are created as shrapnel + var/shrapnel_radius + var/shrapnel_initialized /obj/item/grenade/suicide_act(mob/living/carbon/user) user.visible_message("[user] primes [src], then eats it! It looks like [user.p_theyre()] trying to commit suicide!") + if(shrapnel_type && shrapnel_radius) + shrapnel_initialized = TRUE + AddComponent(/datum/component/pellet_cloud, projectile_type=shrapnel_type, magnitude=shrapnel_radius) playsound(src, 'sound/items/eatfood.ogg', 50, 1) + SEND_SIGNAL(src, COMSIG_GRENADE_ARMED, det_time) preprime(user, det_time) user.transferItemToLoc(src, user, TRUE)//>eat a grenade set to 5 seconds >rush captain sleep(det_time)//so you dont die instantly @@ -32,19 +53,21 @@ if(!QDELETED(src)) qdel(src) -/obj/item/grenade/proc/clown_check(mob/living/carbon/human/user) +/obj/item/grenade/proc/botch_check(mob/living/carbon/human/user) var/clumsy = HAS_TRAIT(user, TRAIT_CLUMSY) if(clumsy) if(clumsy_check == GRENADE_CLUMSY_FUMBLE && prob(50)) to_chat(user, "Huh? How does this thing work?") preprime(user, 5, FALSE) - return FALSE + return TRUE else if(clumsy_check == GRENADE_NONCLUMSY_FUMBLE && !(user.mind && HAS_TRAIT(user.mind, TRAIT_CLOWN_MENTALITY))) to_chat(user, "You pull the pin on [src]. Attached to it is a pink ribbon that says, \"HONK\"") preprime(user, 5, FALSE) - return FALSE - return TRUE + return TRUE + else if(sticky && prob(50)) // to add risk to sticky tape grenade cheese, no return cause we still prime as normal after + to_chat(user, "What the... [src] is stuck to your hand!") + ADD_TRAIT(src, TRAIT_NODROP, STICKY_NODROP) /obj/item/grenade/examine(mob/user) . = ..() @@ -56,8 +79,16 @@ /obj/item/grenade/attack_self(mob/user) + if(HAS_TRAIT(src, TRAIT_NODROP)) + to_chat(user, "You try prying [src] off your hand...") + if(do_after(user, 70, target=src)) + to_chat(user, "You manage to remove [src] from your hand.") + REMOVE_TRAIT(src, TRAIT_NODROP, STICKY_NODROP) + + return + if(!active) - if(clown_check(user)) + if(!botch_check(user)) // if they botch the prime, it'll be handled in botch_check preprime(user) /obj/item/grenade/proc/log_grenade(mob/user, turf/T) @@ -81,10 +112,18 @@ icon_state = initial(icon_state) + "_active" addtimer(CALLBACK(src, .proc/prime), isnull(delayoverride)? det_time : delayoverride) -/obj/item/grenade/proc/prime() +/obj/item/grenade/proc/prime(mob/living/lanced_by) var/turf/T = get_turf(src) log_game("Grenade detonation at [AREACOORD(T)], location [loc]") + if(shrapnel_type && shrapnel_radius && !shrapnel_initialized) // add a second check for adding the component in case whatever triggered the grenade went straight to prime (badminnery for example) + shrapnel_initialized = TRUE + AddComponent(/datum/component/pellet_cloud, projectile_type=shrapnel_type, magnitude=shrapnel_radius) + + SEND_SIGNAL(src, COMSIG_GRENADE_PRIME, lanced_by) + if(ex_dev || ex_heavy || ex_light || ex_flame) + explosion(loc, ex_dev, ex_heavy, ex_light, flame_range = ex_flame) + /obj/item/grenade/proc/update_mob() if(ismob(loc)) var/mob/M = loc diff --git a/code/game/objects/items/grenades/plastic.dm b/code/game/objects/items/grenades/plastic.dm index 66869d6f04..a2b0e3edd4 100644 --- a/code/game/objects/items/grenades/plastic.dm +++ b/code/game/objects/items/grenades/plastic.dm @@ -26,7 +26,7 @@ /obj/item/grenade/plastic/ComponentInitialize() . = ..() - AddComponent(/datum/component/empprotection, EMP_PROTECT_WIRES) + AddElement(/datum/element/empprotection, EMP_PROTECT_WIRES) /obj/item/grenade/plastic/Destroy() qdel(nadeassembly) @@ -122,7 +122,9 @@ var/obj/item/I = AM I.throw_speed = max(1, (I.throw_speed - 3)) I.throw_range = max(1, (I.throw_range - 3)) - I.embedding = I.embedding.setRating(embed_chance = 0) + if(I.embedding) + I.embedding["embed_chance"] = 0 + I.updateEmbedding() target.add_overlay(plastic_overlay, TRUE) if(!nadeassembly) @@ -205,9 +207,10 @@ else return ..() -/obj/item/grenade/plastic/c4/prime() +/obj/item/grenade/plastic/c4/prime(mob/living/lanced_by) if(QDELETED(src)) return + . = ..() var/turf/location if(target) if(!QDELETED(target)) diff --git a/code/game/objects/items/grenades/smokebomb.dm b/code/game/objects/items/grenades/smokebomb.dm index f26390faf6..1b856fc013 100644 --- a/code/game/objects/items/grenades/smokebomb.dm +++ b/code/game/objects/items/grenades/smokebomb.dm @@ -17,7 +17,8 @@ qdel(smoke) return ..() -/obj/item/grenade/smokebomb/prime() +/obj/item/grenade/smokebomb/prime(mob/living/lanced_by) + . = ..() update_mob() playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3) smoke.set_up(4, src) diff --git a/code/game/objects/items/grenades/spawnergrenade.dm b/code/game/objects/items/grenades/spawnergrenade.dm index 2cc72f3694..a8b0fa3cd3 100644 --- a/code/game/objects/items/grenades/spawnergrenade.dm +++ b/code/game/objects/items/grenades/spawnergrenade.dm @@ -7,7 +7,8 @@ var/spawner_type = null // must be an object path var/deliveryamt = 1 // amount of type to deliver -/obj/item/grenade/spawnergrenade/prime() // Prime now just handles the two loops that query for people in lockers and people who can see it. +/obj/item/grenade/spawnergrenade/prime(mob/living/lanced_by) // Prime now just handles the two loops that query for people in lockers and people who can see it. + . = ..() update_mob() if(spawner_type && deliveryamt) // Make a quick flash diff --git a/code/game/objects/items/grenades/syndieminibomb.dm b/code/game/objects/items/grenades/syndieminibomb.dm index 35e9abd982..9f12edeb17 100644 --- a/code/game/objects/items/grenades/syndieminibomb.dm +++ b/code/game/objects/items/grenades/syndieminibomb.dm @@ -4,27 +4,45 @@ icon = 'icons/obj/grenade.dmi' icon_state = "syndicate" item_state = "flashbang" + ex_dev = 1 + ex_heavy = 2 + ex_light = 4 + ex_flame = 2 -/obj/item/grenade/syndieminibomb/prime() +/obj/item/grenade/syndieminibomb/prime(mob/living/lanced_by) + . = ..() update_mob() - explosion(src.loc,1,2,4,flame_range = 2) qdel(src) /obj/item/grenade/syndieminibomb/concussion name = "HE Grenade" desc = "A compact shrapnel grenade meant to devastate nearby organisms and cause some damage in the process. Pull pin and throw opposite direction." icon_state = "concussion" + ex_heavy = 2 + ex_light = 3 + ex_flame = 3 -/obj/item/grenade/syndieminibomb/concussion/prime() - update_mob() - explosion(src.loc,0,2,3,flame_range = 3) - qdel(src) - -/obj/item/grenade/syndieminibomb/concussion/frag +/obj/item/grenade/frag name = "frag grenade" - desc = "Fire in the hole." + desc = "An anti-personnel fragmentation grenade, this weapon excels at killing soft targets by shredding them with metal shrapnel." icon_state = "frag" + shrapnel_type = /obj/item/projectile/bullet/shrapnel + shrapnel_radius = 4 + ex_heavy = 1 + ex_light = 3 + ex_flame = 4 + +/obj/item/grenade/frag/mega + name = "FRAG grenade" + desc = "An anti-everything fragmentation grenade, this weapon excels at killing anything any everything by shredding them with metal shrapnel." + shrapnel_type = /obj/item/projectile/bullet/shrapnel/mega + shrapnel_radius = 12 + +/obj/item/grenade/frag/prime(mob/living/lanced_by) + . = ..() + update_mob() + qdel(src) /obj/item/grenade/gluon desc = "An advanced grenade that releases a harmful stream of gluons inducing radiation in those nearby. These gluon streams will also make victims feel exhausted, and induce shivering. This extreme coldness will also likely wet any nearby floors." @@ -36,7 +54,8 @@ var/rad_damage = 350 var/stamina_damage = 30 -/obj/item/grenade/gluon/prime() +/obj/item/grenade/gluon/prime(mob/living/lanced_by) + . = ..() update_mob() playsound(loc, 'sound/effects/empulse.ogg', 50, 1) radiation_pulse(src, rad_damage) diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index 381257721e..d6396f9902 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -168,6 +168,7 @@ icon_state = "witchhunterhat" item_state = "witchhunterhat" flags_cover = HEADCOVERSEYES + flags_inv = HIDEHAIR /obj/item/storage/box/holy/follower name = "Followers of the Chaplain Kit" diff --git a/code/game/objects/items/implants/implant_abductor.dm b/code/game/objects/items/implants/implant_abductor.dm index 0c50beadea..e0765e7951 100644 --- a/code/game/objects/items/implants/implant_abductor.dm +++ b/code/game/objects/items/implants/implant_abductor.dm @@ -5,36 +5,30 @@ icon_state = "implant" activated = 1 var/obj/machinery/abductor/pad/home - var/cooldown = 30 + var/next_use = 0 /obj/item/implant/abductor/activate() . = ..() - if(cooldown == initial(cooldown)) + if(next_use <= world.time) home.Retrieve(imp_in,1) - cooldown = 0 - START_PROCESSING(SSobj, src) + next_use = world.time + 60 SECONDS else - to_chat(imp_in, "You must wait [30 - cooldown] seconds to use [src] again!") - -/obj/item/implant/abductor/process() - if(cooldown < initial(cooldown)) - cooldown++ - if(cooldown == initial(cooldown)) - STOP_PROCESSING(SSobj, src) + to_chat(imp_in, "You must wait [DisplayTimeText(next_use - world.time)] to use [src] again!") /obj/item/implant/abductor/implant(mob/living/target, mob/user) - if(..()) - var/obj/machinery/abductor/console/console - if(ishuman(target)) - var/datum/antagonist/abductor/A = target.mind.has_antag_datum(/datum/antagonist/abductor) - if(A) - console = get_abductor_console(A.team.team_number) - home = console.pad - - if(!home) - var/list/consoles = list() - for(var/obj/machinery/abductor/console/C in GLOB.machines) - consoles += C - console = pick(consoles) + . = ..() + if(!.) + return + var/obj/machinery/abductor/console/console + if(ishuman(target)) + var/datum/antagonist/abductor/A = target.mind.has_antag_datum(/datum/antagonist/abductor) + if(A) + console = get_abductor_console(A.team.team_number) home = console.pad - return TRUE + + if(!home) + var/list/consoles = list() + for(var/obj/machinery/abductor/console/C in GLOB.machines) + consoles += C + console = pick(consoles) + home = console.pad diff --git a/code/game/objects/items/implants/implantpad.dm b/code/game/objects/items/implants/implantpad.dm index 7c863017a1..4766e534c9 100644 --- a/code/game/objects/items/implants/implantpad.dm +++ b/code/game/objects/items/implants/implantpad.dm @@ -66,7 +66,7 @@ if(ismob(loc)) attack_self(loc) else - for(var/mob/M in viewers(1, src)) + for(var/mob/M in fov_viewers(1, src)) if(M.client) attack_self(M) add_fingerprint(usr) diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index 168bca0b9a..dda41494ff 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -71,7 +71,7 @@ sharpness = IS_SHARP_ACCURATE armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) var/bayonet = FALSE //Can this be attached to a gun? - custom_price = 250 + custom_price = PRICE_NORMAL /obj/item/kitchen/knife/Initialize() . = ..() @@ -104,10 +104,10 @@ desc = "An occult looking dagger that is cold to the touch. Somehow, the flawless orb on the pommel is made entirely of liquid blood." icon = 'icons/obj/ice_moon/artifacts.dmi' icon_state = "bloodletter" - w_class = WEIGHT_CLASS_NORMAL + w_class = WEIGHT_CLASS_NORMAL /// Bleed stacks applied when an organic mob target is hit var/bleed_stacks_per_hit = 3 - + /obj/item/kitchen/knife/bloodletter/afterattack(atom/target, mob/user, proximity_flag, click_parameters) . = ..() if(!isliving(target) || !proximity_flag) @@ -131,13 +131,14 @@ custom_materials = list(/datum/material/iron=18000) attack_verb = list("cleaved", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") w_class = WEIGHT_CLASS_NORMAL - custom_price = 600 + custom_price = PRICE_EXPENSIVE /obj/item/kitchen/knife/combat name = "combat knife" icon_state = "buckknife" item_state = "knife" desc = "A military combat utility survival knife." + embedding = list("pain_mult" = 4, "embed_chance" = 65, "fall_chance" = 10, "ignore_throwspeed_threshold" = TRUE) force = 20 throwforce = 20 attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "cut") @@ -148,6 +149,7 @@ icon_state = "survivalknife" item_state = "knife" desc = "A hunting grade survival knife." + embedding = list("pain_mult" = 4, "embed_chance" = 35, "fall_chance" = 10) force = 15 throwforce = 15 bayonet = TRUE @@ -159,6 +161,7 @@ lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' desc = "A sharpened bone. The bare minimum in survival." + embedding = list("pain_mult" = 4, "embed_chance" = 35, "fall_chance" = 10) force = 15 throwforce = 15 custom_materials = null @@ -198,8 +201,9 @@ throw_speed = 3 throw_range = 7 w_class = WEIGHT_CLASS_NORMAL + custom_materials = list(/datum/material/wood = MINERAL_MATERIAL_AMOUNT * 1.5) attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") - custom_price = 200 + custom_price = PRICE_ALMOST_CHEAP /obj/item/kitchen/rollingpin/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins flattening [user.p_their()] head with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index e4cfeab20f..20960da7c6 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -103,11 +103,30 @@ throw_speed = 3 throw_range = 5 sharpness = IS_SHARP - embedding = list("embed_chance" = 75, "embedded_impact_pain_multiplier" = 10) + embedding = list("embed_chance" = 75, "impact_pain_mult" = 10) armour_penetration = 35 - block_chance = 50 + item_flags = NEEDS_PERMIT | ITEM_CAN_PARRY + block_parry_data = /datum/block_parry_data/energy_sword var/list/possible_colors = list("red" = LIGHT_COLOR_RED, "blue" = LIGHT_COLOR_LIGHT_CYAN, "green" = LIGHT_COLOR_GREEN, "purple" = LIGHT_COLOR_LAVENDER) +/datum/block_parry_data/energy_sword + parry_time_windup = 0 + parry_time_active = 25 + parry_time_spindown = 0 + // we want to signal to players the most dangerous phase, the time when automatic counterattack is a thing. + parry_time_windup_visual_override = 1 + parry_time_active_visual_override = 3 + parry_time_spindown_visual_override = 12 + parry_flags = PARRY_DEFAULT_HANDLE_FEEDBACK // esword users can attack while + parry_time_perfect = 2.5 // first ds isn't perfect + parry_time_perfect_leeway = 1.5 + parry_imperfect_falloff_percent = 5 + parry_efficiency_to_counterattack = 100 + parry_efficiency_considered_successful = 65 // VERY generous + parry_efficiency_perfect = 100 + parry_failed_stagger_duration = 4 SECONDS + parry_cooldown = 0.5 SECONDS + /obj/item/melee/transforming/energy/sword/Initialize(mapload) . = ..() set_sword_color() @@ -273,6 +292,10 @@ light_color = "#37FFF7" actions_types = list() +/obj/item/melee/transforming/energy/sword/cx/Initialize() + icon_state_on = icon_state + return ..() + /obj/item/melee/transforming/energy/sword/cx/ComponentInitialize() . = ..() AddElement(/datum/element/update_icon_updates_onmob) @@ -290,6 +313,7 @@ if(!supress_message_text) to_chat(user, "[src] [active ? "is now active":"can now be concealed"].") + /obj/item/melee/transforming/energy/sword/cx/update_overlays() . = ..() var/mutable_appearance/blade_overlay = mutable_appearance(icon, "cxsword_blade") @@ -345,7 +369,7 @@ return else to_chat(user, "You combine the two light swords, making a single supermassive blade! You're cool.") - new /obj/item/twohanded/dualsaber/hypereutactic(user.drop_location()) + new /obj/item/dualsaber/hypereutactic(user.drop_location()) qdel(W) qdel(src) else diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index 71437d4706..c6aa9f7bf4 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -61,13 +61,25 @@ force = 18 throwforce = 15 w_class = WEIGHT_CLASS_BULKY - block_chance = 50 armour_penetration = 75 sharpness = IS_SHARP attack_verb = list("slashed", "cut") hitsound = 'sound/weapons/rapierhit.ogg' custom_materials = list(/datum/material/iron = 1000) total_mass = 3.4 + item_flags = NEEDS_PERMIT | ITEM_CAN_PARRY + block_parry_data = /datum/block_parry_data/captain_saber + +/datum/block_parry_data/captain_saber + parry_time_windup = 0.5 + parry_time_active = 4 + parry_time_spindown = 1 + parry_time_perfect = 0.75 + parry_time_perfect_leeway = 0.75 + parry_imperfect_falloff_percent = 30 + parry_efficiency_perfect = 100 + parry_failed_stagger_duration = 3 SECONDS + parry_failed_clickcd_duration = 2 SECONDS /obj/item/melee/sabre/Initialize() . = ..() @@ -150,7 +162,6 @@ righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' force = 15 throwforce = 25 - block_chance = 50 armour_penetration = 200 //Apparently this gives it the ability to pierce block flags_1 = CONDUCT_1 obj_flags = UNIQUE_RENAME @@ -159,16 +170,47 @@ attack_verb = list("stabs", "punctures", "pierces", "pokes") hitsound = 'sound/weapons/rapierhit.ogg' total_mass = 0.4 + item_flags = ITEM_CAN_PARRY | NEEDS_PERMIT + block_parry_data = /datum/block_parry_data/traitor_rapier + +// Fast, efficient parry. +/datum/block_parry_data/traitor_rapier + parry_time_windup = 0.5 + parry_time_active = 5 + parry_time_spindown = 0 + parry_time_active_visual_override = 3 + parry_time_spindown_visual_override = 2 + parry_flags = PARRY_DEFAULT_HANDLE_FEEDBACK | PARRY_LOCK_ATTACKING + parry_time_perfect = 0 + parry_time_perfect_leeway = 3 + parry_time_perfect_leeway_override = list( + TEXT_ATTACK_TYPE_PROJECTILE = 1 + ) + parry_imperfect_falloff_percent_override = list( + TEXT_ATTACK_TYPE_PROJECTILE = 50 // useless after 3rd decisecond + ) + parry_imperfect_falloff_percent = 30 + parry_efficiency_to_counterattack = 100 + parry_efficiency_considered_successful = 1 + parry_efficiency_perfect = 100 + parry_data = list( + PARRY_DISARM_ATTACKER = TRUE, + PARRY_KNOCKDOWN_ATTACKER = 10 + ) + parry_failed_stagger_duration = 2 SECONDS + parry_failed_clickcd_duration = CLICK_CD_RANGE + parry_cooldown = 0 + +/obj/item/melee/rapier/active_parry_reflex_counter(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list, parry_efficiency, list/effect_text) + . = ..() + if((attack_type & ATTACK_TYPE_PROJECTILE) && (parry_efficiency >= 100)) + . |= BLOCK_SHOULD_REDIRECT + return_list[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_DEFLECT /obj/item/melee/rapier/Initialize() . = ..() AddComponent(/datum/component/butchering, 20, 65, 0) -/obj/item/melee/rapier/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - if(attack_type == ATTACK_TYPE_PROJECTILE) - final_block_chance = 0 - return ..() - /obj/item/melee/rapier/on_exit_storage(datum/component/storage/S) var/obj/item/storage/belt/sabre/rapier/B = S.parent if(istype(B)) @@ -191,10 +233,9 @@ . = ..() if(iscarbon(target)) var/mob/living/carbon/H = target - var/loss = H.getStaminaLoss() H.Dizzy(10) H.adjustStaminaLoss(30) - if((loss > 40) && prob(loss)) // if above 40, roll for sleep using 1% every 1 stamina damage + if(CHECK_STAMCRIT(H) != NOT_STAMCRIT) H.Sleeping(180) /obj/item/melee/classic_baton @@ -648,7 +689,7 @@ item_state = "mace_greyscale" lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS //Material type changes the prefix as well as the color. + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS //Material type changes the prefix as well as the color. custom_materials = list(/datum/material/iron = 12000) //Defaults to an Iron Mace. slot_flags = ITEM_SLOT_BELT force = 14 @@ -664,4 +705,4 @@ . = ..() overlay = mutable_appearance(icon, overlay_state) overlay.appearance_flags = RESET_COLOR - add_overlay(overlay) \ No newline at end of file + add_overlay(overlay) diff --git a/code/game/objects/items/melee/transforming.dm b/code/game/objects/items/melee/transforming.dm index 5bccf91868..386a6e9acc 100644 --- a/code/game/objects/items/melee/transforming.dm +++ b/code/game/objects/items/melee/transforming.dm @@ -53,6 +53,8 @@ throw_speed = 4 if(attack_verb_on.len) attack_verb = attack_verb_on + if(embedding) + updateEmbedding() icon_state = icon_state_on w_class = w_class_on else @@ -62,6 +64,8 @@ throw_speed = initial(throw_speed) if(attack_verb_off.len) attack_verb = attack_verb_off + if(embedding) + updateEmbedding() icon_state = initial(icon_state) w_class = initial(w_class) total_mass = initial(total_mass) diff --git a/code/game/objects/items/miscellaneous.dm b/code/game/objects/items/miscellaneous.dm index c4bb8c594c..7237a1788f 100644 --- a/code/game/objects/items/miscellaneous.dm +++ b/code/game/objects/items/miscellaneous.dm @@ -115,6 +115,44 @@ new /obj/item/toy/crayon/spraycan(src) new /obj/item/clothing/shoes/sandal(src) +/obj/item/choice_beacon/hosgun + name = "personal weapon beacon" + desc = "Use this to summon your personal Head of Security issued firearm!" + +/obj/item/choice_beacon/hosgun/generate_display_names() + var/static/list/hos_gun_list + if(!hos_gun_list) + hos_gun_list = list() + var/list/templist = subtypesof(/obj/item/storage/secure/briefcase/hos/) //we have to convert type = name to name = type, how lovely! + for(var/V in templist) + var/atom/A = V + hos_gun_list[initial(A.name)] = A + return hos_gun_list + +/obj/item/choice_beacon/augments + name = "augment beacon" + desc = "Summons augmentations." + +/obj/item/choice_beacon/augments/generate_display_names() + var/static/list/augment_list + if(!augment_list) + augment_list = list() + var/list/templist = list( + /obj/item/organ/cyberimp/brain/anti_drop, + /obj/item/organ/cyberimp/arm/toolset, + /obj/item/organ/cyberimp/arm/surgery, + /obj/item/organ/cyberimp/chest/thrusters, + /obj/item/organ/lungs/cybernetic, + /obj/item/organ/liver/cybernetic) //cyberimplants range from a nice bonus to fucking broken bullshit so no subtypesof + for(var/V in templist) + var/atom/A = V + augment_list[initial(A.name)] = A + return augment_list + +/obj/item/choice_beacon/augments/spawn_option(obj/choice,mob/living/M) + new choice(get_turf(M)) + to_chat(M, "You hear something crackle from the beacon for a moment before a voice speaks. \"Please stand by for a message from S.E.L.F. Message as follows: Item request received. Your package has been transported, use the autosurgeon supplied to apply the upgrade. Message ends.\"") + /obj/item/skub desc = "It's skub." name = "skub" diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index 9d9409acf0..4960474d94 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -22,6 +22,11 @@ var/occupant_weight = 0 var/max_occupants = 3 //Hard-cap so you can't have infinite mice or something in one carrier var/max_occupant_weight = MOB_SIZE_SMALL //This is calculated from the mob sizes of occupants + var/entrance_name = "door" //name of the entrance to the item + var/escape_time = 200 //how long it takes for mobs above small sizes to escape (for small sizes, its randomly 1.5 to 2x this) + var/load_time = 30 //how long it takes for mobs to be loaded into the pet carrier + var/has_lock_sprites = TRUE //whether to load the lock overlays or not + var/allows_hostiles = FALSE //does the pet carrier allow hostile entities to be held within it? /obj/item/pet_carrier/Destroy() if(occupants.len) @@ -51,20 +56,20 @@ else . += "It has nothing inside." if(user.canUseTopic(src)) - . += "Activate it in your hand to [open ? "close" : "open"] its door." + . += "Activate it in your hand to [open ? "close" : "open"] its [entrance_name]." if(!open) - . += "Alt-click to [locked ? "unlock" : "lock"] its door." + . += "Alt-click to [locked ? "unlock" : "lock"] its [entrance_name]." /obj/item/pet_carrier/attack_self(mob/living/user) if(open) - to_chat(user, "You close [src]'s door.") + to_chat(user, "You close [src]'s [entrance_name].") playsound(user, 'sound/effects/bin_close.ogg', 50, TRUE) open = FALSE else if(locked) to_chat(user, "[src] is locked!") return - to_chat(user, "You open [src]'s door.") + to_chat(user, "You open [src]'s [entrance_name].") playsound(user, 'sound/effects/bin_open.ogg', 50, TRUE) open = TRUE update_icon() @@ -86,7 +91,7 @@ if(user.a_intent == INTENT_HARM) return ..() if(!open) - to_chat(user, "You need to open [src]'s door!") + to_chat(user, "You need to open [src]'s [entrance_name]!") return if(target.mob_size > max_occupant_weight) if(ishuman(target)) @@ -94,13 +99,15 @@ if(iscatperson(H)) to_chat(user, "You'd need a lot of catnip and treats, plus maybe a laser pointer, for that to work.") else - to_chat(user, "Humans, generally, do not fit into pet carriers.") + to_chat(user, "Humans, generally, do not fit into [name]s.") else to_chat(user, "You get the feeling [target] isn't meant for a [name].") return if(user == target) to_chat(user, "Why would you ever do that?") return + if(ishostile(target) && !allows_hostiles && target.move_resist < MOVE_FORCE_VERY_STRONG) //don't allow goliaths into pet carriers + to_chat(user, "You have a feeling you shouldn't keep this as a pet.") load_occupant(user, target) /obj/item/pet_carrier/relaymove(mob/living/user, direction) @@ -110,8 +117,8 @@ remove_occupant(user) return else if(!locked) - loc.visible_message("[user] pushes open the door to [src]!", \ - "[user] pushes open the door of [src]!") + loc.visible_message("[user] pushes open the [entrance_name] to [src]!", \ + "[user] pushes open the [entrance_name] of [src]!") open = TRUE update_icon() return @@ -119,12 +126,19 @@ container_resist(user) /obj/item/pet_carrier/container_resist(mob/living/user) + //don't do the whole resist timer thing if it's open! + if(open) + loc.visible_message("[user] climbs out of [src]!", \ + "[user] jumps out of [src]!") + remove_occupant(user) + return + user.changeNext_move(CLICK_CD_BREAKOUT) user.last_special = world.time + CLICK_CD_BREAKOUT if(user.mob_size <= MOB_SIZE_SMALL) - to_chat(user, "You poke a limb through [src]'s bars and start fumbling for the lock switch... (This will take some time.)") - to_chat(loc, "You see [user] reach through the bars and fumble for the lock switch!") - if(!do_after(user, rand(300, 400), target = user) || open || !locked || !(user in occupants)) + to_chat(user, "You begin to try escaping the [src] and start fumbling for the lock switch... (This will take some time.)") + to_chat(loc, "You see [user] attempting to unlock the [src]!") + if(!do_after(user, rand(escape_time * 1.5, escape_time * 2), target = user) || open || !locked || !(user in occupants)) return loc.visible_message("[user] flips the lock switch on [src] by reaching through!", null, null, null, user) to_chat(user, "Bingo! The lock pops open!") @@ -132,12 +146,12 @@ playsound(src, 'sound/machines/boltsup.ogg', 30, TRUE) update_icon() else - loc.visible_message("[src] starts rattling as something pushes against the door!", null, null, null, user) + loc.visible_message("[src] starts rattling as something pushes against the [entrance_name]!", null, null, null, user) to_chat(user, "You start pushing out of [src]... (This will take about 20 seconds.)") - if(!do_after(user, 200, target = user) || open || !locked || !(user in occupants)) + if(!do_after(user, escape_time, target = user) || open || !locked || !(user in occupants)) return loc.visible_message("[user] shoves out of [src]!", null, null, null, user) - to_chat(user, "You shove open [src]'s door against the lock's resistance and fall out!") + to_chat(user, "You shove open [src]'s [entrance_name] against the lock's resistance and fall out!") locked = FALSE open = TRUE update_icon() @@ -151,7 +165,7 @@ /obj/item/pet_carrier/update_overlays() . = ..() - if(!open) + if(!open && has_lock_sprites) . += "[locked ? "" : "un"]locked" /obj/item/pet_carrier/MouseDrop(atom/over_atom) @@ -170,7 +184,7 @@ user.visible_message("[user] starts loading [target] into [src].", \ "You start loading [target] into [src]...", null, null, target) to_chat(target, "[user] starts loading you into [user.p_their()] [name]!") - if(!do_mob(user, target, 30)) + if(!do_mob(user, target, load_time)) return if(target in occupants) return @@ -192,9 +206,74 @@ /obj/item/pet_carrier/proc/remove_occupant(mob/living/occupant, turf/new_turf) if(!(occupant in occupants) || !istype(occupant)) return - occupant.forceMove(new_turf ? new_turf : drop_location()) + occupant.forceMove(new_turf ? new_turf : get_turf(src)) occupants -= occupant occupant_weight -= occupant.mob_size occupant.setDir(SOUTH) +//bluespace jar, a reskin of the pet carrier that can fit people and smashes when thrown +/obj/item/pet_carrier/bluespace + name = "bluespace jar" + desc = "A jar, that seems to be bigger on the inside, somehow allowing lifeforms to fit through its narrow entrance." + open = FALSE //starts closed so it looks better on menus + icon_state = "bluespace_jar" + item_state = "bluespace_jar" + lefthand_file = "" + righthand_file = "" + max_occupant_weight = MOB_SIZE_HUMAN //can fit people, like a bluespace bodybag! + load_time = 40 //loading things into a jar takes longer than a regular pet carrier + entrance_name = "lid" + w_class = WEIGHT_CLASS_SMALL //it's a jar + throw_speed = 3 + throw_range = 7 + max_occupants = 1 //far less than a regular carrier or bluespace bodybag, because it can be thrown to release the contents + allows_hostiles = TRUE //can fit hostile creatures, with the move resist restrictions in place, this means they still cannot take things like legions/goliaths/etc regardless + has_lock_sprites = FALSE //jar doesn't show the regular lock overlay + custom_materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 600) + escape_time = 10 //half the time of a bluespace bodybag + var/datum/gas_mixture/occupant_gas_supply + +/obj/item/pet_carrier/bluespace/update_icon_state() + if(open) + icon_state = "bluespace_jar_open" + else + icon_state = "bluespace_jar" + +/obj/item/pet_carrier/bluespace/throw_impact() + . = ..() + //delete the item upon impact, releasing the creature inside (this is handled by its deletion) + if(occupants.len) + loc.visible_message("The bluespace jar smashes, releasing [occupants[1]]!") + playsound(src, "shatter", 70, 1) + qdel(src) + +/obj/item/pet_carrier/bluespace/add_occupant(mob/living/occupant) //update the gas supply as required, this acts like magical internals + . = ..() + if(!occupant_gas_supply) + occupant_gas_supply = new + if(isanimal(occupant)) + var/mob/living/simple_animal/animal = occupant + occupant_gas_supply.temperature = animal.minbodytemp //simple animals only care about temperature when their turf isnt a location + else + if(ishuman(occupant)) //humans require resistance to cold/heat and living in no air while inside, and lose this when outside + ADD_TRAIT(occupant, TRAIT_RESISTCOLD, "bluespace_container_cold_resist") + ADD_TRAIT(occupant, TRAIT_RESISTHEAT, "bluespace_container_heat_resist") + ADD_TRAIT(occupant, TRAIT_NOBREATH, "bluespace_container_no_breath") + ADD_TRAIT(occupant, TRAIT_RESISTHIGHPRESSURE, "bluespace_container_resist_high_pressure") + ADD_TRAIT(occupant, TRAIT_RESISTLOWPRESSURE, "bluespace_container_resist_low_pressure") + +/obj/item/pet_carrier/bluespace/remove_occupant(mob/living/occupant) + . = ..() + if(ishuman(occupant)) + REMOVE_TRAIT(occupant, TRAIT_RESISTCOLD, "bluespace_container_cold_resist") + REMOVE_TRAIT(occupant, TRAIT_RESISTHEAT, "bluespace_container_heat_resist") + REMOVE_TRAIT(occupant, TRAIT_NOBREATH, "bluespace_container_no_breath") + REMOVE_TRAIT(occupant, TRAIT_RESISTHIGHPRESSURE, "bluespace_container_resist_high_pressure") + REMOVE_TRAIT(occupant, TRAIT_RESISTLOWPRESSURE, "bluespace_container_resist_low_pressure") + +/obj/item/pet_carrier/bluespace/return_air() + if(!occupant_gas_supply) + occupant_gas_supply = new + return occupant_gas_supply + #undef pet_carrier_full diff --git a/code/game/objects/items/pinpointer.dm b/code/game/objects/items/pinpointer.dm index a1652fd211..3420e72c72 100644 --- a/code/game/objects/items/pinpointer.dm +++ b/code/game/objects/items/pinpointer.dm @@ -78,7 +78,7 @@ name = "crew pinpointer" desc = "A handheld tracking device that points to crew suit sensors." icon_state = "pinpointer_crew" - custom_price = 600 + custom_price = PRICE_ABOVE_EXPENSIVE var/has_owner = FALSE var/pinpointer_owner = null @@ -183,3 +183,20 @@ A.other_pair = B B.other_pair = A + +/obj/item/pinpointer/shuttle + name = "fugitive pinpointer" + desc = "A handheld tracking device that locates the bounty hunter shuttle for quick escapes." + icon_state = "pinpointer_hunter" + var/obj/shuttleport + +/obj/item/pinpointer/shuttle/Initialize(mapload) + . = ..() + shuttleport = SSshuttle.getShuttle("huntership") + +/obj/item/pinpointer/shuttle/scan_for_target() + target = shuttleport + +/obj/item/pinpointer/shuttle/Destroy() + shuttleport = null + . = ..() \ No newline at end of file diff --git a/code/game/objects/items/pitchfork.dm b/code/game/objects/items/pitchfork.dm new file mode 100644 index 0000000000..49d0b64498 --- /dev/null +++ b/code/game/objects/items/pitchfork.dm @@ -0,0 +1,101 @@ +/obj/item/pitchfork + icon_state = "pitchfork0" + lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/polearms_righthand.dmi' + name = "pitchfork" + desc = "A simple tool used for moving hay." + force = 7 + throwforce = 15 + w_class = WEIGHT_CLASS_BULKY + attack_verb = list("attacked", "impaled", "pierced") + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP + max_integrity = 200 + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30) + resistance_flags = FIRE_PROOF + var/wielded = FALSE // track wielded status on item + +/obj/item/pitchfork/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + +/obj/item/pitchfork/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=7, force_wielded=15, icon_wielded="pitchfork1") + AddElement(/datum/element/sword_point) + +/// triggered on wield of two handed item +/obj/item/pitchfork/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/pitchfork/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/pitchfork/update_icon_state() + icon_state = "pitchfork0" + +/obj/item/pitchfork/demonic + name = "demonic pitchfork" + desc = "A red pitchfork, it looks like the work of the devil." + force = 19 + throwforce = 24 + +/obj/item/pitchfork/demonic/Initialize() + . = ..() + set_light(3,6,LIGHT_COLOR_RED) + +/obj/item/pitchfork/demonic/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=19, force_wielded=25) + +/obj/item/pitchfork/demonic/greater + force = 24 + throwforce = 50 + +/obj/item/pitchfork/demonic/greater/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=24, force_wielded=34) + +/obj/item/pitchfork/demonic/ascended + force = 100 + throwforce = 100 + +/obj/item/pitchfork/demonic/ascended/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=100, force_wielded=500000) // Kills you DEAD + +/obj/item/pitchfork/suicide_act(mob/user) + user.visible_message("[user] impales [user.p_them()]self in [user.p_their()] abdomen with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + return (BRUTELOSS) + +/obj/item/pitchfork/demonic/pickup(mob/living/user) + . = ..() + if(isliving(user) && user.mind && user.owns_soul() && !is_devil(user)) + var/mob/living/U = user + U.visible_message("As [U] picks [src] up, [U]'s arms briefly catch fire.", \ + "\"As you pick up [src] your arms ignite, reminding you of all your past sins.\"") + if(ishuman(U)) + var/mob/living/carbon/human/H = U + H.apply_damage(rand(force/2, force), BURN, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) + else + U.adjustFireLoss(rand(force/2,force)) + +/obj/item/pitchfork/demonic/attack(mob/target, mob/living/carbon/human/user) + if(user.mind && user.owns_soul() && !is_devil(user)) + to_chat(user, "[src] burns in your hands.") + user.apply_damage(rand(force/2, force), BURN, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) + ..() + +/obj/item/pitchfork/demonic/ascended/afterattack(atom/target, mob/user, proximity) + . = ..() + if(!proximity || !wielded) + return + if(iswallturf(target)) + var/turf/closed/wall/W = target + user.visible_message("[user] blasts \the [target] with \the [src]!") + playsound(target, 'sound/magic/disintegrate.ogg', 100, TRUE) + W.break_wall() + W.ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + return diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index a564d7f9f9..00a9ff22f4 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -140,7 +140,8 @@ if(jsonlist["icon_state"]) icon_state = jsonlist["icon_state"] item_state = jsonlist["item_state"] - icon = 'config/plushies/sprites.dmi' + var/static/config_sprites = file("config/plushies/sprites.dmi") + icon = config_sprites if(jsonlist["attack_verb"]) attack_verb = jsonlist["attack_verb"] if(jsonlist["squeak_override"]) @@ -436,13 +437,13 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) /obj/item/toy/plush/random/Initialize() var/newtype var/list/snowflake_list = CONFIG_GET(keyed_list/snowflake_plushies) - + /// If there are no snowflake plushies we'll default to base plush, so we grab from the valid list if (snowflake_list.len) newtype = prob(CONFIG_GET(number/snowflake_plushie_prob)) ? /obj/item/toy/plush/random_snowflake : pick(GLOB.valid_plushie_paths) - else + else newtype = pick(GLOB.valid_plushie_paths) - + new newtype(loc) return INITIALIZE_HINT_QDEL diff --git a/code/game/objects/items/powerfist.dm b/code/game/objects/items/powerfist.dm index 648f465a22..b7e2d22d2f 100644 --- a/code/game/objects/items/powerfist.dm +++ b/code/game/objects/items/powerfist.dm @@ -6,6 +6,7 @@ lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' flags_1 = CONDUCT_1 + item_flags = NEEDS_PERMIT | NO_COMBAT_MODE_FORCE_MODIFIER //To avoid ambushing and oneshotting healthy crewmembers on force setting 3. attack_verb = list("whacked", "fisted", "power-punched") force = 20 throwforce = 10 @@ -13,7 +14,7 @@ w_class = WEIGHT_CLASS_NORMAL armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 40) resistance_flags = FIRE_PROOF - var/click_delay = 1.5 + click_delay = CLICK_CD_MELEE * 1.5 var/fisto_setting = 1 var/gasperfist = 3 var/obj/item/tank/internals/tank = null //Tank used for the gauntlet's piston-ram. @@ -70,42 +71,46 @@ /obj/item/melee/powerfist/attack(mob/living/target, mob/living/user) - if(!tank) - to_chat(user, "\The [src] can't operate without a source of gas!") - return - var/datum/gas_mixture/gasused = tank.air_contents.remove(gasperfist * fisto_setting) - var/turf/T = get_turf(src) - if(!T) - return - T.assume_air(gasused) - T.air_update_turf() - if(!gasused) - to_chat(user, "\The [src]'s tank is empty!") - target.apply_damage((force / 5), BRUTE) - playsound(loc, 'sound/weapons/punch1.ogg', 50, 1) - target.visible_message("[user]'s powerfist lets out a dull thunk as [user.p_they()] punch[user.p_es()] [target.name]!", \ - "[user]'s punches you!") - return - if(gasused.total_moles() < gasperfist * fisto_setting) - to_chat(user, "\The [src]'s piston-ram lets out a weak hiss, it needs more gas!") - playsound(loc, 'sound/weapons/punch4.ogg', 50, 1) - target.apply_damage((force / 2), BRUTE) - target.visible_message("[user]'s powerfist lets out a weak hiss as [user.p_they()] punch[user.p_es()] [target.name]!", \ - "[user]'s punch strikes with force!") - return - target.apply_damage(force * fisto_setting, BRUTE) - target.visible_message("[user]'s powerfist lets out a loud hiss as [user.p_they()] punch[user.p_es()] [target.name]!", \ - "You cry out in pain as [user]'s punch flings you backwards!") - new /obj/effect/temp_visual/kinetic_blast(target.loc) - playsound(loc, 'sound/weapons/resonator_blast.ogg', 50, 1) - playsound(loc, 'sound/weapons/genhit2.ogg', 50, 1) + if(HAS_TRAIT(user, TRAIT_PACIFISM)) + to_chat(user, "You don't want to harm other living beings!") + return FALSE + if(!tank) + to_chat(user, "\The [src] can't operate without a source of gas!") + return FALSE + var/datum/gas_mixture/gasused = tank.air_contents.remove(gasperfist * fisto_setting) + var/turf/T = get_turf(src) + if(!T) + return FALSE + var/totalitemdamage = target.pre_attacked_by(src, user) + T.assume_air(gasused) + T.air_update_turf() + if(!gasused) + to_chat(user, "\The [src]'s tank is empty!") + target.apply_damage((totalitemdamage / 5), BRUTE) + playsound(loc, 'sound/weapons/punch1.ogg', 50, 1) + target.visible_message("[user]'s powerfist lets out a dull thunk as [user.p_they()] punch[user.p_es()] [target.name]!", \ + "[user]'s punches you!") + return + if(gasused.total_moles() < gasperfist * fisto_setting) + to_chat(user, "\The [src]'s piston-ram lets out a weak hiss, it needs more gas!") + playsound(loc, 'sound/weapons/punch4.ogg', 50, 1) + target.apply_damage((totalitemdamage / 2), BRUTE) + target.visible_message("[user]'s powerfist lets out a weak hiss as [user.p_they()] punch[user.p_es()] [target.name]!", \ + "[user]'s punch strikes with force!") + return + target.apply_damage(totalitemdamage * fisto_setting, BRUTE) + target.visible_message("[user]'s powerfist lets out a loud hiss as [user.p_they()] punch[user.p_es()] [target.name]!", \ + "You cry out in pain as [user]'s punch flings you backwards!") + new /obj/effect/temp_visual/kinetic_blast(target.loc) + playsound(loc, 'sound/weapons/resonator_blast.ogg', 50, 1) + playsound(loc, 'sound/weapons/genhit2.ogg', 50, 1) - var/atom/throw_target = get_edge_target_turf(target, get_dir(src, get_step_away(target, src))) + var/atom/throw_target = get_edge_target_turf(target, get_dir(src, get_step_away(target, src))) + target.throw_at(throw_target, 5 * fisto_setting, 0.5 + (fisto_setting / 2)) - target.throw_at(throw_target, 5 * fisto_setting, 0.5 + (fisto_setting / 2)) + log_combat(user, target, "power fisted", src) - log_combat(user, target, "power fisted", src) - - user.changeNext_move(CLICK_CD_MELEE * click_delay) - - return + var/weight = getweight(user, STAM_COST_ATTACK_MOB_MULT) + if(weight) + user.adjustStaminaLossBuffered(weight) + return TRUE diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm index ba73bbc187..61a05aacd8 100644 --- a/code/game/objects/items/religion.dm +++ b/code/game/objects/items/religion.dm @@ -215,8 +215,9 @@ /obj/item/clothing/head/helmet/plate/crusader/prophet name = "Prophet's Hat" desc = "A religious-looking hat." + icon_state = "prophet" mob_overlay_icon = 'icons/mob/large-worn-icons/64x64/head.dmi' - flags_1 = 0 + flags_1 = NONE armor = list("melee" = 60, "bullet" = 60, "laser" = 60, "energy" = 50, "bomb" = 70, "bio" = 50, "rad" = 50, "fire" = 60, "acid" = 60) //religion protects you from disease and radiation, honk. worn_x_dimension = 64 worn_y_dimension = 64 diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 1ca314f749..1f69cdae2e 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -355,9 +355,11 @@ emaggedhitdamage = 0 /obj/item/borg/lollipop/equipped() + . = ..() check_amount() /obj/item/borg/lollipop/dropped(mob/user) + . = ..() check_amount() /obj/item/borg/lollipop/proc/check_amount() //Doesn't even use processing ticks. @@ -419,7 +421,7 @@ A.BB.damage = hitdamage if(hitdamage) A.BB.nodamage = FALSE - A.BB.speed = 0.5 + A.BB.pixels_per_second = TILES_TO_PIXELS(20) playsound(src.loc, 'sound/machines/click.ogg', 50, 1) A.fire_casing(target, user, params, 0, 0, null, 0, src) user.visible_message("[user] blasts a flying lollipop at [target]!") @@ -434,7 +436,7 @@ A.BB.damage = hitdamage if(hitdamage) A.BB.nodamage = FALSE - A.BB.speed = 0.5 + A.BB.pixels_per_second = TILES_TO_PIXELS(20) A.BB.color = rgb(rand(0, 255), rand(0, 255), rand(0, 255)) playsound(src.loc, 'sound/weapons/bulletflyby3.ogg', 50, 1) A.fire_casing(target, user, params, 0, 0, null, 0, src) @@ -671,13 +673,13 @@ if(track_projectile) tracked[P] = P.damage P.damage *= projectile_damage_coefficient - P.speed *= projectile_speed_coefficient + P.pixels_per_second *= projectile_speed_coefficient P.add_overlay(projectile_effect) /obj/item/borg/projectile_dampen/proc/restore_projectile(obj/item/projectile/P) tracked -= P P.damage *= (1/projectile_damage_coefficient) - P.speed *= (1/projectile_speed_coefficient) + P.pixels_per_second *= (1/projectile_speed_coefficient) P.cut_overlay(projectile_effect) /********************************************************************** diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 08ce73109c..d33ecedf0a 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -459,7 +459,7 @@ /obj/item/borg/upgrade/defib/deactivate(mob/living/silicon/robot/R, user = usr) . = ..() if (.) - var/obj/item/twohanded/shockpaddles/cyborg/S = locate() in R.module + var/obj/item/shockpaddles/cyborg/S = locate() in R.module R.module.remove_module(S, TRUE) /obj/item/borg/upgrade/processor @@ -545,7 +545,7 @@ to_chat(usr, "This unit already has an expand module installed!") return FALSE - R.notransform = TRUE + R.mob_transforming = TRUE var/prev_locked_down = R.locked_down R.SetLockdown(1) R.anchored = TRUE @@ -559,7 +559,7 @@ if(!prev_locked_down) R.SetLockdown(0) R.anchored = FALSE - R.notransform = FALSE + R.mob_transforming = FALSE R.resize = 2 R.hasExpanded = TRUE R.update_transform() diff --git a/code/game/objects/items/sharpener.dm b/code/game/objects/items/sharpener.dm index 014d4cb159..6bf0b27fb4 100644 --- a/code/game/objects/items/sharpener.dm +++ b/code/game/objects/items/sharpener.dm @@ -24,24 +24,22 @@ if(istype(I, /obj/item/melee/transforming/energy)) to_chat(user, "You don't think \the [I] will be the thing getting modified if you use it on \the [src]!") return - if(istype(I, /obj/item/twohanded))//some twohanded items should still be sharpenable, but handle force differently. therefore i need this stuff - var/obj/item/twohanded/TH = I - if(TH.force_wielded >= max) - to_chat(user, "[TH] is much too powerful to sharpen further!") - return - if(TH.wielded) - to_chat(user, "[TH] must be unwielded before it can be sharpened!") - return - if(TH.force_wielded > initial(TH.force_wielded)) - to_chat(user, "[TH] has already been refined before. It cannot be sharpened further!") - return - TH.force_wielded = clamp(TH.force_wielded + increment, 0, max)//wieldforce is increased since normal force wont stay - if(I.force > initial(I.force)) + + var/signal_out = SEND_SIGNAL(I, COMSIG_ITEM_SHARPEN_ACT, increment, max) + if(signal_out & COMPONENT_BLOCK_SHARPEN_MAXED) + to_chat(user, "[I] is much too powerful to sharpen further!") + return + if(signal_out & COMPONENT_BLOCK_SHARPEN_BLOCKED) + to_chat(user, "[I] is not able to be sharpened right now!") + return + if((signal_out & COMPONENT_BLOCK_SHARPEN_ALREADY) || (I.force > initial(I.force) && !signal_out)) to_chat(user, "[I] has already been refined before. It cannot be sharpened further!") return + if(!(signal_out & COMPONENT_BLOCK_SHARPEN_APPLIED)) + I.force = clamp(I.force + increment, 0, max) + user.visible_message("[user] sharpens [I] with [src]!", "You sharpen [I], making it much more deadly than before.") I.sharpness = IS_SHARP_ACCURATE - I.force = clamp(I.force + increment, 0, max) I.throwforce = clamp(I.throwforce + increment, 0, max) I.name = "[prefix] [I.name]" name = "worn out [name]" diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm index fc7b196bd2..154714b13f 100644 --- a/code/game/objects/items/shields.dm +++ b/code/game/objects/items/shields.dm @@ -1,7 +1,8 @@ /obj/item/shield name = "shield" icon = 'icons/obj/shields.dmi' - block_chance = 50 + item_flags = ITEM_CAN_BLOCK + block_parry_data = /datum/block_parry_data/shield armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70) /// Shield flags var/shield_flags = SHIELD_FLAGS_DEFAULT @@ -22,6 +23,18 @@ /// Shield bashing push distance var/shieldbash_push_distance = 1 +/datum/block_parry_data/shield + block_damage_multiplier = 0.25 + block_stamina_efficiency = 2.5 + block_stamina_cost_per_second = 2.5 + block_slowdown = 0 + block_lock_attacking = FALSE + block_lock_sprinting = TRUE + block_start_delay = 1.5 + block_damage_absorption = 5 + block_resting_stamina_penalty_multiplier = 2 + block_projectile_mitigation = 75 + /obj/item/shield/examine(mob/user) . = ..() if(shield_flags & SHIELD_CAN_BASH) @@ -107,7 +120,7 @@ return TRUE /obj/item/shield/proc/user_shieldbash(mob/living/user, atom/target, harmful) - if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) //Combat mode has to be enabled for shield bashing + if(!SEND_SIGNAL(user, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_ACTIVE)) //Combat mode has to be enabled for shield bashing return FALSE if(!(shield_flags & SHIELD_CAN_BASH)) to_chat(user, "[src] can't be used to shield bash!") @@ -154,6 +167,22 @@ icon_state = "shield_bash" duration = 3 +/obj/item/shield/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(ismovable(object)) + var/atom/movable/AM = object + if(CHECK_BITFIELD(shield_flags, SHIELD_TRANSPARENT) && (AM.pass_flags & PASSGLASS)) + return BLOCK_NONE + if(attack_type & ATTACK_TYPE_THROWN) + final_block_chance += 30 + if(attack_type & ATTACK_TYPE_TACKLE) + final_block_chance = 100 + . = ..() + if(. & BLOCK_SUCCESS) + on_shield_block(owner, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return) + +/obj/item/shield/on_active_block(mob/living/owner, atom/object, damage, damage_blocked, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return, override_direction) + on_shield_block(owner, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance) + /obj/item/shield/riot name = "riot shield" desc = "A shield adept at blocking blunt objects from connecting with the torso of the shield wielder." @@ -172,20 +201,7 @@ var/repair_material = /obj/item/stack/sheet/mineral/titanium var/can_shatter = TRUE shield_flags = SHIELD_FLAGS_DEFAULT | SHIELD_TRANSPARENT - max_integrity = 75 - -/obj/item/shield/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - if(ismovable(object)) - var/atom/movable/AM = object - if(CHECK_BITFIELD(shield_flags, SHIELD_TRANSPARENT) && (AM.pass_flags & PASSGLASS)) - return BLOCK_NONE - if(attack_type & ATTACK_TYPE_THROWN) - final_block_chance += 30 - if(attack_type & ATTACK_TYPE_TACKLE) - final_block_chance = 100 - . = ..() - if(. & BLOCK_SUCCESS) - on_shield_block(owner, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return) + max_integrity = 450 /obj/item/shield/riot/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/melee/baton)) @@ -197,10 +213,10 @@ if(obj_integrity >= max_integrity) to_chat(user, "[src] is already in perfect condition.") else - var/obj/item/stack/sheet/mineral/titanium/T = W - T.use(1) + var/obj/item/stack/S = W + S.use(1) obj_integrity = max_integrity - to_chat(user, "You repair [src] with [T].") + to_chat(user, "You repair [src] with [S].") else return ..() @@ -238,13 +254,13 @@ lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi' shield_flags = SHIELD_FLAGS_DEFAULT - max_integrity = 55 //Weak + max_integrity = 300 obj/item/shield/riot/bullet_proof name = "bullet resistant shield" desc = "A far more frail shield made of resistant plastics and kevlar meant to block ballistics." armor = list("melee" = 30, "bullet" = 80, "laser" = 0, "energy" = 0, "bomb" = -40, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 50) - max_integrity = 55 //Weaker + max_integrity = 300 /obj/item/shield/riot/roman name = "\improper Roman shield" @@ -255,13 +271,13 @@ obj/item/shield/riot/bullet_proof righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi' repair_material = /obj/item/stack/sheet/mineral/wood shield_flags = SHIELD_FLAGS_DEFAULT - max_integrity = 65 + max_integrity = 250 /obj/item/shield/riot/roman/fake desc = "Bears an inscription on the inside: \"Romanes venio domus\". It appears to be a bit flimsy." block_chance = 0 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - max_integrity = 30 + max_integrity = 40 /obj/item/shield/riot/roman/shatter(mob/living/carbon/human/owner) playsound(owner, 'sound/effects/grillehit.ogg', 100) @@ -274,12 +290,12 @@ obj/item/shield/riot/bullet_proof item_state = "buckler" lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi' - custom_materials = null + custom_materials = list(/datum/material/wood = MINERAL_MATERIAL_AMOUNT * 10) resistance_flags = FLAMMABLE repair_material = /obj/item/stack/sheet/mineral/wood block_chance = 30 shield_flags = SHIELD_FLAGS_DEFAULT - max_integrity = 55 + max_integrity = 150 /obj/item/shield/riot/buckler/shatter(mob/living/carbon/human/owner) playsound(owner, 'sound/effects/bang.ogg', 50) @@ -297,13 +313,16 @@ obj/item/shield/riot/bullet_proof throw_speed = 3 throw_range = 4 w_class = WEIGHT_CLASS_NORMAL - var/active = 0 + var/active = FALSE /obj/item/shield/riot/tele/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) if(!active) return BLOCK_NONE return ..() +/obj/item/shield/riot/tele/can_active_block() + return ..() && active + /obj/item/shield/riot/tele/attack_self(mob/living/user) active = !active icon_state = "teleriot[active]" @@ -335,8 +354,7 @@ obj/item/shield/riot/bullet_proof icon_state = "makeshift_shield" custom_materials = list(/datum/material/iron = 18000) slot_flags = null - block_chance = 35 - max_integrity = 100 //Made of metal welded together its strong but not unkillable + max_integrity = 300 //Made of metal welded together its strong but not unkillable force = 10 throwforce = 7 @@ -346,7 +364,6 @@ obj/item/shield/riot/bullet_proof armor = list("melee" = 95, "bullet" = 95, "laser" = 75, "energy" = 60, "bomb" = 90, "bio" = 90, "rad" = 0, "fire" = 90, "acid" = 10) //Armor for the item, dosnt transfer to user item_state = "metal" icon_state = "metal" - block_chance = 75 //1/4 shots will hit* force = 16 slowdown = 2 throwforce = 15 //Massive pice of metal @@ -357,21 +374,19 @@ obj/item/shield/riot/bullet_proof /obj/item/shield/riot/tower/swat name = "swat shield" desc = "A massive, heavy shield that can block a lot of attacks, can take a lot of abuse before breaking." - max_integrity = 175 - block_chance = 50 + max_integrity = 250 /obj/item/shield/riot/implant name = "telescoping shield implant" desc = "A compact, arm-mounted telescopic shield. While nigh-indestructible when powered by a host user, it will eventually overload from damage. Recharges while inside its implant." item_state = "metal" icon_state = "metal" - block_chance = 50 slowdown = 1 shield_flags = SHIELD_FLAGS_DEFAULT - max_integrity = 60 - obj_integrity = 60 + max_integrity = 100 + obj_integrity = 100 can_shatter = FALSE - item_flags = SLOWS_WHILE_IN_HAND + item_flags = SLOWS_WHILE_IN_HAND | ITEM_CAN_BLOCK var/recharge_timerid var/recharge_delay = 15 SECONDS diff --git a/code/game/objects/items/shrapnel.dm b/code/game/objects/items/shrapnel.dm new file mode 100644 index 0000000000..7108080ecc --- /dev/null +++ b/code/game/objects/items/shrapnel.dm @@ -0,0 +1,64 @@ +/obj/item/shrapnel // frag grenades + name = "shrapnel shard" + embedding = list(embed_chance=70, ignore_throwspeed_threshold=TRUE, fall_chance=4, embed_chance_turf_mod=-100) + custom_materials = list(/datum/material/iron=50) + armour_penetration = -20 + icon = 'icons/obj/shards.dmi' + icon_state = "large" + w_class = WEIGHT_CLASS_TINY + item_flags = DROPDEL + +/obj/item/shrapnel/stingball // stingbang grenades + name = "stingball" + embedding = list(embed_chance=90, fall_chance=3, jostle_chance=7, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.7, pain_mult=5, jostle_pain_mult=6, rip_time=15, embed_chance_turf_mod=-100) + icon_state = "tiny" + +/obj/item/shrapnel/bullet // bullets + name = "bullet" + icon = 'icons/obj/ammo.dmi' + icon_state = "s-casing" + item_flags = NONE + +/obj/item/shrapnel/bullet/c38 // .38 round + name = "\improper .38 bullet" + +/obj/item/shrapnel/bullet/c38/dumdum // .38 DumDum round + name = "\improper .38 DumDum bullet" + embedding = list(embed_chance=70, fall_chance=7, jostle_chance=7, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.4, pain_mult=5, jostle_pain_mult=6, rip_time=10, embed_chance_turf_mod=-100) + +/obj/item/projectile/bullet/shrapnel + name = "flying shrapnel shard" + damage = 9 + range = 10 + armour_penetration = -30 + dismemberment = 5 + ricochets_max = 2 + ricochet_chance = 40 + shrapnel_type = /obj/item/shrapnel + ricochet_incidence_leeway = 60 + +/obj/item/projectile/bullet/shrapnel/mega + name = "flying shrapnel hunk" + range = 25 + dismemberment = 10 + ricochets_max = 4 + ricochet_chance = 90 + ricochet_decay_chance = 0.9 + +/obj/item/projectile/bullet/pellet/stingball + name = "stingball pellet" + damage = 3 + stamina = 8 + ricochets_max = 4 + ricochet_chance = 66 + ricochet_decay_chance = 1 + ricochet_decay_damage = 0.9 + ricochet_auto_aim_angle = 10 + ricochet_auto_aim_range = 2 + ricochet_incidence_leeway = 0 + shrapnel_type = /obj/item/shrapnel/stingball + +/obj/item/projectile/bullet/pellet/stingball/mega + name = "megastingball pellet" + ricochets_max = 6 + ricochet_chance = 110 diff --git a/code/game/objects/items/singularityhammer.dm b/code/game/objects/items/singularityhammer.dm index dc761ee3bf..7a6c159160 100644 --- a/code/game/objects/items/singularityhammer.dm +++ b/code/game/objects/items/singularityhammer.dm @@ -1,4 +1,4 @@ -/obj/item/twohanded/singularityhammer +/obj/item/singularityhammer name = "singularity hammer" desc = "The pinnacle of close combat technology, the hammer harnesses the power of a miniaturized singularity to deal crushing blows." icon_state = "mjollnir0" @@ -7,35 +7,47 @@ flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BACK force = 5 - force_unwielded = 5 - force_wielded = 20 throwforce = 15 throw_range = 1 w_class = WEIGHT_CLASS_HUGE - var/charged = 5 armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 0, "bomb" = 50, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) resistance_flags = FIRE_PROOF | ACID_PROOF force_string = "LORD SINGULOTH HIMSELF" total_mass = TOTAL_MASS_MEDIEVAL_WEAPON + var/charged = 5 + var/wielded = FALSE // track wielded status on item -/obj/item/twohanded/singularityhammer/New() +/obj/item/singularityhammer/New() ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) START_PROCESSING(SSobj, src) -/obj/item/twohanded/singularityhammer/Destroy() +/obj/item/singularityhammer/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_multiplier=4, icon_wielded="mjollnir1") + +/// triggered on wield of two handed item +/obj/item/singularityhammer/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/singularityhammer/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/singularityhammer/update_icon_state() + icon_state = "mjollnir0" + +/obj/item/singularityhammer/Destroy() STOP_PROCESSING(SSobj, src) return ..() -/obj/item/twohanded/singularityhammer/process() +/obj/item/singularityhammer/process() if(charged < 5) charged++ return -/obj/item/twohanded/singularityhammer/update_icon_state() //Currently only here to fuck with the on-mob icons. - icon_state = "mjollnir[wielded]" - return - -/obj/item/twohanded/singularityhammer/proc/vortex(turf/pull, mob/wielder) +/obj/item/singularityhammer/proc/vortex(turf/pull, mob/wielder) for(var/atom/X in orange(5,pull)) if(ismovable(X)) var/atom/movable/A = X @@ -55,9 +67,8 @@ step_towards(H,pull) step_towards(H,pull) step_towards(H,pull) - return -/obj/item/twohanded/singularityhammer/afterattack(atom/A as mob|obj|turf|area, mob/user, proximity) +/obj/item/singularityhammer/afterattack(atom/A as mob|obj|turf|area, mob/user, proximity) . = ..() if(!proximity) return @@ -71,7 +82,7 @@ var/turf/target = get_turf(A) vortex(target,user) -/obj/item/twohanded/mjollnir +/obj/item/mjollnir name = "Mjolnir" desc = "A weapon worthy of a god, able to strike with the force of a lightning bolt. It crackles with barely contained energy." icon_state = "mjollnir0" @@ -80,14 +91,33 @@ flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BACK force = 5 - force_unwielded = 5 - force_wielded = 25 throwforce = 30 throw_range = 7 w_class = WEIGHT_CLASS_HUGE total_mass = TOTAL_MASS_MEDIEVAL_WEAPON + var/wielded = FALSE // track wielded status on item -/obj/item/twohanded/mjollnir/proc/shock(mob/living/target) +/obj/item/mjollnir/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + +/obj/item/mjollnir/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_multiplier=5, icon_wielded="mjollnir1", attacksound="sparks") + +/// triggered on wield of two handed item +/obj/item/mjollnir/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/mjollnir/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/mjollnir/update_icon_state() + icon_state = "mjollnir0" + +/obj/item/mjollnir/proc/shock(mob/living/target) target.Stun(60) var/datum/effect_system/lightning_spread/s = new /datum/effect_system/lightning_spread s.set_up(5, 1, target.loc) @@ -99,17 +129,12 @@ target.throw_at(throw_target, 200, 4) return -/obj/item/twohanded/mjollnir/attack(mob/living/M, mob/user) +/obj/item/mjollnir/attack(mob/living/M, mob/user) ..() if(wielded) - playsound(src.loc, "sparks", 50, 1) shock(M) -/obj/item/twohanded/mjollnir/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) +/obj/item/mjollnir/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) . = ..() if(isliving(hit_atom)) shock(hit_atom) - -/obj/item/twohanded/mjollnir/update_icon_state() //Currently only here to fuck with the on-mob icons. - icon_state = "mjollnir[wielded]" - return diff --git a/code/game/objects/items/spear.dm b/code/game/objects/items/spear.dm new file mode 100644 index 0000000000..376362d7c3 --- /dev/null +++ b/code/game/objects/items/spear.dm @@ -0,0 +1,185 @@ +//spears +/obj/item/spear + icon_state = "spearglass0" + lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/polearms_righthand.dmi' + name = "spear" + desc = "A haphazardly-constructed yet still deadly weapon of ancient design." + force = 10 + w_class = WEIGHT_CLASS_BULKY + slot_flags = ITEM_SLOT_BACK + throwforce = 20 + throw_speed = 4 + embedding = list("impact_pain_mult" = 3) + armour_penetration = 10 + custom_materials = list(/datum/material/iron=1150, /datum/material/glass=2075) + hitsound = 'sound/weapons/bladeslice.ogg' + attack_verb = list("attacked", "poked", "jabbed", "torn", "gored") + sharpness = IS_SHARP + max_integrity = 200 + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 30) + var/obj/item/grenade/explosive = null + var/war_cry = "AAAAARGH!!!" + var/icon_prefix = "spearglass" + var/wielded = FALSE // track wielded status on item + +/obj/item/spear/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + +/obj/item/spear/ComponentInitialize() + . = ..() + AddComponent(/datum/component/butchering, 100, 70) //decent in a pinch, but pretty bad. + AddComponent(/datum/component/jousting) + AddElement(/datum/element/sword_point) + AddComponent(/datum/component/two_handed, force_unwielded=10, force_wielded=18, icon_wielded="[icon_prefix]1") + +/// triggered on wield of two handed item +/obj/item/spear/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/spear/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/spear/rightclick_attack_self(mob/user) + if(explosive) + explosive.attack_self(user) + return + . = ..() + +/obj/item/spear/update_icon_state() + icon_state = "[icon_prefix]0" + +/obj/item/spear/update_overlays() + . = ..() + if(explosive) + . += "spearbomb_overlay" + +/obj/item/spear/suicide_act(mob/living/carbon/user) + user.visible_message("[user] begins to sword-swallow \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") + if(explosive) //Citadel Edit removes qdel and explosive.forcemove(AM) + user.say("[war_cry]", forced="spear warcry") + explosive.prime() + user.gib() + return BRUTELOSS + return BRUTELOSS + +/obj/item/spear/examine(mob/user) + . = ..() + if(explosive) + . += "Alt-click to set your war cry." + . += "Right-click in combat mode to activate the attached explosive." + +/obj/item/spear/afterattack(atom/movable/AM, mob/user, proximity) + . = ..() + if(!proximity) + return + if(isopenturf(AM)) //So you can actually melee with it + return + if(explosive && wielded) //Citadel edit removes qdel and explosive.forcemove(AM) + user.say("[war_cry]", forced="spear warcry") + explosive.prime() + +/obj/item/spear/grenade_prime_react(obj/item/grenade/nade) //Citadel edit, removes throw_impact because memes + nade.forceMove(get_turf(src)) + qdel(src) + +/obj/item/spear/AltClick(mob/user) + . = ..() + if(user.canUseTopic(src, BE_CLOSE)) + ..() + if(!explosive) + return + if(istype(user) && loc == user) + var/input = stripped_input(user,"What do you want your war cry to be? You will shout it when you hit someone in melee.", ,"", 50) + if(input) + src.war_cry = input + return TRUE + +/obj/item/spear/CheckParts(list/parts_list) + var/obj/item/shard/tip = locate() in parts_list + if (istype(tip, /obj/item/shard/plasma)) + throwforce = 21 + embedding = list(embed_chance = 75, pain_mult = 1.5) //plasmaglass spears are sharper + updateEmbedding() + icon_prefix = "spearplasma" + AddComponent(/datum/component/two_handed, force_unwielded=11, force_wielded=19, icon_wielded="[icon_prefix]1") + qdel(tip) + var/obj/item/spear/S = locate() in parts_list + if(S) + if(S.explosive) + S.explosive.forceMove(get_turf(src)) + S.explosive = null + parts_list -= S + qdel(S) + ..() + var/obj/item/grenade/G = locate() in contents + if(G) + explosive = G + name = "explosive lance" + embedding = list(embed_chance = 0, pain_mult = 1)//elances should not be embeddable + updateEmbedding() + desc = "A makeshift spear with \a [G] attached to it." + update_icon() + +//GREY TIDE +/obj/item/spear/grey_tide + icon_state = "spearglass0" + name = "\improper Grey Tide" + desc = "Recovered from the aftermath of a revolt aboard Defense Outpost Theta Aegis, in which a seemingly endless tide of Assistants caused heavy casualities among Nanotrasen military forces." + throwforce = 20 + throw_speed = 4 + attack_verb = list("gored") + var/clonechance = 50 + var/clonedamage = 12 + var/clonespeed = 0 + var/clone_replication_chance = 30 + var/clone_lifespan = 100 + +/obj/item/spear/grey_tide/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=15, force_wielded=25, icon_wielded="[icon_prefix]1") + +/obj/item/spear/grey_tide/afterattack(atom/movable/AM, mob/living/user, proximity) + . = ..() + if(!proximity) + return + user.faction |= "greytide([REF(user)])" + if(isliving(AM)) + var/mob/living/L = AM + if(istype (L, /mob/living/simple_animal/hostile/illusion)) + return + if(!L.stat && prob(clonechance)) + var/mob/living/simple_animal/hostile/illusion/M = new(user.loc) + M.faction = user.faction.Copy() + M.set_varspeed(clonespeed) + M.Copy_Parent(user, clone_lifespan, user.health/2.5, clonedamage, clone_replication_chance) + M.GiveTarget(L) + +/* + * Bone Spear + */ +/obj/item/spear/bonespear //Blatant imitation of spear, but made out of bone. Not valid for explosive modification. + icon_state = "bone_spear0" + lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/polearms_righthand.dmi' + name = "bone spear" + desc = "A haphazardly-constructed yet still deadly weapon. The pinnacle of modern technology." + force = 11 + w_class = WEIGHT_CLASS_BULKY + slot_flags = ITEM_SLOT_BACK + reach = 2 + throwforce = 22 + embedding = list("embedded_impact_pain_multiplier" = 3) + armour_penetration = 15 //Enhanced armor piercing + custom_materials = null + hitsound = 'sound/weapons/bladeslice.ogg' + attack_verb = list("attacked", "poked", "jabbed", "torn", "gored") + sharpness = IS_SHARP + icon_prefix = "bone_spear" + +/obj/item/spear/bonespear/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=11, force_wielded=20, icon_wielded="[icon_prefix]1") diff --git a/code/game/objects/items/stacks/cash.dm b/code/game/objects/items/stacks/cash.dm index a06b96ad9c..ce0bc6591a 100644 --- a/code/game/objects/items/stacks/cash.dm +++ b/code/game/objects/items/stacks/cash.dm @@ -71,3 +71,9 @@ icon_state = "spacecash1000" singular_name = "one thousand credit bill" value = 1000 + +/obj/item/stack/spacecash/c10000 + icon_state = "spacecash10000" + singular_name = "ten thousand credit bill" + value = 10000 + diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 59a993ad96..e6403e83cc 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -13,18 +13,33 @@ novariants = FALSE item_flags = NOBLUDGEON var/self_delay = 50 + var/other_delay = 0 + var/repeating = FALSE /obj/item/stack/medical/attack(mob/living/M, mob/user) . = ..() + try_heal(M, user) + + +/obj/item/stack/medical/proc/try_heal(mob/living/M, mob/user, silent = FALSE) if(!M.can_inject(user, TRUE)) return if(M == user) - user.visible_message("[user] starts to apply \the [src] on [user.p_them()]self...", "You begin applying \the [src] on yourself...") + if(!silent) + user.visible_message("[user] starts to apply \the [src] on [user.p_them()]self...", "You begin applying \the [src] on yourself...") if(!do_mob(user, M, self_delay, extra_checks=CALLBACK(M, /mob/living/proc/can_inject, user, TRUE))) return + else if(other_delay) + if(!silent) + user.visible_message("[user] starts to apply \the [src] on [M].", "You begin applying \the [src] on [M]...") + if(!do_mob(user, M, other_delay, extra_checks=CALLBACK(M, /mob/living/proc/can_inject, user, TRUE))) + return + if(heal(M, user)) log_combat(user, M, "healed", src.name) use(1) + if(repeating && amount > 0) + try_heal(M, user, TRUE) /obj/item/stack/medical/proc/heal(mob/living/M, mob/user) @@ -96,7 +111,7 @@ var/stop_bleeding = 1800 var/heal_brute = 5 self_delay = 10 - custom_price = 100 + custom_price = PRICE_REALLY_CHEAP /obj/item/stack/medical/gauze/heal(mob/living/M, mob/user) if(ishuman(M)) @@ -174,3 +189,108 @@ /obj/item/stack/medical/ointment/suicide_act(mob/living/user) user.visible_message("[user] is squeezing \the [src] into [user.p_their()] mouth! [user.p_do(TRUE)]n't [user.p_they()] know that stuff is toxic?") return TOXLOSS + +/obj/item/stack/medical/suture + name = "suture" + desc = "Sterile sutures used to seal up cuts and lacerations." + gender = PLURAL + singular_name = "suture" + icon_state = "suture" + self_delay = 30 + other_delay = 10 + amount = 15 + max_amount = 15 + repeating = TRUE + var/heal_brute = 10 + grind_results = list(/datum/reagent/medicine/spaceacillin = 2) + +/obj/item/stack/medical/suture/one + amount = 1 + +/obj/item/stack/medical/suture/heal(mob/living/M, mob/user) + . = ..() + if(M.stat == DEAD) + to_chat(user, "[M] is dead! You can not help [M.p_them()].") + return + if(iscarbon(M)) + return heal_carbon(M, user, heal_brute, 0) + if(isanimal(M)) + var/mob/living/simple_animal/critter = M + if (!(critter.healable)) + to_chat(user, "You cannot use \the [src] on [M]!") + return FALSE + else if (critter.health == critter.maxHealth) + to_chat(user, "[M] is at full health.") + return FALSE + user.visible_message("[user] applies \the [src] on [M].", "You apply \the [src] on [M].") + M.heal_bodypart_damage(heal_brute) + return TRUE + + to_chat(user, "You can't heal [M] with the \the [src]!") + +/obj/item/stack/medical/mesh + name = "regenerative mesh" + desc = "A bacteriostatic mesh used to dress burns." + gender = PLURAL + singular_name = "regenerative mesh" + icon_state = "regen_mesh" + self_delay = 30 + other_delay = 10 + amount = 15 + max_amount = 15 + repeating = TRUE + var/heal_burn = 10 + var/is_open = TRUE ///This var determines if the sterile packaging of the mesh has been opened. + grind_results = list(/datum/reagent/medicine/spaceacillin = 2) + +/obj/item/stack/medical/mesh/one + amount = 1 + +/obj/item/stack/medical/mesh/Initialize() + . = ..() + if(amount == max_amount) //only seal full mesh packs + is_open = FALSE + update_icon() + +/obj/item/stack/medical/mesh/update_icon_state() + if(!is_open) + icon_state = "regen_mesh_closed" + else + return ..() + +/obj/item/stack/medical/mesh/heal(mob/living/M, mob/user) + . = ..() + if(M.stat == DEAD) + to_chat(user, "[M] is dead! You can not help [M.p_them()].") + return + if(iscarbon(M)) + return heal_carbon(M, user, 0, heal_burn) + to_chat(user, "You can't heal [M] with the \the [src]!") + + +/obj/item/stack/medical/mesh/try_heal(mob/living/M, mob/user, silent = FALSE) + if(!is_open) + to_chat(user, "You need to open [src] first.") + return + . = ..() + +/obj/item/stack/medical/mesh/AltClick(mob/living/user) + if(!is_open) + to_chat(user, "You need to open [src] first.") + return + . = ..() + +/obj/item/stack/medical/mesh/attack_hand(mob/user) + if(!is_open & user.get_inactive_held_item() == src) + to_chat(user, "You need to open [src] first.") + return + . = ..() + +/obj/item/stack/medical/mesh/attack_self(mob/user) + if(!is_open) + is_open = TRUE + to_chat(user, "You open the sterile mesh package.") + update_icon() + playsound(src, 'sound/items/poster_ripped.ogg', 20, TRUE) + return + . = ..() diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index e919f3fe02..efcc075110 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -17,10 +17,10 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \ throw_speed = 3 throw_range = 7 custom_materials = list(/datum/material/iron=1000) - mats_per_stack = 1000 max_amount = 50 attack_verb = list("hit", "bludgeoned", "whacked") hitsound = 'sound/weapons/grenadelaunch.ogg' + embedding = list() novariants = TRUE /obj/item/stack/rods/suicide_act(mob/living/carbon/user) @@ -89,3 +89,19 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \ /obj/item/stack/rods/fifty amount = 50 + +/obj/item/stack/rods/lava + name = "heat resistant rod" + desc = "Treated, specialized metal rods. When exposed to the vaccum of space their coating breaks off, but they can hold up against the extreme heat of active lava." + singular_name = "heat resistant rod" + icon_state = "rods" + item_state = "rods" + color = "#5286b9ff" + flags_1 = CONDUCT_1 + w_class = WEIGHT_CLASS_NORMAL + custom_materials = list(/datum/material/iron=1000, /datum/material/plasma=500, /datum/material/titanium=2000) + max_amount = 30 + resistance_flags = FIRE_PROOF | LAVA_PROOF + +/obj/item/stack/rods/lava/thirty + amount = 30 diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index c34ad44d5c..d4baea2487 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -69,7 +69,7 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \ if (get_amount() < 1 || CC.get_amount() < 5) to_chat(user, "You attach wire to the [name].") var/obj/item/stack/light_w/new_tile = new(user.loc) @@ -291,6 +291,7 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( max_integrity = 40 sharpness = IS_SHARP var/icon_prefix + embedding = list("embed_chance" = 65) /obj/item/shard/suicide_act(mob/user) diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index d28ae52b52..7692278ba3 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -39,9 +39,11 @@ GLOBAL_LIST_INIT(sandstone_recipes, list ( \ item_state = "sheet-sandstone" throw_speed = 3 throw_range = 5 - custom_materials = list(/datum/material/glass=MINERAL_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/sandstone=MINERAL_MATERIAL_AMOUNT) sheettype = "sandstone" merge_type = /obj/item/stack/sheet/mineral/sandstone + walltype = /turf/closed/wall/mineral/sandstone + material_type = /datum/material/sandstone /obj/item/stack/sheet/mineral/sandstone/get_main_recipes() . = ..() @@ -107,6 +109,7 @@ GLOBAL_LIST_INIT(sandbag_recipes, list ( \ point_value = 25 merge_type = /obj/item/stack/sheet/mineral/diamond material_type = /datum/material/diamond + walltype = /turf/closed/wall/mineral/diamond GLOBAL_LIST_INIT(diamond_recipes, list ( \ new/datum/stack_recipe("diamond door", /obj/structure/mineral_door/transparent/diamond, 10, one_per_turf = 1, on_floor = 1), \ @@ -135,6 +138,7 @@ GLOBAL_LIST_INIT(diamond_recipes, list ( \ point_value = 20 merge_type = /obj/item/stack/sheet/mineral/uranium material_type = /datum/material/uranium + walltype = /turf/closed/wall/mineral/uranium GLOBAL_LIST_INIT(uranium_recipes, list ( \ new/datum/stack_recipe("uranium door", /obj/structure/mineral_door/uranium, 10, one_per_turf = 1, on_floor = 1), \ @@ -163,6 +167,7 @@ GLOBAL_LIST_INIT(uranium_recipes, list ( \ point_value = 20 merge_type = /obj/item/stack/sheet/mineral/plasma material_type = /datum/material/plasma + walltype = /turf/closed/wall/mineral/plasma /obj/item/stack/sheet/mineral/plasma/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins licking \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") @@ -205,6 +210,7 @@ GLOBAL_LIST_INIT(plasma_recipes, list ( \ point_value = 20 merge_type = /obj/item/stack/sheet/mineral/gold material_type = /datum/material/gold + walltype = /turf/closed/wall/mineral/gold GLOBAL_LIST_INIT(gold_recipes, list ( \ new/datum/stack_recipe("golden door", /obj/structure/mineral_door/gold, 10, one_per_turf = 1, on_floor = 1), \ @@ -236,6 +242,7 @@ GLOBAL_LIST_INIT(gold_recipes, list ( \ merge_type = /obj/item/stack/sheet/mineral/silver material_type = /datum/material/silver tableVariant = /obj/structure/table/optable + walltype = /turf/closed/wall/mineral/silver GLOBAL_LIST_INIT(silver_recipes, list ( \ new/datum/stack_recipe("silver door", /obj/structure/mineral_door/silver, 10, one_per_turf = 1, on_floor = 1), \ @@ -266,6 +273,7 @@ GLOBAL_LIST_INIT(silver_recipes, list ( \ point_value = 50 merge_type = /obj/item/stack/sheet/mineral/bananium material_type = /datum/material/bananium + walltype = /turf/closed/wall/mineral/bananium GLOBAL_LIST_INIT(bananium_recipes, list ( \ new/datum/stack_recipe("bananium tile", /obj/item/stack/tile/mineral/bananium, 1, 4, 20), \ @@ -294,6 +302,7 @@ GLOBAL_LIST_INIT(bananium_recipes, list ( \ point_value = 20 merge_type = /obj/item/stack/sheet/mineral/titanium material_type = /datum/material/titanium + walltype = /turf/closed/wall/mineral/titanium GLOBAL_LIST_INIT(titanium_recipes, list ( \ new/datum/stack_recipe("titanium tile", /obj/item/stack/tile/mineral/titanium, 1, 4, 20), \ @@ -324,6 +333,7 @@ GLOBAL_LIST_INIT(titanium_recipes, list ( \ custom_materials = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT, /datum/material/plasma=MINERAL_MATERIAL_AMOUNT) point_value = 45 merge_type = /obj/item/stack/sheet/mineral/plastitanium + walltype = /turf/closed/wall/mineral/plastitanium /obj/item/stack/sheet/mineral/plastitanium/fifty amount = 50 @@ -390,11 +400,14 @@ GLOBAL_LIST_INIT(adamantine_recipes, list( name = "snow" icon_state = "sheet-snow" item_state = "sheet-snow" + custom_materials = list(/datum/material/snow = MINERAL_MATERIAL_AMOUNT) singular_name = "snow block" force = 1 throwforce = 2 grind_results = list(/datum/reagent/consumable/ice = 20) merge_type = /obj/item/stack/sheet/mineral/snow + walltype = /turf/closed/wall/mineral/snow + material_type = /datum/material/snow GLOBAL_LIST_INIT(snow_recipes, list ( \ new/datum/stack_recipe("Snow Wall", /turf/closed/wall/mineral/snow, 5, one_per_turf = 1, on_floor = 1), \ @@ -417,6 +430,7 @@ GLOBAL_LIST_INIT(snow_recipes, list ( \ singular_name = "alien alloy sheet" sheettype = "abductor" merge_type = /obj/item/stack/sheet/mineral/abductor + walltype = /turf/closed/wall/mineral/abductor GLOBAL_LIST_INIT(abductor_recipes, list ( \ new/datum/stack_recipe("alien bed", /obj/structure/bed/abductor, 2, one_per_turf = 1, on_floor = 1), \ diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index f19dbb2a6b..3ca7137548 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -5,7 +5,6 @@ * Wood * Bamboo * Cloth - * Silk * Durathread * Cardboard * Runed Metal (cult) @@ -63,7 +62,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ new/datum/stack_recipe("floor tile", /obj/item/stack/tile/plasteel, 1, 4, 20), \ new/datum/stack_recipe("metal rod", /obj/item/stack/rods, 1, 2, 60), \ null, \ - new/datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 40, one_per_turf = TRUE, on_floor = TRUE, trait_booster = TRAIT_QUICK_BUILD, trait_modifier = 0.75), \ null, \ new/datum/stack_recipe("computer frame", /obj/structure/frame/computer, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("modular console", /obj/machinery/modular_computer/console/buildable/, 10, time = 25, one_per_turf = TRUE, on_floor = TRUE), \ @@ -206,7 +205,7 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ desc = "This sheet is an alloy of iron and plasma." icon_state = "sheet-plasteel" item_state = "sheet-metal" - custom_materials = list(/datum/material/iron=2000, /datum/material/plasma=2000) + custom_materials = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT, /datum/material/plasma=MINERAL_MATERIAL_AMOUNT) throwforce = 10 flags_1 = CONDUCT_1 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 80) @@ -241,7 +240,8 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ new /datum/stack_recipe("pew (right)", /obj/structure/chair/pew/right, 3, one_per_turf = TRUE, on_floor = TRUE),\ )), null, \ - new/datum/stack_recipe("rifle stock", /obj/item/weaponcrafting/stock, 10, time = 40), \ + new/datum/stack_recipe("wooden firearm body", /obj/item/weaponcrafting/improvised_parts/wooden_body, 10, time = 20), \ + new/datum/stack_recipe("rifle stock", /obj/item/weaponcrafting/stock, 10, time = 20), \ new/datum/stack_recipe("rolling pin", /obj/item/kitchen/rollingpin, 2, time = 30), \ new/datum/stack_recipe("wooden bucket", /obj/item/reagent_containers/glass/bucket/wood, 2, time = 30), \ new/datum/stack_recipe("wooden buckler", /obj/item/shield/riot/buckler, 20, time = 40), \ @@ -268,6 +268,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ new/datum/stack_recipe("apiary", /obj/structure/beebox, 40, time = 50),\ null, \ new/datum/stack_recipe("picture frame", /obj/item/wallframe/picture, 1, time = 10),\ + new/datum/stack_recipe("painting frame", /obj/item/wallframe/painting, 1, time = 10),\ new/datum/stack_recipe("mortar", /obj/item/reagent_containers/glass/mortar, 3), \ new/datum/stack_recipe("honey frame", /obj/item/honey_frame, 5, time = 10),\ )) @@ -279,12 +280,15 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ icon_state = "sheet-wood" item_state = "sheet-wood" icon = 'icons/obj/stack_objects.dmi' + custom_materials = list(/datum/material/wood=MINERAL_MATERIAL_AMOUNT) sheettype = "wood" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0) resistance_flags = FLAMMABLE merge_type = /obj/item/stack/sheet/mineral/wood novariants = TRUE + material_type = /datum/material/wood grind_results = list(/datum/reagent/carbon = 20) + walltype = /turf/closed/wall/mineral/wood /obj/item/stack/sheet/mineral/wood/attackby(obj/item/W, mob/user, params) // NOTE: sheet_types.dm is where the WOOD stack lives. Maybe move this over there. // Taken from /obj/item/stack/rods/attackby in [rods.dm] @@ -340,11 +344,13 @@ GLOBAL_LIST_INIT(bamboo_recipes, list ( \ icon_state = "sheet-bamboo" item_state = "sheet-bamboo" icon = 'icons/obj/stack_objects.dmi' + custom_materials = list(/datum/material/bamboo = MINERAL_MATERIAL_AMOUNT) throwforce = 15 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0) resistance_flags = FLAMMABLE merge_type = /obj/item/stack/sheet/mineral/bamboo grind_results = list(/datum/reagent/carbon = 5) + material_type = /datum/material/bamboo /obj/item/stack/sheet/mineral/bamboo/get_main_recipes() . = ..() @@ -375,6 +381,7 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ new/datum/stack_recipe("chemistry bag", /obj/item/storage/bag/chemistry, 4), \ new/datum/stack_recipe("bio bag", /obj/item/storage/bag/bio, 4), \ null, \ + new/datum/stack_recipe("string", /obj/item/weaponcrafting/string, 1, time = 10), \ new/datum/stack_recipe("improvised gauze", /obj/item/stack/medical/gauze/improvised, 1, 2, 6), \ new/datum/stack_recipe("rag", /obj/item/reagent_containers/rag, 1), \ new/datum/stack_recipe("towel", /obj/item/reagent_containers/rag/towel, 3), \ @@ -388,6 +395,9 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ null, \ new/datum/stack_recipe("blindfold", /obj/item/clothing/glasses/sunglasses/blindfold, 2), \ null, \ + new/datum/stack_recipe("19x19 canvas", /obj/item/canvas/nineteenXnineteen, 3), \ + new/datum/stack_recipe("23x19 canvas", /obj/item/canvas/twentythreeXnineteen, 4), \ + new/datum/stack_recipe("23x23 canvas", /obj/item/canvas/twentythreeXtwentythree, 5), \ )) /obj/item/stack/sheet/cloth @@ -399,9 +409,6 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ resistance_flags = FLAMMABLE force = 0 throwforce = 0 - pull_effort = 90 - is_fabric = TRUE - loom_result = /obj/item/stack/sheet/silk merge_type = /obj/item/stack/sheet/cloth /obj/item/stack/sheet/cloth/get_main_recipes() @@ -414,30 +421,6 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ /obj/item/stack/sheet/cloth/thirty amount = 30 -/* - * Silk - */ - - GLOBAL_LIST_INIT(silk_recipes, list ( \ - new/datum/stack_recipe("white jumpsuit", /obj/item/clothing/under/color/white, 4, time = 40), \ - new/datum/stack_recipe("white gloves", /obj/item/clothing/gloves/color/white, 2, time = 40), \ - null, \ - new/datum/stack_recipe("silk string", /obj/item/weaponcrafting/silkstring, 1, time = 40), \ - )) - -/obj/item/stack/sheet/silk - name = "silk" - desc = "A long, soft material. Made out of refined cotton, instead of relying on the habits of spiders or silkworms." - singular_name = "silk sheet" - icon_state = "sheet-silk" - item_state = "sheet-cloth" - novariants = TRUE - merge_type = /obj/item/stack/sheet/silk - -/obj/item/stack/sheet/silk/get_main_recipes() - . = ..() - . += GLOB.silk_recipes - /* * Durathread */ @@ -532,12 +515,14 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \ desc = "Large sheets of card, like boxes folded flat." singular_name = "cardboard sheet" icon_state = "sheet-card" + custom_materials = list(/datum/material/cardboard = MINERAL_MATERIAL_AMOUNT) item_state = "sheet-card" resistance_flags = FLAMMABLE force = 0 throwforce = 0 merge_type = /obj/item/stack/sheet/cardboard novariants = TRUE + material_type = /datum/material/cardboard /obj/item/stack/sheet/cardboard/get_main_recipes() . = ..() @@ -577,10 +562,12 @@ GLOBAL_LIST_INIT(runed_metal_recipes, list ( \ icon_state = "sheet-runed" item_state = "sheet-runed" icon = 'icons/obj/stack_objects.dmi' + custom_materials = list(/datum/material/runedmetal = MINERAL_MATERIAL_AMOUNT) sheettype = "runed" merge_type = /obj/item/stack/sheet/runed_metal novariants = TRUE grind_results = list(/datum/reagent/iron = 5, /datum/reagent/blood = 15) + material_type = /datum/material/runedmetal /obj/item/stack/sheet/runed_metal/ratvar_act() new /obj/item/stack/tile/brass(loc, amount) @@ -699,6 +686,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ icon_state = "sheet-brass" item_state = "sheet-brass" icon = 'icons/obj/stack_objects.dmi' + custom_materials = list(/datum/material/bronze = MINERAL_MATERIAL_AMOUNT) resistance_flags = FIRE_PROOF | ACID_PROOF throwforce = 10 max_amount = 50 @@ -709,6 +697,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ grind_results = list(/datum/reagent/iron = 5, /datum/reagent/copper = 3) //we have no "tin" reagent so this is the closest thing merge_type = /obj/item/stack/tile/bronze tableVariant = /obj/structure/table/bronze + material_type = /datum/material/bronze /obj/item/stack/tile/bronze/attack_self(mob/living/user) if(is_servant_of_ratvar(user)) //still lets them build with it, just gives a message @@ -756,6 +745,7 @@ GLOBAL_LIST_INIT(bone_recipes, list( icon = 'icons/obj/mining.dmi' icon_state = "bone" item_state = "sheet-bone" + custom_materials = list(/datum/material/bone = MINERAL_MATERIAL_AMOUNT) singular_name = "bone" desc = "Someone's been drinking their milk." force = 7 @@ -766,6 +756,7 @@ GLOBAL_LIST_INIT(bone_recipes, list( throw_range = 3 grind_results = list(/datum/reagent/carbon = 10) merge_type = /obj/item/stack/sheet/bone + material_type = /datum/material/bone /obj/item/stack/sheet/bone/get_main_recipes() . = ..() @@ -793,11 +784,15 @@ GLOBAL_LIST_INIT(plastic_recipes, list( custom_materials = list(/datum/material/plastic=MINERAL_MATERIAL_AMOUNT) throwforce = 7 grind_results = list(/datum/reagent/glitter/white = 60) + material_type = /datum/material/plastic merge_type = /obj/item/stack/sheet/plastic /obj/item/stack/sheet/plastic/fifty amount = 50 +/obj/item/stack/sheet/plastic/twenty + amount = 20 + /obj/item/stack/sheet/plastic/five amount = 5 @@ -815,9 +810,11 @@ new /datum/stack_recipe("paper frame door", /obj/structure/mineral_door/paperfra singular_name = "paper frame" icon_state = "sheet-paper" item_state = "sheet-paper" + custom_materials = list(/datum/material/paper = MINERAL_MATERIAL_AMOUNT) merge_type = /obj/item/stack/sheet/paperframes resistance_flags = FLAMMABLE merge_type = /obj/item/stack/sheet/paperframes + material_type = /datum/material/paper /obj/item/stack/sheet/paperframes/get_main_recipes() . = ..() @@ -837,13 +834,12 @@ new /datum/stack_recipe("paper frame door", /obj/structure/mineral_door/paperfra max_amount = 80 singular_name = "raw cotton ball" icon_state = "sheet-cotton" - is_fabric = TRUE resistance_flags = FLAMMABLE force = 0 throwforce = 0 merge_type = /obj/item/stack/sheet/cotton - pull_effort = 30 - loom_result = /obj/item/stack/sheet/cloth + var/pull_effort = 30 + var/loom_result = /obj/item/stack/sheet/cloth /obj/item/stack/sheet/cotton/ten amount = 10 @@ -859,3 +855,55 @@ new /datum/stack_recipe("paper frame door", /obj/structure/mineral_door/paperfra merge_type = /obj/item/stack/sheet/cotton/durathread pull_effort = 70 loom_result = /obj/item/stack/sheet/durathread + +/obj/item/stack/sheet/meat + name = "meat sheets" + desc = "Something's bloody meat compressed into a nice solid sheet" + singular_name = "meat sheet" + icon_state = "sheet-meat" + material_flags = MATERIAL_COLOR + custom_materials = list(/datum/material/meat = MINERAL_MATERIAL_AMOUNT) + merge_type = /obj/item/stack/sheet/meat + material_type = /datum/material/meat + material_modifier = 1 //None of that wussy stuff + +/obj/item/stack/sheet/meat/fifty + amount = 50 +/obj/item/stack/sheet/meat/twenty + amount = 20 +/obj/item/stack/sheet/meat/five + amount = 5 + +/obj/item/stack/sheet/pizza + name = "pepperoni sheetzzas" + desc = "It's a delicious pepperoni sheetzza!" + singular_name = "pepperoni sheetzza" + icon_state = "sheet-pizza" + custom_materials = list(/datum/material/pizza = MINERAL_MATERIAL_AMOUNT) + merge_type = /obj/item/stack/sheet/pizza + material_type = /datum/material/pizza + material_modifier = 1 + +/obj/item/stack/sheet/pizza/fifty + amount = 50 +/obj/item/stack/sheet/pizza/twenty + amount = 20 +/obj/item/stack/sheet/pizza/five + amount = 5 + +/obj/item/stack/sheet/sandblock + name = "blocks of sand" + desc = "You're too old to be playing with sandcastles. Now you build... sandstations." + singular_name = "block of sand" + icon_state = "sheet-sandstone" + custom_materials = list(/datum/material/sand = MINERAL_MATERIAL_AMOUNT) + merge_type = /obj/item/stack/sheet/sandblock + material_type = /datum/material/sand + material_modifier = 1 + +/obj/item/stack/sheet/sandblock/fifty + amount = 50 +/obj/item/stack/sheet/sandblock/twenty + amount = 20 +/obj/item/stack/sheet/sandblock/five + amount = 5 diff --git a/code/game/objects/items/stacks/sheets/sheets.dm b/code/game/objects/items/stacks/sheets/sheets.dm index 378855707e..57c8ba75d8 100644 --- a/code/game/objects/items/stacks/sheets/sheets.dm +++ b/code/game/objects/items/stacks/sheets/sheets.dm @@ -10,13 +10,14 @@ throw_range = 3 attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "smashed") novariants = FALSE - mats_per_stack = MINERAL_MATERIAL_AMOUNT - var/sheettype = null //this is used for girders in the creation of walls/false walls - var/point_value = 0 //turn-in value for the gulag stacker - loosely relative to its rarity - var/is_fabric = FALSE //is this a valid material for the loom? - var/loom_result //result from pulling on the loom - var/pull_effort = 0 //amount of delay when pulling on the loom - var/shard_type // the shard debris typepath left over by solar panels and windows etc. + ///this is used for girders in the creation of walls/false walls + var/sheettype = null + ///turn-in value for the gulag stacker - loosely relative to its rarity + var/point_value = 0 + /// the shard debris typepath left over by solar panels and windows etc. + var/shard_type + ///What type of wall does this sheet spawn + var/walltype /obj/item/stack/sheet/Initialize(mapload, new_amount, merge) . = ..() diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index add9ebd6b2..16b46567c7 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -22,7 +22,7 @@ var/merge_type = null // This path and its children should merge with this stack, defaults to src.type var/full_w_class = WEIGHT_CLASS_NORMAL //The weight class the stack should have at amount > 2/3rds max_amount var/novariants = TRUE //Determines whether the item should update it's sprites based on amount. - var/mats_per_stack = 0 + var/list/mats_per_unit //list that tells you how much is in a single unit. ///Datum material type that this stack is made of var/material_type //NOTE: When adding grind_results, the amounts should be for an INDIVIDUAL ITEM - these amounts will be multiplied by the stack size in on_grind() @@ -47,8 +47,11 @@ if(!merge_type) merge_type = type if(custom_materials && custom_materials.len) + mats_per_unit = list() + var/in_process_mat_list = custom_materials.Copy() for(var/i in custom_materials) - custom_materials[SSmaterials.GetMaterialRef(i)] = mats_per_stack * amount + mats_per_unit[SSmaterials.GetMaterialRef(i)] = in_process_mat_list[i] + custom_materials[i] *= amount . = ..() if(merge) for(var/obj/item/stack/S in loc) @@ -60,7 +63,7 @@ var/datum/material/M = SSmaterials.GetMaterialRef(material_type) //First/main material for(var/i in M.categories) switch(i) - if(MAT_CATEGORY_RIGID) + if(MAT_CATEGORY_BASE_RECIPES) var/list/temp = SSmaterials.rigid_stack_recipes.Copy() recipes += temp update_weight() @@ -201,8 +204,13 @@ if(!building_checks(R, multiplier)) return if (R.time) + var/adjusted_time = 0 usr.visible_message("[usr] starts building [R.title].", "You start building [R.title]...") - if (!do_after(usr, R.time, target = usr)) + if(HAS_TRAIT(usr, R.trait_booster)) + adjusted_time = (R.time * R.trait_modifier) + else + adjusted_time = R.time + if (!do_after(usr, adjusted_time, target = usr)) return if(!building_checks(R, multiplier)) return @@ -310,10 +318,13 @@ if (amount < used) return FALSE amount -= used - if(check) - zero_amount() - for(var/i in custom_materials) - custom_materials[i] = amount * mats_per_stack + if(check && zero_amount()) + return TRUE + if(length(mats_per_unit)) + var/temp_materials = custom_materials.Copy() + for(var/i in mats_per_unit) + temp_materials[i] = mats_per_unit[i] * src.amount + set_custom_materials(temp_materials) update_icon() update_weight() return TRUE @@ -345,10 +356,11 @@ source.add_charge(amount * cost) else src.amount += amount - if(custom_materials && custom_materials.len) - for(var/i in custom_materials) - custom_materials[SSmaterials.GetMaterialRef(i)] = MINERAL_MATERIAL_AMOUNT * src.amount - set_custom_materials() //Refresh + if(length(mats_per_unit)) + var/temp_materials = custom_materials.Copy() + for(var/i in mats_per_unit) + temp_materials[i] = mats_per_unit[i] * src.amount + set_custom_materials(temp_materials) update_icon() update_weight() @@ -457,8 +469,10 @@ var/window_checks = FALSE var/placement_checks = FALSE var/applies_mats = FALSE + var/trait_booster = null + var/trait_modifier = 1 -/datum/stack_recipe/New(title, result_type, req_amount = 1, res_amount = 1, max_res_amount = 1,time = 0, one_per_turf = FALSE, on_floor = FALSE, window_checks = FALSE, placement_checks = FALSE, applies_mats = FALSE) +/datum/stack_recipe/New(title, result_type, req_amount = 1, res_amount = 1, max_res_amount = 1,time = 0, one_per_turf = FALSE, on_floor = FALSE, window_checks = FALSE, placement_checks = FALSE, applies_mats = FALSE, trait_booster = null, trait_modifier = 1) src.title = title @@ -472,6 +486,8 @@ src.window_checks = window_checks src.placement_checks = placement_checks src.applies_mats = applies_mats + src.trait_booster = trait_booster + src.trait_modifier = trait_modifier /* * Recipe list datum */ diff --git a/code/game/objects/items/stacks/tape.dm b/code/game/objects/items/stacks/tape.dm new file mode 100644 index 0000000000..177260febb --- /dev/null +++ b/code/game/objects/items/stacks/tape.dm @@ -0,0 +1,61 @@ + + +/obj/item/stack/sticky_tape + name = "sticky tape" + singular_name = "sticky tape" + desc = "Used for sticking to things for sticking said things to people." + icon = 'icons/obj/tapes.dmi' + icon_state = "tape_w" + var/prefix = "sticky" + item_flags = NOBLUDGEON + amount = 5 + max_amount = 5 + resistance_flags = FLAMMABLE + + var/list/conferred_embed = EMBED_HARMLESS + var/overwrite_existing = FALSE + +/obj/item/stack/sticky_tape/afterattack(obj/item/I, mob/living/user) + if(!istype(I)) + return + + if(I.embedding && I.embedding == conferred_embed) + to_chat(user, "[I] is already coated in [src]!") + return + + user.visible_message("[user] begins wrapping [I] with [src].", "You begin wrapping [I] with [src].") + + if(do_after(user, 30, target=I)) + I.embedding = conferred_embed + I.updateEmbedding() + to_chat(user, "You finish wrapping [I] with [src].") + use(1) + I.name = "[prefix] [I.name]" + + if(istype(I, /obj/item/grenade)) + var/obj/item/grenade/sticky_bomb = I + sticky_bomb.sticky = TRUE + +/obj/item/stack/sticky_tape/super + name = "super sticky tape" + singular_name = "super sticky tape" + desc = "Quite possibly the most mischevious substance in the galaxy. Use with extreme lack of caution." + icon_state = "tape_y" + prefix = "super sticky" + conferred_embed = EMBED_HARMLESS_SUPERIOR + +/obj/item/stack/sticky_tape/pointy + name = "pointy tape" + singular_name = "pointy tape" + desc = "Used for sticking to things for sticking said things inside people." + icon_state = "tape_evil" + prefix = "pointy" + conferred_embed = EMBED_POINTY + +/obj/item/stack/sticky_tape/pointy/super + name = "super pointy tape" + singular_name = "super pointy tape" + desc = "You didn't know tape could look so sinister. Welcome to Space Station 13." + icon_state = "tape_spikes" + prefix = "super pointy" + conferred_embed = EMBED_POINTY_SUPERIOR \ No newline at end of file diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index ff81b4340a..13fca1e8fe 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -9,16 +9,35 @@ throw_speed = 3 throw_range = 7 max_amount = 60 - mats_per_stack = 500 var/turf_type = null var/mineralType = null novariants = TRUE + var/human_maxHealth = 100 /obj/item/stack/tile/Initialize(mapload, amount) . = ..() pixel_x = rand(-3, 3) pixel_y = rand(-3, 3) //randomize a little +/obj/item/stack/tile/examine(mob/user) + . = ..() + if(throwforce && !is_cyborg) //do not want to divide by zero or show the message to borgs who can't throw + var/verb + switch(CEILING(human_maxHealth / throwforce, 1)) //throws to crit a human + if(1 to 3) + verb = "superb" + if(4 to 6) + verb = "great" + if(7 to 9) + verb = "good" + if(10 to 12) + verb = "fairly decent" + if(13 to 15) + verb = "mediocre" + if(!verb) + return + . += "Those could work as a [verb] throwing weapon." + /obj/item/stack/tile/attackby(obj/item/W, mob/user, params) if (istype(W, /obj/item/weldingtool)) @@ -266,6 +285,9 @@ /obj/item/stack/tile/carpet/blackred/twenty amount = 20 +/obj/item/stack/tile/carpet/blackred/thirty + amount = 30 + /obj/item/stack/tile/carpet/blackred/fifty amount = 50 @@ -275,6 +297,9 @@ /obj/item/stack/tile/carpet/monochrome/twenty amount = 20 +/obj/item/stack/tile/carpet/monochrome/thirty + amount = 30 + /obj/item/stack/tile/carpet/monochrome/fifty amount = 50 @@ -284,6 +309,9 @@ /obj/item/stack/tile/carpet/blue/twenty amount = 20 +/obj/item/stack/tile/carpet/blue/thirty + amount = 30 + /obj/item/stack/tile/carpet/blue/fifty amount = 50 @@ -293,6 +321,9 @@ /obj/item/stack/tile/carpet/cyan/twenty amount = 20 +/obj/item/stack/tile/carpet/cyan/thirty + amount = 30 + /obj/item/stack/tile/carpet/cyan/fifty amount = 50 @@ -302,6 +333,9 @@ /obj/item/stack/tile/carpet/green/twenty amount = 20 +/obj/item/stack/tile/carpet/green/thirty + amount = 30 + /obj/item/stack/tile/carpet/green/fifty amount = 50 @@ -311,6 +345,9 @@ /obj/item/stack/tile/carpet/orange/twenty amount = 20 +/obj/item/stack/tile/carpet/orange/thirty + amount = 30 + /obj/item/stack/tile/carpet/orange/fifty amount = 50 @@ -320,6 +357,9 @@ /obj/item/stack/tile/carpet/purple/twenty amount = 20 +/obj/item/stack/tile/carpet/purple/thirty + amount = 30 + /obj/item/stack/tile/carpet/purple/fifty amount = 50 @@ -329,6 +369,9 @@ /obj/item/stack/tile/carpet/red/twenty amount = 20 +/obj/item/stack/tile/carpet/red/thirty + amount = 30 + /obj/item/stack/tile/carpet/red/fifty amount = 50 @@ -338,6 +381,9 @@ /obj/item/stack/tile/carpet/royalblack/twenty amount = 20 +/obj/item/stack/tile/carpet/royalblack/thirty + amount = 30 + /obj/item/stack/tile/carpet/royalblack/fifty amount = 50 @@ -347,6 +393,9 @@ /obj/item/stack/tile/carpet/royalblue/twenty amount = 20 +/obj/item/stack/tile/carpet/royalblue/thirty + amount = 30 + /obj/item/stack/tile/carpet/royalblue/fifty amount = 50 @@ -440,7 +489,7 @@ /obj/item/stack/tile/plasteel name = "floor tile" singular_name = "floor tile" - desc = "Those could work as a pretty decent throwing weapon." + desc = "The ground you walk on." icon_state = "tile" force = 6 custom_materials = list(/datum/material/iron=500) @@ -452,7 +501,15 @@ resistance_flags = FIRE_PROOF /obj/item/stack/tile/plasteel/cyborg - desc = "The ground you walk on." //Not the usual floor tile desc as that refers to throwing, Cyborgs can't do that - RR custom_materials = null // All other Borg versions of items have no Metal or Glass - RR is_cyborg = 1 cost = 125 + +/obj/item/stack/tile/material + name = "floor tile" + singular_name = "floor tile" + desc = "The ground you walk on." + throwforce = 10 + icon_state = "material_tile" + turf_type = /turf/open/floor/material + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS diff --git a/code/game/objects/items/storage/storage.dm b/code/game/objects/items/storage/_storage.dm similarity index 100% rename from code/game/objects/items/storage/storage.dm rename to code/game/objects/items/storage/_storage.dm diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index a4d9636414..3d5f0dc924 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -24,9 +24,9 @@ /obj/item/storage/backpack/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_combined_w_class = 21 - STR.max_w_class = WEIGHT_CLASS_NORMAL - STR.max_items = 21 + STR.storage_flags = STORAGE_FLAGS_VOLUME_DEFAULT + STR.max_volume = STORAGE_VOLUME_BACKPACK + STR.max_w_class = MAX_WEIGHT_CLASS_BACKPACK /* * Backpack Types @@ -64,9 +64,9 @@ /obj/item/storage/backpack/holding/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.allow_big_nesting = TRUE - STR.max_w_class = WEIGHT_CLASS_BULKY - STR.max_combined_w_class = 35 + STR.max_w_class = MAX_WEIGHT_CLASS_BAG_OF_HOLDING + STR.storage_flags = STORAGE_FLAGS_VOLUME_DEFAULT + STR.max_volume = STORAGE_VOLUME_BAG_OF_HOLDING /obj/item/storage/backpack/holding/suicide_act(mob/living/user) user.visible_message("[user] is jumping into [src]! It looks like [user.p_theyre()] trying to commit suicide.") @@ -344,7 +344,7 @@ /obj/item/storage/backpack/duffelbag/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_combined_w_class = 30 + STR.max_volume = STORAGE_VOLUME_DUFFLEBAG /obj/item/storage/backpack/duffelbag/captain name = "captain's duffel bag" diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index 52802fa3df..2831311eff 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -61,7 +61,7 @@ switch(contents.len) if(0) icon_state = "[initial(icon_state)]" - if(0 to 11) + if(1 to 11) icon_state = "[initial(icon_state)]1" if(11 to 20) icon_state = "[initial(icon_state)]2" @@ -326,6 +326,7 @@ w_class = WEIGHT_CLASS_BULKY flags_1 = CONDUCT_1 custom_materials = list(/datum/material/iron=3000) + var/max_items = 7 /obj/item/storage/bag/tray/ComponentInitialize() . = ..() @@ -333,6 +334,7 @@ STR.max_w_class = WEIGHT_CLASS_NORMAL STR.can_hold = typecacheof(list(/obj/item/reagent_containers/food, /obj/item/reagent_containers/glass, /datum/reagent/consumable, /obj/item/kitchen/knife, /obj/item/kitchen/rollingpin, /obj/item/kitchen/fork, /obj/item/storage/box)) //Should cover: Bottles, Beakers, Bowls, Booze, Glasses, Food, Kitchen Tools, and ingredient boxes. STR.insert_preposition = "on" + STR.max_items = max_items /obj/item/storage/bag/tray/attack(mob/living/M, mob/living/user) . = ..() @@ -373,6 +375,14 @@ . = ..() update_icon() +//bluespace tray, holds more items +/obj/item/storage/bag/tray/bluespace + name = "bluespace tray" + icon_state = "bluespace_tray" + desc = "A tray created using bluespace technology to fit more food on it." + max_items = 30 // far more items + custom_materials = list(/datum/material/iron = 2000, /datum/material/bluespace = 500) + /* * Chemistry bag */ @@ -382,16 +392,16 @@ icon = 'icons/obj/chemical.dmi' icon_state = "bag" desc = "A bag for storing pills, patches, and bottles." - w_class = WEIGHT_CLASS_TINY + slot_flags = ITEM_SLOT_BELT|ITEM_SLOT_POCKET resistance_flags = FLAMMABLE /obj/item/storage/bag/chemistry/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_combined_w_class = 200 - STR.max_items = 50 + STR.storage_flags = STORAGE_FLAGS_VOLUME_DEFAULT + STR.max_volume = STORAGE_VOLUME_CHEMISTRY_BAG STR.insert_preposition = "in" - STR.can_hold = typecacheof(list(/obj/item/reagent_containers/pill, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/syringe/dart)) + STR.can_hold = typecacheof(list(/obj/item/reagent_containers/pill, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/syringe/dart, /obj/item/reagent_containers/chem_pack)) /* * Biowaste bag (mostly for xenobiologists) @@ -402,7 +412,7 @@ icon = 'icons/obj/chemical.dmi' icon_state = "biobag" desc = "A bag for the safe transportation and disposal of biowaste and other biological materials." - w_class = WEIGHT_CLASS_TINY + slot_flags = ITEM_SLOT_BELT|ITEM_SLOT_POCKET resistance_flags = FLAMMABLE /obj/item/storage/bag/bio/ComponentInitialize() @@ -427,3 +437,39 @@ var/datum/component/storage/STR = GetComponent(/datum/component/storage) STR.max_combined_w_class = INFINITY STR.max_items = 100 + +/obj/item/storage/bag/ammo + name = "ammo pouch" + desc = "A pouch for your ammo that goes in your pocket." + icon = 'icons/obj/items_and_weapons.dmi' + icon_state = "ammopouch" + slot_flags = ITEM_SLOT_POCKET + w_class = WEIGHT_CLASS_BULKY + resistance_flags = FLAMMABLE + +/obj/item/storage/bag/ammo/ComponentInitialize() + . = ..() + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_NORMAL + STR.max_combined_w_class = 30 + STR.max_items = 3 + STR.display_numerical_stacking = FALSE + STR.can_hold = typecacheof(list(/obj/item/ammo_box/magazine, /obj/item/ammo_casing)) + +/obj/item/storage/bag/material + name = "material pouch" + desc = "A pouch for sheets and RCD ammunition that manages to hang where you would normally put things in your pocket." + icon = 'icons/obj/items_and_weapons.dmi' + icon_state = "materialpouch" + slot_flags = ITEM_SLOT_POCKET + w_class = WEIGHT_CLASS_BULKY + resistance_flags = FLAMMABLE + +/obj/item/storage/bag/material/ComponentInitialize() + . = ..() + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_NORMAL + STR.max_combined_w_class = INFINITY + STR.max_items = 2 + STR.display_numerical_stacking = TRUE + STR.can_hold = typecacheof(list(/obj/item/rcd_ammo, /obj/item/stack/sheet)) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 82ae274012..4fa742df46 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -180,7 +180,8 @@ /obj/item/implantcase, /obj/item/implant, /obj/item/implanter, - /obj/item/pinpointer/crew + /obj/item/pinpointer/crew, + /obj/item/reagent_containers/chem_pack )) /obj/item/storage/belt/medical/surgery_belt_adv @@ -512,16 +513,16 @@ new /obj/item/grenade/smokebomb(src) new /obj/item/grenade/empgrenade(src) new /obj/item/grenade/empgrenade(src) - new /obj/item/grenade/syndieminibomb/concussion/frag(src) - new /obj/item/grenade/syndieminibomb/concussion/frag(src) - new /obj/item/grenade/syndieminibomb/concussion/frag(src) - new /obj/item/grenade/syndieminibomb/concussion/frag(src) - new /obj/item/grenade/syndieminibomb/concussion/frag(src) - new /obj/item/grenade/syndieminibomb/concussion/frag(src) - new /obj/item/grenade/syndieminibomb/concussion/frag(src) - new /obj/item/grenade/syndieminibomb/concussion/frag(src) - new /obj/item/grenade/syndieminibomb/concussion/frag(src) - new /obj/item/grenade/syndieminibomb/concussion/frag(src) + new /obj/item/grenade/frag(src) + new /obj/item/grenade/frag(src) + new /obj/item/grenade/frag(src) + new /obj/item/grenade/frag(src) + new /obj/item/grenade/frag(src) + new /obj/item/grenade/frag(src) + new /obj/item/grenade/frag(src) + new /obj/item/grenade/frag(src) + new /obj/item/grenade/frag(src) + new /obj/item/grenade/frag(src) new /obj/item/grenade/gluon(src) new /obj/item/grenade/gluon(src) new /obj/item/grenade/gluon(src) @@ -585,7 +586,7 @@ /obj/item/key/janitor, /obj/item/clothing/gloves, /obj/item/melee/flyswatter, - /obj/item/twohanded/broom, + /obj/item/broom, /obj/item/paint/paint_remover, /obj/item/assembly/mousetrap, /obj/item/screwdriver, @@ -713,7 +714,7 @@ icon_state = "fannypack_leather" item_state = "fannypack_leather" dying_key = DYE_REGISTRY_FANNYPACK - custom_price = 100 + custom_price = PRICE_ALMOST_CHEAP /obj/item/storage/belt/fannypack/ComponentInitialize() . = ..() diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index e3f590aa2a..5d5f0eaa24 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -173,12 +173,12 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", var/unholy2clean = A.reagents.get_reagent_amount(/datum/reagent/fuel/unholywater) A.reagents.del_reagent(/datum/reagent/fuel/unholywater) A.reagents.add_reagent(/datum/reagent/water/holywater,unholy2clean) - if(istype(A, /obj/item/twohanded/required/cult_bastard) || istype(A, /obj/item/melee/cultblade) && !iscultist(user)) + if(istype(A, /obj/item/cult_bastard) || istype(A, /obj/item/melee/cultblade) && !iscultist(user)) to_chat(user, "You begin to exorcise [A].") playsound(src,'sound/hallucinations/veryfar_noise.ogg',40,1) if(do_after(user, 40, target = A)) playsound(src,'sound/effects/pray_chaplain.ogg',60,1) - if(istype(A, /obj/item/twohanded/required/cult_bastard)) + if(istype(A, /obj/item/cult_bastard)) for(var/obj/item/soulstone/SS in A.contents) SS.usability = TRUE for(var/mob/living/simple_animal/shade/EX in SS) diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index c5b48164a0..cdd3781748 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -275,6 +275,16 @@ for(var/i in 1 to 7) new /obj/item/grenade/flashbang(src) +obj/item/storage/box/stingbangs + name = "box of stingbangs (WARNING)" + desc = "WARNING: These devices are extremely dangerous and can cause severe injuries or death in repeated use." + icon_state = "secbox" + illustration = "flashbang" + +/obj/item/storage/box/stingbangs/PopulateContents() + for(var/i in 1 to 5) + new /obj/item/grenade/stingbang(src) + /obj/item/storage/box/flashes name = "box of flashbulbs" desc = "WARNING: Flashes can cause serious eye damage, protective eyewear is required." @@ -434,6 +444,7 @@ desc = "Instructions: Heat in microwave. Product will cool if not eaten within seven minutes." icon_state = "donkpocketbox" illustration=null + custom_premium_price = PRICE_ABOVE_NORMAL // git gud /obj/item/storage/box/donkpockets/ComponentInitialize() . = ..() @@ -622,7 +633,7 @@ item_state = "zippo" w_class = WEIGHT_CLASS_TINY slot_flags = ITEM_SLOT_BELT - custom_price = 20 + custom_price = PRICE_REALLY_CHEAP /obj/item/storage/box/matches/ComponentInitialize() . = ..() @@ -744,8 +755,8 @@ ////// /obj/item/storage/box/hug/medical/PopulateContents() - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/ointment(src) + new /obj/item/stack/medical/suture(src) + new /obj/item/stack/medical/mesh(src) new /obj/item/reagent_containers/hypospray/medipen(src) // Clown survival box @@ -1343,6 +1354,7 @@ name = "box of marshmallows" desc = "A box of marshmallows." illustration = "marshmallow" + custom_premium_price = PRICE_BELOW_NORMAL /obj/item/storage/box/marshmallow/PopulateContents() for (var/i in 1 to 5) diff --git a/code/game/objects/items/storage/briefcase.dm b/code/game/objects/items/storage/briefcase.dm index 826a00b90d..454475625d 100644 --- a/code/game/objects/items/storage/briefcase.dm +++ b/code/game/objects/items/storage/briefcase.dm @@ -106,10 +106,10 @@ /obj/item/storage/briefcase/medical name = "medical briefcase" icon_state = "medbriefcase" - desc = "A white with a blue cross brieface, this is ment to hold medical gear that would not be able to normally fit in a bag." + desc = "A white with a blue cross brieface, this is meant to hold medical gear that would not be able to normally fit in a bag." /obj/item/storage/briefcase/medical/PopulateContents() new /obj/item/clothing/neck/stethoscope(src) new /obj/item/healthanalyzer(src) - ..() //In case of paperwork + ..() //Incase of paperwork diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index 685a3b59f6..927a29407c 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -70,6 +70,7 @@ name = "donut box" spawn_type = /obj/item/reagent_containers/food/snacks/donut fancy_open = TRUE + custom_price = PRICE_NORMAL /obj/item/storage/fancy/donut_box/ComponentInitialize() . = ..() @@ -136,7 +137,23 @@ slot_flags = ITEM_SLOT_BELT icon_type = "cigarette" spawn_type = /obj/item/clothing/mask/cigarette/space_cigarette - custom_price = 75 + custom_price = PRICE_ALMOST_CHEAP + var/spawn_coupon = TRUE + +/obj/item/storage/fancy/cigarettes/attack_self(mob/user) + if(contents.len == 0 && spawn_coupon) + to_chat(user, "You rip the back off \the [src] and get a coupon!") + var/obj/item/coupon/attached_coupon = new + user.put_in_hands(attached_coupon) + attached_coupon.generate() + attached_coupon = null + spawn_coupon = FALSE + name = "discarded cigarette packet" + desc = "An old cigarette packet with the back torn off, worth less than nothing now." + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_items = 0 + return + return ..() /obj/item/storage/fancy/cigarettes/ComponentInitialize() . = ..() @@ -147,6 +164,8 @@ /obj/item/storage/fancy/cigarettes/examine(mob/user) . = ..() . += "Alt-click to extract contents." + if(spawn_coupon) + . += "There's a coupon on the back of the pack! You can tear it off once it's empty." /obj/item/storage/fancy/cigarettes/AltClick(mob/living/carbon/user) if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) @@ -188,18 +207,18 @@ cig_position++ /obj/item/storage/fancy/cigarettes/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) - if(!ismob(M)) - return + if(M != user || !istype(M)) + return ..() var/obj/item/clothing/mask/cigarette/cig = locate(/obj/item/clothing/mask/cigarette) in contents if(cig) - if(M == user && contents.len > 0 && !user.wear_mask) + if(!user.wear_mask && !(SLOT_WEAR_MASK in M.check_obscured_slots())) var/obj/item/clothing/mask/cigarette/W = cig SEND_SIGNAL(src, COMSIG_TRY_STORAGE_TAKE, W, M) M.equip_to_slot_if_possible(W, SLOT_WEAR_MASK) contents -= W to_chat(user, "You take \a [W] out of the pack.") else - ..() + return ..() else to_chat(user, "There are no [icon_type]s left in the pack.") @@ -278,7 +297,7 @@ ///The value in here has NOTHING to do with icons. It needs to be this for the proper examine. icon_type = "rolling paper" spawn_type = /obj/item/rollingpaper - custom_price = 25 + custom_price = PRICE_REALLY_CHEAP /obj/item/storage/fancy/rollingpapers/ComponentInitialize() . = ..() @@ -307,6 +326,7 @@ w_class = WEIGHT_CLASS_NORMAL icon_type = "premium cigar" spawn_type = /obj/item/clothing/mask/cigarette/cigar + spawn_coupon = FALSE /obj/item/storage/fancy/cigarettes/cigars/ComponentInitialize() . = ..() diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index de98963693..d7065df0f0 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -37,10 +37,10 @@ if(empty) return new /obj/item/stack/medical/gauze(src) - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/ointment(src) - new /obj/item/stack/medical/ointment(src) + new /obj/item/stack/medical/suture(src) + new /obj/item/stack/medical/suture(src) + new /obj/item/stack/medical/mesh(src) + new /obj/item/stack/medical/mesh(src) new /obj/item/reagent_containers/hypospray/medipen(src) new /obj/item/healthanalyzer(src) @@ -52,12 +52,12 @@ if(empty) return new /obj/item/stack/medical/gauze(src) - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/ointment(src) - new /obj/item/stack/medical/ointment(src) - new /obj/item/stack/medical/ointment(src) + new /obj/item/stack/medical/suture(src) + new /obj/item/stack/medical/suture(src) + new /obj/item/stack/medical/suture(src) + new /obj/item/stack/medical/mesh(src) + new /obj/item/stack/medical/mesh(src) + new /obj/item/stack/medical/mesh(src) /obj/item/storage/firstaid/fire name = "burn treatment kit" @@ -223,6 +223,8 @@ /obj/item/storage/pill_bottle/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.storage_flags = STORAGE_FLAGS_VOLUME_DEFAULT + STR.max_volume = STORAGE_VOLUME_PILL_BOTTLE STR.allow_quick_gather = TRUE STR.click_gather = TRUE STR.can_hold = typecacheof(list(/obj/item/reagent_containers/pill, /obj/item/dice)) @@ -244,7 +246,7 @@ desc = "Contains pills used to counter radiation poisoning." /obj/item/storage/pill_bottle/anitrad/PopulateContents() - for(var/i in 1 to 5) + for(var/i in 1 to 4) new /obj/item/reagent_containers/pill/antirad(src) /obj/item/storage/pill_bottle/epinephrine @@ -276,7 +278,7 @@ desc = "Guaranteed to give you that extra burst of energy during a long shift!" /obj/item/storage/pill_bottle/stimulant/PopulateContents() - for(var/i in 1 to 5) + for(var/i in 1 to 4) new /obj/item/reagent_containers/pill/stimulant(src) /obj/item/storage/pill_bottle/mining @@ -368,6 +370,14 @@ for(var/i in 1 to 7) new /obj/item/reagent_containers/pill/breast_enlargement(src) +/obj/item/storage/pill_bottle/neurine + name = "bottle of neurine pills" + desc = "Contains pills to treat non-severe mental traumas." + +/obj/item/storage/pill_bottle/neurine/PopulateContents() + for(var/i in 1 to 5) + new /obj/item/reagent_containers/pill/neurine(src) + ///////////// //Organ Box// ///////////// @@ -416,7 +426,8 @@ /obj/item/circuitboard/computer/crew, /obj/item/stack/sheet/glass, /obj/item/stack/sheet/mineral/silver, - /obj/item/organ_storage + /obj/item/organ_storage, + /obj/item/reagent_containers/chem_pack )) //hijacking the minature first aids for hypospray boxes. <3 @@ -430,8 +441,8 @@ throw_range = 7 var/empty = FALSE item_state = "firstaid" - custom_price = 300 - custom_premium_price = 500 + custom_price = PRICE_ABOVE_NORMAL + custom_premium_price = PRICE_EXPENSIVE /obj/item/storage/hypospraykit/ComponentInitialize() . = ..() diff --git a/code/game/objects/items/storage/lockbox.dm b/code/game/objects/items/storage/lockbox.dm index 5b6089d430..ce4e8b9df1 100644 --- a/code/game/objects/items/storage/lockbox.dm +++ b/code/game/objects/items/storage/lockbox.dm @@ -188,19 +188,52 @@ new /obj/item/clothing/accessory/medal/plasma/nobel_science(src) /obj/item/storage/lockbox/medal/engineering - name = "engineering medal box" - desc = "A locked box used to store medals to be given to the members of the engineering department." - req_access = list(ACCESS_CE) + name = "engineering medal box" + desc = "A locked box used to store medals to be given to the members of the engineering department." + req_access = list(ACCESS_CE) /obj/item/storage/lockbox/medal/engineering/PopulateContents() - for(var/i in 1 to 3) - new /obj/item/clothing/accessory/medal/engineer(src) + for(var/i in 1 to 3) + new /obj/item/clothing/accessory/medal/engineer(src) /obj/item/storage/lockbox/medal/medical - name = "medical medal box" - desc = "A locked box used to store medals to be given to the members of the medical department." - req_access = list(ACCESS_CMO) + name = "medical medal box" + desc = "A locked box used to store medals to be given to the members of the medical department." + req_access = list(ACCESS_CMO) /obj/item/storage/lockbox/medal/medical/PopulateContents() - for(var/i in 1 to 3) - new /obj/item/clothing/accessory/medal/ribbon/medical_doctor(src) \ No newline at end of file + for(var/i in 1 to 3) + new /obj/item/clothing/accessory/medal/ribbon/medical_doctor(src) + +/obj/item/storage/lockbox/order + name = "order lockbox" + desc = "A box used to secure small cargo orders from being looted by those who didn't order it. Yeah, cargo tech, that means you." + icon = 'icons/obj/storage.dmi' + icon_state = "secure" + item_state = "sec-case" + lefthand_file = 'icons/mob/inhands/equipment/briefcase_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/briefcase_righthand.dmi' + w_class = WEIGHT_CLASS_HUGE + var/datum/bank_account/buyer_account + var/privacy_lock = TRUE + +/obj/item/storage/lockbox/order/Initialize(datum/bank_account/_buyer_account) + . = ..() + buyer_account = _buyer_account + +/obj/item/storage/lockbox/order/attackby(obj/item/W, mob/user, params) + if(!istype(W, /obj/item/card/id)) + return ..() + + var/obj/item/card/id/id_card = W + if(iscarbon(user)) + add_fingerprint(user) + + if(id_card.registered_account != buyer_account) + to_chat(user, "Bank account does not match with buyer![user] [privacy_lock ? "" : "un"]locks [src]'s privacy lock.", + "You [privacy_lock ? "" : "un"]lock [src]'s privacy lock.") diff --git a/code/game/objects/items/storage/secure.dm b/code/game/objects/items/storage/secure.dm index e177a9f9fd..0e9a9fda61 100644 --- a/code/game/objects/items/storage/secure.dm +++ b/code/game/objects/items/storage/secure.dm @@ -105,10 +105,7 @@ if (length(code) > 5) code = "ERROR" add_fingerprint(usr) - for(var/mob/M in viewers(1, loc)) - if ((M.client && M.machine == src)) - attack_self(M) - return + attack_self(usr) return @@ -150,6 +147,35 @@ for(var/i = 0, i < STR.max_items - 2, i++) new /obj/item/stack/spacecash/c1000(src) +/obj/item/storage/secure/briefcase/mws_pack + name = "\improper \'MWS\' gun kit" + desc = "A storage case for a multi-purpose handgun. Variety hour!" + +/obj/item/storage/secure/briefcase/mws_pack/PopulateContents() + new /obj/item/gun/ballistic/revolver/mws(src) + new /obj/item/ammo_box/magazine/mws_mag(src) + for(var/path in subtypesof(/obj/item/ammo_casing/mws_batt)) + new path(src) + +/obj/item/storage/secure/briefcase/hos/mws_pack_hos + name = "\improper \'MWS\' gun kit" + desc = "A storage case for a multi-purpose handgun. Variety hour!" + +/obj/item/storage/secure/briefcase/hos/mws_pack_hos/PopulateContents() + new /obj/item/gun/ballistic/revolver/mws(src) + new /obj/item/ammo_box/magazine/mws_mag(src) + new /obj/item/ammo_casing/mws_batt/lethal(src) + new /obj/item/ammo_casing/mws_batt/lethal(src) + new /obj/item/ammo_casing/mws_batt/stun(src) + new /obj/item/ammo_casing/mws_batt/stun(src) + new /obj/item/ammo_casing/mws_batt/ion(src) + +/obj/item/storage/secure/briefcase/hos/multiphase_box + name = "\improper X-01 Multiphase energy gun box" + desc = "A storage case for a high-tech energy firearm." + +/obj/item/storage/secure/briefcase/hos/multiphase_box/PopulateContents() + new /obj/item/gun/energy/e_gun/hos(src) // ----------------------------- // Secure Safe @@ -158,6 +184,7 @@ /obj/item/storage/secure/safe name = "secure safe" icon = 'icons/obj/storage.dmi' + plane = ABOVE_WALL_PLANE icon_state = "safe" icon_opened = "safe0" icon_locking = "safeb" diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 64e0a6b492..fd50bd022f 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -16,12 +16,17 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) attack_verb = list("robusted") hitsound = 'sound/weapons/smash.ogg' custom_materials = list(/datum/material/iron = 500) - material_flags = MATERIAL_COLOR var/latches = "single_latch" var/has_latches = TRUE var/can_rubberify = TRUE rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE //very protecc too +/obj/item/storage/toolbox/greyscale + icon_state = "toolbox_default" + item_state = "toolbox_default" + can_rubberify = FALSE + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + /obj/item/storage/toolbox/Initialize(mapload) if(has_latches) if(prob(10)) @@ -48,7 +53,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) name = "emergency toolbox" icon_state = "red" item_state = "toolbox_red" - material_flags = NONE /obj/item/storage/toolbox/emergency/PopulateContents() new /obj/item/crowbar/red(src) @@ -73,7 +77,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) name = "mechanical toolbox" icon_state = "blue" item_state = "toolbox_blue" - material_flags = NONE /obj/item/storage/toolbox/mechanical/PopulateContents() new /obj/item/screwdriver(src) @@ -102,7 +105,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) name = "electrical toolbox" icon_state = "yellow" item_state = "toolbox_yellow" - material_flags = NONE /obj/item/storage/toolbox/electrical/PopulateContents() var/pickedcolor = pick("red","yellow","green","blue","pink","orange","cyan","white") @@ -124,7 +126,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) desc = "A toolbox painted black with a red stripe. It looks more heavier than normal toolboxes." force = 15 throwforce = 18 - material_flags = NONE /obj/item/storage/toolbox/syndicate/ComponentInitialize() . = ..() @@ -144,7 +145,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) name = "mechanical toolbox" icon_state = "blue" item_state = "toolbox_blue" - material_flags = NONE /obj/item/storage/toolbox/drone/PopulateContents() var/pickedcolor = pick("red","yellow","green","blue","pink","orange","cyan","white") @@ -166,7 +166,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) w_class = WEIGHT_CLASS_HUGE attack_verb = list("robusted", "crushed", "smashed") can_rubberify = FALSE - material_flags = NONE var/fabricator_type = /obj/item/clockwork/replica_fabricator/scarab /obj/item/storage/toolbox/brass/ComponentInitialize() @@ -209,7 +208,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) w_class = WEIGHT_CLASS_HUGE //heyo no bohing this! force = 18 //spear damage can_rubberify = FALSE - material_flags = NONE /obj/item/storage/toolbox/plastitanium/afterattack(atom/A, mob/user, proximity) . = ..() @@ -225,7 +223,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) icon_state = "green" item_state = "toolbox_green" w_class = WEIGHT_CLASS_GIGANTIC //Holds more than a regular toolbox! - material_flags = NONE /obj/item/storage/toolbox/artistic/ComponentInitialize() . = ..() @@ -302,7 +299,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) icon_state = "gold" item_state = "toolbox_gold" has_latches = FALSE - material_flags = NONE /obj/item/storage/toolbox/gold_real/PopulateContents() new /obj/item/screwdriver/nuke(src) @@ -328,7 +324,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) force = 0 throwforce = 0 can_rubberify = FALSE - material_flags = NONE /obj/item/storage/toolbox/proc/rubberify() name = "rubber [name]" @@ -364,7 +359,6 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) throwforce = 15 attack_verb = list("robusted", "bounced") can_rubberify = FALSE //we are already the future. - material_flags = NONE /obj/item/storage/toolbox/rubber/Initialize() icon_state = pick("blue", "red", "yellow", "green") diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index ffa3d83304..3b66e32d0a 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -117,7 +117,7 @@ new /obj/item/pizzabox/bomb if("darklord") //20 tc + tk + summon item close enough for now - new /obj/item/twohanded/dualsaber(src) + new /obj/item/dualsaber(src) new /obj/item/dnainjector/telemut/darkbundle(src) new /obj/item/clothing/suit/hooded/chaplain_hoodie(src) new /obj/item/card/id/syndicate(src) diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 634537e5a2..fa0c9ba693 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -16,7 +16,7 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 50, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80) var/stamforce = 35 - var/status = FALSE + var/turned_on = FALSE var/knockdown = TRUE var/obj/item/stock_parts/cell/cell var/hitcost = 750 @@ -49,7 +49,7 @@ /obj/item/melee/baton/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) ..() //Only mob/living types have stun handling - if(status && prob(throw_hit_chance) && iscarbon(hit_atom)) + if(turned_on && prob(throw_hit_chance) && iscarbon(hit_atom)) baton_stun(hit_atom) /obj/item/melee/baton/loaded //this one starts with a cell pre-installed. @@ -66,16 +66,16 @@ copper_top.use(min(chrgdeductamt, copper_top.charge), explode) if(QDELETED(src)) return FALSE - if(status && (!copper_top || !copper_top.charge || (chargecheck && copper_top.charge < (hitcost * STUNBATON_CHARGE_LENIENCY)))) + if(turned_on && (!copper_top || !copper_top.charge || (chargecheck && copper_top.charge < (hitcost * STUNBATON_CHARGE_LENIENCY)))) //we're below minimum, turn off switch_status(FALSE) /obj/item/melee/baton/proc/switch_status(new_status = FALSE, silent = FALSE) - if(status != new_status) - status = new_status + if(turned_on != new_status) + turned_on = new_status if(!silent) playsound(loc, "sparks", 75, 1, -1) - if(status) + if(turned_on) START_PROCESSING(SSobj, src) else STOP_PROCESSING(SSobj, src) @@ -85,7 +85,7 @@ deductcharge(round(hitcost * STUNBATON_DEPLETION_RATE), FALSE, FALSE) /obj/item/melee/baton/update_icon_state() - if(status) + if(turned_on) icon_state = "[initial(name)]_active" else if(!cell) icon_state = "[initial(name)]_nocell" @@ -134,14 +134,14 @@ else to_chat(user, "[src] is out of charge.") else - switch_status(!status) - to_chat(user, "[src] is now [status ? "on" : "off"].") + switch_status(!turned_on) + to_chat(user, "[src] is now [turned_on ? "on" : "off"].") add_fingerprint(user) /obj/item/melee/baton/attack(mob/M, mob/living/carbon/human/user) var/interrupt = common_baton_melee(M, user, FALSE) if(!interrupt) - ..() + return ..() /obj/item/melee/baton/alt_pre_attack(atom/A, mob/living/user, params) . = common_baton_melee(A, user, TRUE) //return true (attackchain interrupt) if this also returns true. no harm-disarming. @@ -151,16 +151,16 @@ /obj/item/melee/baton/proc/common_baton_melee(mob/M, mob/living/user, disarming = FALSE) if(iscyborg(M) || !isliving(M)) //can't baton cyborgs return FALSE - if(status && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50)) + if(turned_on && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50)) clowning_around(user) if(IS_STAMCRIT(user)) //CIT CHANGE - makes it impossible to baton in stamina softcrit - to_chat(user, "You're too exhausted for that.") + to_chat(user, "You're too exhausted to use [src] properly.") return TRUE if(ishuman(M)) var/mob/living/carbon/human/L = M if(check_martial_counter(L, user)) return TRUE - if(status) + if(turned_on) if(baton_stun(M, user, disarming)) user.do_attack_animation(M) user.adjustStaminaLossBuffered(getweight(user, STAM_COST_BATON_MOB_MULT)) @@ -170,10 +170,12 @@ return disarming || (user.a_intent != INTENT_HARM) /obj/item/melee/baton/proc/baton_stun(mob/living/L, mob/user, disarming = FALSE) - if(L.mob_run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user, null, null) & BLOCK_SUCCESS) //No message; check_shields() handles that + var/list/return_list = list() + if(L.mob_run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user, null, return_list) & BLOCK_SUCCESS) //No message; check_shields() handles that playsound(L, 'sound/weapons/genhit.ogg', 50, 1) return FALSE var/stunpwr = stamforce + stunpwr = block_calculate_resultant_damage(stunpwr, return_list) var/obj/item/stock_parts/cell/our_cell = get_cell() if(!our_cell) switch_status(FALSE) @@ -292,6 +294,48 @@ sparkler?.activate() . = ..() +/obj/item/melee/baton/boomerang + name = "\improper OZtek Boomerang" + desc = "A device invented in 2486 for the great Space Emu War by the confederacy of Australicus, these high-tech boomerangs also work exceptionally well at stunning crewmembers. Just be careful to catch it when thrown!" + throw_speed = 1 + icon_state = "boomerang" + item_state = "boomerang" + force = 5 + throwforce = 5 + throw_range = 5 + hitcost = 2000 + throw_hit_chance = 99 //Have you prayed today? + custom_materials = list(/datum/material/iron = 10000, /datum/material/glass = 4000, /datum/material/silver = 10000, /datum/material/gold = 2000) + +/obj/item/melee/baton/boomerang/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force) + if(turned_on) + if(ishuman(thrower)) + var/mob/living/carbon/human/H = thrower + H.throw_mode_off() //so they can catch it on the return. + return ..() + +/obj/item/melee/baton/boomerang/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) + if(turned_on) + var/caught = hit_atom.hitby(src, FALSE, FALSE, throwingdatum=throwingdatum) + if(ishuman(hit_atom) && !caught && prob(throw_hit_chance))//if they are a carbon and they didn't catch it + baton_stun(hit_atom) + if(thrownby && !caught) + sleep(1) + if(!QDELETED(src)) + throw_at(thrownby, throw_range+2, throw_speed, null, TRUE) + else + return ..() + +/obj/item/melee/baton/boomerang/update_icon() + if(turned_on) + icon_state = "[initial(icon_state)]_active" + else if(!cell) + icon_state = "[initial(icon_state)]_nocell" + else + icon_state = "[initial(icon_state)]" + +/obj/item/melee/baton/boomerang/loaded //Same as above, comes with a cell. + preload_cell_type = /obj/item/stock_parts/cell/high #undef STUNBATON_CHARGE_LENIENCY #undef STUNBATON_DEPLETION_RATE diff --git a/code/game/objects/items/tanks/jetpack.dm b/code/game/objects/items/tanks/jetpack.dm index ecd9708ea5..7cf25098e1 100644 --- a/code/game/objects/items/tanks/jetpack.dm +++ b/code/game/objects/items/tanks/jetpack.dm @@ -14,13 +14,15 @@ var/full_speed = TRUE // If the jetpack will have a speedboost in space/nograv or not var/datum/effect_system/trail_follow/ion/ion_trail -/obj/item/tank/jetpack/New() +/obj/item/tank/jetpack/Initialize() ..() + ion_trail = new + ion_trail.set_up(src) + +/obj/item/tank/jetpack/populate_gas() if(gas_type) air_contents.set_moles(gas_type, ((6 * ONE_ATMOSPHERE) * volume / (R_IDEAL_GAS_EQUATION * T20C))) - ion_trail = new - ion_trail.set_up(src) /obj/item/tank/jetpack/ui_action_click(mob/user, action) if(istype(action, /datum/action/item_action/toggle_jetpack)) @@ -188,8 +190,8 @@ var/obj/item/tank/internals/tank = null var/mob/living/carbon/human/cur_user -/obj/item/tank/jetpack/suit/New() - ..() +/obj/item/tank/jetpack/suit/Initialize() + . = ..() STOP_PROCESSING(SSobj, src) temp_air_contents = air_contents diff --git a/code/game/objects/items/tanks/tank_types.dm b/code/game/objects/items/tanks/tank_types.dm index 6d4a7dc253..67b3b12454 100644 --- a/code/game/objects/items/tanks/tank_types.dm +++ b/code/game/objects/items/tanks/tank_types.dm @@ -12,7 +12,7 @@ */ /obj/item/tank/internals/oxygen name = "oxygen tank" - desc = "A tank of oxygen." + desc = "A tank of oxygen, this one is blue." icon_state = "oxygen" distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE force = 10 @@ -20,7 +20,6 @@ /obj/item/tank/internals/oxygen/New() - ..() air_contents.set_moles(/datum/gas/oxygen, (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) return @@ -35,6 +34,8 @@ icon_state = "oxygen_fr" dog_fashion = null +/obj/item/tank/internals/oxygen/empty/populate_gas() + return /* * Anesthetic @@ -47,7 +48,6 @@ force = 10 /obj/item/tank/internals/anesthetic/New() - ..() air_contents.set_moles(/datum/gas/oxygen, (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD) air_contents.set_moles(/datum/gas/nitrous_oxide, (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD) return @@ -64,7 +64,6 @@ dog_fashion = /datum/dog_fashion/back /obj/item/tank/internals/air/New() - ..() air_contents.set_moles(/datum/gas/oxygen, (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD) air_contents.set_moles(/datum/gas/nitrogen, (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD) return @@ -83,7 +82,6 @@ /obj/item/tank/internals/plasma/New() - ..() air_contents.set_moles(/datum/gas/plasma, (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) return @@ -101,10 +99,14 @@ return ..() /obj/item/tank/internals/plasma/full/New() - ..() air_contents.set_moles(/datum/gas/plasma, (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) + +//Makes empty oxygen tanks spawn without gas +/obj/item/tank/internals/plasma/empty/populate_gas() return +/obj/item/tank/internals/plasma/full/populate_gas() + air_contents.gases[/datum/gas/plasma] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) /* * Plasmaman Plasma Tank @@ -119,12 +121,10 @@ distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE /obj/item/tank/internals/plasmaman/New() - ..() air_contents.set_moles(/datum/gas/plasma, (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) return /obj/item/tank/internals/plasmaman/full/New() - ..() // Plasma asserted in parent air_contents.set_moles(/datum/gas/plasma, (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) return @@ -138,11 +138,12 @@ w_class = WEIGHT_CLASS_SMALL //thanks i forgot this /obj/item/tank/internals/plasmaman/belt/full/New() - ..() // Plasma asserted in parent air_contents.set_moles(/datum/gas/plasma, (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) return - +//makes empty plasma tanks spawn without gas. +/obj/item/tank/internals/plasmaman/belt/empty/populate_gas() + return /* * Emergency Oxygen @@ -160,16 +161,24 @@ /obj/item/tank/internals/emergency_oxygen/New() - ..() air_contents.set_moles(/datum/gas/oxygen, (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) return +/obj/item/tank/internals/emergency_oxygen/empty/populate_gas() + return + /obj/item/tank/internals/emergency_oxygen/engi name = "extended-capacity emergency oxygen tank" icon_state = "emergency_engi" volume = 6 +/obj/item/tank/internals/emergency_oxygen/engi/empty/populate_gas() + return + /obj/item/tank/internals/emergency_oxygen/double name = "double emergency oxygen tank" icon_state = "emergency_double" volume = 10 + +/obj/item/tank/internals/emergency_oxygen/double/empty/populate_gas() + return diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm index ac3404ec5c..e69b2b6272 100644 --- a/code/game/objects/items/tanks/tanks.dm +++ b/code/game/objects/items/tanks/tanks.dm @@ -60,14 +60,19 @@ H.update_action_buttons_icon() -/obj/item/tank/New() - ..() +/obj/item/tank/Initialize() + . = ..() air_contents = new(volume) //liters air_contents.set_temperature(T20C) + populate_gas() + START_PROCESSING(SSobj, src) +/obj/item/tank/proc/populate_gas() + return + /obj/item/tank/Destroy() if(air_contents) qdel(air_contents) @@ -78,9 +83,9 @@ /obj/item/tank/examine(mob/user) var/obj/icon = src . = ..() - if (istype(src.loc, /obj/item/assembly)) + if(istype(src.loc, /obj/item/assembly)) icon = src.loc - if(!in_range(src, user)) + if(!in_range(src, user) && !isobserver(user)) if (icon == src) . += "If you want any more information you'll need to get closer." return @@ -148,6 +153,10 @@ return (BRUTELOSS) +/obj/item/tank/attack_ghost(mob/dead/observer/O) + . = ..() + atmosanalyzer_scan(air_contents, O, src, FALSE) + /obj/item/tank/attackby(obj/item/W, mob/user, params) add_fingerprint(user) if(istype(W, /obj/item/assembly_holder)) diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index 57e9ea9aaa..b1c0d3dfbb 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -145,7 +145,7 @@ desc = "A janitorial watertank backpack with nozzle to clean dirt and graffiti." icon_state = "waterbackpackjani" item_state = "waterbackpackjani" - custom_price = 1000 + custom_price = PRICE_ALMOST_ONE_GRAND /obj/item/watertank/janitor/Initialize() . = ..() @@ -210,6 +210,7 @@ power = 8 force = 10 precision = 1 + total_mass = 0.2 cooling_power = 5 w_class = WEIGHT_CLASS_HUGE item_flags = ABSTRACT // don't put in storage diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm index b5edb27704..881e4d5f1a 100644 --- a/code/game/objects/items/teleportation.dm +++ b/code/game/objects/items/teleportation.dm @@ -104,7 +104,7 @@ if (ismob(src.loc)) attack_self(src.loc) else - for(var/mob/M in viewers(1, src)) + for(var/mob/M in fov_viewers(1, src)) if (M.client) src.attack_self(M) return diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index ff59b85332..bf1eca01f9 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -272,7 +272,7 @@ return else to_chat(user, "You attach the ends of the two plastic swords, making a single double-bladed toy! You're fake-cool.") - var/obj/item/twohanded/dualsaber/toy/newSaber = new /obj/item/twohanded/dualsaber/toy(user.loc) + var/obj/item/dualsaber/toy/newSaber = new /obj/item/dualsaber/toy(user.loc) if(hacked) // That's right, we'll only check the "original" "sword". newSaber.hacked = TRUE qdel(W) @@ -363,7 +363,7 @@ return else to_chat(user, "You combine the two plastic swords, making a single supermassive toy! You're fake-cool.") - new /obj/item/twohanded/dualsaber/hypereutactic/toy(user.loc) + new /obj/item/dualsaber/hypereutactic/toy(user.loc) qdel(W) qdel(src) else @@ -437,40 +437,44 @@ /* * Subtype of Double-Bladed Energy Swords */ -/obj/item/twohanded/dualsaber/toy +/obj/item/dualsaber/toy name = "double-bladed toy sword" desc = "A cheap, plastic replica of TWO energy swords. Double the fun!" force = 0 throwforce = 0 throw_speed = 3 throw_range = 5 - force_unwielded = 0 - force_wielded = 0 + block_parry_data = null attack_verb = list("attacked", "struck", "hit") total_mass_on = TOTAL_MASS_TOY_SWORD sharpness = IS_BLUNT -/obj/item/twohanded/dualsaber/toy/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) +/obj/item/dualsaber/toy/ComponentInitialize() + AddComponent(/datum/component/two_handed, force_unwielded=0, force_wielded=0, wieldsound='sound/weapons/saberon.ogg', unwieldsound='sound/weapons/saberoff.ogg') + +/obj/item/dualsaber/toy/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) return BLOCK_NONE -/obj/item/twohanded/dualsaber/hypereutactic/toy +/obj/item/dualsaber/hypereutactic/toy name = "\improper DX Hyper-Euplastic LightSword" desc = "A supermassive toy envisioned to cleave the very fabric of space and time itself in twain. Realistic visuals and sounds! Ages 8 and up." force = 0 throwforce = 0 throw_speed = 3 throw_range = 5 - force_unwielded = 0 - force_wielded = 0 + attack_verb = list("attacked", "struck", "hit") total_mass_on = TOTAL_MASS_TOY_SWORD slowdown_wielded = 0 sharpness = IS_BLUNT -/obj/item/twohanded/dualsaber/hypereutactic/toy/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) +/obj/item/dualsaber/hypereutactic/toy/ComponentInitialize() + AddComponent(/datum/component/two_handed, force_unwielded=0, force_wielded=0, wieldsound='sound/weapons/saberon.ogg', unwieldsound='sound/weapons/saberoff.ogg') + +/obj/item/dualsaber/hypereutactic/toy/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) return BLOCK_NONE -/obj/item/twohanded/dualsaber/hypereutactic/toy/rainbow +/obj/item/dualsaber/hypereutactic/toy/rainbow name = "\improper Hyper-Euclidean Reciprocating Trigonometric Zweihander" desc = "A custom-built toy with fancy rainbow lights built-in." hacked = TRUE @@ -777,6 +781,7 @@ var/cooldown = 0 var/obj/machinery/computer/holodeck/holo = null // Holodeck cards should not be infinite var/list/cards = list() + var/original_size = 52 /obj/item/toy/cards/deck/Initialize() . = ..() @@ -821,12 +826,11 @@ var/obj/item/toy/cards/singlecard/H = new/obj/item/toy/cards/singlecard(user.loc) if(holo) holo.spawned += H // track them leaving the holodeck - choice = cards[1] + choice = popleft(cards) H.cardname = choice H.parentdeck = src var/O = src H.apply_card_vars(H,O) - src.cards -= choice H.pickup(user) user.put_in_hands(H) user.visible_message("[user] draws a card from the deck.", "You draw a card from the deck.") @@ -834,11 +838,11 @@ /obj/item/toy/cards/deck/update_icon_state() switch(cards.len) - if(27 to INFINITY) + if(original_size*0.5 to INFINITY) icon_state = "deck_[deckstyle]_full" - if(11 to 27) + if(original_size*0.25 to original_size*0.5) icon_state = "deck_[deckstyle]_half" - if(1 to 11) + if(1 to original_size*0.25) icon_state = "deck_[deckstyle]_low" else icon_state = "deck_[deckstyle]_empty" diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm deleted file mode 100644 index acfc9a6e85..0000000000 --- a/code/game/objects/items/twohanded.dm +++ /dev/null @@ -1,1331 +0,0 @@ -/* Two-handed Weapons - * Contains: - * Twohanded - * Fireaxe - * Double-Bladed Energy Swords - * Spears - * CHAINSAWS - * Bone Axe and Spear - * And more - */ - -/*################################################################## -##################### TWO HANDED WEAPONS BE HERE~ -Agouri :3 ######## -####################################################################*/ - -//Rewrote TwoHanded weapons stuff and put it all here. Just copypasta fireaxe to make new ones ~Carn -//This rewrite means we don't have two variables for EVERY item which are used only by a few weapons. -//It also tidies stuff up elsewhere. - - - - -/* - * Twohanded - */ -/obj/item/twohanded - var/wielded = FALSE - var/force_unwielded // default to null, the number force will be set to on unwield() - var/force_wielded // same as above but for wield() - var/wieldsound = null - var/unwieldsound = null - var/slowdown_wielded = 0 - item_flags = SLOWS_WHILE_IN_HAND - -/obj/item/twohanded/proc/unwield(mob/living/carbon/user, show_message = TRUE) - if(!wielded || !user) - return - wielded = 0 - if(!isnull(force_unwielded)) - force = force_unwielded - var/sf = findtext(name, " (Wielded)", -10)//10 == length(" (Wielded)") - if(sf) - name = copytext(name, 1, sf) - else //something wrong - name = "[initial(name)]" - update_icon() - if(user.get_item_by_slot(SLOT_BACK) == src) - user.update_inv_back() - else - user.update_inv_hands() - if(show_message) - if(iscyborg(user)) - to_chat(user, "You free up your module.") - else - to_chat(user, "You are now carrying [src] with one hand.") - if(unwieldsound) - playsound(loc, unwieldsound, 50, 1) - var/obj/item/twohanded/offhand/O = user.get_inactive_held_item() - if(O && istype(O)) - O.unwield() - set_slowdown(slowdown - slowdown_wielded) - -/obj/item/twohanded/proc/wield(mob/living/carbon/user) - if(wielded) - return - if(ismonkey(user)) - to_chat(user, "It's too heavy for you to wield fully.") - return - if(user.get_inactive_held_item()) - to_chat(user, "You need your other hand to be empty!") - return - if(user.get_num_arms() < 2) - to_chat(user, "You don't have enough intact hands.") - return - wielded = 1 - if(!isnull(force_wielded)) - force = force_wielded - name = "[name] (Wielded)" - update_icon() - if(iscyborg(user)) - to_chat(user, "You dedicate your module to [src].") - else - to_chat(user, "You grab [src] with both hands.") - if (wieldsound) - playsound(loc, wieldsound, 50, 1) - var/obj/item/twohanded/offhand/O = new(user) ////Let's reserve his other hand~ - O.name = "[name] - offhand" - O.desc = "Your second grip on [src]." - O.wielded = TRUE - user.put_in_inactive_hand(O) - set_slowdown(slowdown + slowdown_wielded) - -/obj/item/twohanded/dropped(mob/user) - . = ..() - //handles unwielding a twohanded weapon when dropped as well as clearing up the offhand - if(!wielded) - return - unwield(user) - -/obj/item/twohanded/attack_self(mob/user) - . = ..() - if(wielded) //Trying to unwield it - unwield(user) - else //Trying to wield it - wield(user) - -/obj/item/twohanded/equip_to_best_slot(mob/M) - if(..()) - if(istype(src, /obj/item/twohanded/required)) - return // unwield forces twohanded-required items to be dropped. - unwield(M) - return - -/obj/item/twohanded/equipped(mob/user, slot) - ..() - if(!user.is_holding(src) && wielded && !istype(src, /obj/item/twohanded/required)) - unwield(user) - -///////////OFFHAND/////////////// -/obj/item/twohanded/offhand - name = "offhand" - icon_state = "offhand" - w_class = WEIGHT_CLASS_HUGE - item_flags = ABSTRACT - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - -/obj/item/twohanded/offhand/Destroy() - wielded = FALSE - return ..() - -/obj/item/twohanded/offhand/dropped(mob/living/user, show_message = TRUE) //Only utilized by dismemberment since you can't normally switch to the offhand to drop it. - var/obj/I = user.get_active_held_item() - if(I && istype(I, /obj/item/twohanded)) - var/obj/item/twohanded/thw = I - thw.unwield(user, show_message) - if(istype(thw, /obj/item/twohanded/required)) - user.dropItemToGround(thw) - if(!QDELETED(src)) - qdel(src) - -/obj/item/twohanded/offhand/unwield() - if(wielded)//Only delete if we're wielded - wielded = FALSE - qdel(src) - -/obj/item/twohanded/offhand/wield() - if(wielded)//Only delete if we're wielded - wielded = FALSE - qdel(src) - -/obj/item/twohanded/offhand/attack_self(mob/living/carbon/user) //You should never be able to do this in standard use of two handed items. This is a backup for lingering offhands. - var/obj/item/twohanded/O = user.get_inactive_held_item() - if (istype(O) && !istype(O, /obj/item/twohanded/offhand/)) //If you have a proper item in your other hand that the offhand is for, do nothing. This should never happen. - return - if (QDELETED(src)) - return - qdel(src) //If it's another offhand, or literally anything else, qdel. If I knew how to add logging messages I'd put one here. - -///////////Two hand required objects/////////////// -//This is for objects that require two hands to even pick up -/obj/item/twohanded/required - w_class = WEIGHT_CLASS_HUGE - -/obj/item/twohanded/required/attack_self() - return - -/obj/item/twohanded/required/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0) - if(wielded && !slot_flags) - if(!disable_warning) - to_chat(M, "[src] is too cumbersome to carry with anything but your hands!") - return 0 - return ..() - -/obj/item/twohanded/required/attack_hand(mob/user)//Can't even pick it up without both hands empty - var/obj/item/twohanded/required/H = user.get_inactive_held_item() - if(get_dist(src,user) > 1) - return - if(H != null) - to_chat(user, "[src] is too cumbersome to carry in one hand!") - return - if(loc != user) - wield(user) - . = ..() - -/obj/item/twohanded/required/equipped(mob/user, slot) - ..() - var/slotbit = slotdefine2slotbit(slot) - if(slot_flags & slotbit) - var/datum/O = user.is_holding_item_of_type(/obj/item/twohanded/offhand) - if(!O || QDELETED(O)) - return - qdel(O) - return - if(slot == SLOT_HANDS) - wield(user) - else - unwield(user) - -/obj/item/twohanded/required/dropped(mob/living/user, show_message = TRUE) - unwield(user, show_message) - ..() - -/obj/item/twohanded/required/wield(mob/living/carbon/user) - ..() - if(!wielded) - user.dropItemToGround(src) - -/obj/item/twohanded/required/unwield(mob/living/carbon/user, show_message = TRUE) - if(!wielded) - return - if(show_message) - to_chat(user, "You drop [src].") - ..(user, FALSE) - -/* - * Fireaxe - */ -/obj/item/twohanded/fireaxe // DEM AXES MAN, marker -Agouri - icon_state = "fireaxe0" - lefthand_file = 'icons/mob/inhands/weapons/axes_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/axes_righthand.dmi' - name = "fire axe" - desc = "Truly, the weapon of a madman. Who would think to fight fire with an axe?" - force = 5 - throwforce = 15 - w_class = WEIGHT_CLASS_BULKY - slot_flags = ITEM_SLOT_BACK - force_unwielded = 5 - force_wielded = 24 - attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - max_integrity = 200 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30) - resistance_flags = FIRE_PROOF - -/obj/item/twohanded/fireaxe/Initialize() - . = ..() - AddComponent(/datum/component/butchering, 100, 80, 0 , hitsound) //axes are not known for being precision butchering tools - -/obj/item/twohanded/fireaxe/update_icon_state() //Currently only here to fuck with the on-mob icons. - icon_state = "fireaxe[wielded]" - return - -/obj/item/twohanded/fireaxe/suicide_act(mob/user) - user.visible_message("[user] axes [user.p_them()]self from head to toe! It looks like [user.p_theyre()] trying to commit suicide!") - return (BRUTELOSS) - -/obj/item/twohanded/fireaxe/afterattack(atom/A, mob/living/user, proximity) - . = ..() - if(!proximity || IS_STAMCRIT(user)) //don't make stamcrit message they'll already have gotten one from the primary attack. - return - if(wielded) //destroys windows and grilles in one hit (or more if it has a ton of health like plasmaglass) - if(istype(A, /obj/structure/window)) - var/obj/structure/window/W = A - W.take_damage(200, BRUTE, "melee", 0) - else if(istype(A, /obj/structure/grille)) - var/obj/structure/grille/G = A - G.take_damage(40, BRUTE, "melee", 0) - - -/* - * Double-Bladed Energy Swords - Cheridan - */ -/obj/item/twohanded/dualsaber - icon_state = "dualsaber0" - lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' - name = "double-bladed energy sword" - desc = "Handle with care." - force = 3 - throwforce = 5 - throw_speed = 3 - throw_range = 5 - w_class = WEIGHT_CLASS_SMALL - var/w_class_on = WEIGHT_CLASS_BULKY - force_unwielded = 3 - force_wielded = 34 - wieldsound = 'sound/weapons/saberon.ogg' - unwieldsound = 'sound/weapons/saberoff.ogg' - hitsound = "swing_hit" - var/hitsound_on = 'sound/weapons/blade1.ogg' - armour_penetration = 35 - var/saber_color = "green" - light_color = "#00ff00"//green - attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") - block_chance = 75 - max_integrity = 200 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70) - resistance_flags = FIRE_PROOF - var/hacked = FALSE - /// Can this reflect all energy projectiles? - var/can_reflect = TRUE - var/brightness_on = 6 //TWICE AS BRIGHT AS A REGULAR ESWORD - var/list/possible_colors = list("red", "blue", "green", "purple") - var/list/rainbow_colors = list(LIGHT_COLOR_RED, LIGHT_COLOR_GREEN, LIGHT_COLOR_LIGHT_CYAN, LIGHT_COLOR_LAVENDER) - var/spinnable = TRUE - total_mass = 0.4 //Survival flashlights typically weigh around 5 ounces. - var/total_mass_on = 3.4 - -/obj/item/twohanded/dualsaber/suicide_act(mob/living/carbon/user) - if(wielded) - user.visible_message("[user] begins spinning way too fast! It looks like [user.p_theyre()] trying to commit suicide!") - - var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD)//stole from chainsaw code - var/obj/item/organ/brain/B = user.getorganslot(ORGAN_SLOT_BRAIN) - B.organ_flags &= ~ORGAN_VITAL //this cant possibly be a good idea - var/randdir - for(var/i in 1 to 24)//like a headless chicken! - if(user.is_holding(src)) - randdir = pick(GLOB.alldirs) - user.Move(get_step(user, randdir),randdir) - user.emote("spin") - if (i == 3 && myhead) - myhead.drop_limb() - sleep(3) - else - user.visible_message("[user] panics and starts choking to death!") - return OXYLOSS - - - else - user.visible_message("[user] begins beating [user.p_them()]self to death with \the [src]'s handle! It probably would've been cooler if [user.p_they()] turned it on first!") - return BRUTELOSS - -/obj/item/twohanded/dualsaber/Initialize() - . = ..() - if(LAZYLEN(possible_colors)) - saber_color = pick(possible_colors) - switch(saber_color) - if("red") - light_color = LIGHT_COLOR_RED - if("green") - light_color = LIGHT_COLOR_GREEN - if("blue") - light_color = LIGHT_COLOR_LIGHT_CYAN - if("purple") - light_color = LIGHT_COLOR_LAVENDER - -/obj/item/twohanded/dualsaber/Destroy() - STOP_PROCESSING(SSobj, src) - . = ..() - -/obj/item/twohanded/dualsaber/update_icon_state() - if(wielded) - icon_state = "dualsaber[saber_color][wielded]" - else - icon_state = "dualsaber0" - clean_blood() - -/obj/item/twohanded/dualsaber/attack(mob/target, mob/living/carbon/human/user) - if(user.has_dna()) - if(user.dna.check_mutation(HULK)) - to_chat(user, "You grip the blade too hard and accidentally close it!") - unwield() - return - ..() - if(HAS_TRAIT(user, TRAIT_CLUMSY) && (wielded) && prob(40)) - impale(user) - return - if(spinnable && (wielded) && prob(50)) - INVOKE_ASYNC(src, .proc/jedi_spin, user) - -/obj/item/twohanded/dualsaber/proc/jedi_spin(mob/living/user) - for(var/i in list(NORTH,SOUTH,EAST,WEST,EAST,SOUTH,NORTH,SOUTH,EAST,WEST,EAST,SOUTH)) - user.setDir(i) - if(i == WEST) - user.emote("flip") - sleep(1) - -/obj/item/twohanded/dualsaber/proc/impale(mob/living/user) - to_chat(user, "You twirl around a bit before losing your balance and impaling yourself on [src].") - if (force_wielded) - user.take_bodypart_damage(20,25) - else - user.adjustStaminaLoss(25) - -/obj/item/twohanded/dualsaber/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - if(!wielded) - return NONE - if(can_reflect && is_energy_reflectable_projectile(object) && (attack_type & ATTACK_TYPE_PROJECTILE)) - block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_RETURN_TO_SENDER //no you - return BLOCK_SHOULD_REDIRECT | BLOCK_SUCCESS | BLOCK_REDIRECTED - return ..() - -/obj/item/twohanded/dualsaber/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) //In case thats just so happens that it is still activated on the groud, prevents hulk from picking it up - if(wielded) - to_chat(user, "You can't pick up such dangerous item with your meaty hands without losing fingers, better not to!") - return 1 - -/obj/item/twohanded/dualsaber/wield(mob/living/carbon/M) //Specific wield () hulk checks due to reflection chance for balance issues and switches hitsounds. - if(M.has_dna()) - if(M.dna.check_mutation(HULK)) - to_chat(M, "You lack the grace to wield this!") - return - ..() - if(wielded) - sharpness = IS_SHARP - w_class = w_class_on - total_mass = total_mass_on - hitsound = 'sound/weapons/blade1.ogg' - START_PROCESSING(SSobj, src) - set_light(brightness_on) - AddElement(/datum/element/sword_point) - -/obj/item/twohanded/dualsaber/unwield() //Specific unwield () to switch hitsounds. - sharpness = initial(sharpness) - w_class = initial(w_class) - total_mass = initial(total_mass) - ..() - hitsound = "swing_hit" - STOP_PROCESSING(SSobj, src) - set_light(0) - RemoveElement(/datum/element/sword_point) - -/obj/item/twohanded/dualsaber/process() - if(wielded) - if(hacked) - rainbow_process() - open_flame() - else - STOP_PROCESSING(SSobj, src) - -/obj/item/twohanded/dualsaber/proc/rainbow_process() - light_color = pick(rainbow_colors) - -/obj/item/twohanded/dualsaber/ignition_effect(atom/A, mob/user) - // same as /obj/item/melee/transforming/energy, mostly - if(!wielded) - return "" - var/in_mouth = "" - if(iscarbon(user)) - var/mob/living/carbon/C = user - if(C.wear_mask) - in_mouth = ", barely missing [user.p_their()] nose" - . = "[user] swings [user.p_their()] [name][in_mouth]. [user.p_they(TRUE)] light[user.p_s()] [user.p_their()] [A.name] in the process." - playsound(loc, hitsound, get_clamped_volume(), 1, -1) - add_fingerprint(user) - // Light your candles while spinning around the room - if(spinnable) - INVOKE_ASYNC(src, .proc/jedi_spin, user) - -/obj/item/twohanded/dualsaber/green - possible_colors = list("green") - -/obj/item/twohanded/dualsaber/red - possible_colors = list("red") - -/obj/item/twohanded/dualsaber/blue - possible_colors = list("blue") - -/obj/item/twohanded/dualsaber/purple - possible_colors = list("purple") - -/obj/item/twohanded/dualsaber/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/multitool)) - if(!hacked) - hacked = TRUE - to_chat(user, "2XRNBW_ENGAGE") - saber_color = "rainbow" - update_icon() - else - to_chat(user, "It's starting to look like a triple rainbow - no, nevermind.") - else - return ..() - -///////////////////////////////////////////////////// -// HYPEREUTACTIC Blades ///////////////////////// -///////////////////////////////////////////////////// - -/obj/item/twohanded/dualsaber/hypereutactic - icon = 'icons/obj/1x2.dmi' - icon_state = "hypereutactic" - lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi' - righthand_file = 'icons/mob/inhands/64x64_righthand.dmi' - item_state = "hypereutactic" - inhand_x_dimension = 64 - inhand_y_dimension = 64 - name = "hypereutactic blade" - desc = "A supermassive weapon envisioned to cleave the very fabric of space and time itself in twain, the hypereutactic blade dynamically flash-forges a hypereutactic crystaline nanostructure capable of passing through most known forms of matter like a hot knife through butter." - force = 7 - force_unwielded = 7 - force_wielded = 40 - wieldsound = 'sound/weapons/nebon.ogg' - unwieldsound = 'sound/weapons/neboff.ogg' - hitsound_on = 'sound/weapons/nebhit.ogg' - slowdown_wielded = 1 - armour_penetration = 60 - light_color = "#37FFF7" - rainbow_colors = list("#FF0000", "#FFFF00", "#00FF00", "#00FFFF", "#0000FF","#FF00FF", "#3399ff", "#ff9900", "#fb008b", "#9800ff", "#00ffa3", "#ccff00") - attack_verb = list("attacked", "slashed", "stabbed", "sliced", "destroyed", "ripped", "devastated", "shredded") - spinnable = FALSE - total_mass_on = 4 - -/obj/item/twohanded/dualsaber/hypereutactic/ComponentInitialize() - . = ..() - AddElement(/datum/element/update_icon_updates_onmob) - -/obj/item/twohanded/dualsaber/hypereutactic/update_icon_state() - return - -/obj/item/twohanded/dualsaber/hypereutactic/update_overlays() - . = ..() - var/mutable_appearance/blade_overlay = mutable_appearance(icon, "hypereutactic_blade") - var/mutable_appearance/gem_overlay = mutable_appearance(icon, "hypereutactic_gem") - - if(light_color) - blade_overlay.color = light_color - gem_overlay.color = light_color - - . += gem_overlay - - if(wielded) - . += blade_overlay - - clean_blood() - -/obj/item/twohanded/dualsaber/hypereutactic/AltClick(mob/living/user) - . = ..() - if(!user.canUseTopic(src, BE_CLOSE, FALSE) || hacked) - return - if(user.incapacitated() || !istype(user)) - to_chat(user, "You can't do that right now!") - return - if(alert("Are you sure you want to recolor your blade?", "Confirm Repaint", "Yes", "No") == "Yes") - var/energy_color_input = input(usr,"","Choose Energy Color",light_color) as color|null - if(!energy_color_input || !user.canUseTopic(src, BE_CLOSE, FALSE) || hacked) - return - light_color = sanitize_hexcolor(energy_color_input, desired_format=6, include_crunch=1) - update_icon() - update_light() - return TRUE - -/obj/item/twohanded/dualsaber/hypereutactic/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) - . = ..() - if(isinhands) - var/mutable_appearance/gem_inhand = mutable_appearance(icon_file, "hypereutactic_gem") - gem_inhand.color = light_color - . += gem_inhand - if(wielded) - var/mutable_appearance/blade_inhand = mutable_appearance(icon_file, "hypereutactic_blade") - blade_inhand.color = light_color - . += blade_inhand - -/obj/item/twohanded/dualsaber/hypereutactic/examine(mob/user) - . = ..() - if(!hacked) - . += "Alt-click to recolor it." - -/obj/item/twohanded/dualsaber/hypereutactic/rainbow_process() - . = ..() - update_icon() - update_light() - -/obj/item/twohanded/dualsaber/hypereutactic/chaplain - name = "divine lightblade" - desc = "A giant blade of bright and holy light, said to cut down the wicked with ease." - force = 5 - force_unwielded = 5 - force_wielded = 20 - block_chance = 50 - armour_penetration = 0 - var/chaplain_spawnable = TRUE - can_reflect = FALSE - obj_flags = UNIQUE_RENAME - -/obj/item/twohanded/dualsaber/hypereutactic/chaplain/ComponentInitialize() - . = ..() - AddComponent(/datum/component/anti_magic, TRUE, TRUE, FALSE, null, null, FALSE) - -//spears -/obj/item/twohanded/spear - icon_state = "spearglass0" - lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/polearms_righthand.dmi' - name = "spear" - desc = "A haphazardly-constructed yet still deadly weapon of ancient design." - force = 10 - w_class = WEIGHT_CLASS_BULKY - slot_flags = ITEM_SLOT_BACK - force_unwielded = 10 - force_wielded = 18 - throwforce = 20 - throw_speed = 4 - embedding = list("embedded_impact_pain_multiplier" = 3, "embed_chance" = 90) - armour_penetration = 10 - custom_materials = list(/datum/material/iron=1150, /datum/material/glass=2075) - hitsound = 'sound/weapons/bladeslice.ogg' - attack_verb = list("attacked", "poked", "jabbed", "torn", "gored") - sharpness = IS_SHARP - max_integrity = 200 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 30) - var/obj/item/grenade/explosive = null - var/war_cry = "AAAAARGH!!!" - var/icon_prefix = "spearglass" - -/obj/item/twohanded/spear/Initialize() - . = ..() - AddComponent(/datum/component/butchering, 100, 70) //decent in a pinch, but pretty bad. - AddComponent(/datum/component/jousting) - AddElement(/datum/element/sword_point) - -/obj/item/twohanded/spear/attack_self(mob/user) - if(explosive) - explosive.attack_self(user) - return - . = ..() - -//Citadel additions : attack_self and rightclick_attack_self - -/obj/item/twohanded/rightclick_attack_self(mob/user) - if(wielded) //Trying to unwield it - unwield(user) - else //Trying to wield it - wield(user) - return TRUE - -/obj/item/twohanded/spear/suicide_act(mob/living/carbon/user) - user.visible_message("[user] begins to sword-swallow \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") - if(explosive) //Citadel Edit removes qdel and explosive.forcemove(AM) - user.say("[war_cry]", forced="spear warcry") - explosive.prime() - user.gib() - return BRUTELOSS - return BRUTELOSS - -/obj/item/twohanded/spear/examine(mob/user) - . = ..() - if(explosive) - . += "Use in your hands to activate the attached explosive.
    Alt-click to set your war cry.
    Right-click in combat mode to wield" - -/obj/item/twohanded/spear/update_icon_state() - if(explosive) - icon_state = "spearbomb[wielded]" - else - icon_state = "[icon_prefix][wielded]" - -/obj/item/twohanded/spear/afterattack(atom/movable/AM, mob/user, proximity) - . = ..() - if(!proximity) - return - if(isopenturf(AM)) //So you can actually melee with it - return - if(explosive && wielded) //Citadel edit removes qdel and explosive.forcemove(AM) - user.say("[war_cry]", forced="spear warcry") - explosive.prime() - -/obj/item/twohanded/spear/grenade_prime_react(obj/item/grenade/nade) //Citadel edit, removes throw_impact because memes - nade.forceMove(get_turf(src)) - qdel(src) - -/obj/item/twohanded/spear/AltClick(mob/user) - . = ..() - if(user.canUseTopic(src, BE_CLOSE)) - ..() - if(!explosive) - return - if(istype(user) && loc == user) - var/input = stripped_input(user,"What do you want your war cry to be? You will shout it when you hit someone in melee.", ,"", 50) - if(input) - src.war_cry = input - return TRUE - -/obj/item/twohanded/spear/CheckParts(list/parts_list) - var/obj/item/shard/tip = locate() in parts_list - if (istype(tip, /obj/item/shard/plasma)) - force_wielded = 19 - force_unwielded = 11 - throwforce = 21 - icon_prefix = "spearplasma" - qdel(tip) - var/obj/item/twohanded/spear/S = locate() in parts_list - if(S) - if(S.explosive) - S.explosive.forceMove(get_turf(src)) - S.explosive = null - parts_list -= S - qdel(S) - ..() - var/obj/item/grenade/G = locate() in contents - if(G) - explosive = G - name = "explosive lance" - desc = "A makeshift spear with [G] attached to it." - update_icon() - -// CHAINSAW -/obj/item/twohanded/required/chainsaw - name = "chainsaw" - desc = "A versatile power tool. Useful for limbing trees and delimbing humans." - icon_state = "chainsaw_off" - lefthand_file = 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/chainsaw_righthand.dmi' - flags_1 = CONDUCT_1 - force = 13 - var/force_on = 24 - w_class = WEIGHT_CLASS_HUGE - throwforce = 13 - throw_speed = 2 - throw_range = 4 - custom_materials = list(/datum/material/iron=13000) - attack_verb = list("sawed", "torn", "cut", "chopped", "diced") - hitsound = "swing_hit" - sharpness = IS_SHARP - actions_types = list(/datum/action/item_action/startchainsaw) - var/on = FALSE - tool_behaviour = TOOL_SAW - toolspeed = 0.5 - -/obj/item/twohanded/required/chainsaw/ComponentInitialize() - . = ..() - AddComponent(/datum/component/butchering, 30, 100, 0, 'sound/weapons/chainsawhit.ogg', TRUE) - AddElement(/datum/element/update_icon_updates_onmob) - -/obj/item/twohanded/required/chainsaw/suicide_act(mob/living/carbon/user) - if(on) - user.visible_message("[user] begins to tear [user.p_their()] head off with [src]! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(src, 'sound/weapons/chainsawhit.ogg', 100, 1) - var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD) - if(myhead) - myhead.dismember() - else - user.visible_message("[user] smashes [src] into [user.p_their()] neck, destroying [user.p_their()] esophagus! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(src, 'sound/weapons/genhit1.ogg', 100, 1) - return(BRUTELOSS) - -/obj/item/twohanded/required/chainsaw/attack_self(mob/user) - on = !on - to_chat(user, "As you pull the starting cord dangling from [src], [on ? "it begins to whirr." : "the chain stops moving."]") - force = on ? force_on : initial(force) - throwforce = on ? force_on : force - update_icon() - var/datum/component/butchering/butchering = src.GetComponent(/datum/component/butchering) - butchering.butchering_enabled = on - - if(on) - hitsound = 'sound/weapons/chainsawhit.ogg' - else - hitsound = "swing_hit" - -/obj/item/twohanded/required/chainsaw/update_icon_state() - icon_state = "chainsaw_[on ? "on" : "off"]" - -/obj/item/twohanded/required/chainsaw/get_dismemberment_chance() - if(wielded) - . = ..() - -/obj/item/twohanded/required/chainsaw/doomslayer - name = "THE GREAT COMMUNICATOR" - desc = "VRRRRRRR!!!" - armour_penetration = 100 - force_on = 30 - -/obj/item/twohanded/required/chainsaw/doomslayer/check_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - block_return[BLOCK_RETURN_REFLECT_PROJECTILE_CHANCE] = 100 - return ..() - -/obj/item/twohanded/required/chainsaw/doomslayer/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - if(attack_type & ATTACK_TYPE_PROJECTILE) - owner.visible_message("Ranged attacks just make [owner] angrier!") - playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, 1) - return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL - return ..() - -//GREY TIDE -/obj/item/twohanded/spear/grey_tide - icon_state = "spearglass0" - name = "\improper Grey Tide" - desc = "Recovered from the aftermath of a revolt aboard Defense Outpost Theta Aegis, in which a seemingly endless tide of Assistants caused heavy casualities among Nanotrasen military forces." - force_unwielded = 15 - force_wielded = 25 - throwforce = 20 - throw_speed = 4 - attack_verb = list("gored") - var/clonechance = 50 - var/clonedamage = 12 - var/clonespeed = 0 - var/clone_replication_chance = 30 - var/clone_lifespan = 100 - -/obj/item/twohanded/spear/grey_tide/afterattack(atom/movable/AM, mob/living/user, proximity) - . = ..() - if(!proximity) - return - user.faction |= "greytide([REF(user)])" - if(isliving(AM)) - var/mob/living/L = AM - if(istype (L, /mob/living/simple_animal/hostile/illusion)) - return - if(!L.stat && prob(clonechance)) - var/mob/living/simple_animal/hostile/illusion/M = new(user.loc) - M.faction = user.faction.Copy() - M.set_varspeed(clonespeed) - M.Copy_Parent(user, clone_lifespan, user.health/2.5, clonedamage, clone_replication_chance) - M.GiveTarget(L) - -/obj/item/twohanded/pitchfork - icon_state = "pitchfork0" - lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/polearms_righthand.dmi' - name = "pitchfork" - desc = "A simple tool used for moving hay." - force = 7 - throwforce = 15 - w_class = WEIGHT_CLASS_BULKY - force_unwielded = 7 - force_wielded = 15 - attack_verb = list("attacked", "impaled", "pierced") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - max_integrity = 200 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30) - resistance_flags = FIRE_PROOF - -/obj/item/twohanded/pitchfork/Initialize(mapload) - AddElement(/datum/element/sword_point) - -/obj/item/twohanded/pitchfork/demonic - name = "demonic pitchfork" - desc = "A red pitchfork, it looks like the work of the devil." - force = 19 - throwforce = 24 - force_unwielded = 19 - force_wielded = 25 - -/obj/item/twohanded/pitchfork/demonic/Initialize() - . = ..() - set_light(3,6,LIGHT_COLOR_RED) - -/obj/item/twohanded/pitchfork/demonic/greater - force = 24 - throwforce = 50 - force_unwielded = 24 - force_wielded = 34 - -/obj/item/twohanded/pitchfork/demonic/ascended - force = 100 - throwforce = 100 - force_unwielded = 100 - force_wielded = 500000 // Kills you DEAD. - -/obj/item/twohanded/pitchfork/update_icon_state() - icon_state = "pitchfork[wielded]" - -/obj/item/twohanded/pitchfork/suicide_act(mob/user) - user.visible_message("[user] impales [user.p_them()]self in [user.p_their()] abdomen with [src]! It looks like [user.p_theyre()] trying to commit suicide!") - return (BRUTELOSS) - -/obj/item/twohanded/pitchfork/demonic/pickup(mob/living/user) - if(isliving(user) && user.mind && user.owns_soul() && !is_devil(user)) - var/mob/living/U = user - U.visible_message("As [U] picks [src] up, [U]'s arms briefly catch fire.", \ - "\"As you pick up [src] your arms ignite, reminding you of all your past sins.\"") - if(ishuman(U)) - var/mob/living/carbon/human/H = U - H.apply_damage(rand(force/2, force), BURN, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) - else - U.adjustFireLoss(rand(force/2,force)) - -/obj/item/twohanded/pitchfork/demonic/attack(mob/target, mob/living/carbon/human/user) - if(user.mind && user.owns_soul() && !is_devil(user)) - to_chat(user, "[src] burns in your hands.") - user.apply_damage(rand(force/2, force), BURN, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) - ..() - -/obj/item/twohanded/pitchfork/demonic/ascended/afterattack(atom/target, mob/user, proximity) - . = ..() - if(!proximity || !wielded) - return - if(iswallturf(target)) - var/turf/closed/wall/W = target - user.visible_message("[user] blasts \the [target] with \the [src]!") - playsound(target, 'sound/magic/disintegrate.ogg', 100, 1) - W.break_wall() - W.ScrapeAway(flags = CHANGETURF_INHERIT_AIR) - return - -//HF blade - -/obj/item/twohanded/vibro_weapon - icon_state = "hfrequency0" - lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' - name = "vibro sword" - desc = "A potent weapon capable of cutting through nearly anything. Wielding it in two hands will allow you to deflect gunfire." - force_unwielded = 20 - force_wielded = 40 - armour_penetration = 100 - block_chance = 40 - throwforce = 20 - throw_speed = 4 - sharpness = IS_SHARP - attack_verb = list("cut", "sliced", "diced") - w_class = WEIGHT_CLASS_BULKY - slot_flags = ITEM_SLOT_BACK - hitsound = 'sound/weapons/bladeslice.ogg' - -/obj/item/twohanded/vibro_weapon/Initialize() - . = ..() - AddComponent(/datum/component/butchering, 20, 105) - AddElement(/datum/element/sword_point) - -/obj/item/twohanded/vibro_weapon/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - if(wielded) - final_block_chance *= 2 - if(wielded || !(attack_type & ATTACK_TYPE_PROJECTILE)) - if(prob(final_block_chance)) - if(attack_type & ATTACK_TYPE_PROJECTILE) - owner.visible_message("[owner] deflects [attack_text] with [src]!") - playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, 1) - block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_DEFLECT - return BLOCK_SUCCESS | BLOCK_REDIRECTED | BLOCK_SHOULD_REDIRECT | BLOCK_PHYSICAL_EXTERNAL - else - owner.visible_message("[owner] parries [attack_text] with [src]!") - return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL - return NONE - -/obj/item/twohanded/vibro_weapon/update_icon_state() - icon_state = "hfrequency[wielded]" - -/* - * Bone Axe - */ -/obj/item/twohanded/fireaxe/boneaxe // Blatant imitation of the fireaxe, but made out of bone. - icon_state = "bone_axe0" - name = "bone axe" - desc = "A large, vicious axe crafted out of several sharpened bone plates and crudely tied together. Made of monsters, by killing monsters, for killing monsters." - force_wielded = 23 - -/obj/item/twohanded/fireaxe/boneaxe/update_icon_state() - icon_state = "bone_axe[wielded]" - -/* - * Bone Spear - */ -/obj/item/twohanded/bonespear //Blatant imitation of spear, but made out of bone. Not valid for explosive modification. - icon_state = "bone_spear0" - lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/polearms_righthand.dmi' - name = "bone spear" - desc = "A haphazardly-constructed yet still deadly weapon. The pinnacle of modern technology." - force = 11 - w_class = WEIGHT_CLASS_BULKY - slot_flags = ITEM_SLOT_BACK - force_unwielded = 11 - force_wielded = 20 //I have no idea how to balance - reach = 2 - throwforce = 22 - throw_speed = 4 - embedding = list("embedded_impact_pain_multiplier" = 3) - armour_penetration = 15 //Enhanced armor piercing - hitsound = 'sound/weapons/bladeslice.ogg' - attack_verb = list("attacked", "poked", "jabbed", "torn", "gored") - sharpness = IS_SHARP - -/obj/item/twohanded/bonespear/update_icon_state() - icon_state = "bone_spear[wielded]" - -/obj/item/twohanded/binoculars - name = "binoculars" - desc = "Used for long-distance surveillance." - item_state = "binoculars" - icon_state = "binoculars" - lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' - righthand_file = 'icons/mob/inhands/items_righthand.dmi' - slot_flags = ITEM_SLOT_BELT - w_class = WEIGHT_CLASS_SMALL - var/mob/listeningTo - var/zoom_out_amt = 6 - var/zoom_amt = 10 - -/obj/item/twohanded/binoculars/Destroy() - listeningTo = null - return ..() - -/obj/item/twohanded/binoculars/wield(mob/user) - . = ..() - if(!wielded) - return - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/unwield) - listeningTo = user - user.visible_message("[user] holds [src] up to [user.p_their()] eyes.","You hold [src] up to your eyes.") - item_state = "binoculars_wielded" - user.regenerate_icons() - if(!user?.client) - return - var/client/C = user.client - var/_x = 0 - var/_y = 0 - switch(user.dir) - if(NORTH) - _y = zoom_amt - if(EAST) - _x = zoom_amt - if(SOUTH) - _y = -zoom_amt - if(WEST) - _x = -zoom_amt - C.change_view(world.view + zoom_out_amt) - C.pixel_x = world.icon_size*_x - C.pixel_y = world.icon_size*_y - -/obj/item/twohanded/binoculars/unwield(mob/user) - . = ..() - UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED) - listeningTo = null - user.visible_message("[user] lowers [src].","You lower [src].") - item_state = "binoculars" - user.regenerate_icons() - if(user && user.client) - user.regenerate_icons() - var/client/C = user.client - C.change_view(CONFIG_GET(string/default_view)) - user.client.pixel_x = 0 - user.client.pixel_y = 0 - -/obj/item/twohanded/electrostaff - icon = 'icons/obj/items_and_weapons.dmi' - icon_state = "electrostaff" - item_state = "electrostaff" - lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' - name = "riot suppression electrostaff" - desc = "A large quarterstaff, with massive silver electrodes mounted at the end." - w_class = WEIGHT_CLASS_HUGE - slot_flags = ITEM_SLOT_BACK | ITEM_SLOT_OCLOTHING - force_unwielded = 5 - force_wielded = 10 - throwforce = 15 //if you are a madman and finish someone off with this, power to you. - throw_speed = 1 - item_flags = NO_MAT_REDEMPTION | SLOWS_WHILE_IN_HAND - block_chance = 30 - attack_verb = list("struck", "beaten", "thwacked", "pulped") - total_mass = 5 //yeah this is a heavy thing, beating people with it while it's off is not going to do you any favors. (to curb stun-kill rampaging without it being on) - var/obj/item/stock_parts/cell/cell = /obj/item/stock_parts/cell/high - var/on = FALSE - var/can_block_projectiles = FALSE //can't block guns - var/lethal_cost = 400 //10000/400*20 = 500. decent enough? - var/lethal_damage = 20 - var/lethal_stam_cost = 4 - var/stun_cost = 333 //10000/333*25 = 750. stunbatons are at time of writing 10000/1000*49 = 490. - var/stun_status_effect = STATUS_EFFECT_ELECTROSTAFF //a small slowdown effect - var/stun_stamdmg = 40 - var/stun_status_duration = 25 - var/stun_stam_cost = 3.5 - -/obj/item/twohanded/electrostaff/Initialize(mapload) - . = ..() - if(ispath(cell)) - cell = new cell - -/obj/item/twohanded/electrostaff/Destroy() - STOP_PROCESSING(SSobj, src) - return ..() - -/obj/item/twohanded/electrostaff/get_cell() - . = cell - if(iscyborg(loc)) - var/mob/living/silicon/robot/R = loc - . = R.get_cell() - -/obj/item/twohanded/electrostaff/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - if(!on || (!can_block_projectiles && (attack_type & ATTACK_TYPE_PROJECTILE))) - return BLOCK_NONE - return ..() - -/obj/item/twohanded/electrostaff/proc/min_hitcost() - return min(stun_cost, lethal_cost) - -/obj/item/twohanded/electrostaff/proc/turn_on(mob/user, silent = FALSE) - if(on) - return - if(!cell) - if(user) - to_chat(user, "[src] has no cell.") - return - if(cell.charge < min_hitcost()) - if(user) - to_chat(user, "[src] is out of charge.") - return - on = TRUE - START_PROCESSING(SSobj, src) - if(user) - to_chat(user, "You turn [src] on.") - update_icon() - if(!silent) - playsound(src, "sparks", 75, 1, -1) - -/obj/item/twohanded/electrostaff/proc/turn_off(mob/user, silent = FALSE) - if(!on) - return - if(user) - to_chat(user, "You turn [src] off.") - on = FALSE - STOP_PROCESSING(SSobj, src) - update_icon() - if(!silent) - playsound(src, "sparks", 75, 1, -1) - -/obj/item/twohanded/electrostaff/proc/toggle(mob/user, silent = FALSE) - if(on) - turn_off(user, silent) - else - turn_on(user, silent) - -/obj/item/twohanded/electrostaff/wield(mob/user) - . = ..() - if(wielded) - turn_on(user) - add_fingerprint(user) - -/obj/item/twohanded/electrostaff/unwield(mob/user) - . = ..() - if(!wielded) - turn_off(user) - add_fingerprint(user) - -/obj/item/twohanded/electrostaff/update_icon_state() - . = ..() - if(!wielded) - icon_state = "electrostaff" - item_state = "electrostaff" - else - icon_state = item_state = (on? "electrostaff_1" : "electrostaff_0") - set_light(7, on? 1 : 0, LIGHT_COLOR_CYAN) - -/obj/item/twohanded/electrostaff/examine(mob/living/user) - . = ..() - if(cell) - . += "The cell charge is [round(cell.percent())]%." - else - . += "There is no cell installed!" - -/obj/item/twohanded/electrostaff/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/stock_parts/cell)) - var/obj/item/stock_parts/cell/C = W - if(cell) - to_chat(user, "[src] already has a cell!") - else - if(C.maxcharge < min_hit_cost()) - to_chat(user, "[src] requires a higher capacity cell.") - return - if(!user.transferItemToLoc(W, src)) - return - cell = C - to_chat(user, "You install a cell in [src].") - - else if(W.tool_behaviour == TOOL_SCREWDRIVER) - if(cell) - cell.update_icon() - cell.forceMove(get_turf(src)) - cell = null - to_chat(user, "You remove the cell from [src].") - turn_off(user, TRUE) - else - return ..() - -/obj/item/twohanded/electrostaff/process() - deductcharge(50) //Wasteful! - -/obj/item/twohanded/electrostaff/proc/min_hit_cost() - return min(lethal_cost, stun_cost) - -/obj/item/twohanded/electrostaff/proc/deductcharge(amount) - var/obj/item/stock_parts/cell/C = get_cell() - if(!C) - turn_off() - return FALSE - C.use(min(amount, C.charge)) - if(QDELETED(src)) - return FALSE - if(C.charge < min_hit_cost()) - turn_off() - -/obj/item/twohanded/electrostaff/attack(mob/living/target, mob/living/user) - if(IS_STAMCRIT(user))//CIT CHANGE - makes it impossible to baton in stamina softcrit - to_chat(user, "You're too exhausted for that.")//CIT CHANGE - ditto - return //CIT CHANGE - ditto - if(on && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50)) - clowning_around(user) //ouch! - return - if(iscyborg(target)) - ..() - return - if(target.mob_run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user, null, null) & BLOCK_SUCCESS) //No message; run_block() handles that - playsound(target, 'sound/weapons/genhit.ogg', 50, 1) - return FALSE - if(user.a_intent != INTENT_HARM) - if(stun_act(target, user)) - user.do_attack_animation(target) - user.adjustStaminaLossBuffered(stun_stam_cost) - return - else if(!harm_act(target, user)) - return ..() //if you can't fry them just beat them with it - else //we did harm act them - user.do_attack_animation(target) - user.adjustStaminaLossBuffered(lethal_stam_cost) - -/obj/item/twohanded/electrostaff/proc/stun_act(mob/living/target, mob/living/user, no_charge_and_force = FALSE) - var/stunforce = stun_stamdmg - if(!no_charge_and_force) - if(!on) - target.visible_message("[user] has bapped [target] with [src]. Luckily it was off.", \ - "[user] has bapped you with [src]. Luckily it was off") - turn_off() //if it wasn't already off - return FALSE - var/obj/item/stock_parts/cell/C = get_cell() - var/chargeleft = C.charge - deductcharge(stun_cost) - if(QDELETED(src) || QDELETED(C)) //boom - return FALSE - if(chargeleft < stun_cost) - stunforce *= round(chargeleft/stun_cost, 0.1) - target.adjustStaminaLoss(stunforce) - target.apply_effect(EFFECT_STUTTER, stunforce) - SEND_SIGNAL(target, COMSIG_LIVING_MINOR_SHOCK) - if(user) - target.lastattacker = user.real_name - target.lastattackerckey = user.ckey - target.visible_message("[user] has shocked [target] with [src]!", \ - "[user] has shocked you with [src]!") - log_combat(user, target, "stunned with an electrostaff") - playsound(src, 'sound/weapons/staff.ogg', 50, 1, -1) - target.apply_status_effect(stun_status_effect, stun_status_duration) - if(ishuman(user)) - var/mob/living/carbon/human/H = user - H.forcesay(GLOB.hit_appends) - return TRUE - -/obj/item/twohanded/electrostaff/proc/harm_act(mob/living/target, mob/living/user, no_charge_and_force = FALSE) - var/lethal_force = lethal_damage - if(!no_charge_and_force) - if(!on) - return FALSE //standard item attack - var/obj/item/stock_parts/cell/C = get_cell() - var/chargeleft = C.charge - deductcharge(lethal_cost) - if(QDELETED(src) || QDELETED(C)) //boom - return FALSE - if(chargeleft < stun_cost) - lethal_force *= round(chargeleft/lethal_cost, 0.1) - target.adjustFireLoss(lethal_force) //good against ointment spam - SEND_SIGNAL(target, COMSIG_LIVING_MINOR_SHOCK) - if(user) - target.lastattacker = user.real_name - target.lastattackerckey = user.ckey - target.visible_message("[user] has seared [target] with [src]!", \ - "[user] has seared you with [src]!") - log_combat(user, target, "burned with an electrostaff") - playsound(src, 'sound/weapons/sear.ogg', 50, 1, -1) - return TRUE - -/obj/item/twohanded/electrostaff/proc/clowning_around(mob/living/user) - user.visible_message("[user] accidentally hits [user.p_them()]self with [src]!", \ - "You accidentally hit yourself with [src]!") - SEND_SIGNAL(user, COMSIG_LIVING_MINOR_SHOCK) - harm_act(user, user, TRUE) - stun_act(user, user, TRUE) - deductcharge(lethal_cost) - -/obj/item/twohanded/electrostaff/emp_act(severity) - . = ..() - if (!(. & EMP_PROTECT_SELF)) - turn_off() - if(!iscyborg(loc)) - deductcharge(1000 / severity, TRUE, FALSE) - -/obj/item/twohanded/broom - name = "broom" - desc = "This is my BROOMSTICK! It can be used manually or braced with two hands to sweep items as you move. It has a telescopic handle for compact storage." //LIES - icon = 'icons/obj/janitor.dmi' - icon_state = "broom0" - lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi' - force = 8 - throwforce = 10 - throw_speed = 3 - throw_range = 7 - w_class = WEIGHT_CLASS_NORMAL - force_unwielded = 8 - force_wielded = 12 - attack_verb = list("swept", "brushed off", "bludgeoned", "whacked") - resistance_flags = FLAMMABLE - -/obj/item/twohanded/broom/update_icon_state() - icon_state = "broom[wielded]" - -/obj/item/twohanded/broom/wield(mob/user) - . = ..() - if(!wielded) - return - to_chat(user, "You brace the [src] against the ground in a firm sweeping stance.") - RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/sweep) - -/obj/item/twohanded/broom/unwield(mob/user) - . = ..() - UnregisterSignal(user, COMSIG_MOVABLE_MOVED) - -/obj/item/twohanded/broom/afterattack(atom/A, mob/user, proximity) - . = ..() - if(!proximity) - return - sweep(user, A, FALSE) - -/obj/item/twohanded/broom/proc/sweep(mob/user, atom/A, moving = TRUE) - var/turf/target - if (!moving) - if (isturf(A)) - target = A - else - target = A.loc - if(!isturf(target)) //read: Mob inventories. - return - else - target = user.loc - if (locate(/obj/structure/table) in target.contents) - return - var/i = 0 - for(var/obj/item/garbage in target.contents) - if(!garbage.anchored) - garbage.Move(get_step(target, user.dir), user.dir) - i++ - if(i >= 20) - break - if(i >= 1) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 5, TRUE, -1) - -/obj/item/twohanded/broom/proc/janicart_insert(mob/user, obj/structure/janitorialcart/J) //bless you whoever fixes this copypasta - J.put_in_cart(src, user) - J.mybroom=src - J.update_icon() diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index d34daf5c75..7524bb93e1 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -122,11 +122,13 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /obj/item/claymore/highlander/pickup(mob/living/user) + . = ..() to_chat(user, "The power of Scotland protects you! You are shielded from all stuns and knockdowns.") user.add_stun_absorption("highlander", INFINITY, 1, " is protected by the power of Scotland!", "The power of Scotland absorbs the stun!", " is protected by the power of Scotland!") user.ignore_slowdown(HIGHLANDER) /obj/item/claymore/highlander/dropped(mob/living/user) + . = ..() user.unignore_slowdown(HIGHLANDER) if(!QDELETED(src)) qdel(src) //If this ever happens, it's because you lost an arm @@ -261,7 +263,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /obj/item/wirerod/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/shard)) - var/obj/item/twohanded/spear/S = new /obj/item/twohanded/spear + var/obj/item/spear/S = new /obj/item/spear remove_item_from_storage(user) if (!user.transferItemToLoc(I, S)) @@ -297,12 +299,28 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 force = 2 throwforce = 20 //This is never used on mobs since this has a 100% embed chance. throw_speed = 4 - embedding = list("embedded_pain_multiplier" = 4, "embed_chance" = 100, "embedded_fall_chance" = 0) + embedding = list("pain_mult" = 4, "embed_chance" = 100, "fall_chance" = 0, "embed_chance_turf_mod" = 15) + armour_penetration = 40 + w_class = WEIGHT_CLASS_SMALL sharpness = IS_SHARP custom_materials = list(/datum/material/iron=500, /datum/material/glass=500) resistance_flags = FIRE_PROOF +/obj/item/throwing_star/stamina + name = "shock throwing star" + desc = "An aerodynamic disc designed to cause excruciating pain when stuck inside fleeing targets, hopefully without causing fatal harm." + throwforce = 5 + embedding = list("pain_chance" = 5, "embed_chance" = 100, "fall_chance" = 0, "jostle_chance" = 10, "pain_stam_pct" = 0.8, "jostle_pain_mult" = 3) + +/obj/item/throwing_star/toy + name = "toy throwing star" + desc = "An aerodynamic disc strapped with adhesive for sticking to people, good for playing pranks and getting yourself killed by security." + sharpness = IS_BLUNT + force = 0 + throwforce = 0 + embedding = list("pain_mult" = 0, "jostle_pain_mult" = 0, "embed_chance" = 100, "fall_chance" = 0) + /obj/item/switchblade name = "switchblade" icon_state = "switchblade" @@ -457,7 +475,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /obj/item/mounted_chainsaw/Destroy() var/obj/item/bodypart/part - new /obj/item/twohanded/required/chainsaw(get_turf(src)) + new /obj/item/chainsaw(get_turf(src)) if(iscarbon(loc)) var/mob/living/carbon/holder = loc var/index = holder.get_held_index_of_item(src) @@ -477,6 +495,12 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 throw_speed = 5 throw_range = 2 attack_verb = list("busted") + var/impressiveness = 45 + +/obj/item/statuebust/Initialize() + . = ..() + AddElement(/datum/element/art, impressiveness) + addtimer(CALLBACK(src, /datum.proc/_AddElement, list(/datum/element/beauty, 1000)), 0) /obj/item/tailclub name = "tail club" @@ -552,6 +576,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 force = 10 throwforce = 12 attack_verb = list("beat", "smacked") + custom_materials = list(/datum/material/wood = MINERAL_MATERIAL_AMOUNT * 3.5) w_class = WEIGHT_CLASS_BULKY var/homerun_ready = 0 var/homerun_able = 0 @@ -668,7 +693,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 to_chat(user, "You easily land a critical blow on the [target].") if(istype(target, /mob/living/)) var/mob/living/bug = target - bug.adjustBruteLoss(-35) //What kinda mad man would go into melee with a spider?! + bug.adjustBruteLoss(35) //What kinda mad man would go into melee with a spider?! else qdel(target) @@ -734,3 +759,59 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 to_chat(user, "[M] is too close to use [src] on.") return M.attack_hand(user) + +//HF blade + +/obj/item/vibro_weapon + icon_state = "hfrequency0" + lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' + name = "vibro sword" + desc = "A potent weapon capable of cutting through nearly anything. Wielding it in two hands will allow you to deflect gunfire." + armour_penetration = 100 + block_chance = 40 + throwforce = 20 + throw_speed = 4 + sharpness = IS_SHARP + attack_verb = list("cut", "sliced", "diced") + w_class = WEIGHT_CLASS_BULKY + slot_flags = ITEM_SLOT_BACK + hitsound = 'sound/weapons/bladeslice.ogg' + var/wielded = FALSE // track wielded status on item + +/obj/item/vibro_weapon/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) + +/obj/item/vibro_weapon/ComponentInitialize() + . = ..() + AddComponent(/datum/component/butchering, 20, 105) + AddComponent(/datum/component/two_handed, force_multiplier=2, icon_wielded="hfrequency1") + AddElement(/datum/element/sword_point) + +/// triggered on wield of two handed item +/obj/item/vibro_weapon/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/vibro_weapon/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/vibro_weapon/update_icon_state() + icon_state = "hfrequency0" + +/obj/item/vibro_weapon/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(wielded) + final_block_chance *= 2 + if(wielded || !(attack_type & ATTACK_TYPE_PROJECTILE)) + if(prob(final_block_chance)) + if(attack_type & ATTACK_TYPE_PROJECTILE) + owner.visible_message("[owner] deflects [attack_text] with [src]!") + playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, 1) + block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_DEFLECT + return BLOCK_SUCCESS | BLOCK_REDIRECTED | BLOCK_SHOULD_REDIRECT | BLOCK_PHYSICAL_EXTERNAL + else + owner.visible_message("[owner] parries [attack_text] with [src]!") + return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL + return NONE diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index 8dac972d04..1203c5a1df 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -74,7 +74,8 @@ /obj/bullet_act(obj/item/projectile/P) . = ..() playsound(src, P.hitsound, 50, 1) - visible_message("[src] is hit by \a [P]!", null, null, COMBAT_MESSAGE_RANGE) + if(P.suppressed != SUPPRESSED_VERY) + visible_message("[src] is hit by \a [P]!", null, null, COMBAT_MESSAGE_RANGE) if(!QDELETED(src)) //Bullet on_hit effect might have already destroyed this object take_damage(P.damage, P.damage_type, P.flag, 0, turn(P.dir, 180), P.armour_penetration) @@ -102,6 +103,8 @@ take_damage(400, BRUTE, "melee", 0, get_dir(src, B)) /obj/proc/attack_generic(mob/user, damage_amount = 0, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, armor_penetration = 0) //used by attack_alien, attack_animal, and attack_slime + if(SEND_SIGNAL(src, COMSIG_OBJ_ATTACK_GENERIC, user, damage_amount, damage_type, damage_flag, sound_effect, armor_penetration) & COMPONENT_STOP_GENERIC_ATTACK) + return FALSE user.do_attack_animation(src) user.changeNext_move(CLICK_CD_MELEE) return take_damage(damage_amount, damage_type, damage_flag, sound_effect, get_dir(src, user), armor_penetration) @@ -112,7 +115,7 @@ /obj/attack_animal(mob/living/simple_animal/M) if(!M.melee_damage_upper && !M.obj_damage) - M.emote("custom", message = "[M.friendly] [src].") + M.emote("custom", message = "[M.friendly_verb_continuous] [src].") return 0 else var/play_soundeffect = 1 @@ -232,15 +235,16 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e cut_overlay(GLOB.fire_overlay, TRUE) SSfire_burning.processing -= src -/obj/proc/tesla_act(power, tesla_flags, shocked_targets) +/obj/zap_act(power, zap_flags, shocked_targets) + if(QDELETED(src)) + return 0 obj_flags |= BEING_SHOCKED - var/power_bounced = power / 2 - tesla_zap(src, 3, power_bounced, tesla_flags, shocked_targets) addtimer(CALLBACK(src, .proc/reset_shocked), 10) + return power / 2 //The surgeon general warns that being buckled to certain objects receiving powerful shocks is greatly hazardous to your health -//Only tesla coils and grounding rods currently call this because mobs are already targeted over all other objects, but this might be useful for more things later. -/obj/proc/tesla_buckle_check(var/strength) +//Only tesla coils, vehicles, and grounding rods currently call this because mobs are already targeted over all other objects, but this might be useful for more things later. +/obj/proc/zap_buckle_check(var/strength) if(has_buckled_mobs()) for(var/m in buckled_mobs) var/mob/living/buckled_mob = m diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 199f0c51e2..ba3eba9bd3 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -123,7 +123,7 @@ /obj/proc/updateUsrDialog() if((obj_flags & IN_USE) && !(obj_flags & USES_TGUI)) var/is_in_use = FALSE - var/list/nearby = viewers(1, src) + var/list/nearby = fov_viewers(1, src) for(var/mob/M in nearby) if ((M.client && M.machine == src)) is_in_use = TRUE @@ -152,7 +152,7 @@ if(obj_flags & IN_USE) var/is_in_use = FALSE if(update_viewers) - for(var/mob/M in viewers(1, src)) + for(var/mob/M in fov_viewers(1, src)) if ((M.client && M.machine == src)) is_in_use = TRUE src.interact(M) @@ -323,3 +323,8 @@ /obj/proc/rnd_crafted(obj/machinery/rnd/production/P) return + +/obj/handle_ricochet(obj/item/projectile/P) + . = ..() + if(. && ricochet_damage_mod) + take_damage(P.damage * ricochet_damage_mod, P.damage_type, P.flag, 0, turn(P.dir, 180), P.armour_penetration) // pass along ricochet_damage_mod damage to the structure for the ricochet diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index e185defc0a..d30f617919 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -9,6 +9,8 @@ var/mob/living/structureclimber var/broken = 0 //similar to machinery's stat BROKEN layer = BELOW_OBJ_LAYER + flags_ricochet = RICOCHET_HARD + ricochet_chance_mod = 0.5 /obj/structure/Initialize() if (!armor) diff --git a/code/game/objects/structures/artstuff.dm b/code/game/objects/structures/artstuff.dm index 405e697d3b..fcc26d1313 100644 --- a/code/game/objects/structures/artstuff.dm +++ b/code/game/objects/structures/artstuff.dm @@ -35,101 +35,368 @@ else painting = null - -////////////// -// CANVASES // -////////////// - -#define AMT_OF_CANVASES 4 //Keep this up to date or shit will break. - -//To safe memory on making /icons we cache the blanks.. -GLOBAL_LIST_INIT(globalBlankCanvases, new(AMT_OF_CANVASES)) - /obj/item/canvas name = "canvas" desc = "Draw out your soul on this canvas!" icon = 'icons/obj/artstuff.dmi' icon_state = "11x11" resistance_flags = FLAMMABLE - var/whichGlobalBackup = 1 //List index + var/width = 11 + var/height = 11 + var/list/grid + var/canvas_color = "#ffffff" //empty canvas color + var/ui_x = 400 + var/ui_y = 400 + var/used = FALSE + var/painting_name //Painting name, this is set after framing. + var/finalized = FALSE //Blocks edits + var/author_ckey + var/icon_generated = FALSE + var/icon/generated_icon -/obj/item/canvas/nineteenXnineteen - icon_state = "19x19" - whichGlobalBackup = 2 + // Painting overlay offset when framed + var/framed_offset_x = 11 + var/framed_offset_y = 10 -/obj/item/canvas/twentythreeXnineteen - icon_state = "23x19" - whichGlobalBackup = 3 + pixel_x = 10 + pixel_y = 9 -/obj/item/canvas/twentythreeXtwentythree - icon_state = "23x23" - whichGlobalBackup = 4 - -//HEY YOU -//ARE YOU READING THE CODE FOR CANVASES? -//ARE YOU AWARE THEY CRASH HALF THE SERVER WHEN SOMEONE DRAWS ON THEM... -//...AND NOBODY CAN FIGURE OUT WHY? -//THEN GO ON BRAVE TRAVELER -//TRY TO FIX THEM AND REMOVE THIS CODE /obj/item/canvas/Initialize() - ..() - return INITIALIZE_HINT_QDEL //Delete on creation + . = ..() + reset_grid() -//Find the right size blank canvas -/obj/item/canvas/proc/getGlobalBackup() - . = null - if(GLOB.globalBlankCanvases[whichGlobalBackup]) - . = GLOB.globalBlankCanvases[whichGlobalBackup] - else - var/icon/I = icon(initial(icon),initial(icon_state)) - GLOB.globalBlankCanvases[whichGlobalBackup] = I - . = I +/obj/item/canvas/proc/reset_grid() + grid = new/list(width,height) + for(var/x in 1 to width) + for(var/y in 1 to height) + grid[x][y] = canvas_color +/obj/item/canvas/attack_self(mob/user) + . = ..() + ui_interact(user) +/obj/item/canvas/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) -//One pixel increments -/obj/item/canvas/attackby(obj/item/I, mob/user, params) - //Click info - var/list/click_params = params2list(params) - var/pixX = text2num(click_params["icon-x"]) - var/pixY = text2num(click_params["icon-y"]) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "canvas", name, ui_x, ui_y, master_ui, state) + ui.set_autoupdate(FALSE) + ui.open() - //Should always be true, otherwise you didn't click the object, but let's check because SS13~ - if(!click_params || !click_params["icon-x"] || !click_params["icon-y"]) - return - - //Cleaning one pixel with a soap or rag - if(istype(I, /obj/item/soap) || istype(I, /obj/item/reagent_containers/rag)) - //Pixel info created only when needed - var/icon/masterpiece = icon(icon,icon_state) - var/thePix = masterpiece.GetPixel(pixX,pixY) - var/icon/Ico = getGlobalBackup() - if(!Ico) - qdel(masterpiece) - return - - var/theOriginalPix = Ico.GetPixel(pixX,pixY) - if(thePix != theOriginalPix) //colour changed - DrawPixelOn(theOriginalPix,pixX,pixY) - qdel(masterpiece) - - //Drawing one pixel with a crayon - else if(istype(I, /obj/item/toy/crayon)) - var/obj/item/toy/crayon/C = I - DrawPixelOn(C.paint_color, pixX, pixY) +/obj/item/canvas/attackby(obj/item/I, mob/living/user, params) + if(user.a_intent == INTENT_HELP) + ui_interact(user) else return ..() +/obj/item/canvas/ui_data(mob/user) + . = ..() + .["grid"] = grid + .["name"] = painting_name + .["finalized"] = finalized -//Clean the whole canvas -/obj/item/canvas/attack_self(mob/user) - if(!user) +/obj/item/canvas/examine(mob/user) + . = ..() + ui_interact(user) + +/obj/item/canvas/ui_act(action, params) + . = ..() + if(. || finalized) return - var/icon/blank = getGlobalBackup() - if(blank) - //it's basically a giant etch-a-sketch - icon = blank - user.visible_message("[user] cleans the canvas.","You clean the canvas.") + var/mob/user = usr + switch(action) + if("paint") + var/obj/item/I = user.get_active_held_item() + var/color = get_paint_tool_color(I) + if(!color) + return FALSE + var/x = text2num(params["x"]) + var/y = text2num(params["y"]) + grid[x][y] = color + used = TRUE + update_icon() + . = TRUE + if("finalize") + . = TRUE + if(!finalized) + finalize(user) + +/obj/item/canvas/proc/finalize(mob/user) + finalized = TRUE + author_ckey = user.ckey + generate_proper_overlay() + try_rename(user) + +/obj/item/canvas/update_overlays() + . = ..() + if(!icon_generated) + if(used) + var/mutable_appearance/detail = mutable_appearance(icon,"[icon_state]wip") + detail.pixel_x = 1 + detail.pixel_y = 1 + . += detail + else + var/mutable_appearance/detail = mutable_appearance(generated_icon) + detail.pixel_x = 1 + detail.pixel_y = 1 + . += detail + +/obj/item/canvas/proc/generate_proper_overlay() + if(icon_generated) + return + var/png_filename = "data/paintings/temp_painting.png" + var/result = rustg_dmi_create_png(png_filename,"[width]","[height]",get_data_string()) + if(result) + CRASH("Error generating painting png : [result]") + generated_icon = new(png_filename) + icon_generated = TRUE + update_icon() + +/obj/item/canvas/proc/get_data_string() + var/list/data = list() + for(var/y in 1 to height) + for(var/x in 1 to width) + data += grid[x][y] + return data.Join("") + +//Todo make this element ? +/obj/item/canvas/proc/get_paint_tool_color(obj/item/I) + if(!I) + return + if(istype(I, /obj/item/toy/crayon)) + var/obj/item/toy/crayon/C = I + return C.paint_color + else if(istype(I, /obj/item/pen)) + var/obj/item/pen/P = I + switch(P.colour) + if("black") + return "#000000" + if("blue") + return "#0000ff" + if("red") + return "#ff0000" + return P.colour + else if(istype(I, /obj/item/soap) || istype(I, /obj/item/reagent_containers/rag)) + return canvas_color + +/obj/item/canvas/proc/try_rename(mob/user) + var/new_name = stripped_input(user,"What do you want to name the painting?") + if(!painting_name && new_name && user.canUseTopic(src,BE_CLOSE)) + painting_name = new_name + SStgui.update_uis(src) + +/obj/item/canvas/nineteenXnineteen + icon_state = "19x19" + width = 19 + height = 19 + ui_x = 600 + ui_y = 600 + pixel_x = 6 + pixel_y = 9 + framed_offset_x = 8 + framed_offset_y = 9 + +/obj/item/canvas/twentythreeXnineteen + icon_state = "23x19" + width = 23 + height = 19 + ui_x = 800 + ui_y = 600 + pixel_x = 4 + pixel_y = 10 + framed_offset_x = 6 + framed_offset_y = 8 + +/obj/item/canvas/twentythreeXtwentythree + icon_state = "23x23" + width = 23 + height = 23 + ui_x = 800 + ui_y = 800 + pixel_x = 5 + pixel_y = 9 + framed_offset_x = 5 + framed_offset_y = 6 + +/obj/item/wallframe/painting + name = "painting frame" + desc = "The perfect showcase for your favorite deathtrap memories." + icon = 'icons/obj/decals.dmi' + custom_materials = null + flags_1 = 0 + icon_state = "frame-empty" + result_path = /obj/structure/sign/painting + +/obj/structure/sign/painting + name = "Painting" + desc = "Art or \"Art\"? You decide." + icon = 'icons/obj/decals.dmi' + icon_state = "frame-empty" + buildable_sign = FALSE + var/obj/item/canvas/C + var/persistence_id + +/obj/structure/sign/painting/Initialize(mapload, dir, building) + . = ..() + SSpersistence.painting_frames += src + AddElement(/datum/element/art, 20) + if(dir) + setDir(dir) + if(building) + pixel_x = (dir & 3)? 0 : (dir == 4 ? -30 : 30) + pixel_y = (dir & 3)? (dir ==1 ? -30 : 30) : 0 + +/obj/structure/sign/painting/Destroy() + . = ..() + SSpersistence.painting_frames -= src + +/obj/structure/sign/painting/attackby(obj/item/I, mob/user, params) + if(!C && istype(I, /obj/item/canvas)) + frame_canvas(user,I) + else if(C && !C.painting_name && istype(I,/obj/item/pen)) + try_rename(user) + else + return ..() + +/obj/structure/sign/painting/examine(mob/user) + . = ..() + if(C) + C.ui_interact(user,state = GLOB.physical_obscured_state) + +/obj/structure/sign/painting/wirecutter_act(mob/living/user, obj/item/I) + . = ..() + if(C) + C.forceMove(drop_location()) + C = null + to_chat(user, "You remove the painting from the frame.") + update_icon() + return TRUE + +/obj/structure/sign/painting/proc/frame_canvas(mob/user,obj/item/canvas/new_canvas) + if(user.transferItemToLoc(new_canvas,src)) + C = new_canvas + if(!C.finalized) + C.finalize(user) + to_chat(user,"You frame [C].") + update_icon() + +/obj/structure/sign/painting/proc/try_rename(mob/user) + if(!C.painting_name) + C.try_rename(user) + +/obj/structure/sign/painting/update_icon_state() + . = ..() + if(C && C.generated_icon) + icon_state = null + else + icon_state = "frame-empty" -#undef AMT_OF_CANVASES +/obj/structure/sign/painting/update_overlays() + . = ..() + if(C && C.generated_icon) + var/mutable_appearance/MA = mutable_appearance(C.generated_icon) + MA.pixel_x = C.framed_offset_x + MA.pixel_y = C.framed_offset_y + . += MA + var/mutable_appearance/frame = mutable_appearance(C.icon,"[C.icon_state]frame") + frame.pixel_x = C.framed_offset_x - 1 + frame.pixel_y = C.framed_offset_y - 1 + . += frame + +/obj/structure/sign/painting/proc/load_persistent() + if(!persistence_id) + return + if(!SSpersistence.paintings || !SSpersistence.paintings[persistence_id] || !length(SSpersistence.paintings[persistence_id])) + return + var/list/chosen = pick(SSpersistence.paintings[persistence_id]) + var/title = chosen["title"] + var/author = chosen["ckey"] + var/png = "data/paintings/[persistence_id]/[chosen["md5"]].png" + if(!fexists(png)) + stack_trace("Persistent painting [chosen["md5"]].png was not found in [persistence_id] directory.") + return + var/icon/I = new(png) + var/obj/item/canvas/new_canvas + var/w = I.Width() + var/h = I.Height() + for(var/T in typesof(/obj/item/canvas)) + new_canvas = T + if(initial(new_canvas.width) == w && initial(new_canvas.height) == h) + new_canvas = new T(src) + break + new_canvas.fill_grid_from_icon(I) + new_canvas.generated_icon = I + new_canvas.icon_generated = TRUE + new_canvas.finalized = TRUE + new_canvas.painting_name = title + new_canvas.author_ckey = author + C = new_canvas + update_icon() + +/obj/structure/sign/painting/proc/save_persistent() + if(!persistence_id || !C) + return + if(sanitize_filename(persistence_id) != persistence_id) + stack_trace("Invalid persistence_id - [persistence_id]") + return + var/data = C.get_data_string() + var/md5 = md5(data) + var/list/current = SSpersistence.paintings[persistence_id] + if(!current) + current = list() + for(var/list/entry in current) + if(entry["md5"] == md5) + return + var/png_directory = "data/paintings/[persistence_id]/" + var/png_path = png_directory + "[md5].png" + var/result = rustg_dmi_create_png(png_path,"[C.width]","[C.height]",data) + if(result) + CRASH("Error saving persistent painting: [result]") + current += list(list("title" = C.painting_name , "md5" = md5, "ckey" = C.author_ckey)) + SSpersistence.paintings[persistence_id] = current + +/obj/item/canvas/proc/fill_grid_from_icon(icon/I) + var/h = I.Height() + 1 + for(var/x in 1 to width) + for(var/y in 1 to height) + grid[x][y] = I.GetPixel(x,h-y) + +//Presets for art gallery mapping, for paintings to be shared across stations +/obj/structure/sign/painting/library + persistence_id = "library" + +/obj/structure/sign/painting/library_secure + persistence_id = "library_secure" + +/obj/structure/sign/painting/library_private // keep your smut away from prying eyes, or non-librarians at least + persistence_id = "library_private" + +/obj/structure/sign/painting/vv_get_dropdown() + . = ..() + VV_DROPDOWN_OPTION(VV_HK_REMOVE_PAINTING, "Remove Persistent Painting") + +/obj/structure/sign/painting/vv_do_topic(list/href_list) + . = ..() + if(href_list[VV_HK_REMOVE_PAINTING]) + if(!check_rights(NONE)) + return + var/mob/user = usr + if(!persistence_id || !C) + to_chat(user,"This is not a persistent painting.") + return + var/md5 = md5(C.get_data_string()) + var/author = C.author_ckey + var/list/current = SSpersistence.paintings[persistence_id] + if(current) + for(var/list/entry in current) + if(entry["md5"] == md5) + current -= entry + var/png = "data/paintings/[persistence_id]/[md5].png" + fdel(png) + for(var/obj/structure/sign/painting/P in SSpersistence.painting_frames) + if(P.C && md5(P.C.get_data_string()) == md5) + QDEL_NULL(P.C) + log_admin("[key_name(user)] has deleted a persistent painting made by [author].") + message_admins("[key_name_admin(user)] has deleted persistent painting made by [author].") diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index d3e8ecf0a6..299ba7b659 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -108,7 +108,9 @@ if(!istype(poordude)) return TRUE user.visible_message("[user] pulls [src] out from under [poordude].", "You pull [src] out from under [poordude].") - var/C = new item_chair(loc) + var/obj/item/chair/C = new item_chair(loc) + C.set_custom_materials(custom_materials) + TransferComponents(C) user.put_in_hands(C) poordude.DefaultCombatKnockdown(20)//rip in peace user.adjustStaminaLoss(5) @@ -153,7 +155,7 @@ ///Material chair /obj/structure/chair/greyscale icon_state = "chair_greyscale" - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS item_chair = /obj/item/chair/greyscale buildstacktype = null //Custom mats handle this @@ -382,7 +384,7 @@ /obj/item/chair/greyscale icon_state = "chair_greyscale_toppled" item_state = "chair_greyscale" - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS origin_type = /obj/structure/chair/greyscale /obj/item/chair/stool diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 57d7e08862..a4ee2f16e2 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -41,7 +41,7 @@ LINEN BINS return /obj/item/bedsheet/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/wirecutters) || I.get_sharpness()) + if(!(flags_1 & HOLOGRAM_1) && (istype(I, /obj/item/wirecutters) || I.get_sharpness())) var/obj/item/stack/sheet/cloth/C = new (get_turf(src), 3) transfer_fingerprints_to(C) C.add_fingerprint(user) @@ -261,6 +261,11 @@ LINEN BINS var/list/sheets = list() var/obj/item/hidden = null +/obj/structure/bedsheetbin/empty + amount = 0 + icon_state = "linenbin-empty" + anchored = FALSE + /obj/structure/bedsheetbin/examine(mob/user) . = ..() if(amount < 1) @@ -364,4 +369,4 @@ LINEN BINS /obj/structure/bedsheetbin/color sheet_types = list(/obj/item/bedsheet, /obj/item/bedsheet/blue, /obj/item/bedsheet/green, /obj/item/bedsheet/orange, \ /obj/item/bedsheet/purple, /obj/item/bedsheet/red, /obj/item/bedsheet/yellow, /obj/item/bedsheet/brown, \ - /obj/item/bedsheet/black) \ No newline at end of file + /obj/item/bedsheet/black) diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm index ae2e1a070a..500b8d6a49 100644 --- a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm +++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm @@ -24,6 +24,7 @@ move_delay = TRUE var/oldloc = loc step(src, direction) + user.setDir(direction) if(oldloc != loc) addtimer(CALLBACK(src, .proc/ResetMoveDelay), (use_mob_movespeed ? user.movement_delay() : CONFIG_GET(number/movedelay/walk_delay)) * move_speed_multiplier) else @@ -42,7 +43,7 @@ Snake = L break if(Snake) - alerted = viewers(7,src) + alerted = fov_viewers(world.view,src) ..() if(LAZYLEN(alerted)) egged = world.time + SNAKE_SPAM_TICKS diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm index 14d32cd4fe..beb14ff48c 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm @@ -51,7 +51,6 @@ new /obj/item/storage/backpack/satchel/leather/withwallet( src ) new /obj/item/instrument/piano_synth(src) new /obj/item/radio/headset( src ) - new /obj/item/clothing/head/colour(src) /obj/structure/closet/secure_closet/personal/attackby(obj/item/W, mob/user, params) var/obj/item/card/id/I = W.GetID() diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm index 57520f6f40..0c314d988c 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm @@ -6,8 +6,16 @@ max_integrity = 250 armor = list("melee" = 30, "bullet" = 50, "laser" = 50, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80) secure = TRUE + var/melee_min_damage = 20 /obj/structure/closet/secure_closet/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) - if(damage_flag == "melee" && damage_amount < 20) + if(damage_flag == "melee" && damage_amount < melee_min_damage) return 0 - . = ..() \ No newline at end of file + . = ..() + +// Exists to work around the minimum 700 cr price for goodies / small items +/obj/structure/closet/secure_closet/goodies + icon_state = "goodies" + desc = "A sturdier card-locked storage unit used for bulky shipments." + max_integrity = 500 // Same as crates. + melee_min_damage = 25 // Idem. diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index e5c50af782..ad7680f2f9 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -76,12 +76,13 @@ new /obj/item/storage/box/flashbangs(src) new /obj/item/shield/riot/tele(src) new /obj/item/storage/belt/security/full(src) - new /obj/item/gun/energy/e_gun/hos(src) + new /obj/item/choice_beacon/hosgun(src) new /obj/item/flashlight/seclite(src) new /obj/item/pinpointer/nuke(src) new /obj/item/circuitboard/machine/techfab/department/security(src) new /obj/item/storage/photo_album/HoS(src) new /obj/item/clothing/suit/hooded/wintercoat/hos(src) + /obj/structure/closet/secure_closet/warden name = "\proper warden's locker" req_access = list(ACCESS_ARMORY) @@ -272,8 +273,8 @@ icon_state = "tac" /obj/structure/closet/secure_closet/lethalshots/PopulateContents() ..() - new /obj/item/twohanded/electrostaff(src) - new /obj/item/twohanded/electrostaff(src) + new /obj/item/electrostaff(src) + new /obj/item/electrostaff(src) for(var/i in 1 to 3) new /obj/item/storage/box/lethalshot(src) diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm index 9b736517be..3bc84deb4d 100644 --- a/code/game/objects/structures/extinguisher.dm +++ b/code/game/objects/structures/extinguisher.dm @@ -3,6 +3,7 @@ desc = "A small wall mounted cabinet designed to hold a fire extinguisher." icon = 'icons/obj/wallmounts.dmi' icon_state = "extinguisher_closed" + plane = ABOVE_WALL_PLANE anchored = TRUE density = FALSE max_integrity = 200 diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index e44698f96e..679a755321 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -7,6 +7,7 @@ anchored = TRUE icon = 'icons/turf/walls/wall.dmi' icon_state = "wall" + plane = WALL_PLANE layer = LOW_OBJ_LAYER density = TRUE opacity = 1 diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm index 0f3a23dd0f..bcf1016c1e 100644 --- a/code/game/objects/structures/fireaxe.dm +++ b/code/game/objects/structures/fireaxe.dm @@ -3,6 +3,7 @@ desc = "There is a small label that reads \"For Emergency use only\" along with details for safe use of the axe. As if." icon = 'icons/obj/wallmounts.dmi' icon_state = "fireaxe" + plane = ABOVE_WALL_PLANE anchored = TRUE density = FALSE armor = list("melee" = 50, "bullet" = 20, "laser" = 0, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 50) @@ -10,7 +11,7 @@ integrity_failure = 0.33 var/locked = TRUE var/open = FALSE - var/obj/item/twohanded/fireaxe/fireaxe + var/obj/item/fireaxe/fireaxe /obj/structure/fireaxecabinet/Initialize() . = ..() @@ -49,8 +50,8 @@ obj_integrity = max_integrity update_icon() else if(open || broken) - if(istype(I, /obj/item/twohanded/fireaxe) && !fireaxe) - var/obj/item/twohanded/fireaxe/F = I + if(istype(I, /obj/item/fireaxe) && !fireaxe) + var/obj/item/fireaxe/F = I if(F.wielded) to_chat(user, "Unwield the [F.name] first.") return diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index c0ee7bb987..ce78b92f38 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -288,7 +288,7 @@ icon_state = "fullgrass_[rand(1, 3)]" . = ..() -/obj/item/twohanded/required/kirbyplants +/obj/item/kirbyplants name = "potted plant" icon = 'icons/obj/flora/plants.dmi' icon_state = "plant-01" @@ -300,23 +300,25 @@ throw_speed = 2 throw_range = 4 -/obj/item/twohanded/required/kirbyplants/Initialize() +/obj/item/kirbyplants/ComponentInitialize() . = ..() - AddComponent(/datum/component/tactical) + AddElement(/datum/element/tactical) + addtimer(CALLBACK(src, /datum.proc/_AddElement, list(/datum/element/beauty, 500)), 0) + AddComponent(/datum/component/two_handed, require_twohands=TRUE, force_unwielded=10, force_wielded=10) -/obj/item/twohanded/required/kirbyplants/random +/obj/item/kirbyplants/random icon = 'icons/obj/flora/_flora.dmi' icon_state = "random_plant" var/list/static/states -/obj/item/twohanded/required/kirbyplants/random/Initialize() +/obj/item/kirbyplants/random/Initialize() . = ..() icon = 'icons/obj/flora/plants.dmi' if(!states) generate_states() icon_state = pick(states) -/obj/item/twohanded/required/kirbyplants/random/proc/generate_states() +/obj/item/kirbyplants/random/proc/generate_states() states = list() for(var/i in 1 to 25) var/number @@ -328,12 +330,12 @@ states += "applebush" -/obj/item/twohanded/required/kirbyplants/dead +/obj/item/kirbyplants/dead name = "RD's potted plant" desc = "A gift from the botanical staff, presented after the RD's reassignment. There's a tag on it that says \"Y'all come back now, y'hear?\"\nIt doesn't look very healthy..." icon_state = "plant-25" -/obj/item/twohanded/required/kirbyplants/photosynthetic +/obj/item/kirbyplants/photosynthetic name = "photosynthetic potted plant" desc = "A bioluminescent plant." icon_state = "plant-09" diff --git a/code/game/objects/structures/fugitive_role_spawners.dm b/code/game/objects/structures/fugitive_role_spawners.dm new file mode 100644 index 0000000000..afdff7afec --- /dev/null +++ b/code/game/objects/structures/fugitive_role_spawners.dm @@ -0,0 +1,66 @@ + + +/obj/effect/mob_spawn/human/fugitive + assignedrole = "Fugitive Hunter" + flavour_text = "" //the flavor text will be the backstory argument called on the antagonist's greet, see hunter.dm for details + roundstart = FALSE + death = FALSE + random = TRUE + show_flavour = FALSE + density = TRUE + var/back_story = "error" + +/obj/effect/mob_spawn/human/fugitive/Initialize(mapload) + . = ..() + notify_ghosts("Hunters are waking up looking for refugees!", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_key = POLL_IGNORE_FUGITIVE) + +/obj/effect/mob_spawn/human/fugitive/special(mob/living/new_spawn) + var/datum/antagonist/fugitive_hunter/fughunter = new + fughunter.backstory = back_story + new_spawn.mind.add_antag_datum(fughunter) + fughunter.greet() + message_admins("[ADMIN_LOOKUPFLW(new_spawn)] has been made into a Fugitive Hunter by an event.") + log_game("[key_name(new_spawn)] was spawned as a Fugitive Hunter by an event.") + +/obj/effect/mob_spawn/human/fugitive/spacepol + name = "police pod" + desc = "A small sleeper typically used to put people to sleep for briefing on the mission." + mob_name = "a spacepol officer" + flavour_text = "Justice has arrived. I am a member of the Spacepol!" + back_story = "space cop" + outfit = /datum/outfit/spacepol + icon = 'icons/obj/machines/sleeper.dmi' + icon_state = "sleeper" + +/obj/effect/mob_spawn/human/fugitive/russian + name = "russian pod" + flavour_text = "Ay blyat. I am a space-russian smuggler! We were mid-flight when our cargo was beamed off our ship!" + back_story = "russian" + desc = "A small sleeper typically used to make long distance travel a bit more bearable." + mob_name = "russian" + outfit = /datum/outfit/russiancorpse/hunter + icon = 'icons/obj/machines/sleeper.dmi' + icon_state = "sleeper" + +/obj/effect/mob_spawn/human/fugitive/bounty + name = "bounty hunter pod" + flavour_text = "We got a new bounty on some fugitives, dead or alive." + back_story = "bounty hunters" + desc = "A small sleeper typically used to make long distance travel a bit more bearable." + mob_name = "bounty hunter" + icon = 'icons/obj/machines/sleeper.dmi' + icon_state = "sleeper" + +/obj/effect/mob_spawn/human/fugitive/bounty/Destroy() + var/obj/structure/fluff/empty_sleeper/S = new(drop_location()) + S.setDir(dir) + return ..() + +/obj/effect/mob_spawn/human/fugitive/bounty/armor + outfit = /datum/outfit/bountyarmor + +/obj/effect/mob_spawn/human/fugitive/bounty/hook + outfit = /datum/outfit/bountyhook + +/obj/effect/mob_spawn/human/fugitive/bounty/synth + outfit = /datum/outfit/bountysynth diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index 86aff44e02..4455c8820d 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -581,7 +581,7 @@ uniform = /obj/item/clothing/under/rank/rnd/scientist shoes = /obj/item/clothing/shoes/laceup id = /obj/item/card/id/away/old/sci - l_pocket = /obj/item/stack/medical/bruise_pack + l_pocket = /obj/item/stack/medical/suture assignedrole = "Ancient Crew" job_description = "Oldstation Crew" @@ -694,15 +694,12 @@ ..() var/suited = !preference_source || preference_source.prefs.jumpsuit_style == PREF_SUIT if (CONFIG_GET(flag/grey_assistants)) - if(suited) - uniform = /obj/item/clothing/under/color/grey - else - uniform = /obj/item/clothing/under/color/jumpskirt/grey + uniform = suited ? /obj/item/clothing/under/color/grey : /obj/item/clothing/under/color/jumpskirt/grey else - if(suited) - uniform = /obj/item/clothing/under/color/random + if(SSevents.holidays && SSevents.holidays[PRIDE_MONTH]) + uniform = suited ? /obj/item/clothing/under/color/rainbow : /obj/item/clothing/under/color/jumpskirt/rainbow else - uniform = /obj/item/clothing/under/color/jumpskirt/random + uniform = suited ? /obj/item/clothing/under/color/random : /obj/item/clothing/under/color/jumpskirt/random /obj/item/storage/box/syndie_kit/chameleon/ghostcafe name = "ghost cafe costuming kit" diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index fd62ffd368..ff62b9cc48 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -6,6 +6,7 @@ density = TRUE var/state = GIRDER_NORMAL var/girderpasschance = 20 // percentage chance that a projectile passes through the girder. + var/next_beep = 0 //Prevents spamming of the construction sound var/can_displace = TRUE //If the girder can be moved around by wrenching it max_integrity = 200 rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE @@ -27,11 +28,17 @@ . += "[src] is disassembled! You probably shouldn't be able to see this examine message." /obj/structure/girder/attackby(obj/item/W, mob/user, params) + var/platingmodifier = 1 + if(HAS_TRAIT(user, TRAIT_QUICK_BUILD)) + platingmodifier = 0.7 + if(next_beep <= world.time) + next_beep = world.time + 10 + playsound(src, 'sound/machines/clockcult/integration_cog_install.ogg', 50, TRUE) add_fingerprint(user) if(istype(W, /obj/item/gun/energy/plasmacutter)) to_chat(user, "You start slicing apart the girder...") - if(W.use_tool(src, user, 40, volume=100)) + if(W.use_tool(src, user, 40*platingmodifier, volume=100)) to_chat(user, "You slice apart the girder.") var/obj/item/stack/sheet/metal/M = new (loc, 2) M.add_fingerprint(user) @@ -62,7 +69,7 @@ to_chat(user, "You need at least two rods to create a false wall!") return to_chat(user, "You start building a reinforced false wall...") - if(do_after(user, 20, target = src)) + if(do_after(user, 20*platingmodifier, target = src)) if(S.get_amount() < 2) return S.use(2) @@ -75,7 +82,7 @@ to_chat(user, "You need at least five rods to add plating!") return to_chat(user, "You start adding plating...") - if(do_after(user, 40, target = src)) + if(do_after(user, 40*platingmodifier, target = src)) if(S.get_amount() < 5) return S.use(5) @@ -96,7 +103,7 @@ to_chat(user, "You need two sheets of metal to create a false wall!") return to_chat(user, "You start building a false wall...") - if(do_after(user, 20, target = src)) + if(do_after(user, 20*platingmodifier, target = src)) if(S.get_amount() < 2) return S.use(2) @@ -109,7 +116,7 @@ to_chat(user, "You need two sheets of metal to finish a wall!") return to_chat(user, "You start adding plating...") - if (do_after(user, 40, target = src)) + if (do_after(user, 40*platingmodifier, target = src)) if(S.get_amount() < 2) return S.use(2) @@ -126,7 +133,7 @@ to_chat(user, "You need at least two sheets to create a false wall!") return to_chat(user, "You start building a reinforced false wall...") - if(do_after(user, 20, target = src)) + if(do_after(user, 20*platingmodifier, target = src)) if(S.get_amount() < 2) return S.use(2) @@ -139,7 +146,7 @@ if(S.get_amount() < 1) return to_chat(user, "You start finalizing the reinforced wall...") - if(do_after(user, 50, target = src)) + if(do_after(user, 50*platingmodifier, target = src)) if(S.get_amount() < 1) return S.use(1) @@ -153,7 +160,7 @@ if(S.get_amount() < 1) return to_chat(user, "You start reinforcing the girder...") - if(do_after(user, 60, target = src)) + if(do_after(user, 60*platingmodifier, target = src)) if(S.get_amount() < 1) return S.use(1) @@ -163,7 +170,7 @@ qdel(src) return - if(S.sheettype && S.sheettype != "runed") + if(S.sheettype != "runed") var/M = S.sheettype if(state == GIRDER_DISPLACED) var/F = text2path("/obj/structure/falsewall/[M]") @@ -172,7 +179,7 @@ if(S.get_amount() < 2) to_chat(user, "You need at least two sheets to create a false wall!") return - if(do_after(user, 20, target = src)) + if(do_after(user, 20*platingmodifier, target = src)) if(S.get_amount() < 2) return S.use(2) @@ -181,20 +188,26 @@ transfer_fingerprints_to(FW) qdel(src) else - var/F = text2path("/turf/closed/wall/mineral/[M]") + var/list/material_list + var/F = S.walltype if(!F) - return + F = /turf/closed/wall/material + if(S.material_type) + material_list = list() + material_list[SSmaterials.GetMaterialRef(S.material_type)] = MINERAL_MATERIAL_AMOUNT * 2 if(S.get_amount() < 2) to_chat(user, "You need at least two sheets to add plating!") return to_chat(user, "You start adding plating...") - if (do_after(user, 40, target = src)) + if (do_after(user, 40*platingmodifier, target = src)) if(S.get_amount() < 2) return S.use(2) to_chat(user, "You add the plating.") var/turf/T = get_turf(src) - T.PlaceOnTop(F) + var/turf/newturf = T.PlaceOnTop(F) + if(material_list) + newturf.set_custom_materials(material_list) transfer_fingerprints_to(T) qdel(src) return diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 54e08db210..20151a0bdb 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -267,7 +267,7 @@ var/obj/structure/cable/C = T.get_cable_node() if(C) playsound(src, 'sound/magic/lightningshock.ogg', 100, 1, extrarange = 5) - tesla_zap(src, 3, C.newavail() * 0.01, TESLA_MOB_DAMAGE | TESLA_OBJ_DAMAGE | TESLA_MOB_STUN | TESLA_ALLOW_DUPLICATES) //Zap for 1/100 of the amount of power. At a million watts in the grid, it will be as powerful as a tesla revolver shot. + tesla_zap(src, 3, C.newavail() * 0.01, ZAP_MOB_DAMAGE | ZAP_OBJ_DAMAGE | ZAP_MOB_STUN | ZAP_ALLOW_DUPLICATES) //Zap for 1/100 of the amount of power. At a million watts in the grid, it will be as powerful as a tesla revolver shot. C.add_delayedload(C.newavail() * 0.0375) // you can gain up to 3.5 via the 4x upgrades power is halved by the pole so thats 2x then 1X then .5X for 3.5x the 3 bounces shock. return ..() diff --git a/code/game/objects/structures/guillotine.dm b/code/game/objects/structures/guillotine.dm index 611a6d024d..0a5ba6a68c 100644 --- a/code/game/objects/structures/guillotine.dm +++ b/code/game/objects/structures/guillotine.dm @@ -130,7 +130,7 @@ // The crowd is pleased // The delay is to making large crowds have a longer laster applause var/delay_offset = 0 - for(var/mob/M in viewers(src, 7)) + for(var/mob/M in fov_viewers(world.view, src)) var/mob/living/carbon/human/C = M if (ishuman(M)) addtimer(CALLBACK(C, /mob/.proc/emote, "clap"), delay_offset * 0.3) diff --git a/code/game/objects/structures/headpike.dm b/code/game/objects/structures/headpike.dm index 581ce850de..65d930e08b 100644 --- a/code/game/objects/structures/headpike.dm +++ b/code/game/objects/structures/headpike.dm @@ -6,7 +6,7 @@ density = FALSE anchored = TRUE var/bonespear = FALSE - var/obj/item/twohanded/spear/spear + var/obj/item/spear/spear var/obj/item/bodypart/head/victim /obj/structure/headpike/bone //for bone spears @@ -20,9 +20,9 @@ name = "[victim.name] on a spear" update_icon() if(bonespear) - spear = locate(/obj/item/twohanded/bonespear) in parts_list + spear = locate(/obj/item/spear/bonespear) in parts_list else - spear = locate(/obj/item/twohanded/spear) in parts_list + spear = locate(/obj/item/spear) in parts_list /obj/structure/headpike/Initialize() . = ..() diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 38133d9089..dc4a741b8b 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -8,7 +8,7 @@ //copypaste sorry var/obj/item/storage/bag/trash/mybag var/obj/item/mop/mymop - var/obj/item/twohanded/broom/mybroom + var/obj/item/broom/mybroom var/obj/item/reagent_containers/spray/cleaner/myspray var/obj/item/lightreplacer/myreplacer var/signs = 0 @@ -48,9 +48,9 @@ m.janicart_insert(user, src) else to_chat(user, fail_msg) - else if(istype(I, /obj/item/twohanded/broom)) + else if(istype(I, /obj/item/broom)) if(!mybroom) - var/obj/item/twohanded/broom/b=I + var/obj/item/broom/b=I b.janicart_insert(user,src) else to_chat(user, fail_msg) diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index c41d6d32af..6e497cff60 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -149,3 +149,30 @@ pixel_x = 0 pixel_y = 0 return TRUE + +/obj/structure/lattice/lava + name = "heatproof support lattice" + desc = "A specialized support beam for building across lava. Watch your step." + icon = 'icons/obj/smooth_structures/catwalk.dmi' + icon_state = "catwalk" + number_of_rods = 1 + color = "#5286b9ff" + smooth = SMOOTH_TRUE + canSmoothWith = null + obj_flags = CAN_BE_HIT | BLOCK_Z_FALL + resistance_flags = FIRE_PROOF | LAVA_PROOF + +/obj/structure/lattice/lava/deconstruction_hints(mob/user) + return "The rods look like they could be cut, but the heat treatment will shatter off. There's space for a tile." + +/obj/structure/lattice/lava/attackby(obj/item/C, mob/user, params) + . = ..() + if(istype(C, /obj/item/stack/tile/plasteel)) + var/obj/item/stack/tile/plasteel/P = C + if(P.use(1)) + to_chat(user, "You construct a floor plating, as lava settles around the rods.") + playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE) + new /turf/open/floor/plating(locate(x, y, z)) + else + to_chat(user, "You need one floor tile to build atop [src].") + return diff --git a/code/game/objects/structures/loom.dm b/code/game/objects/structures/loom.dm index ad128b01c2..164e597117 100644 --- a/code/game/objects/structures/loom.dm +++ b/code/game/objects/structures/loom.dm @@ -21,21 +21,21 @@ return TRUE ///Handles the weaving. -/obj/structure/loom/proc/weave(obj/item/stack/sheet/S, mob/user) - if(!istype(S) || !S.is_fabric) +/obj/structure/loom/proc/weave(obj/item/stack/sheet/cotton/W, mob/user) + if(!istype(W)) return FALSE if(!anchored) user.show_message("The loom needs to be wrenched down.", MSG_VISUAL) return FALSE - if(S.amount < FABRIC_PER_SHEET) - user.show_message("You need at least [FABRIC_PER_SHEET] units of fabric before using this.", 1) + if(W.amount < FABRIC_PER_SHEET) + user.show_message("You need at least [FABRIC_PER_SHEET] units of fabric before using this.", MSG_VISUAL) return FALSE - user.show_message("You start weaving \the [S.name] through the loom..", MSG_VISUAL) - if(S.use_tool(src, user, S.pull_effort)) - if(S.amount >= FABRIC_PER_SHEET) - new S.loom_result(drop_location()) - S.use(FABRIC_PER_SHEET) - user.show_message("You weave \the [S.name] into a workable fabric.", MSG_VISUAL) + user.show_message("You start weaving \the [W.name] through the loom..", MSG_VISUAL) + if(W.use_tool(src, user, W.pull_effort)) + if(W.amount >= FABRIC_PER_SHEET) + new W.loom_result(drop_location()) + W.use(FABRIC_PER_SHEET) + user.show_message("You weave \the [W.name] into a workable fabric.", MSG_VISUAL) return TRUE #undef FABRIC_PER_SHEET \ No newline at end of file diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index e32def727a..65e1b7dd9a 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -4,6 +4,7 @@ desc = "Mirror mirror on the wall, who's the most robust of them all?" icon = 'icons/obj/watercloset.dmi' icon_state = "mirror" + plane = ABOVE_WALL_PLANE density = FALSE anchored = TRUE max_integrity = 200 diff --git a/code/game/objects/structures/noticeboard.dm b/code/game/objects/structures/noticeboard.dm index f4bca1f900..68da53aa6c 100644 --- a/code/game/objects/structures/noticeboard.dm +++ b/code/game/objects/structures/noticeboard.dm @@ -3,6 +3,7 @@ desc = "A board for pinning important notices upon." icon = 'icons/obj/stationobjs.dmi' icon_state = "nboard00" + plane = ABOVE_WALL_PLANE density = FALSE anchored = TRUE max_integrity = 150 diff --git a/code/game/objects/structures/petrified_statue.dm b/code/game/objects/structures/petrified_statue.dm index a8a5a577c2..97eadff5f6 100644 --- a/code/game/objects/structures/petrified_statue.dm +++ b/code/game/objects/structures/petrified_statue.dm @@ -4,11 +4,13 @@ icon_state = "human_male" density = TRUE anchored = TRUE + flags_1 = PREVENT_CONTENTS_EXPLOSION_1 max_integrity = 200 - var/timer = 240 //eventually the person will be freed + var/timer = 8 MINUTES //eventually the person will be freed var/mob/living/petrified_mob -/obj/structure/statue/petrified/New(loc, mob/living/L, statue_timer) +/obj/structure/statue/petrified/Initialize(mapload, mob/living/L, statue_timer) + . = ..() if(statue_timer) timer = statue_timer if(L) @@ -17,25 +19,18 @@ L.buckled.unbuckle_mob(L,force=1) L.visible_message("[L]'s skin rapidly turns to marble!", "Your body freezes up! Can't... move... can't... think...") L.forceMove(src) - ADD_TRAIT(L, TRAIT_MUTE, STATUE_MUTE) + ADD_TRAIT(L, TRAIT_MUTE, STATUE_TRAIT) + ADD_TRAIT(L, TRAIT_EMOTEMUTE, STATUE_TRAIT) + ADD_TRAIT(L, TRAIT_LOOC_MUTE, STATUE_TRAIT) + ADD_TRAIT(L, TRAIT_AOOC_MUTE, STATUE_TRAIT) + ADD_TRAIT(L, TRAIT_MOBILITY_NOMOVE, STATUE_TRAIT) + ADD_TRAIT(L, TRAIT_MOBILITY_NOPICKUP, STATUE_TRAIT) + ADD_TRAIT(L, TRAIT_MOBILITY_NOUSE, STATUE_TRAIT) L.faction += "mimic" //Stops mimics from instaqdeling people in statues L.status_flags |= GODMODE obj_integrity = L.health + 100 //stoning damaged mobs will result in easier to shatter statues max_integrity = obj_integrity - START_PROCESSING(SSobj, src) - ..() - -/obj/structure/statue/petrified/process() - if(!petrified_mob) - STOP_PROCESSING(SSobj, src) - timer-- - petrified_mob.Stun(40) //So they can't do anything while petrified - if(timer <= 0) - STOP_PROCESSING(SSobj, src) - qdel(src) - -/obj/structure/statue/petrified/contents_explosion(severity, target) - return + QDEL_IN(src, timer) /obj/structure/statue/petrified/handle_atom_del(atom/A) if(A == petrified_mob) @@ -59,7 +54,13 @@ if(petrified_mob) petrified_mob.status_flags &= ~GODMODE petrified_mob.forceMove(loc) - REMOVE_TRAIT(petrified_mob, TRAIT_MUTE, STATUE_MUTE) + REMOVE_TRAIT(petrified_mob, TRAIT_MUTE, STATUE_TRAIT) + REMOVE_TRAIT(petrified_mob, TRAIT_EMOTEMUTE, STATUE_TRAIT) + REMOVE_TRAIT(petrified_mob, TRAIT_LOOC_MUTE, STATUE_TRAIT) + REMOVE_TRAIT(petrified_mob, TRAIT_AOOC_MUTE, STATUE_TRAIT) + REMOVE_TRAIT(petrified_mob, TRAIT_MOBILITY_NOMOVE, STATUE_TRAIT) + REMOVE_TRAIT(petrified_mob, TRAIT_MOBILITY_NOPICKUP, STATUE_TRAIT) + REMOVE_TRAIT(petrified_mob, TRAIT_MOBILITY_NOUSE, STATUE_TRAIT) petrified_mob.take_overall_damage((petrified_mob.health - obj_integrity + 100)) //any new damage the statue incurred is transfered to the mob petrified_mob.faction -= "mimic" petrified_mob = null diff --git a/code/game/objects/structures/signs/_signs.dm b/code/game/objects/structures/signs/_signs.dm index 84add2f65f..aa31fe9542 100644 --- a/code/game/objects/structures/signs/_signs.dm +++ b/code/game/objects/structures/signs/_signs.dm @@ -3,6 +3,7 @@ anchored = TRUE opacity = 0 density = FALSE + plane = ABOVE_WALL_PLANE layer = SIGN_LAYER max_integrity = 100 armor = list("melee" = 50, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) @@ -35,6 +36,7 @@ "You unfasten [src].") var/obj/item/sign_backing/SB = new (get_turf(user)) SB.icon_state = icon_state + SB.set_custom_materials(custom_materials) //This is here so picture frames and wooden things don't get messed up. SB.sign_path = type SB.setDir(dir) qdel(src) diff --git a/code/game/objects/structures/signs/signs_plaques.dm b/code/game/objects/structures/signs/signs_plaques.dm index 78c88cd09d..d1067f1963 100644 --- a/code/game/objects/structures/signs/signs_plaques.dm +++ b/code/game/objects/structures/signs/signs_plaques.dm @@ -46,3 +46,4 @@ name = "Mr. Deempisi portrait" desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'" icon_state = "monkey_painting" + custom_materials = list(/datum/material/wood = 2000) //The same as /obj/structure/sign/picture_frame diff --git a/code/game/objects/structures/signs/signs_warning.dm b/code/game/objects/structures/signs/signs_warning.dm index f735ed7bc9..3138d44e9d 100644 --- a/code/game/objects/structures/signs/signs_warning.dm +++ b/code/game/objects/structures/signs/signs_warning.dm @@ -73,3 +73,8 @@ name = "\improper ENGINEERING SAFETY" desc = "A sign detailing the various safety protocols when working on-site to ensure a safe shift." icon_state = "safety" + +/obj/structure/sign/warning/explosives + name = "\improper HIGH EXPLOSIVES sign" + desc = "A warning sign which reads 'HIGH EXPLOSIVES'." + icon_state = "explosives" diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 9a6b24b472..466912f93e 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -8,12 +8,17 @@ max_integrity = 100 var/oreAmount = 5 var/material_drop_type = /obj/item/stack/sheet/metal + var/impressiveness = 15 CanAtmosPass = ATMOS_PASS_DENSITY +/obj/structure/statue/Initialize() + . = ..() + AddElement(/datum/element/art, impressiveness) + addtimer(CALLBACK(src, /datum.proc/_AddElement, list(/datum/element/beauty, impressiveness * 75)), 0) + /obj/structure/statue/attackby(obj/item/W, mob/living/user, params) add_fingerprint(user) - user.changeNext_move(CLICK_CD_MELEE) if(!(flags_1 & NODECONSTRUCT_1)) if(default_unfasten_wrench(user, W)) return @@ -30,15 +35,6 @@ return return ..() -/obj/structure/statue/attack_hand(mob/living/user) - . = ..() - if(.) - return - user.changeNext_move(CLICK_CD_MELEE) - add_fingerprint(user) - user.visible_message("[user] rubs some dust off from the [name]'s surface.", \ - "You rub some dust off from the [name]'s surface.") - /obj/structure/statue/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) if(material_drop_type) @@ -58,6 +54,7 @@ material_drop_type = /obj/item/stack/sheet/mineral/uranium var/last_event = 0 var/active = null + impressiveness = 25 // radiation makes an impression /obj/structure/statue/uranium/nuke name = "statue of a nuclear fission explosive" @@ -101,6 +98,7 @@ max_integrity = 200 material_drop_type = /obj/item/stack/sheet/mineral/plasma desc = "This statue is suitably made from plasma." + impressiveness = 20 /obj/structure/statue/plasma/scientist name = "statue of a scientist" @@ -151,6 +149,7 @@ max_integrity = 300 material_drop_type = /obj/item/stack/sheet/mineral/gold desc = "This is a highly valuable statue made from gold." + impressiveness = 30 /obj/structure/statue/gold/hos name = "statue of the head of security" @@ -178,6 +177,7 @@ max_integrity = 300 material_drop_type = /obj/item/stack/sheet/mineral/silver desc = "This is a valuable statue made from silver." + impressiveness = 25 /obj/structure/statue/silver/md name = "statue of a medical officer" @@ -205,6 +205,7 @@ max_integrity = 1000 material_drop_type = /obj/item/stack/sheet/mineral/diamond desc = "This is a very expensive diamond statue." + impressiveness = 60 /obj/structure/statue/diamond/captain name = "statue of THE captain." @@ -225,6 +226,7 @@ material_drop_type = /obj/item/stack/sheet/mineral/bananium desc = "A bananium statue with a small engraving:'HOOOOOOONK'." var/spam_flag = 0 + impressiveness = 65 /obj/structure/statue/bananium/clown name = "statue of a clown" diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 30e451aa14..777be608b5 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -134,6 +134,8 @@ if(!ishuman(pushed_mob)) return var/mob/living/carbon/human/H = pushed_mob + if(iscatperson(H)) + H.emote("nya") SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "table", /datum/mood_event/table) /obj/structure/table/shove_act(mob/living/target, mob/living/user) @@ -163,6 +165,9 @@ if(istype(I, /obj/item/storage/bag/tray)) var/obj/item/storage/bag/tray/T = I if(T.contents.len > 0) // If the tray isn't empty + for(var/x in T.contents) + var/obj/item/item = x + AfterPutItemOnTable(item, user) SEND_SIGNAL(I, COMSIG_TRY_STORAGE_QUICK_EMPTY, drop_location()) user.visible_message("[user] empties [I] on [src].") return @@ -177,13 +182,17 @@ //Clamp it so that the icon never moves more than 16 pixels in either direction (thus leaving the table turf) I.pixel_x = clamp(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2) I.pixel_y = clamp(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2) - return 1 + AfterPutItemOnTable(I, user) + return TRUE else return ..() +/obj/structure/table/proc/AfterPutItemOnTable(obj/item/I, mob/living/user) + return + /obj/structure/table/alt_attack_hand(mob/user) if(user && Adjacent(user) && !user.incapacitated()) - user.setClickCooldown(4) + user.changeNext_move(CLICK_CD_MELEE*0.5) if(istype(user) && user.a_intent == INTENT_HARM) user.visible_message("[user] slams [user.p_their()] palms down on [src].", "You slam your palms down on [src].") playsound(src, 'sound/weapons/sonic_jackhammer.ogg', 50, 1) @@ -211,9 +220,40 @@ /obj/structure/table/greyscale icon = 'icons/obj/smooth_structures/table_greyscale.dmi' icon_state = "table" - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS buildstack = null //No buildstack, so generate from mat datums +///Table on wheels +/obj/structure/table/rolling + name = "Rolling table" + desc = "A NT brand \"Rolly poly\" rolling table. It can and will move." + anchored = FALSE + smooth = SMOOTH_FALSE + canSmoothWith = list() + icon = 'icons/obj/smooth_structures/rollingtable.dmi' + icon_state = "rollingtable" + var/list/attached_items = list() + +/obj/structure/table/rolling/AfterPutItemOnTable(obj/item/I, mob/living/user) + . = ..() + attached_items += I + RegisterSignal(I, COMSIG_MOVABLE_MOVED, .proc/RemoveItemFromTable) //Listen for the pickup event, unregister on pick-up so we aren't moved + +/obj/structure/table/rolling/proc/RemoveItemFromTable(datum/source, newloc, dir) + if(newloc != loc) //Did we not move with the table? because that shit's ok + return FALSE + attached_items -= source + UnregisterSignal(source, COMSIG_MOVABLE_MOVED) + +/obj/structure/table/rolling/Moved(atom/OldLoc, Dir) + for(var/mob/M in OldLoc.contents)//Kidnap everyone on top + M.forceMove(loc) + for(var/x in attached_items) + var/atom/movable/AM = x + if(!AM.Move(loc)) + RemoveItemFromTable(AM, AM.loc) + return TRUE + /* * Glass tables */ diff --git a/code/game/objects/structures/traps.dm b/code/game/objects/structures/traps.dm index 8044bb9bb7..4c8379d14f 100644 --- a/code/game/objects/structures/traps.dm +++ b/code/game/objects/structures/traps.dm @@ -80,10 +80,11 @@ name = "shock trap" desc = "A trap that will shock and render you immobile. You'd better avoid it." icon_state = "trap-shock" + var/stun_time = 100 /obj/structure/trap/stun/trap_effect(mob/living/L) L.electrocute_act(30, src, flags = SHOCK_NOGLOVES) // electrocute act does a message. - L.DefaultCombatKnockdown(100) + L.Paralyze(stun_time) /obj/structure/trap/fire name = "flame trap" @@ -151,3 +152,75 @@ new /mob/living/simple_animal/hostile/construct/proteon/hostile(loc) new /mob/living/simple_animal/hostile/construct/proteon/hostile(loc) QDEL_IN(src, 30) + +//fugitive traps +/obj/structure/trap/stun/hunter + name = "bounty trap" + desc = "A trap that only goes off when a fugitive steps on it, announcing the location and stunning the target. You'd better avoid it." + icon = 'icons/obj/objects.dmi' + icon_state = "bounty_trap_on" + stun_time = 200 + var/obj/item/bountytrap/stored_item + var/caught = FALSE + +/obj/structure/trap/stun/hunter/Initialize(mapload) + . = ..() + time_between_triggers = 10 + +/obj/structure/trap/stun/hunter/Crossed(atom/movable/AM) + if(isliving(AM)) + var/mob/living/L = AM + if(!L.mind?.has_antag_datum(/datum/antagonist/fugitive)) + return + caught = TRUE + . = ..() + +/obj/structure/trap/stun/hunter/flare() + ..() + stored_item.forceMove(get_turf(src)) + forceMove(stored_item) + if(caught) + stored_item.announce_fugitive() + caught = FALSE + +/obj/item/bountytrap + name = "bounty trap" + desc = "A trap that only goes off when a fugitive steps on it, announcing the location and stunning the target. It's currently inactive." + icon = 'icons/obj/objects.dmi' + icon_state = "bounty_trap_off" + var/obj/structure/trap/stun/hunter/stored_trap + var/obj/item/radio/radio + var/datum/effect_system/spark_spread/spark_system + +/obj/item/bountytrap/Initialize(mapload) + . = ..() + radio = new(src) + radio.subspace_transmission = TRUE + radio.canhear_range = 0 + radio.recalculateChannels() + spark_system = new + spark_system.set_up(4,1,src) + spark_system.attach(src) + name = "[name] #[rand(1, 999)]" + stored_trap = new(src) + stored_trap.name = name + stored_trap.stored_item = src + +/obj/item/bountytrap/proc/announce_fugitive() + spark_system.start() + playsound(src, 'sound/machines/ding.ogg', 50, TRUE) + radio.talk_into(src, "Fugitive has triggered this trap in the [get_area_name(src)]!", RADIO_CHANNEL_COMMON) + +/obj/item/bountytrap/attack_self(mob/living/user) + var/turf/T = get_turf(src) + if(!user || !user.transferItemToLoc(src, T))//visibly unequips + return + to_chat(user, "You set up [src]. Examine while close to disarm it.") + stored_trap.forceMove(T)//moves trap to ground + forceMove(stored_trap)//moves item into trap + +/obj/item/bountytrap/Destroy() + qdel(stored_trap) + QDEL_NULL(radio) + QDEL_NULL(spark_system) + . = ..() diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 95edd15951..acb88fbb1d 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -11,12 +11,21 @@ var/cistern = 0 //if the cistern bit is open var/w_items = 0 //the combined w_class of all the items in the cistern var/mob/living/swirlie = null //the mob being given a swirlie + var/buildstacktype = /obj/item/stack/sheet/metal //they're metal now, shut up + var/buildstackamount = 1 /obj/structure/toilet/Initialize() . = ..() open = round(rand(0, 1)) update_icon() +/obj/structure/toilet/Destroy() + if(loc) + for(var/A in contents) + var/atom/movable/AM = A + AM.forceMove(loc) + return ..() + /obj/structure/toilet/attack_hand(mob/living/user) . = ..() if(.) @@ -72,7 +81,18 @@ /obj/structure/toilet/update_icon_state() icon_state = "toilet[open][cistern]" +/obj/structure/toilet/deconstruct() + if(!(flags_1 & NODECONSTRUCT_1)) + if(buildstacktype) + new buildstacktype(loc,buildstackamount) + else + for(var/i in custom_materials) + var/datum/material/M = i + new M.sheet_type(loc, FLOOR(custom_materials[M] / MINERAL_MATERIAL_AMOUNT, 1)) + ..() + /obj/structure/toilet/attackby(obj/item/I, mob/living/user, params) + add_fingerprint(user) if(istype(I, /obj/item/crowbar)) to_chat(user, "You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]...") playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 50, 1) @@ -80,7 +100,9 @@ user.visible_message("[user] [cistern ? "replaces the lid on the cistern" : "lifts the lid off the cistern"]!", "You [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]!", "You hear grinding porcelain.") cistern = !cistern update_icon() - + else if(I.tool_behaviour == TOOL_WRENCH && !(flags_1&NODECONSTRUCT_1)) + I.play_tool_sound(src) + deconstruct() else if(cistern) if(user.a_intent != INTENT_HARM) if(I.w_class > WEIGHT_CLASS_NORMAL) @@ -95,6 +117,10 @@ w_items += I.w_class to_chat(user, "You carefully place [I] into the cistern.") + if(istype(I, /obj/item/reagent_containers/food/snacks/cube)) + var/obj/item/reagent_containers/food/snacks/cube/cube = I + cube.Expand() + return else if(istype(I, /obj/item/reagent_containers)) if (!open) return @@ -130,6 +156,10 @@ /obj/structure/toilet/secret/prison secret_type = /obj/effect/spawner/lootdrop/prison_loot_toilet +/obj/structure/toilet/greyscale + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR + buildstacktype = null + /obj/structure/urinal name = "urinal" desc = "The HU-452, an experimental urinal. Comes complete with experimental urinal cake." @@ -459,6 +489,8 @@ anchored = TRUE var/busy = FALSE //Something's being washed at the moment var/dispensedreagent = /datum/reagent/water // for whenever plumbing happens + var/buildstacktype = /obj/item/stack/sheet/metal + var/buildstackamount = 1 /obj/structure/sink/attack_hand(mob/living/user) . = ..() @@ -520,7 +552,7 @@ if(istype(O, /obj/item/melee/baton)) var/obj/item/melee/baton/B = O if(B.cell) - if(B.cell.charge > 0 && B.status == 1) + if(B.cell.charge > 0 && B.turned_on) flick("baton_active", src) var/stunforce = B.stamforce user.DefaultCombatKnockdown(stunforce * 2) @@ -537,6 +569,11 @@ playsound(loc, 'sound/effects/slosh.ogg', 25, 1) return + if(O.tool_behaviour == TOOL_WRENCH && !(flags_1&NODECONSTRUCT_1)) + O.play_tool_sound(src) + deconstruct() + return + if(istype(O, /obj/item/stack/medical/gauze)) var/obj/item/stack/medical/gauze/G = O new /obj/item/reagent_containers/rag(src.loc) @@ -544,6 +581,12 @@ G.use(1) return + if(istype(O, /obj/item/stack/ore/glass)) + new /obj/item/stack/sheet/sandblock(loc) + to_chat(user, "You wet the sand in the sink and form it into a block.") + O.use(1) + return + if(!istype(O)) return if(O.item_flags & ABSTRACT) //Abstract items like grabs won't wash. No-drop items will though because it's still technically an item in your hand. @@ -568,9 +611,18 @@ else return ..() -/obj/structure/sink/deconstruct(disassembled = TRUE) - new /obj/item/stack/sheet/metal (loc, 3) - qdel(src) +/obj/structure/sink/deconstruct() + if(!(flags_1 & NODECONSTRUCT_1)) + drop_materials() + ..() + +/obj/structure/sink/proc/drop_materials() + if(buildstacktype) + new buildstacktype(loc,buildstackamount) + else + for(var/i in custom_materials) + var/datum/material/M = i + new M.sheet_type(loc, FLOOR(custom_materials[M] / MINERAL_MATERIAL_AMOUNT, 1)) /obj/structure/sink/kitchen name = "kitchen sink" @@ -626,7 +678,7 @@ if(steps == 4 && istype(S, /obj/item/stack/sheet/mineral/wood)) if(S.use(3)) steps = 5 - desc = "A dug out well, A dug out well with out rope. Just add some cloth!" + desc = "A dug out well, A dug out well without rope. Just add some cloth!" icon_state = "well_4" return TRUE else @@ -669,6 +721,11 @@ /obj/structure/sink/puddle/deconstruct(disassembled = TRUE) qdel(src) +/obj/structure/sink/greyscale + icon_state = "sink_greyscale" + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR + buildstacktype = null + //Shower Curtains// //Defines used are pre-existing in layers.dm// diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index e4d93ea8de..17031a51df 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -1,7 +1,3 @@ -#define NOT_ELECTROCHROMATIC 0 -#define ELECTROCHROMATIC_OFF 1 -#define ELECTROCHROMATIC_DIMMED 2 - GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) /proc/do_electrochromatic_toggle(new_status, id) @@ -42,6 +38,8 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) var/hitsound = 'sound/effects/Glasshit.ogg' rad_insulation = RAD_VERY_LIGHT_INSULATION rad_flags = RAD_PROTECT_CONTENTS + flags_ricochet = RICOCHET_HARD + ricochet_chance_mod = 0.4 /// Electrochromatic status var/electrochromatic_status = NOT_ELECTROCHROMATIC @@ -74,9 +72,8 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) if(reinf && anchored) state = WINDOW_SCREWED_TO_FRAME - if(mapload && electrochromatic_id) - if(copytext(electrochromatic_id, 1, 2) == "!") - electrochromatic_id = SSmapping.get_obfuscated_id(electrochromatic_id) + if(mapload && electrochromatic_id && electrochromatic_id[1] == "!") + electrochromatic_id = SSmapping.get_obfuscated_id(electrochromatic_id) ini_dir = dir air_update_turf(1) @@ -274,29 +271,27 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) air_update_turf(TRUE) update_nearby_icons() -/obj/structure/window/proc/spraycan_paint(paint_color) - if(color_hex2num(paint_color) < 255) - set_opacity(255) - else - set_opacity(initial(opacity)) - add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY) - /obj/structure/window/proc/electrochromatic_dim() if(electrochromatic_status == ELECTROCHROMATIC_DIMMED) return electrochromatic_status = ELECTROCHROMATIC_DIMMED - animate(src, color = "#222222", time = 2) - set_opacity(TRUE) + var/current = color + add_atom_colour("#222222", FIXED_COLOUR_PRIORITY) + var/newcolor = color + if(color != current) + color = current + animate(src, color = newcolor, time = 2) /obj/structure/window/proc/electrochromatic_off() if(electrochromatic_status == ELECTROCHROMATIC_OFF) return electrochromatic_status = ELECTROCHROMATIC_OFF var/current = color - update_atom_colour() + remove_atom_colour(FIXED_COLOUR_PRIORITY, "#222222") var/newcolor = color - color = current - animate(src, color = newcolor, time = 2) + if(color != current) + color = current + animate(src, color = newcolor, time = 2) /obj/structure/window/proc/remove_electrochromatic() electrochromatic_off() @@ -351,11 +346,9 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) GLOB.electrochromatic_window_lookup[electrochromatic_id] |= src /obj/structure/window/update_atom_colour() - if((electrochromatic_status != ELECTROCHROMATIC_OFF) && (electrochromatic_status != ELECTROCHROMATIC_DIMMED)) - return FALSE . = ..() - if(color && (color_hex2num(color) < 255)) - set_opacity(255) + if(electrochromatic_status == ELECTROCHROMATIC_DIMMED || (color && (color_hex2num(color) < 255))) + set_opacity(TRUE) else set_opacity(FALSE) @@ -530,6 +523,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) explosion_block = 1 glass_type = /obj/item/stack/sheet/rglass rad_insulation = RAD_HEAVY_INSULATION + ricochet_chance_mod = 0.8 /obj/structure/window/reinforced/spawner/east dir = EAST @@ -695,6 +689,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) level = 3 glass_type = /obj/item/stack/sheet/titaniumglass glass_amount = 2 + ricochet_chance_mod = 0.9 /obj/structure/window/shuttle/narsie_act() add_atom_colour("#3C3434", FIXED_COLOUR_PRIORITY) @@ -885,7 +880,3 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) return ..() update_icon() - -#undef NOT_ELECTROCHROMATIC -#undef ELECTROCHROMATIC_OFF -#undef ELECTROCHROMATIC_DIMMED diff --git a/code/game/say.dm b/code/game/say.dm index 187994f432..35a1b1d072 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -59,7 +59,7 @@ GLOBAL_LIST_INIT(freqtospan, list( var/endspanpart = "" //Message - var/messagepart = " [lang_treat(speaker, message_language, raw_message, spans, message_mode)]" + var/messagepart = " [say_emphasis(lang_treat(speaker, message_language, raw_message, spans, message_mode))]" var/languageicon = "" var/datum/language/D = GLOB.language_datum_instances[message_language] @@ -96,6 +96,18 @@ GLOBAL_LIST_INIT(freqtospan, list( return "[say_mod(input, message_mode)][spanned ? ", \"[spanned]\"" : ""]" // Citadel edit [spanned ? ", \"[spanned]\"" : ""]" +#define ENCODE_HTML_EPHASIS(input, char, html, varname) \ + var/static/regex/##varname = regex("[char]{2}(.+?)[char]{2}", "g");\ + input = varname.Replace_char(input, "<[html]>$1") + +/atom/movable/proc/say_emphasis(input) + ENCODE_HTML_EPHASIS(input, "\\|", "i", italics) + ENCODE_HTML_EPHASIS(input, "\\+", "b", bold) + ENCODE_HTML_EPHASIS(input, "_", "u", underline) + return input + +#undef ENCODE_HTML_EPHASIS + /// Quirky citadel proc for our custom sayverbs to strip the verb out. Snowflakey as hell, say rewrite 3.0 when? /atom/movable/proc/quoteless_say_quote(input, list/spans = list(speech_span), message_mode) var/pos = findtext(input, "*") diff --git a/code/game/turfs/change_turf.dm b/code/game/turfs/change_turf.dm index 3f1a681246..66e7ebd424 100644 --- a/code/game/turfs/change_turf.dm +++ b/code/game/turfs/change_turf.dm @@ -80,7 +80,10 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( var/old_dynamic_lighting = dynamic_lighting var/old_affecting_lights = affecting_lights var/old_lighting_object = lighting_object - var/old_corners = corners + var/old_lc_topright = lc_topright + var/old_lc_topleft = lc_topleft + var/old_lc_bottomright = lc_bottomright + var/old_lc_bottomleft = lc_bottomleft var/old_exl = explosion_level var/old_exi = explosion_id @@ -119,7 +122,10 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( recalc_atom_opacity() lighting_object = old_lighting_object affecting_lights = old_affecting_lights - corners = old_corners + lc_topright = old_lc_topright + lc_topleft = old_lc_topleft + lc_bottomright = old_lc_bottomright + lc_bottomleft = old_lc_bottomleft if (old_opacity != opacity || dynamic_lighting != old_dynamic_lighting) reconsider_lights() diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm index 0c2fd98aba..65b487bd05 100644 --- a/code/game/turfs/closed.dm +++ b/code/game/turfs/closed.dm @@ -1,5 +1,6 @@ /turf/closed layer = CLOSED_TURF_LAYER + plane = WALL_PLANE opacity = 1 density = TRUE blocks_air = 1 @@ -91,6 +92,11 @@ smooth = SMOOTH_TRUE explosion_block = INFINITY +/turf/closed/indestructible/syndicate + icon = 'icons/turf/walls/plastitanium_wall.dmi' + icon_state = "map-shuttle" + smooth = SMOOTH_TRUE + /turf/closed/indestructible/riveted/uranium icon = 'icons/turf/walls/uranium_wall.dmi' icon_state = "uranium" @@ -189,3 +195,16 @@ desc = "A wall made out of a strange metal. The squares on it pulse in a predictable pattern." icon = 'icons/turf/walls/hierophant_wall.dmi' icon_state = "wall" + +/turf/closed/indestructible/rock/glacierrock + name = "unaturally hard ice wall" + desc = "Ice, hardened over thousands of years, you're not breaking through this." + icon = 'icons/turf/walls.dmi' + icon_state = "snow_rock" + +/turf/closed/indestructible/rock/glacierrock/blue + name = "blue ice wall" + desc = "The incredible compressive forces that formed this sturdy ice wall gave it a blue color." + icon = 'icons/turf/walls.dmi' + icon_state = "ice" + canSmoothWith = list(/turf/closed/indestructible/rock/glacierrock/blue) diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 9f5ce679f9..bdca384bd0 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -189,9 +189,12 @@ if(user && !silent) to_chat(user, "You remove the floor tile.") if(floor_tile && make_tile) - new floor_tile(src) + spawn_tile() return make_plating() +/turf/open/floor/proc/spawn_tile() + new floor_tile(src) + /turf/open/floor/singularity_pull(S, current_size) . = ..() switch(current_size) @@ -205,7 +208,7 @@ if(floor_tile) if(prob(70)) remove_tile() - else if(prob(50)) + else if(prob(50) && (/turf/open/space in baseturfs)) ReplaceWithLattice() /turf/open/floor/narsie_act(force, ignore_mobs, probability = 20) @@ -293,3 +296,13 @@ return TRUE return FALSE + +/turf/open/floor/material + name = "floor" + icon_state = "materialfloor" + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + +/turf/open/floor/material/spawn_tile() + for(var/i in custom_materials) + var/datum/material/M = i + new M.sheet_type(src, FLOOR(custom_materials[M] / MINERAL_MATERIAL_AMOUNT, 1)) diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm index c9b429cecc..f940761ff8 100644 --- a/code/game/turfs/simulated/floor/fancy_floor.dm +++ b/code/game/turfs/simulated/floor/fancy_floor.dm @@ -11,6 +11,7 @@ desc = "Stylish dark wood." icon_state = "wood" floor_tile = /obj/item/stack/tile/wood + custom_materials = list(/datum/material/wood = MINERAL_MATERIAL_AMOUNT * 0.25) broken_states = list("wood-broken", "wood-broken2", "wood-broken3", "wood-broken4", "wood-broken5", "wood-broken6", "wood-broken7") footstep = FOOTSTEP_WOOD barefootstep = FOOTSTEP_WOOD_BAREFOOT @@ -156,7 +157,7 @@ planetary_atmos = TRUE floor_tile = null initial_gas_mix = FROZEN_ATMOS - slowdown = 2 + slowdown = 1.5 //So digging it out paths are useful. bullet_sizzle = TRUE footstep = FOOTSTEP_SAND barefootstep = FOOTSTEP_SAND diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index 8e0eace9cd..f26a4b827a 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -76,11 +76,15 @@ var/obj/item/stack/tile/W = C if(!W.use(1)) return - var/turf/open/floor/T = PlaceOnTop(W.turf_type, flags = CHANGETURF_INHERIT_AIR) - if(istype(W, /obj/item/stack/tile/light)) //TODO: get rid of this ugly check somehow - var/obj/item/stack/tile/light/L = W - var/turf/open/floor/light/F = T - F.state = L.state + if(istype(W, /obj/item/stack/tile/material)) + var/turf/newturf = PlaceOnTop(/turf/open/floor/material, flags = CHANGETURF_INHERIT_AIR) + newturf.set_custom_materials(W.custom_materials) + else if(W.turf_type) + var/turf/open/floor/T = PlaceOnTop(W.turf_type, flags = CHANGETURF_INHERIT_AIR) + if(istype(W, /obj/item/stack/tile/light)) //TODO: get rid of this ugly check somehow + var/obj/item/stack/tile/light/L = W + var/turf/open/floor/light/F = T + F.state = L.state playsound(src, 'sound/weapons/genhit.ogg', 50, 1) else to_chat(user, "This section is too damaged to support a tile! Use a welder to fix the damage.") diff --git a/code/game/turfs/simulated/floor/plating/misc_plating.dm b/code/game/turfs/simulated/floor/plating/misc_plating.dm index 23e32ebfe3..5323db001f 100644 --- a/code/game/turfs/simulated/floor/plating/misc_plating.dm +++ b/code/game/turfs/simulated/floor/plating/misc_plating.dm @@ -198,8 +198,7 @@ /turf/open/floor/plating/ice/smooth icon_state = "smooth" smooth = SMOOTH_MORE | SMOOTH_BORDER - canSmoothWith = list(/turf/open/floor/plating/ice/smooth, /turf/open/floor/plating/ice) - /turf/open/floor/plating/ice/colder + canSmoothWith = list(/turf/open/floor/plating/ice/smooth, /turf/open/floor/plating/ice, /turf/open/floor/plating/ice/colder) /turf/open/floor/plating/ice/colder temperature = 140 diff --git a/code/game/turfs/simulated/lava.dm b/code/game/turfs/simulated/lava.dm index dd2b9dfa18..2f223f2c40 100644 --- a/code/game/turfs/simulated/lava.dm +++ b/code/game/turfs/simulated/lava.dm @@ -81,10 +81,25 @@ /turf/open/lava/TakeTemperature(temp) +/turf/open/lava/attackby(obj/item/C, mob/user, params) + ..() + if(istype(C, /obj/item/stack/rods/lava)) + var/obj/item/stack/rods/lava/R = C + var/obj/structure/lattice/lava/H = locate(/obj/structure/lattice/lava, src) + if(H) + to_chat(user, "There is already a lattice here!") + return + if(R.use(1)) + to_chat(user, "You construct a lattice.") + playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE) + new /obj/structure/lattice/lava(locate(x, y, z)) + else + to_chat(user, "You need one rod to build a heatproof lattice.") + return /turf/open/lava/proc/is_safe() //if anything matching this typecache is found in the lava, we don't burn things - var/static/list/lava_safeties_typecache = typecacheof(list(/obj/structure/lattice/catwalk, /obj/structure/stone_tile)) + var/static/list/lava_safeties_typecache = typecacheof(list(/obj/structure/lattice/catwalk, /obj/structure/stone_tile, /obj/structure/lattice/lava)) var/list/found_safeties = typecache_filter_list(contents, lava_safeties_typecache) for(var/obj/structure/stone_tile/S in found_safeties) if(S.fallen) diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm index 7d476d559e..0f1ec6fa85 100644 --- a/code/game/turfs/simulated/minerals.dm +++ b/code/game/turfs/simulated/minerals.dm @@ -803,7 +803,7 @@ stage = GIBTONITE_DETONATE explosion(bombturf,1,2,5, adminlog = 0) if(stage == GIBTONITE_STABLE) //Gibtonite deposit is now benign and extractable. Depending on how close you were to it blowing up before defusing, you get better quality ore. - var/obj/item/twohanded/required/gibtonite/G = new (src) + var/obj/item/gibtonite/G = new (src) if(det_time <= 0) G.quality = 3 G.icon_state = "Gibtonite ore 3" @@ -832,7 +832,7 @@ initial_gas_mix = OPENTURF_DEFAULT_ATMOS defer_change = TRUE - + /turf/closed/mineral/gibtonite/ice environment_type = "snow_cavern" icon_state = "icerock_Gibtonite" @@ -846,3 +846,55 @@ turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon initial_gas_mix = ICEMOON_DEFAULT_ATMOS + +/turf/closed/mineral/strong + name = "Very strong rock" + desc = "Seems to be stronger than the other rocks in the area. Only a master of mining techniques could destroy this." + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = LAVALAND_DEFAULT_ATMOS + defer_change = 1 + smooth_icon = 'icons/turf/walls/rock_wall.dmi' + +/* +/turf/closed/mineral/strong/attackby(obj/item/I, mob/user, params) + if(!ishuman(user)) + to_chat(usr, "Only a more advanced species could break a rock such as this one!") + return FALSE + var/mob/living/carbon/human/H = user + if(H.mind.get_skill_level(/datum/skill/mining) >= SKILL_LEVEL_MASTER) + . = ..() + else + to_chat(usr, "The rock seems to be too strong to destroy. Maybe I can break it once I become a master miner.") +*/ + +/turf/closed/mineral/strong/gets_drilled(mob/user) + if(!ishuman(user)) + return // see attackby + /* + var/mob/living/carbon/human/H = user + if(!(H.mind.get_skill_level(/datum/skill/mining) >= SKILL_LEVEL_MASTER)) + return + */ + drop_ores() +// H.client.give_award(/datum/award/achievement/skill/legendary_miner, H) + var/flags = NONE + if(defer_change) // TODO: make the defer change var a var for any changeturf flag + flags = CHANGETURF_DEFER_CHANGE + ScrapeAway(flags=flags) + addtimer(CALLBACK(src, .proc/AfterChange), 1, TIMER_UNIQUE) + playsound(src, 'sound/effects/break_stone.ogg', 50, TRUE) //beautiful destruction +// H.mind.adjust_experience(/datum/skill/mining, 100) //yay! + +/turf/closed/mineral/strong/proc/drop_ores() + if(prob(10)) + new /obj/item/stack/sheet/mineral/mythril(src, 5) + else + new /obj/item/stack/sheet/mineral/adamantine(src, 5) + +/turf/closed/mineral/strong/acid_melt() + return + +/turf/closed/mineral/strong/ex_act(severity, target) + return diff --git a/code/game/turfs/simulated/wall/material_walls.dm b/code/game/turfs/simulated/wall/material_walls.dm new file mode 100644 index 0000000000..d3952609e0 --- /dev/null +++ b/code/game/turfs/simulated/wall/material_walls.dm @@ -0,0 +1,22 @@ +/turf/closed/wall/material + name = "wall" + desc = "A huge chunk of material used to separate rooms." + icon = 'icons/turf/walls/materialwall.dmi' + icon_state = "wall" + canSmoothWith = list(/turf/closed/wall/material) + smooth = SMOOTH_TRUE + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + +/turf/closed/wall/material/break_wall() + for(var/i in custom_materials) + var/datum/material/M = i + new M.sheet_type(src, FLOOR(custom_materials[M] / MINERAL_MATERIAL_AMOUNT, 1)) + return new girder_type(src) + +/turf/closed/wall/material/devastate_wall() + for(var/i in custom_materials) + var/datum/material/M = i + new M.sheet_type(src, FLOOR(custom_materials[M] / MINERAL_MATERIAL_AMOUNT, 1)) + +/turf/closed/wall/material/mat_update_desc(mat) + desc = "A huge chunk of [mat] used to separate rooms." diff --git a/code/game/turfs/simulated/wall/mineral_walls.dm b/code/game/turfs/simulated/wall/mineral_walls.dm index b04f4f0aa0..a5f0d5e824 100644 --- a/code/game/turfs/simulated/wall/mineral_walls.dm +++ b/code/game/turfs/simulated/wall/mineral_walls.dm @@ -136,7 +136,7 @@ /turf/closed/wall/mineral/wood/attackby(obj/item/W, mob/user) if(W.sharpness && W.force) var/duration = (48/W.force) * 2 //In seconds, for now. - if(istype(W, /obj/item/hatchet) || istype(W, /obj/item/twohanded/fireaxe)) + if(istype(W, /obj/item/hatchet) || istype(W, /obj/item/fireaxe)) duration /= 4 //Much better with hatchets and axes. var/src_type = type if(do_after(user, duration*10, target=src) && type == src_type) //Into deciseconds. @@ -191,7 +191,7 @@ icon = 'icons/turf/walls/shuttle_wall.dmi' icon_state = "map-shuttle" explosion_block = 3 - flags_1 = CAN_BE_DIRTY_1 | CHECK_RICOCHET_1 + flags_1 = CAN_BE_DIRTY_1 | DEFAULT_RICOCHET_1 sheet_type = /obj/item/stack/sheet/mineral/titanium smooth = SMOOTH_MORE|SMOOTH_DIAGONAL canSmoothWith = list(/turf/closed/wall/mineral/titanium, /obj/machinery/door/airlock/shuttle, /obj/machinery/door/airlock, /obj/structure/window/shuttle, /obj/structure/shuttle/engine/heater, /obj/structure/falsewall/titanium) @@ -302,4 +302,4 @@ /turf/closed/wall/mineral/plastitanium/copyTurf(turf/T) . = ..() - T.transform = transform \ No newline at end of file + T.transform = transform diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 268e8e9109..b01a1df2c0 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -41,17 +41,6 @@ /turf/closed/wall/attack_tk() return -/turf/closed/wall/handle_ricochet(obj/item/projectile/P) //A huge pile of shitcode! - var/turf/p_turf = get_turf(P) - var/face_direction = get_dir(src, p_turf) - var/face_angle = dir2angle(face_direction) - var/incidence_s = GET_ANGLE_OF_INCIDENCE(face_angle, (P.Angle + 180)) - if(abs(incidence_s) > 90 && abs(incidence_s) < 270) - return FALSE - var/new_angle_s = SIMPLIFY_DEGREES(face_angle + incidence_s) - P.setAngle(new_angle_s) - return TRUE - /turf/closed/wall/proc/dismantle_wall(devastated=0, explode=0) if(devastated) devastate_wall() @@ -290,7 +279,7 @@ if(LAZYLEN(dent_decals) >= MAX_DENT_DECALS) return - var/mutable_appearance/decal = mutable_appearance('icons/effects/effects.dmi', "", BULLET_HOLE_LAYER) + var/mutable_appearance/decal = mutable_appearance('icons/effects/effects.dmi', "", BULLET_HOLE_LAYER, ABOVE_WALL_PLANE) switch(denttype) if(WALL_DENT_SHOT) decal.icon_state = "bullet_hole" diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 72d9f88d8e..b1a10c72ce 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -85,6 +85,9 @@ if (opacity) has_opaque_atom = TRUE + // apply materials properly from the default custom_materials value + set_custom_materials(custom_materials) + ComponentInitialize() return INITIALIZE_HINT_NORMAL @@ -179,7 +182,7 @@ target.zImpact(A, levels, src) return TRUE -/turf/proc/handleRCL(obj/item/twohanded/rcl/C, mob/user) +/turf/proc/handleRCL(obj/item/rcl/C, mob/user) if(C.loaded) for(var/obj/structure/cable/LC in src) if(!LC.d1 || !LC.d2) @@ -202,7 +205,7 @@ coil.place_turf(src, user) return TRUE - else if(istype(C, /obj/item/twohanded/rcl)) + else if(istype(C, /obj/item/rcl)) handleRCL(C, user) return FALSE diff --git a/code/game/world.dm b/code/game/world.dm index 7f6b2c5da7..7004e64f63 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -1,6 +1,7 @@ #define RESTART_COUNTER_PATH "data/round_counter.txt" GLOBAL_VAR(restart_counter) +GLOBAL_VAR_INIT(tgs_initialized, FALSE) GLOBAL_VAR(topic_status_lastcache) GLOBAL_LIST(topic_status_cache) @@ -23,10 +24,11 @@ GLOBAL_LIST(topic_status_cache) make_datum_references_lists() //initialises global lists for referencing frequently used datums (so that we only ever do it once) - TgsNew(minimum_required_security_level = TGS_SECURITY_TRUSTED) GLOB.revdata = new + InitTgs() + config.Load(params[OVERRIDE_CONFIG_DIRECTORY_PARAMETER]) //SetupLogs depends on the RoundID, so lets check @@ -37,6 +39,9 @@ GLOBAL_LIST(topic_status_cache) #ifndef USE_CUSTOM_ERROR_HANDLER world.log = file("[GLOB.log_directory]/dd.log") +#else + if (TgsAvailable()) + world.log = file("[GLOB.log_directory]/dd.log") //not all runtimes trigger world/Error, so this is the only way to ensure we can see all of them. #endif load_admins() @@ -62,6 +67,11 @@ GLOBAL_LIST(topic_status_cache) if(TEST_RUN_PARAMETER in params) HandleTestRun() +/world/proc/InitTgs() + TgsNew(new /datum/tgs_event_handler/impl, TGS_SECURITY_TRUSTED) + GLOB.revdata.load_tgs_info() + GLOB.tgs_initialized = TRUE + /world/proc/HandleTestRun() //trigger things to run the whole process Master.sleep_offline_after_initializations = FALSE @@ -110,6 +120,7 @@ GLOBAL_LIST(topic_status_cache) GLOB.world_game_log = "[GLOB.log_directory]/game.log" GLOB.world_virus_log = "[GLOB.log_directory]/virus.log" + GLOB.world_asset_log = "[GLOB.log_directory]/asset.log" GLOB.world_attack_log = "[GLOB.log_directory]/attack.log" GLOB.world_pda_log = "[GLOB.log_directory]/pda.log" GLOB.world_telecomms_log = "[GLOB.log_directory]/telecomms.log" @@ -125,6 +136,7 @@ GLOBAL_LIST(topic_status_cache) GLOB.subsystem_log = "[GLOB.log_directory]/subsystem.log" GLOB.reagent_log = "[GLOB.log_directory]/reagents.log" GLOB.world_crafting_log = "[GLOB.log_directory]/crafting.log" + GLOB.click_log = "[GLOB.log_directory]/click.log" #ifdef UNIT_TESTS @@ -144,6 +156,7 @@ GLOBAL_LIST(topic_status_cache) start_log(GLOB.subsystem_log) start_log(GLOB.reagent_log) start_log(GLOB.world_crafting_log) + start_log(GLOB.click_log) GLOB.changelog_hash = md5('html/changelog.html') //for telling if the changelog has changed recently if(fexists(GLOB.config_error_log)) @@ -223,16 +236,17 @@ GLOBAL_LIST(topic_status_cache) qdel(src) //shut it down /world/Reboot(reason = 0, fast_track = FALSE) - TgsReboot() if (reason || fast_track) //special reboot, do none of the normal stuff if (usr) log_admin("[key_name(usr)] Has requested an immediate world restart via client side debugging tools") message_admins("[key_name_admin(usr)] Has requested an immediate world restart via client side debugging tools") - to_chat(world, "Rebooting World immediately due to host request") + to_chat(world, "Rebooting World immediately due to host request.") else to_chat(world, "Rebooting world...") Master.Shutdown() //run SS shutdowns + TgsReboot() + if(TEST_RUN_PARAMETER in params) FinishTestRun() return diff --git a/code/modules/VR/vr_sleeper.dm b/code/modules/VR/vr_sleeper.dm index e79784290b..26ae200990 100644 --- a/code/modules/VR/vr_sleeper.dm +++ b/code/modules/VR/vr_sleeper.dm @@ -22,6 +22,11 @@ sparks.set_up(2,0) sparks.attach(src) update_icon() + new_occupant_dir = dir + +/obj/machinery/vr_sleeper/setDir(newdir) + . = ..() + new_occupant_dir = dir /obj/machinery/vr_sleeper/attackby(obj/item/I, mob/user, params) if(!state_open && !occupant) diff --git a/code/modules/admin/admin_investigate.dm b/code/modules/admin/admin_investigate.dm index 55c55c42de..99bb988be6 100644 --- a/code/modules/admin/admin_investigate.dm +++ b/code/modules/admin/admin_investigate.dm @@ -4,7 +4,7 @@ var/F = file("[GLOB.log_directory]/[subject].html") WRITE_FILE(F, "[TIME_STAMP("hh:mm:ss", FALSE)] [REF(src)] ([x],[y],[z]) || [src] [message]
    ") -/client/proc/investigate_show(subject in list("notes, memos, watchlist", INVESTIGATE_RCD, INVESTIGATE_RESEARCH, INVESTIGATE_EXONET, INVESTIGATE_PORTAL, INVESTIGATE_SINGULO, INVESTIGATE_WIRES, INVESTIGATE_TELESCI, INVESTIGATE_GRAVITY, INVESTIGATE_RECORDS, INVESTIGATE_CARGO, INVESTIGATE_SUPERMATTER, INVESTIGATE_ATMOS, INVESTIGATE_EXPERIMENTOR, INVESTIGATE_BOTANY, INVESTIGATE_HALLUCINATIONS, INVESTIGATE_RADIATION, INVESTIGATE_CIRCUIT, INVESTIGATE_NANITES) ) +/client/proc/investigate_show(subject in list("notes, memos, watchlist", INVESTIGATE_RCD, INVESTIGATE_RESEARCH, INVESTIGATE_EXONET, INVESTIGATE_PORTAL, INVESTIGATE_SINGULO, INVESTIGATE_WIRES, INVESTIGATE_TELESCI, INVESTIGATE_GRAVITY, INVESTIGATE_RECORDS, INVESTIGATE_CARGO, INVESTIGATE_SUPERMATTER, INVESTIGATE_ATMOS, INVESTIGATE_EXPERIMENTOR, INVESTIGATE_BOTANY, INVESTIGATE_HALLUCINATIONS, INVESTIGATE_RADIATION, INVESTIGATE_CIRCUIT, INVESTIGATE_NANITES, INVESTIGATE_CRYOGENICS) ) set name = "Investigate" set category = "Admin" if(!holder) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index e9b8c274a8..289abbe250 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -106,6 +106,7 @@ GLOBAL_LIST_INIT(admin_verbs_fun, list( /client/proc/show_tip, /client/proc/smite, /client/proc/admin_away, + /client/proc/cmd_admin_toggle_fov, /client/proc/roll_dices //CIT CHANGE - Adds dice verb )) GLOBAL_PROTECT(admin_verbs_fun) diff --git a/code/modules/admin/chat_commands.dm b/code/modules/admin/chat_commands.dm index e2ddcdcf6a..7664d85b7d 100644 --- a/code/modules/admin/chat_commands.dm +++ b/code/modules/admin/chat_commands.dm @@ -84,7 +84,7 @@ GLOBAL_LIST(round_end_notifiees) if(!SSticker.IsRoundInProgress() && SSticker.HasRoundStarted()) return "[sender.mention], the round has already ended!" LAZYINITLIST(GLOB.round_end_notifiees) - GLOB.round_end_notifiees["<@[sender.mention]>"] = TRUE + GLOB.round_end_notifiees[sender.mention] = TRUE return "I will notify [sender.mention] when the round ends." /datum/tgs_chat_command/sdql @@ -142,3 +142,51 @@ GLOBAL_LIST(round_end_notifiees) log_admin("[sender.friendly_name] has added [params] to the current round's bunker bypass list.") message_admins("[sender.friendly_name] has added [params] to the current round's bunker bypass list.") return "[params] has been added to the current round's bunker bypass list." + +// More (silly) chat commands citadel added. +/datum/tgs_chat_command/wheelofsalt + name = "wheelofsalt" + help_text = "What are Citadel Station 13 players salting about today? Spin the wheel and find out!" + +/datum/tgs_chat_command/wheelofsalt/Run(datum/tgs_chat_user/sender, params) + var/saltresult = "The wheel of salt [pick("clatters","screams","vibrates","clanks","resonates","groans","moans","squeaks","emits a[pick(" god-forsaken"," lewd"," creepy"," generic","n orgasmic"," demonic")] [pick("airhorn","bike horn","trumpet","clown","latex","vore","dog","laughing")] noise")] as it spins violently... And it seems the salt of the day is the " + var/saltprimarysubject = "[pick("combat","medical","grab","furry","wall","orgasm","cat","ERP","lizard","dog","latex","vision cone","atmospherics","table","chem","vore","dogborg","Skylar Lineman","Mekhi Anderson","Peppermint","rework","cum","dick","cockvore","Medihound","sleeper","belly sleeper","door wires","flightsuit","coder privilege","Developer abuse","ban reason","github self merge","red panda","beret","male catgirl","powergame","hexacrocin","Discord server","Clitadel","Cargonia","Solarian Republic","Main and RP merger","bluespace","salt","chem dispenser theft","Botany","moth","BWOINK","anal vore","stamina","Mason Jakops","mining","noodle","milf","Lavaland","Necropolis","Ashwalker","Chase Redtail","Drew Mint","Pavel Marsk","Joker Amari","Durgit","chaplain","Antag","nanite","Syndicate","Nar-Sie","Ratvar","Cult","maint","Foam-Force","AI","cyborg","ghost","clockwork","cyberpunk","vaporwave","Clown","Leon Beech","Mime","security","research","Megafauna","Bubblegum","Ash Drake","Legion","Colossus","White Shuttle","Changeling","Cowboy","Space Ninja","Poly","Revolutionary","Skyrim","forbidden fruits","xenomorph","blob","Nuclear Operative","crossdressing")]" + var/saltsecondarysubject = "[pick("rework","changes","r34","ban","removal","addition","leak","proposal","fanart","introduction","tabling","ERP","bikeshedding","crossdressing","sprites","semen keg","argument","theft","nerf","screeching","salt","creampie","lewding","murder","kissing","marriage","replacement","fucking","ship","netflix adaptation","dance","remaster","system","voyeur","decoration","pre-order","bukkake","seduction","worship","gangbang","handholding")]" + if(prob(10)) + saltresult += "@here for your salt, all day every day" + if(prob(1)) + saltresult += " @everyone gets some salt this time too" + else + saltresult += "[saltprimarysubject] [saltsecondarysubject]" + return "[saltresult]!" + +/datum/tgs_chat_command/valentine + name = "valentine" + help_text = "Get a random flirt line." + +/datum/tgs_chat_command/valentine/Run(datum/tgs_chat_user/sender, params) + return "[pick(GLOB.flirts)]" + +/datum/tgs_chat_command/despacito + name = "despacito" //someone please high effort this sometime and make it a full on ytdl search + help_text = "This is so sad." + +/datum/tgs_chat_command/despacito/Run() + return "https://www.youtube.com/watch?v=kJQP7kiw5Fk" + +/datum/tgs_chat_command/poly + name = "poly" + help_text = "The Lewder, more applicable Poly speak for Citadel Station 13." + var/list/speech_buffer + +/datum/tgs_chat_command/poly/Run() + LAZYINITLIST(speech_buffer) //I figure this is just safe to do for everything at this point + if(length(speech_buffer)) //Let's not look up the whole json EVERY TIME, just the first time. + return "[pick(speech_buffer)]" + else + var/json_file = file("data/npc_saves/Poly.json") + if(!fexists(json_file)) + return "**BAWWWWWK!** LEAVE THE HEADSET! ***BAWKKKKK!!***" + var/list/json = json_decode(file2text(json_file)) + speech_buffer = json["phrases"] + return "[pick(speech_buffer)]" diff --git a/code/modules/admin/fun_balloon.dm b/code/modules/admin/fun_balloon.dm index 44dcfc0ae6..417663fcb7 100644 --- a/code/modules/admin/fun_balloon.dm +++ b/code/modules/admin/fun_balloon.dm @@ -126,7 +126,7 @@ L.forceMove(LA) L.hallucination = 0 to_chat(L, "The battle is won. Your bloodlust subsides.") - for(var/obj/item/twohanded/required/chainsaw/doomslayer/chainsaw in L) + for(var/obj/item/chainsaw/doomslayer/chainsaw in L) qdel(chainsaw) else to_chat(L, "You are not yet worthy of passing. Drag a severed head to the barrier to be allowed entry to the hall of champions.") diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index a06b674e42..41662c1cad 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -69,11 +69,6 @@ The floor is lava! (DANGEROUS: extremely lame)
    Spawn a custom portal storm

    - Flip client movement directions
    - Randomize client movement directions
    - Set each movement direction manually
    - Reset movement directions to default
    -
    Change bomb cap
    Mass Purrbation
    Mass Remove Purrbation
    @@ -603,60 +598,6 @@ purrbation.") log_admin("[key_name(usr)] has removed everyone from purrbation.") - if("flipmovement") - if(!check_rights(R_FUN)) - return - if(alert("Flip all movement controls?","Confirm","Yes","Cancel") == "Cancel") - return - var/list/movement_keys = SSinput.movement_keys - for(var/i in 1 to movement_keys.len) - var/key = movement_keys[i] - movement_keys[key] = turn(movement_keys[key], 180) - message_admins("[key_name_admin(usr)] has flipped all movement directions.") - log_admin("[key_name(usr)] has flipped all movement directions.") - - if("randommovement") - if(!check_rights(R_FUN)) - return - if(alert("Randomize all movement controls?","Confirm","Yes","Cancel") == "Cancel") - return - var/list/movement_keys = SSinput.movement_keys - for(var/i in 1 to movement_keys.len) - var/key = movement_keys[i] - movement_keys[key] = turn(movement_keys[key], 45 * rand(1, 8)) - message_admins("[key_name_admin(usr)] has randomized all movement directions.") - log_admin("[key_name(usr)] has randomized all movement directions.") - - if("custommovement") - if(!check_rights(R_FUN)) - return - if(alert("Are you sure you want to change every movement key?","Confirm","Yes","Cancel") == "Cancel") - return - var/list/movement_keys = SSinput.movement_keys - var/list/new_movement = list() - for(var/i in 1 to movement_keys.len) - var/key = movement_keys[i] - - var/msg = "Please input the new movement direction when the user presses [key]. Ex. northeast" - var/title = "New direction for [key]" - var/new_direction = text2dir(input(usr, msg, title) as text|null) - if(!new_direction) - new_direction = movement_keys[key] - - new_movement[key] = new_direction - SSinput.movement_keys = new_movement - message_admins("[key_name_admin(usr)] has configured all movement directions.") - log_admin("[key_name(usr)] has configured all movement directions.") - - if("resetmovement") - if(!check_rights(R_FUN)) - return - if(alert("Are you sure you want to reset movement keys to default?","Confirm","Yes","Cancel") == "Cancel") - return - SSinput.setup_default_movement_keys() - message_admins("[key_name_admin(usr)] has reset all movement keys.") - log_admin("[key_name(usr)] has reset all movement keys.") - if("customportal") if(!check_rights(R_FUN)) return diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index 26736ddff1..bff431a6c7 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -346,7 +346,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null //print the key if(islist(key)) recursive_list_print(output, key, datum_handler, atom_handler) - else if(is_proper_datum(key) && (datum_handler || (isatom(key) && atom_handler))) + else if(is_object_datatype(key) && (datum_handler || (isatom(key) && atom_handler))) if(isatom(key) && atom_handler) output += atom_handler.Invoke(key) else @@ -360,7 +360,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null var/value = input[key] if(islist(value)) recursive_list_print(output, value, datum_handler, atom_handler) - else if(is_proper_datum(value) && (datum_handler || (isatom(value) && atom_handler))) + else if(is_object_datatype(value) && (datum_handler || (isatom(value) && atom_handler))) if(isatom(value) && atom_handler) output += atom_handler.Invoke(value) else @@ -498,7 +498,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null if(length(select_text)) var/text = islist(select_text)? select_text.Join() : select_text var/static/result_offset = 0 - showmob << browse(text, "window=SDQL-result-[result_offset++]") + showmob << browse(text, "window=SDQL-result-[result_offset++];size=800x1200") show_next_to_key = null if(qdel_on_finish) qdel(src) @@ -646,7 +646,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null switch(query_tree[1]) if("call") for(var/i in found) - if(!is_proper_datum(i)) + if(!is_object_datatype(i)) continue world.SDQL_var(i, query_tree["call"][1], null, i, superuser, src) obj_count_finished++ @@ -664,7 +664,10 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null var/list/text_list = list() var/print_nulls = !(options & SDQL2_OPTION_SELECT_OUTPUT_SKIP_NULLS) obj_count_finished = select_refs + var/n = 0 for(var/i in found) + if(++n == 20000) + text_list += "
    TRUNCATED - 20000 OBJECT LIMIT HIT" SDQL_print(i, text_list, print_nulls) select_refs[REF(i)] = TRUE SDQL2_TICK_CHECK @@ -675,7 +678,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null if("set" in query_tree) var/list/set_list = query_tree["set"] for(var/d in found) - if(!is_proper_datum(d)) + if(!is_object_datatype(d)) continue SDQL_internal_vv(d, set_list) obj_count_finished++ @@ -685,47 +688,72 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null obj_count_finished = length(obj_count_finished) state = SDQL2_STATE_SWITCHING -/datum/SDQL2_query/proc/SDQL_print(object, list/text_list, print_nulls = TRUE) - if(is_proper_datum(object)) - text_list += "[REF(object)] : [object]" - if(istype(object, /atom)) - var/atom/A = object - var/turf/T = A.loc - var/area/a - if(istype(T)) - text_list += " at [T] [ADMIN_COORDJMP(T)]" - a = T.loc - else - var/turf/final = get_turf(T) //Recursive, hopefully? - if(istype(final)) - text_list += " at [final] [ADMIN_COORDJMP(final)]" - a = final.loc +/** + * Recursively prints out an object to text list for SDQL2 output to admins, with VV links and all. + * Recursion limit: 50 + * Limit imposed by callers should be around 10000 objects + * Seriously, if you hit those limits, you're doing something wrong. + */ +/datum/SDQL2_query/proc/SDQL_print(datum/object, list/text_list, print_nulls = TRUE, recursion = 1, linebreak = TRUE) + if(recursion > 50) + text_list += "
    RECURSION LIMIT REACHED.
    " + return + if(is_object_datatype(object)) + if(!islist(object)) + text_list += "[object.type] [REF(object)]: [object]" + if(istype(object, /atom)) + if(istype(object, /turf)) + var/turf/T = object + text_list += " [ADMIN_COORDJMP(T)] at [T.loc]" else - text_list += " at nonexistant location" - if(a) - text_list += " in area [a]" - if(T.loc != a) - text_list += " inside [T]" - text_list += "
    " - else if(islist(object)) - var/list/L = object - var/first = TRUE - text_list += "\[" - for (var/x in L) - if (!first) - text_list += ", " - first = FALSE - SDQL_print(x, text_list) - if (!isnull(x) && !isnum(x) && L[x] != null) - text_list += " -> " - SDQL_print(L[L[x]], text_list) - text_list += "]
    " + var/atom/A = object + var/atom/container = A.loc + if(isturf(container)) + text_list += " in [container] [ADMIN_COORDJMP(container)] at [container.loc]" + else if(container) + var/turf/T = get_turf(container) + var/cref = REF(container) + text_list += " in [container]([cref])" + if(T) + text_list += " on [T] [ADMIN_COORDJMP(T)] at[T.loc]" + else + text_list += " in nullspace" + else // lists are snowflake and get special treatment. + text_list += "/list [REF(object)] \[
    " + var/list/L = object + if(length(L)) + for(var/key in object) + if(islist(key)) + text_list += "" + SDQL_print(key, text_list, TRUE, recursion + 1, FALSE) + text_list += "" + else + SDQL_print(key, text_list, TRUE, recursion, FALSE) + if(IS_VALID_ASSOC_KEY(key) && !isnull(L[key])) + var/value = L[key] + text_list += " --> " + if(islist(value)) + text_list += "" + SDQL_print(value, text_list, TRUE, recursion + 1, FALSE) + text_list += "" + else + SDQL_print(value, text_list, TRUE, recursion, FALSE) + text_list += "
    " + text_list += "\]" + if(linebreak) + text_list += "
    " else if(isnull(object)) if(print_nulls) - text_list += "NULL
    " + text_list += "NULL" + else if(istext(object)) + text_list += "\"[object]\"" + else if(isnum(object) || ispath(object)) + text_list += "[object]" else - text_list += "[object]
    " + text_list += "UNKNOWN: [object]" + if(linebreak) + text_list += "
    " /datum/SDQL2_query/CanProcCall() if(!allow_admin_interact) @@ -957,7 +985,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null var/static/list/exclude = list("usr", "src", "marked", "global") var/long = start < expression.len var/datum/D - if(is_proper_datum(object)) + if(is_object_datatype(object)) D = object if (object == world && (!long || expression[start + 1] == ".") && !(expression[start] in exclude)) //3 == length("SS") + 1 @@ -1025,8 +1053,6 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null v = SSnpcpool if("SSmobs") v = SSmobs - if("SSmood") - v = SSmood if("SSquirks") v = SSquirks if("SSwet_floors") @@ -1163,9 +1189,6 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null query_list += word return query_list -/proc/is_proper_datum(thing) - return istype(thing, /datum) || istype(thing, /client) - /obj/effect/statclick/SDQL2_delete/Click() var/datum/SDQL2_query/Q = target Q.delete_click() diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm b/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm index 24149e7e6c..4f518b7f8e 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm @@ -234,3 +234,7 @@ for(var/turf/T in v) . += T return pick(.) + +/proc/__nan() + var/list/L = json_decode("{\"value\":NaN}") + return L["value"] diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 5530225130..d335cfb171 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1218,6 +1218,58 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggled Hub Visibility", "[GLOB.hub_visibility ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! +/client/proc/cmd_admin_toggle_fov() + set category = "Fun" + set name = "Enable/Disable Field of Vision" + + var/static/busy_toggling_fov = FALSE + if(!check_rights(R_ADMIN) || !check_rights(R_FUN)) + return + + var/on_off = CONFIG_GET(flag/use_field_of_vision) + + if(busy_toggling_fov) + to_chat(usr, "A previous call of this function is still busy toggling FoV [on_off ? "on" : "off"]. Have some patiece.") + return + busy_toggling_fov = TRUE + + log_admin("[key_name(usr)] has [on_off ? "disabled" : "enabled"] the Field of Vision configuration.") + CONFIG_SET(flag/use_field_of_vision, !on_off) + + SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggled Field of Vision", "[on_off ? "Enabled" : "Disabled"]")) + + if(on_off) + for(var/k in GLOB.mob_list) + if(!k) + continue + var/mob/M = k + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(!(H.dna?.species.has_field_of_vision)) + continue + else if(!M.has_field_of_vision) + continue + var/datum/component/field_of_vision/FoV = M.GetComponent(/datum/component/field_of_vision) + if(FoV) + qdel(FoV) + CHECK_TICK + else + for(var/k in GLOB.clients) + if(!k) + continue + var/client/C = k + var/mob/M = C.mob + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(!(H.dna?.species.has_field_of_vision)) + continue + else if(!M.has_field_of_vision) + continue + M.LoadComponent(/datum/component/field_of_vision, M.field_of_vision_type) + CHECK_TICK + + busy_toggling_fov = FALSE + /client/proc/smite(mob/living/carbon/human/target as mob) set name = "Smite" set category = "Fun" diff --git a/code/modules/admin/view_variables/debug_variables.dm b/code/modules/admin/view_variables/debug_variables.dm index 23f85cba15..ab9f4a534c 100644 --- a/code/modules/admin/view_variables/debug_variables.dm +++ b/code/modules/admin/view_variables/debug_variables.dm @@ -1,4 +1,5 @@ #define VV_HTML_ENCODE(thing) ( sanitize ? html_encode(thing) : thing ) +/// Get displayed variable in VV variable list /proc/debug_variable(name, value, level, datum/D, sanitize = TRUE) //if D is a list, name will be index, and value will be assoc value. var/header if(D) @@ -15,11 +16,19 @@ header = "
  • " var/item + var/name_part = VV_HTML_ENCODE(name) + if(level > 0 || islist(D)) //handling keys in assoc lists + if(istype(name,/datum)) + name_part = "[VV_HTML_ENCODE(name)] [REF(name)]" + else if(islist(name)) + var/list/L = name + name_part = " /list ([length(L)]) [REF(name)]" + if (isnull(value)) - item = "[VV_HTML_ENCODE(name)] = null" + item = "[name_part] = null" else if (istext(value)) - item = "[VV_HTML_ENCODE(name)] = \"[VV_HTML_ENCODE(value)]\"" + item = "[name_part] = \"[VV_HTML_ENCODE(value)]\"" else if (isicon(value)) #ifdef VARSICON @@ -27,20 +36,31 @@ var/rnd = rand(1,10000) var/rname = "tmp[REF(I)][rnd].png" usr << browse_rsc(I, rname) - item = "[VV_HTML_ENCODE(name)] = ([value]) " + item = "[name_part] = ([value]) " #else - item = "[VV_HTML_ENCODE(name)] = /icon ([value])" + item = "[name_part] = /icon ([value])" #endif else if (isfile(value)) - item = "[VV_HTML_ENCODE(name)] = '[value]'" + item = "[name_part] = '[value]'" + else if(istype(value,/matrix)) // Needs to be before datum + var/matrix/M = value + item = {"[name_part] = +
      + + + + + + +
    [M.a][M.d]0
    [M.b][M.e]0
    [M.c][M.f]1
     
    "} //TODO link to modify_transform wrapper for all matrices else if (istype(value, /datum)) var/datum/DV = value if ("[DV]" != "[DV.type]") //if the thing as a name var, lets use it. - item = "[VV_HTML_ENCODE(name)] [REF(value)] = [DV] [DV.type]" + item = "[name_part] = [DV] [DV.type] [REF(value)]" else - item = "[VV_HTML_ENCODE(name)] [REF(value)] = [DV.type]" + item = "[name_part] = [DV.type] [REF(value)]" else if (islist(value)) var/list/L = value @@ -58,19 +78,19 @@ items += debug_variable(key, val, level + 1, sanitize = sanitize) - item = "[VV_HTML_ENCODE(name)] = /list ([L.len])
      [items.Join()]
    " + item = "[name_part] = /list ([L.len])
      [items.Join()]
    " else - item = "[VV_HTML_ENCODE(name)] = /list ([L.len])" + item = "[name_part] = /list ([L.len])" else if (name in GLOB.bitfields) var/list/flags = list() for (var/i in GLOB.bitfields[name]) if (value & GLOB.bitfields[name][i]) flags += i - item = "[VV_HTML_ENCODE(name)] = [VV_HTML_ENCODE(jointext(flags, ", "))]" + item = "[name_part] = [VV_HTML_ENCODE(jointext(flags, ", "))]" else - item = "[VV_HTML_ENCODE(name)] = [VV_HTML_ENCODE(value)]" + item = "[name_part] = [VV_HTML_ENCODE(value)]" return "[header][item]
  • " -#undef VV_HTML_ENCODE +#undef VV_HTML_ENCODE \ No newline at end of file diff --git a/code/modules/admin/view_variables/view_variables.dm b/code/modules/admin/view_variables/view_variables.dm index a85b4ff1a3..abe445589f 100644 --- a/code/modules/admin/view_variables/view_variables.dm +++ b/code/modules/admin/view_variables/view_variables.dm @@ -96,16 +96,7 @@ [title] - + "}, "window=asset_cache_browser&file=asset_cache_send_verify.htm") + + while(!completed_asset_jobs["[job]"] && t < timeout_time) // Reception is handled in Topic() + stoplag(1) // Lock up the caller until this is received. + t++ + if (t < timeout_time) + return TRUE diff --git a/code/modules/asset_cache/asset_cache_item.dm b/code/modules/asset_cache/asset_cache_item.dm new file mode 100644 index 0000000000..0e7d44a7ac --- /dev/null +++ b/code/modules/asset_cache/asset_cache_item.dm @@ -0,0 +1,21 @@ +/** + * # asset_cache_item + * + * An internal datum containing info on items in the asset cache. Mainly used to cache md5 info for speed. +**/ +/datum/asset_cache_item + var/name + var/md5 + var/resource + +/datum/asset_cache_item/New(name, file) + if (!isfile(file)) + file = fcopy_rsc(file) + md5 = md5(file) + if (!md5) + md5 = md5(fcopy_rsc(file)) + if (!md5) + CRASH("invalid asset sent to asset cache") + debug_world_log("asset cache unexpected success of second fcopy_rsc") + src.name = name + resource = file diff --git a/code/modules/asset_cache/asset_list.dm b/code/modules/asset_cache/asset_list.dm new file mode 100644 index 0000000000..fe9859f238 --- /dev/null +++ b/code/modules/asset_cache/asset_list.dm @@ -0,0 +1,228 @@ + +//These datums are used to populate the asset cache, the proc "register()" does this. +//Place any asset datums you create in asset_list_items.dm + +//all of our asset datums, used for referring to these later +GLOBAL_LIST_EMPTY(asset_datums) + +//get an assetdatum or make a new one +/proc/get_asset_datum(type) + return GLOB.asset_datums[type] || new type() + +/datum/asset + var/_abstract = /datum/asset + +/datum/asset/New() + GLOB.asset_datums[type] = src + register() + +/datum/asset/proc/register() + return + +/datum/asset/proc/send(client) + return + + +//If you don't need anything complicated. +/datum/asset/simple + _abstract = /datum/asset/simple + var/assets = list() + +/datum/asset/simple/register() + for(var/asset_name in assets) + register_asset(asset_name, assets[asset_name]) + +/datum/asset/simple/send(client) + . = send_asset_list(client, assets) + + +// For registering or sending multiple others at once +/datum/asset/group + _abstract = /datum/asset/group + var/list/children + +/datum/asset/group/register() + for(var/type in children) + get_asset_datum(type) + +/datum/asset/group/send(client/C) + for(var/type in children) + var/datum/asset/A = get_asset_datum(type) + . = A.send(C) || . + + +// spritesheet implementation - coalesces various icons into a single .png file +// and uses CSS to select icons out of that file - saves on transferring some +// 1400-odd individual PNG files +#define SPR_SIZE 1 +#define SPR_IDX 2 +#define SPRSZ_COUNT 1 +#define SPRSZ_ICON 2 +#define SPRSZ_STRIPPED 3 + +/datum/asset/spritesheet + _abstract = /datum/asset/spritesheet + var/name + var/list/sizes = list() // "32x32" -> list(10, icon/normal, icon/stripped) + var/list/sprites = list() // "foo_bar" -> list("32x32", 5) + +/datum/asset/spritesheet/register() + if (!name) + CRASH("spritesheet [type] cannot register without a name") + ensure_stripped() + + var/res_name = "spritesheet_[name].css" + var/fname = "data/spritesheets/[res_name]" + fdel(fname) + text2file(generate_css(), fname) + register_asset(res_name, fcopy_rsc(fname)) + fdel(fname) + + for(var/size_id in sizes) + var/size = sizes[size_id] + register_asset("[name]_[size_id].png", size[SPRSZ_STRIPPED]) + +/datum/asset/spritesheet/send(client/C) + if (!name) + return + var/all = list("spritesheet_[name].css") + for(var/size_id in sizes) + all += "[name]_[size_id].png" + . = send_asset_list(C, all) + +/datum/asset/spritesheet/proc/ensure_stripped(sizes_to_strip = sizes) + for(var/size_id in sizes_to_strip) + var/size = sizes[size_id] + if (size[SPRSZ_STRIPPED]) + continue + + // save flattened version + var/fname = "data/spritesheets/[name]_[size_id].png" + fcopy(size[SPRSZ_ICON], fname) + var/error = rustg_dmi_strip_metadata(fname) + if(length(error)) + stack_trace("Failed to strip [name]_[size_id].png: [error]") + size[SPRSZ_STRIPPED] = icon(fname) + fdel(fname) + +/datum/asset/spritesheet/proc/generate_css() + var/list/out = list() + + for (var/size_id in sizes) + var/size = sizes[size_id] + var/icon/tiny = size[SPRSZ_ICON] + out += ".[name][size_id]{display:inline-block;width:[tiny.Width()]px;height:[tiny.Height()]px;background:url('[name]_[size_id].png') no-repeat;}" + + for (var/sprite_id in sprites) + var/sprite = sprites[sprite_id] + var/size_id = sprite[SPR_SIZE] + var/idx = sprite[SPR_IDX] + var/size = sizes[size_id] + + var/icon/tiny = size[SPRSZ_ICON] + var/icon/big = size[SPRSZ_STRIPPED] + var/per_line = big.Width() / tiny.Width() + var/x = (idx % per_line) * tiny.Width() + var/y = round(idx / per_line) * tiny.Height() + + out += ".[name][size_id].[sprite_id]{background-position:-[x]px -[y]px;}" + + return out.Join("\n") + +/datum/asset/spritesheet/proc/Insert(sprite_name, icon/I, icon_state="", dir=SOUTH, frame=1, moving=FALSE) + I = icon(I, icon_state=icon_state, dir=dir, frame=frame, moving=moving) + if (!I || !length(icon_states(I))) // that direction or state doesn't exist + return + var/size_id = "[I.Width()]x[I.Height()]" + var/size = sizes[size_id] + + if (sprites[sprite_name]) + CRASH("duplicate sprite \"[sprite_name]\" in sheet [name] ([type])") + + if (size) + var/position = size[SPRSZ_COUNT]++ + var/icon/sheet = size[SPRSZ_ICON] + size[SPRSZ_STRIPPED] = null + sheet.Insert(I, icon_state=sprite_name) + sprites[sprite_name] = list(size_id, position) + else + sizes[size_id] = size = list(1, I, null) + sprites[sprite_name] = list(size_id, 0) + +/datum/asset/spritesheet/proc/InsertAll(prefix, icon/I, list/directions) + if (length(prefix)) + prefix = "[prefix]-" + + if (!directions) + directions = list(SOUTH) + + for (var/icon_state_name in icon_states(I)) + for (var/direction in directions) + var/prefix2 = (directions.len > 1) ? "[dir2text(direction)]-" : "" + Insert("[prefix][prefix2][icon_state_name]", I, icon_state=icon_state_name, dir=direction) + +/datum/asset/spritesheet/proc/css_tag() + return {""} + +/datum/asset/spritesheet/proc/icon_tag(sprite_name) + var/sprite = sprites[sprite_name] + if (!sprite) + return null + var/size_id = sprite[SPR_SIZE] + return {""} + +/datum/asset/spritesheet/proc/icon_class_name(sprite_name) + var/sprite = sprites[sprite_name] + if (!sprite) + return null + var/size_id = sprite[SPR_SIZE] + return {"[name][size_id] [sprite_name]"} + +#undef SPR_SIZE +#undef SPR_IDX +#undef SPRSZ_COUNT +#undef SPRSZ_ICON +#undef SPRSZ_STRIPPED + + +/datum/asset/spritesheet/simple + _abstract = /datum/asset/spritesheet/simple + var/list/assets + +/datum/asset/spritesheet/simple/register() + for (var/key in assets) + Insert(key, assets[key]) + ..() + +//Generates assets based on iconstates of a single icon +/datum/asset/simple/icon_states + _abstract = /datum/asset/simple/icon_states + var/icon + var/list/directions = list(SOUTH) + var/frame = 1 + var/movement_states = FALSE + + var/prefix = "default" //asset_name = "[prefix].[icon_state_name].png" + var/generic_icon_names = FALSE //generate icon filenames using generate_asset_name() instead the above format + +/datum/asset/simple/icon_states/register(_icon = icon) + for(var/icon_state_name in icon_states(_icon)) + for(var/direction in directions) + var/asset = icon(_icon, icon_state_name, direction, frame, movement_states) + if (!asset) + continue + asset = fcopy_rsc(asset) //dedupe + var/prefix2 = (directions.len > 1) ? "[dir2text(direction)]." : "" + var/asset_name = sanitize_filename("[prefix].[prefix2][icon_state_name].png") + if (generic_icon_names) + asset_name = "[generate_asset_name(asset)].png" + + register_asset(asset_name, asset) + +/datum/asset/simple/icon_states/multiple_icons + _abstract = /datum/asset/simple/icon_states/multiple_icons + var/list/icons + +/datum/asset/simple/icon_states/multiple_icons/register() + for(var/i in icons) + ..(i) diff --git a/code/modules/client/asset_cache.dm b/code/modules/asset_cache/asset_list_items.dm similarity index 53% rename from code/modules/client/asset_cache.dm rename to code/modules/asset_cache/asset_list_items.dm index 6f62701590..13a1803188 100644 --- a/code/modules/client/asset_cache.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -1,399 +1,22 @@ -/* -Asset cache quick users guide: - -Make a datum at the bottom of this file with your assets for your thing. -The simple subsystem will most like be of use for most cases. -Then call get_asset_datum() with the type of the datum you created and store the return -Then call .send(client) on that stored return value. - -You can set verify to TRUE if you want send() to sleep until the client has the assets. -*/ - - -// Amount of time(ds) MAX to send per asset, if this get exceeded we cancel the sleeping. -// This is doubled for the first asset, then added per asset after -#define ASSET_CACHE_SEND_TIMEOUT 7 - -//When sending mutiple assets, how many before we give the client a quaint little sending resources message -#define ASSET_CACHE_TELL_CLIENT_AMOUNT 8 - -//When passively preloading assets, how many to send at once? Too high creates noticable lag where as too low can flood the client's cache with "verify" files -#define ASSET_CACHE_PRELOAD_CONCURRENT 3 - -/client - var/list/cache = list() // List of all assets sent to this client by the asset cache. - var/list/completed_asset_jobs = list() // List of all completed jobs, awaiting acknowledgement. - var/list/sending = list() - var/last_asset_job = 0 // Last job done. - -//This proc sends the asset to the client, but only if it needs it. -//This proc blocks(sleeps) unless verify is set to false -/proc/send_asset(client/client, asset_name, verify = TRUE) - if(!istype(client)) - if(ismob(client)) - var/mob/M = client - if(M.client) - client = M.client - - else - return 0 - - else - return 0 - - if(client.cache.Find(asset_name) || client.sending.Find(asset_name)) - return 0 - - client << browse_rsc(SSassets.cache[asset_name], asset_name) - if(!verify) - client.cache += asset_name - return 1 - - client.sending |= asset_name - var/job = ++client.last_asset_job - - client << browse({" - - "}, "window=asset_cache_browser") - - var/t = 0 - var/timeout_time = (ASSET_CACHE_SEND_TIMEOUT * client.sending.len) + ASSET_CACHE_SEND_TIMEOUT - while(client && !client.completed_asset_jobs.Find(job) && t < timeout_time) // Reception is handled in Topic() - stoplag(1) // Lock up the caller until this is received. - t++ - - if(client) - client.sending -= asset_name - client.cache |= asset_name - client.completed_asset_jobs -= job - - return 1 - -//This proc blocks(sleeps) unless verify is set to false -/proc/send_asset_list(client/client, list/asset_list, verify = TRUE) - if(!istype(client)) - if(ismob(client)) - var/mob/M = client - if(M.client) - client = M.client - - else - return 0 - - else - return 0 - - var/list/unreceived = asset_list - (client.cache + client.sending) - if(!unreceived || !unreceived.len) - return 0 - if (unreceived.len >= ASSET_CACHE_TELL_CLIENT_AMOUNT) - to_chat(client, "Sending Resources...") - for(var/asset in unreceived) - if (asset in SSassets.cache) - client << browse_rsc(SSassets.cache[asset], asset) - - if(!verify) // Can't access the asset cache browser, rip. - client.cache += unreceived - return 1 - - client.sending |= unreceived - var/job = ++client.last_asset_job - - client << browse({" - - "}, "window=asset_cache_browser") - - var/t = 0 - var/timeout_time = ASSET_CACHE_SEND_TIMEOUT * client.sending.len - while(client && !client.completed_asset_jobs.Find(job) && t < timeout_time) // Reception is handled in Topic() - stoplag(1) // Lock up the caller until this is received. - t++ - - if(client) - client.sending -= unreceived - client.cache |= unreceived - client.completed_asset_jobs -= job - - return 1 - -//This proc will download the files without clogging up the browse() queue, used for passively sending files on connection start. -//The proc calls procs that sleep for long times. -/proc/getFilesSlow(client/client, list/files, register_asset = TRUE) - var/concurrent_tracker = 1 - for(var/file in files) - if (!client) - break - if (register_asset) - register_asset(file, files[file]) - if (concurrent_tracker >= ASSET_CACHE_PRELOAD_CONCURRENT) - concurrent_tracker = 1 - send_asset(client, file) - else - concurrent_tracker++ - send_asset(client, file, verify=FALSE) - - stoplag(0) //queuing calls like this too quickly can cause issues in some client versions - -//This proc "registers" an asset, it adds it to the cache for further use, you cannot touch it from this point on or you'll fuck things up. -//if it's an icon or something be careful, you'll have to copy it before further use. -/proc/register_asset(asset_name, asset) - SSassets.cache[asset_name] = asset - -//Generated names do not include file extention. -//Used mainly for code that deals with assets in a generic way -//The same asset will always lead to the same asset name -/proc/generate_asset_name(file) - return "asset.[md5(fcopy_rsc(file))]" - - -//These datums are used to populate the asset cache, the proc "register()" does this. - -//all of our asset datums, used for referring to these later -GLOBAL_LIST_EMPTY(asset_datums) - -//get an assetdatum or make a new one -/proc/get_asset_datum(type) - return GLOB.asset_datums[type] || new type() - -/datum/asset - var/_abstract = /datum/asset - -/datum/asset/New() - GLOB.asset_datums[type] = src - register() - -/datum/asset/proc/register() - return - -/datum/asset/proc/send(client) - return - - -//If you don't need anything complicated. -/datum/asset/simple - _abstract = /datum/asset/simple - var/assets = list() - var/verify = FALSE - -/datum/asset/simple/register() - for(var/asset_name in assets) - register_asset(asset_name, assets[asset_name]) - -/datum/asset/simple/send(client) - send_asset_list(client,assets,verify) - - -// For registering or sending multiple others at once -/datum/asset/group - _abstract = /datum/asset/group - var/list/children - -/datum/asset/group/register() - for(var/type in children) - get_asset_datum(type) - -/datum/asset/group/send(client/C) - for(var/type in children) - var/datum/asset/A = get_asset_datum(type) - A.send(C) - - -// spritesheet implementation - coalesces various icons into a single .png file -// and uses CSS to select icons out of that file - saves on transferring some -// 1400-odd individual PNG files -#define SPR_SIZE 1 -#define SPR_IDX 2 -#define SPRSZ_COUNT 1 -#define SPRSZ_ICON 2 -#define SPRSZ_STRIPPED 3 - -/datum/asset/spritesheet - _abstract = /datum/asset/spritesheet - var/name - var/list/sizes = list() // "32x32" -> list(10, icon/normal, icon/stripped) - var/list/sprites = list() // "foo_bar" -> list("32x32", 5) - var/verify = FALSE - -/datum/asset/spritesheet/register() - if (!name) - CRASH("spritesheet [type] cannot register without a name") - ensure_stripped() - - var/res_name = "spritesheet_[name].css" - var/fname = "data/spritesheets/[res_name]" - fdel(fname) - text2file(generate_css(), fname) - register_asset(res_name, fcopy_rsc(fname)) - fdel(fname) - - for(var/size_id in sizes) - var/size = sizes[size_id] - register_asset("[name]_[size_id].png", size[SPRSZ_STRIPPED]) - -/datum/asset/spritesheet/send(client/C) - if (!name) - return - var/all = list("spritesheet_[name].css") - for(var/size_id in sizes) - all += "[name]_[size_id].png" - send_asset_list(C, all, verify) - -/datum/asset/spritesheet/proc/ensure_stripped(sizes_to_strip = sizes) - for(var/size_id in sizes_to_strip) - var/size = sizes[size_id] - if (size[SPRSZ_STRIPPED]) - continue - - // save flattened version - var/fname = "data/spritesheets/[name]_[size_id].png" - fcopy(size[SPRSZ_ICON], fname) - var/error = rustg_dmi_strip_metadata(fname) - if(length(error)) - stack_trace("Failed to strip [name]_[size_id].png: [error]") - size[SPRSZ_STRIPPED] = icon(fname) - fdel(fname) - -/datum/asset/spritesheet/proc/generate_css() - var/list/out = list() - - for (var/size_id in sizes) - var/size = sizes[size_id] - var/icon/tiny = size[SPRSZ_ICON] - out += ".[name][size_id]{display:inline-block;width:[tiny.Width()]px;height:[tiny.Height()]px;background:url('[name]_[size_id].png') no-repeat;}" - - for (var/sprite_id in sprites) - var/sprite = sprites[sprite_id] - var/size_id = sprite[SPR_SIZE] - var/idx = sprite[SPR_IDX] - var/size = sizes[size_id] - - var/icon/tiny = size[SPRSZ_ICON] - var/icon/big = size[SPRSZ_STRIPPED] - var/per_line = big.Width() / tiny.Width() - var/x = (idx % per_line) * tiny.Width() - var/y = round(idx / per_line) * tiny.Height() - - out += ".[name][size_id].[sprite_id]{background-position:-[x]px -[y]px;}" - - return out.Join("\n") - -/datum/asset/spritesheet/proc/Insert(sprite_name, icon/I, icon_state="", dir=SOUTH, frame=1, moving=FALSE) - I = icon(I, icon_state=icon_state, dir=dir, frame=frame, moving=moving) - if (!I || !length(icon_states(I))) // that direction or state doesn't exist - return - var/size_id = "[I.Width()]x[I.Height()]" - var/size = sizes[size_id] - - if (sprites[sprite_name]) - CRASH("duplicate sprite \"[sprite_name]\" in sheet [name] ([type])") - - if (size) - var/position = size[SPRSZ_COUNT]++ - var/icon/sheet = size[SPRSZ_ICON] - size[SPRSZ_STRIPPED] = null - sheet.Insert(I, icon_state=sprite_name) - sprites[sprite_name] = list(size_id, position) - else - sizes[size_id] = size = list(1, I, null) - sprites[sprite_name] = list(size_id, 0) - -/datum/asset/spritesheet/proc/InsertAll(prefix, icon/I, list/directions) - if (length(prefix)) - prefix = "[prefix]-" - - if (!directions) - directions = list(SOUTH) - - for (var/icon_state_name in icon_states(I)) - for (var/direction in directions) - var/prefix2 = (directions.len > 1) ? "[dir2text(direction)]-" : "" - Insert("[prefix][prefix2][icon_state_name]", I, icon_state=icon_state_name, dir=direction) - -/datum/asset/spritesheet/proc/css_tag() - return {""} - -/datum/asset/spritesheet/proc/icon_tag(sprite_name) - var/sprite = sprites[sprite_name] - if (!sprite) - return null - var/size_id = sprite[SPR_SIZE] - return {""} - -/datum/asset/spritesheet/proc/icon_class_name(sprite_name) - var/sprite = sprites[sprite_name] - if (!sprite) - return null - var/size_id = sprite[SPR_SIZE] - return {"[name][size_id] [sprite_name]"} - -#undef SPR_SIZE -#undef SPR_IDX -#undef SPRSZ_COUNT -#undef SPRSZ_ICON -#undef SPRSZ_STRIPPED - - -/datum/asset/spritesheet/simple - _abstract = /datum/asset/spritesheet/simple - var/list/assets - -/datum/asset/spritesheet/simple/register() - for (var/key in assets) - Insert(key, assets[key]) - ..() - -//Generates assets based on iconstates of a single icon -/datum/asset/simple/icon_states - _abstract = /datum/asset/simple/icon_states - var/icon - var/list/directions = list(SOUTH) - var/frame = 1 - var/movement_states = FALSE - - var/prefix = "default" //asset_name = "[prefix].[icon_state_name].png" - var/generic_icon_names = FALSE //generate icon filenames using generate_asset_name() instead the above format - - verify = FALSE - -/datum/asset/simple/icon_states/register(_icon = icon) - for(var/icon_state_name in icon_states(_icon)) - for(var/direction in directions) - var/asset = icon(_icon, icon_state_name, direction, frame, movement_states) - if (!asset) - continue - asset = fcopy_rsc(asset) //dedupe - var/prefix2 = (directions.len > 1) ? "[dir2text(direction)]." : "" - var/asset_name = sanitize_filename("[prefix].[prefix2][icon_state_name].png") - if (generic_icon_names) - asset_name = "[generate_asset_name(asset)].png" - - register_asset(asset_name, asset) - -/datum/asset/simple/icon_states/multiple_icons - _abstract = /datum/asset/simple/icon_states/multiple_icons - var/list/icons - -/datum/asset/simple/icon_states/multiple_icons/register() - for(var/i in icons) - ..(i) - - //DEFINITIONS FOR ASSET DATUMS START HERE. - +/* uncomment this and delete the tgui def bellow this for the new tgui /datum/asset/simple/tgui assets = list( - // tgui + "tgui.bundle.js" = 'tgui/packages/tgui/public/tgui.bundle.js', + "tgui.bundle.css" = 'tgui/packages/tgui/public/tgui.bundle.css', + ) +*/ +/datum/asset/simple/tgui + assets = list( + // Old TGUI "tgui.css" = 'tgui/assets/tgui.css', "tgui.js" = 'tgui/assets/tgui.js', // tgui-next "tgui-main.html" = 'tgui-next/packages/tgui/public/tgui-main.html', - "tgui-fallback.html" = 'tgui-next/packages/tgui/public/tgui-fallback.html', "tgui.bundle.js" = 'tgui-next/packages/tgui/public/tgui.bundle.js', "tgui.bundle.css" = 'tgui-next/packages/tgui/public/tgui.bundle.css', + // Old TGUI compatability + "tgui-fallback.html" = 'tgui-next/packages/tgui/public/tgui-fallback.html', "shim-html5shiv.js" = 'tgui-next/packages/tgui/public/shim-html5shiv.js', "shim-ie8.js" = 'tgui-next/packages/tgui/public/shim-ie8.js', "shim-dom4.js" = 'tgui-next/packages/tgui/public/shim-dom4.js', @@ -434,8 +57,16 @@ GLOBAL_LIST_EMPTY(asset_datums) "smmon_4.gif" = 'icons/program_icons/smmon_4.gif', "smmon_5.gif" = 'icons/program_icons/smmon_5.gif', "smmon_6.gif" = 'icons/program_icons/smmon_6.gif' + //"borg_mon.gif" = 'icons/program_icons/borg_mon.gif' ) - +/* uncomment if you're porting the new ntnet app +/datum/asset/simple/radar_assets + assets = list( + "ntosradarbackground.png" = 'icons/UI_Icons/tgui/ntosradar_background.png', + "ntosradarpointer.png" = 'icons/UI_Icons/tgui/ntosradar_pointer.png', + "ntosradarpointerS.png" = 'icons/UI_Icons/tgui/ntosradar_pointer_S.png' + ) +*/ /datum/asset/spritesheet/simple/pda name = "pda" assets = list( @@ -464,6 +95,7 @@ GLOBAL_LIST_EMPTY(asset_datums) "refresh" = 'icons/pda_icons/pda_refresh.png', "scanner" = 'icons/pda_icons/pda_scanner.png', "signaler" = 'icons/pda_icons/pda_signaler.png', + //"skills" = 'icons/pda_icons/pda_skills.png', "status" = 'icons/pda_icons/pda_status.png', "dronephone" = 'icons/pda_icons/pda_dronephone.png', "emoji" = 'icons/pda_icons/pda_emoji.png' @@ -483,51 +115,10 @@ GLOBAL_LIST_EMPTY(asset_datums) "stamp-cap" = 'icons/stamp_icons/large_stamp-cap.png', "stamp-qm" = 'icons/stamp_icons/large_stamp-qm.png', "stamp-law" = 'icons/stamp_icons/large_stamp-law.png' - ) - -/datum/asset/spritesheet/simple/minesweeper - name = "minesweeper" - assets = list( - "1" = 'icons/UI_Icons/minesweeper_tiles/one.png', - "2" = 'icons/UI_Icons/minesweeper_tiles/two.png', - "3" = 'icons/UI_Icons/minesweeper_tiles/three.png', - "4" = 'icons/UI_Icons/minesweeper_tiles/four.png', - "5" = 'icons/UI_Icons/minesweeper_tiles/five.png', - "6" = 'icons/UI_Icons/minesweeper_tiles/six.png', - "7" = 'icons/UI_Icons/minesweeper_tiles/seven.png', - "8" = 'icons/UI_Icons/minesweeper_tiles/eight.png', - "empty" = 'icons/UI_Icons/minesweeper_tiles/empty.png', - "flag" = 'icons/UI_Icons/minesweeper_tiles/flag.png', - "hidden" = 'icons/UI_Icons/minesweeper_tiles/hidden.png', - "mine" = 'icons/UI_Icons/minesweeper_tiles/mine.png', - "minehit" = 'icons/UI_Icons/minesweeper_tiles/minehit.png' - ) - -/datum/asset/spritesheet/simple/pills - name = "pills" - assets = list( - "pill1" = 'icons/UI_Icons/Pills/pill1.png', - "pill2" = 'icons/UI_Icons/Pills/pill2.png', - "pill3" = 'icons/UI_Icons/Pills/pill3.png', - "pill4" = 'icons/UI_Icons/Pills/pill4.png', - "pill5" = 'icons/UI_Icons/Pills/pill5.png', - "pill6" = 'icons/UI_Icons/Pills/pill6.png', - "pill7" = 'icons/UI_Icons/Pills/pill7.png', - "pill8" = 'icons/UI_Icons/Pills/pill8.png', - "pill9" = 'icons/UI_Icons/Pills/pill9.png', - "pill10" = 'icons/UI_Icons/Pills/pill10.png', - "pill11" = 'icons/UI_Icons/Pills/pill11.png', - "pill12" = 'icons/UI_Icons/Pills/pill12.png', - "pill13" = 'icons/UI_Icons/Pills/pill13.png', - "pill14" = 'icons/UI_Icons/Pills/pill14.png', - "pill15" = 'icons/UI_Icons/Pills/pill15.png', - "pill16" = 'icons/UI_Icons/Pills/pill16.png', - "pill17" = 'icons/UI_Icons/Pills/pill17.png', - "pill18" = 'icons/UI_Icons/Pills/pill18.png', - "pill19" = 'icons/UI_Icons/Pills/pill19.png', - "pill20" = 'icons/UI_Icons/Pills/pill20.png', - "pill21" = 'icons/UI_Icons/Pills/pill21.png', - "pill22" = 'icons/UI_Icons/Pills/pill22.png', + //"stamp-chap" = 'icons/stamp_icons/large_stamp-chap.png', + //"stamp-mime" = 'icons/stamp_icons/large_stamp-mime.png', + //"stamp-centcom" = 'icons/stamp_icons/large_stamp-centcom.png', + //"stamp-syndicate" = 'icons/stamp_icons/large_stamp-syndicate.png' ) /datum/asset/simple/IRV @@ -573,23 +164,20 @@ GLOBAL_LIST_EMPTY(asset_datums) ) /datum/asset/simple/jquery - verify = FALSE assets = list( "jquery.min.js" = 'code/modules/goonchat/browserassets/js/jquery.min.js', ) /datum/asset/simple/goonchat - verify = FALSE assets = list( "json2.min.js" = 'code/modules/goonchat/browserassets/js/json2.min.js', "browserOutput.js" = 'code/modules/goonchat/browserassets/js/browserOutput.js', "browserOutput.css" = 'code/modules/goonchat/browserassets/css/browserOutput.css', - "browserOutput_dark.css" = 'code/modules/goonchat/browserassets/css/browserOutput_dark.css', + "browserOutput_dark.css" = 'code/modules/goonchat/browserassets/css/browserOutput_dark.css', //dark theme, cit specific "browserOutput_light.css" = 'code/modules/goonchat/browserassets/css/browserOutput_light.css' ) /datum/asset/simple/fontawesome - verify = FALSE assets = list( "fa-regular-400.eot" = 'html/font-awesome/webfonts/fa-regular-400.eot', "fa-regular-400.woff" = 'html/font-awesome/webfonts/fa-regular-400.woff', @@ -630,6 +218,90 @@ GLOBAL_LIST_EMPTY(asset_datums) "none_button.png" = 'html/none_button.png', ) +/datum/asset/spritesheet/simple/minesweeper + name = "minesweeper" + assets = list( + "1" = 'icons/UI_Icons/minesweeper_tiles/one.png', + "2" = 'icons/UI_Icons/minesweeper_tiles/two.png', + "3" = 'icons/UI_Icons/minesweeper_tiles/three.png', + "4" = 'icons/UI_Icons/minesweeper_tiles/four.png', + "5" = 'icons/UI_Icons/minesweeper_tiles/five.png', + "6" = 'icons/UI_Icons/minesweeper_tiles/six.png', + "7" = 'icons/UI_Icons/minesweeper_tiles/seven.png', + "8" = 'icons/UI_Icons/minesweeper_tiles/eight.png', + "empty" = 'icons/UI_Icons/minesweeper_tiles/empty.png', + "flag" = 'icons/UI_Icons/minesweeper_tiles/flag.png', + "hidden" = 'icons/UI_Icons/minesweeper_tiles/hidden.png', + "mine" = 'icons/UI_Icons/minesweeper_tiles/mine.png', + "minehit" = 'icons/UI_Icons/minesweeper_tiles/minehit.png' + ) + +/* Port the app game thing +/datum/asset/simple/arcade + assets = list( + "boss1.gif" = 'icons/UI_Icons/Arcade/boss1.gif', + "boss2.gif" = 'icons/UI_Icons/Arcade/boss2.gif', + "boss3.gif" = 'icons/UI_Icons/Arcade/boss3.gif', + "boss4.gif" = 'icons/UI_Icons/Arcade/boss4.gif', + "boss5.gif" = 'icons/UI_Icons/Arcade/boss5.gif', + "boss6.gif" = 'icons/UI_Icons/Arcade/boss6.gif', + ) +*/ +/* +/datum/asset/spritesheet/simple/achievements + name ="achievements" + assets = list( + "default" = 'icons/UI_Icons/Achievements/default.png', + "basemisc" = 'icons/UI_Icons/Achievements/basemisc.png', + "baseboss" = 'icons/UI_Icons/Achievements/baseboss.png', + "baseskill" = 'icons/UI_Icons/Achievements/baseskill.png', + "bbgum" = 'icons/UI_Icons/Achievements/Boss/bbgum.png', + "colossus" = 'icons/UI_Icons/Achievements/Boss/colossus.png', + "hierophant" = 'icons/UI_Icons/Achievements/Boss/hierophant.png', + "legion" = 'icons/UI_Icons/Achievements/Boss/legion.png', + "miner" = 'icons/UI_Icons/Achievements/Boss/miner.png', + "swarmer" = 'icons/UI_Icons/Achievements/Boss/swarmer.png', + "tendril" = 'icons/UI_Icons/Achievements/Boss/tendril.png', + "featofstrength" = 'icons/UI_Icons/Achievements/Misc/featofstrength.png', + "helbital" = 'icons/UI_Icons/Achievements/Misc/helbital.png', + "jackpot" = 'icons/UI_Icons/Achievements/Misc/jackpot.png', + "meteors" = 'icons/UI_Icons/Achievements/Misc/meteors.png', + "timewaste" = 'icons/UI_Icons/Achievements/Misc/timewaste.png', + "upgrade" = 'icons/UI_Icons/Achievements/Misc/upgrade.png', + "clownking" = 'icons/UI_Icons/Achievements/Misc/clownking.png', + "clownthanks" = 'icons/UI_Icons/Achievements/Misc/clownthanks.png', + "rule8" = 'icons/UI_Icons/Achievements/Misc/rule8.png', + "snail" = 'icons/UI_Icons/Achievements/Misc/snail.png', + "mining" = 'icons/UI_Icons/Achievements/Skills/mining.png', + ) +*/ +/datum/asset/spritesheet/simple/pills + name ="pills" + assets = list( + "pill1" = 'icons/UI_Icons/Pills/pill1.png', + "pill2" = 'icons/UI_Icons/Pills/pill2.png', + "pill3" = 'icons/UI_Icons/Pills/pill3.png', + "pill4" = 'icons/UI_Icons/Pills/pill4.png', + "pill5" = 'icons/UI_Icons/Pills/pill5.png', + "pill6" = 'icons/UI_Icons/Pills/pill6.png', + "pill7" = 'icons/UI_Icons/Pills/pill7.png', + "pill8" = 'icons/UI_Icons/Pills/pill8.png', + "pill9" = 'icons/UI_Icons/Pills/pill9.png', + "pill10" = 'icons/UI_Icons/Pills/pill10.png', + "pill11" = 'icons/UI_Icons/Pills/pill11.png', + "pill12" = 'icons/UI_Icons/Pills/pill12.png', + "pill13" = 'icons/UI_Icons/Pills/pill13.png', + "pill14" = 'icons/UI_Icons/Pills/pill14.png', + "pill15" = 'icons/UI_Icons/Pills/pill15.png', + "pill16" = 'icons/UI_Icons/Pills/pill16.png', + "pill17" = 'icons/UI_Icons/Pills/pill17.png', + "pill18" = 'icons/UI_Icons/Pills/pill18.png', + "pill19" = 'icons/UI_Icons/Pills/pill19.png', + "pill20" = 'icons/UI_Icons/Pills/pill20.png', + "pill21" = 'icons/UI_Icons/Pills/pill21.png', + "pill22" = 'icons/UI_Icons/Pills/pill22.png', + ) + //this exists purely to avoid meta by pre-loading all language icons. /datum/asset/language/register() for(var/path in typesof(/datum/language)) @@ -640,7 +312,7 @@ GLOBAL_LIST_EMPTY(asset_datums) /datum/asset/spritesheet/pipes name = "pipes" -/datum/asset/spritesheet/pipes/register() +/datum/asset/spritesheet/pipes/register() //we do not have chempipes for (var/each in list('icons/obj/atmospherics/pipes/pipe_item.dmi', 'icons/obj/atmospherics/pipes/disposal.dmi', 'icons/obj/atmospherics/pipes/transit_tube.dmi')) InsertAll("", each, GLOB.alldirs) ..() @@ -650,7 +322,7 @@ GLOBAL_LIST_EMPTY(asset_datums) name = "design" /datum/asset/spritesheet/research_designs/register() - for (var/path in subtypesof(/datum/design)) + for(var/path in subtypesof(/datum/design)) var/datum/design/D = path var/icon_file @@ -743,4 +415,9 @@ GLOBAL_LIST_EMPTY(asset_datums) "dna_discovered.gif" = 'html/dna_discovered.gif', "dna_undiscovered.gif" = 'html/dna_undiscovered.gif', "dna_extra.gif" = 'html/dna_extra.gif' -) + ) + +/datum/asset/simple/vv + assets = list( + "view_variables.css" = 'html/admin/view_variables.css' + ) diff --git a/code/modules/asset_cache/validate_assets.html b/code/modules/asset_cache/validate_assets.html new file mode 100644 index 0000000000..205a7f4dad --- /dev/null +++ b/code/modules/asset_cache/validate_assets.html @@ -0,0 +1,28 @@ + + + + + + + + + diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.dm b/code/modules/atmospherics/gasmixtures/gas_mixture.dm index 4ec12382a9..43e54dc2c7 100644 --- a/code/modules/atmospherics/gasmixtures/gas_mixture.dm +++ b/code/modules/atmospherics/gasmixtures/gas_mixture.dm @@ -167,6 +167,7 @@ GLOBAL_LIST_INIT(meta_gas_fusions, meta_gas_fusion_list()) if(!ispath(path)) path = gas_id2path(path) //a lot of these strings can't have embedded expressions (especially for mappers), so support for IDs needs to stick around set_moles(path, text2num(gas[id])) + archive() return 1 /datum/gas_mixture/react(datum/holder) diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index 616de2dc53..20a2638dcf 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -36,7 +36,7 @@ /obj/item/electronics/airalarm name = "air alarm electronics" icon_state = "airalarm_electronics" - custom_price = 50 + custom_price = PRICE_CHEAP /obj/item/wallframe/airalarm name = "air alarm frame" @@ -67,6 +67,7 @@ desc = "A machine that monitors atmosphere levels. Goes off if the area is dangerous." icon = 'icons/obj/monitors.dmi' icon_state = "alarm0" + plane = ABOVE_WALL_PLANE use_power = IDLE_POWER_USE idle_power_usage = 4 active_power_usage = 8 diff --git a/code/modules/atmospherics/machinery/atmosmachinery.dm b/code/modules/atmospherics/machinery/atmosmachinery.dm index 8f5ab7dd5e..97389848ba 100644 --- a/code/modules/atmospherics/machinery/atmosmachinery.dm +++ b/code/modules/atmospherics/machinery/atmosmachinery.dm @@ -17,6 +17,7 @@ active_power_usage = 0 power_channel = ENVIRON layer = GAS_PIPE_HIDDEN_LAYER //under wires + plane = ABOVE_WALL_PLANE resistance_flags = FIRE_PROOF max_integrity = 200 obj_flags = CAN_BE_HIT | ON_BLUEPRINTS diff --git a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm index 4e0c7c1eff..39a99148c2 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm @@ -7,6 +7,7 @@ name = "circulator/heat exchanger" desc = "A gas circulator pump and heat exchanger." icon_state = "circ-off-0" + plane = GAME_PLANE var/active = FALSE diff --git a/code/modules/atmospherics/machinery/components/components_base.dm b/code/modules/atmospherics/machinery/components/components_base.dm index bcf2e6f134..dc7c106035 100644 --- a/code/modules/atmospherics/machinery/components/components_base.dm +++ b/code/modules/atmospherics/machinery/components/components_base.dm @@ -31,7 +31,7 @@ var/turf/T = loc if(level == 2 || (istype(T) && !T.intact)) showpipe = TRUE - plane = GAME_PLANE + plane = ABOVE_WALL_PLANE else showpipe = FALSE plane = FLOOR_PLANE @@ -161,6 +161,9 @@ to_chat(user, "Access denied.") return UI_CLOSE +/obj/machinery/atmospherics/components/attack_ghost(mob/dead/observer/O) + . = ..() + atmosanalyzer_scan(airs, O, src, FALSE) // Tool acts diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index c189224f49..1f9e4ccac3 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -6,6 +6,7 @@ max_integrity = 350 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 30, "acid" = 30) layer = ABOVE_WINDOW_LAYER + plane = GAME_PLANE state_open = FALSE circuit = /obj/item/circuitboard/machine/cryo_tube pipe_flags = PIPING_ONE_PER_TURF | PIPING_DEFAULT_LAYER_ONLY @@ -15,8 +16,8 @@ var/volume = 100 var/efficiency = 1 - var/sleep_factor = 0.00125 - var/unconscious_factor = 0.001 + var/base_knockout = 30 SECONDS + var/knockout_factor = 1 var/heat_capacity = 20000 var/conduction_coefficient = 0.3 @@ -53,10 +54,9 @@ var/C for(var/obj/item/stock_parts/matter_bin/M in component_parts) C += M.rating - + // 2 bins total, so C ranges from 2 to 8. efficiency = initial(efficiency) * C - sleep_factor = initial(sleep_factor) * C - unconscious_factor = initial(unconscious_factor) * C + knockout_factor = initial(knockout_factor) / max(1, (C * 0.33)) heat_capacity = initial(heat_capacity) / C conduction_coefficient = initial(conduction_coefficient) * C @@ -188,8 +188,10 @@ if(air1.total_moles()) if(mob_occupant.bodytemperature < T0C) // Sleepytime. Why? More cryo magic. - mob_occupant.Sleeping((mob_occupant.bodytemperature * sleep_factor) * 2000) - mob_occupant.Unconscious((mob_occupant.bodytemperature * unconscious_factor) * 2000) + // temperature factor goes from 1 to about 2.5 + var/amount = max(1, (4 * log(T0C - mob_occupant.bodytemperature)) - 20) * knockout_factor * base_knockout + mob_occupant.Sleeping(amount) + mob_occupant.Unconscious(amount) if(beaker) if(reagent_transfer == 0) // Magically transfer reagents. Because cryo magic. beaker.reagents.trans_to(occupant, 1, efficiency * 0.25) // Transfer reagents. diff --git a/code/modules/atmospherics/machinery/components/unary_devices/tank.dm b/code/modules/atmospherics/machinery/components/unary_devices/tank.dm index 1ed9c17d82..2f3372462d 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/tank.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/tank.dm @@ -7,6 +7,7 @@ max_integrity = 800 density = TRUE layer = ABOVE_WINDOW_LAYER + plane = GAME_PLANE pipe_flags = PIPING_ONE_PER_TURF var/volume = 10000 //in liters var/gas_type = 0 diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm index 69340648d5..c57dcc6507 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm @@ -9,6 +9,7 @@ max_integrity = 300 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 30) layer = OBJ_LAYER + plane = GAME_PLANE circuit = /obj/item/circuitboard/machine/thermomachine ui_x = 300 ui_y = 230 diff --git a/code/modules/atmospherics/machinery/pipes/pipes.dm b/code/modules/atmospherics/machinery/pipes/pipes.dm index c466a422b2..4a6170c251 100644 --- a/code/modules/atmospherics/machinery/pipes/pipes.dm +++ b/code/modules/atmospherics/machinery/pipes/pipes.dm @@ -111,3 +111,10 @@ pipe_color = paint_color update_node_icon() return TRUE + +/obj/machinery/atmospherics/pipe/attack_ghost(mob/dead/observer/O) + . = ..() + if(parent) + atmosanalyzer_scan(parent.air, O, src, FALSE) + else + to_chat(O, "[src] doesn't have a pipenet, which is probably a bug.") diff --git a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm index 81a0e0bc40..445cc686f3 100644 --- a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm +++ b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm @@ -146,10 +146,14 @@ /obj/machinery/portable_atmospherics/analyzer_act(mob/living/user, obj/item/I) atmosanalyzer_scan(air_contents, user, src) -/obj/machinery/portable_atmospherics/attacked_by(obj/item/I, mob/user) +/obj/machinery/portable_atmospherics/attacked_by(obj/item/I, mob/user, attackchain_flags = NONE, damage_multiplier = 1) if(I.force < 10 && !(stat & BROKEN)) take_damage(0) else investigate_log("was smacked with \a [I] by [key_name(user)].", INVESTIGATE_ATMOS) add_fingerprint(user) ..() + +/obj/machinery/portable_atmospherics/attack_ghost(mob/dead/observer/O) + . = ..() + atmosanalyzer_scan(air_contents, O, src, FALSE) diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index f841ae20ca..fcdc564380 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -7,7 +7,7 @@ #define AMMO_DROP_LIFETIME 300 #define CTF_REQUIRED_PLAYERS 4 -/obj/item/twohanded/ctf +/obj/item/ctf name = "banner" icon = 'icons/obj/items_and_weapons.dmi' icon_state = "banner" @@ -16,6 +16,7 @@ righthand_file = 'icons/mob/inhands/equipment/banners_righthand.dmi' desc = "A banner with Nanotrasen's logo on it." slowdown = 2 + item_flags = SLOWS_WHILE_IN_HAND throw_speed = 0 throw_range = 1 force = 200 @@ -28,16 +29,20 @@ var/obj/effect/ctf/flag_reset/reset var/reset_path = /obj/effect/ctf/flag_reset -/obj/item/twohanded/ctf/Destroy() +/obj/item/ctf/Destroy() QDEL_NULL(reset) return ..() -/obj/item/twohanded/ctf/Initialize() +/obj/item/ctf/Initialize() . = ..() if(!reset) reset = new reset_path(get_turf(src)) -/obj/item/twohanded/ctf/process() +/obj/item/ctf/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed) + +/obj/item/ctf/process() if(is_ctf_target(loc)) //don't reset from someone's hands. return PROCESS_KILL if(world.time > reset_cooldown) @@ -49,7 +54,7 @@ STOP_PROCESSING(SSobj, src) //ATTACK HAND IGNORING PARENT RETURN VALUE -/obj/item/twohanded/ctf/attack_hand(mob/living/user) +/obj/item/ctf/attack_hand(mob/living/user) if(!is_ctf_target(user) && !anyonecanpickup) to_chat(user, "Non players shouldn't be moving the flag!") return @@ -73,7 +78,7 @@ STOP_PROCESSING(SSobj, src) ..() -/obj/item/twohanded/ctf/dropped(mob/user) +/obj/item/ctf/dropped(mob/user) ..() user.anchored = FALSE user.status_flags |= CANPUSH @@ -86,7 +91,7 @@ anchored = TRUE -/obj/item/twohanded/ctf/red +/obj/item/ctf/red name = "red flag" icon_state = "banner-red" item_state = "banner-red" @@ -95,7 +100,7 @@ reset_path = /obj/effect/ctf/flag_reset/red -/obj/item/twohanded/ctf/blue +/obj/item/ctf/blue name = "blue flag" icon_state = "banner-blue" item_state = "banner-blue" @@ -276,8 +281,8 @@ attack_ghost(ghost) /obj/machinery/capture_the_flag/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/twohanded/ctf)) - var/obj/item/twohanded/ctf/flag = I + if(istype(I, /obj/item/ctf)) + var/obj/item/ctf/flag = I if(flag.team != src.team) user.transferItemToLoc(flag, get_turf(flag.reset), TRUE) points++ @@ -294,7 +299,7 @@ if(istype(mob_area, /area/ctf)) to_chat(M, "[team] team wins!") to_chat(M, "Teams have been cleared. Click on the machines to vote to begin another round.") - for(var/obj/item/twohanded/ctf/W in M) + for(var/obj/item/ctf/W in M) M.dropItemToGround(W) M.dust() for(var/obj/machinery/control_point/control in GLOB.machines) @@ -335,7 +340,7 @@ var/list/ctf_object_typecache = typecacheof(list( /obj/machinery, /obj/effect/ctf, - /obj/item/twohanded/ctf + /obj/item/ctf )) for(var/atm in A) if (isturf(A) || ismob(A) || isarea(A)) diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index c11267a5f3..e91dfee034 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -661,5 +661,5 @@ /datum/outfit/lavaknight/captain name ="Cydonian Knight Captain" - l_pocket = /obj/item/twohanded/dualsaber/hypereutactic + l_pocket = /obj/item/dualsaber/hypereutactic id = /obj/item/card/id/knight/captain diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm index f714a86f22..129e6d7a2b 100644 --- a/code/modules/awaymissions/mission_code/Academy.dm +++ b/code/modules/awaymissions/mission_code/Academy.dm @@ -189,6 +189,8 @@ if(!ishuman(user) || !user.mind || (user.mind in SSticker.mode.wizards)) to_chat(user, "You feel the magic of the dice is restricted to ordinary humans! You should leave it alone.") user.dropItemToGround(src) + return + return ..() /obj/item/dice/d20/fate/proc/effect(var/mob/living/carbon/human/user,roll) diff --git a/code/modules/awaymissions/mission_code/Cabin.dm b/code/modules/awaymissions/mission_code/Cabin.dm index a13fecd11c..1b099a22db 100644 --- a/code/modules/awaymissions/mission_code/Cabin.dm +++ b/code/modules/awaymissions/mission_code/Cabin.dm @@ -1,20 +1,39 @@ /*Cabin areas*/ -/area/awaymission/snowforest - name = "Snow Forest" - icon_state = "away" - requires_power = FALSE - dynamic_lighting = DYNAMIC_LIGHTING_ENABLED - /area/awaymission/cabin name = "Cabin" icon_state = "away2" requires_power = TRUE dynamic_lighting = DYNAMIC_LIGHTING_ENABLED -/area/awaymission/snowforest/lumbermill +/area/awaymission/cabin/snowforest + name = "Snow Forest" + icon_state = "away" + dynamic_lighting = DYNAMIC_LIGHTING_DISABLED + +/area/awaymission/cabin/snowforest/sovietsurface + name = "Snow Forest" + icon_state = "awaycontent29" + requires_power = FALSE + +/area/awaymission/cabin/lumbermill name = "Lumbermill" icon_state = "away3" + requires_power = FALSE + dynamic_lighting = DYNAMIC_LIGHTING_DISABLED + +/area/awaymission/cabin/caves/sovietcave + name = "Soviet Bunker" + icon_state = "awaycontent4" + +/area/awaymission/cabin/caves + name = "North Snowdin Caves" + icon_state = "awaycontent15" + dynamic_lighting = DYNAMIC_LIGHTING_FORCED + +/area/awaymission/cabin/caves/mountain + name = "North Snowdin Mountains" + icon_state = "awaycontent24" /obj/structure/firepit name = "firepit" @@ -92,7 +111,7 @@ egg_type = null speak = list() -/*Cabin's forest*/ +/*Cabin's forest. Removed in the new cabin map since it was buggy and I prefer manual placement.*/ /datum/mapGenerator/snowy modules = list(/datum/mapGeneratorModule/bottomlayer/snow, \ /datum/mapGeneratorModule/snow/pineTrees, \ @@ -136,4 +155,4 @@ endTurfX = 159 endTurfY = 157 startTurfX = 37 - startTurfY = 35 + startTurfY = 35 \ No newline at end of file diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index fc797d227c..c7e2609436 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -475,43 +475,26 @@ /obj/effect/spawner/lootdrop/snowdin/dungeonlite name = "dungeon lite" - loot = list(/obj/item/melee/classic_baton = 11, - /obj/item/melee/classic_baton/telescopic = 12, - /obj/item/book/granter/spell/smoke = 10, + loot = list(/obj/item/book/granter/spell/smoke = 10, /obj/item/book/granter/spell/blind = 10, /obj/item/storage/firstaid/regular = 45, /obj/item/storage/firstaid/toxin = 35, /obj/item/storage/firstaid/brute = 27, /obj/item/storage/firstaid/fire = 27, /obj/item/storage/toolbox/syndicate = 12, - /obj/item/grenade/plastic/c4 = 7, /obj/item/grenade/clusterbuster/smoke = 15, /obj/item/clothing/under/chameleon = 13, - /obj/item/clothing/shoes/chameleon/noslip = 10, /obj/item/borg/upgrade/ddrill = 3) /obj/effect/spawner/lootdrop/snowdin/dungeonmid name = "dungeon mid" - loot = list(/obj/item/defibrillator/compact = 6, - /obj/item/storage/firstaid/tactical = 35, - /obj/item/shield/energy = 6, - /obj/item/shield/riot/tele = 12, - /obj/item/dnainjector/lasereyesmut = 7, - /obj/item/gun/magic/wand/fireball/inert = 3, + loot = list(/obj/item/shield/riot = 12, /obj/item/pneumatic_cannon = 15, - /obj/item/melee/transforming/energy/sword = 7, - /obj/item/book/granter/spell/knock = 15, - /obj/item/book/granter/spell/summonitem = 20, - /obj/item/book/granter/spell/forcewall = 17, /obj/item/storage/backpack/holding = 12, - /obj/item/grenade/spawnergrenade/manhacks = 6, - /obj/item/grenade/spawnergrenade/spesscarp = 7, - /obj/item/grenade/clusterbuster/inferno = 3, /obj/item/stack/sheet/mineral/diamond{amount = 15} = 10, /obj/item/stack/sheet/mineral/uranium{amount = 15} = 10, /obj/item/stack/sheet/mineral/plasma{amount = 15} = 10, /obj/item/stack/sheet/mineral/gold{amount = 15} = 10, - /obj/item/book/granter/spell/barnyard = 4, /obj/item/pickaxe/drill/diamonddrill = 6, /obj/item/borg/upgrade/vtec = 7, /obj/item/borg/upgrade/disablercooler = 7) @@ -519,21 +502,12 @@ /obj/effect/spawner/lootdrop/snowdin/dungeonheavy name = "dungeon heavy" - loot = list(/obj/item/twohanded/singularityhammer = 25, - /obj/item/twohanded/mjollnir = 10, - /obj/item/twohanded/fireaxe = 25, + loot = list(/obj/item/fireaxe = 25, /obj/item/organ/brain/alien = 17, - /obj/item/twohanded/dualsaber = 15, - /obj/item/organ/heart/demon = 7, - /obj/item/gun/ballistic/automatic/c20r/unrestricted = 16, - /obj/item/gun/magic/wand/resurrection/inert = 15, - /obj/item/gun/magic/wand/resurrection = 10, - /obj/item/uplink/old = 2, - /obj/item/book/granter/spell/charge = 12, - /obj/item/grenade/clusterbuster/spawner_manhacks = 15, - /obj/item/book/granter/spell/fireball = 10, + /obj/item/organ/heart/cursed = 7, + /obj/item/book/granter/spell/forcewall = 17, + /obj/item/gun/magic/wand/fireball/inert = 3, /obj/item/pickaxe/drill/jackhammer = 30, - /obj/item/borg/upgrade/syndicate = 13, /obj/item/borg/upgrade/selfrepair = 17) /obj/effect/spawner/lootdrop/snowdin/dungeonmisc @@ -544,7 +518,7 @@ loot = list(/obj/item/stack/sheet/mineral/snow{amount = 25} = 10, /obj/item/toy/snowball = 15, /obj/item/shovel = 10, - /obj/item/twohanded/spear = 8, + /obj/item/spear = 8, ) //special items//-- diff --git a/code/modules/awaymissions/mission_code/spacebattle.dm b/code/modules/awaymissions/mission_code/spacebattle.dm deleted file mode 100644 index a477a223b2..0000000000 --- a/code/modules/awaymissions/mission_code/spacebattle.dm +++ /dev/null @@ -1,51 +0,0 @@ -//Spacebattle Areas - -/area/awaymission/spacebattle - name = "Space Battle" - icon_state = "awaycontent1" - requires_power = FALSE - -/area/awaymission/spacebattle/cruiser - name = "Nanotrasen Cruiser" - icon_state = "awaycontent2" - -/area/awaymission/spacebattle/syndicate1 - name = "Syndicate Assault Ship 1" - icon_state = "awaycontent3" - -/area/awaymission/spacebattle/syndicate2 - name = "Syndicate Assault Ship 2" - icon_state = "awaycontent4" - -/area/awaymission/spacebattle/syndicate3 - name = "Syndicate Assault Ship 3" - icon_state = "awaycontent5" - -/area/awaymission/spacebattle/syndicate4 - name = "Syndicate War Sphere 1" - icon_state = "awaycontent6" - -/area/awaymission/spacebattle/syndicate5 - name = "Syndicate War Sphere 2" - icon_state = "awaycontent7" - -/area/awaymission/spacebattle/syndicate6 - name = "Syndicate War Sphere 3" - icon_state = "awaycontent8" - -/area/awaymission/spacebattle/syndicate7 - name = "Syndicate Fighter" - icon_state = "awaycontent9" - -/area/awaymission/spacebattle/secret - name = "Hidden Chamber" - icon_state = "awaycontent10" - -/mob/living/simple_animal/hostile/syndicate/ranged/spacebattle - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier, - /obj/item/gun/ballistic/automatic/c20r, - /obj/item/shield/energy) - -/mob/living/simple_animal/hostile/syndicate/melee/spacebattle - deathmessage = "falls limp as they release their grip from the energy weapons, activating their self-destruct function!" - loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) diff --git a/code/modules/cargo/bounties/assistant.dm b/code/modules/cargo/bounties/assistant.dm index 4af28d78cc..744c01a257 100644 --- a/code/modules/cargo/bounties/assistant.dm +++ b/code/modules/cargo/bounties/assistant.dm @@ -31,7 +31,7 @@ description = "CentCom's security forces are going through budget cuts. You will be paid if you ship a set of spears." reward = 1000 required_count = 5 - wanted_types = list(/obj/item/twohanded/spear) + wanted_types = list(/obj/item/spear) /datum/bounty/item/assistant/toolbox name = "Toolboxes" @@ -134,7 +134,7 @@ description = "Central Command is looking to commission a new BirdBoat-class station. You've been ordered to supply the potted plants." reward = 2000 required_count = 8 - wanted_types = list(/obj/item/twohanded/required/kirbyplants) + wanted_types = list(/obj/item/kirbyplants) // /datum/bounty/item/assistant/earmuffs // name = "Earmuffs" @@ -160,7 +160,7 @@ name = "Chainsaw" description = "The chef at CentCom is having trouble butchering her animals. She requests one chainsaw, please." reward = 2500 - wanted_types = list(/obj/item/twohanded/required/chainsaw) + wanted_types = list(/obj/item/chainsaw) /datum/bounty/item/assistant/ied name = "IED" diff --git a/code/modules/cargo/bounties/medical.dm b/code/modules/cargo/bounties/medical.dm index 7afc0d8786..c1f8d9c9d0 100644 --- a/code/modules/cargo/bounties/medical.dm +++ b/code/modules/cargo/bounties/medical.dm @@ -121,7 +121,7 @@ /datum/bounty/item/medical/defibrillator name = "New defibillators" - description = "After years of storge our defib units have become liabilities. Please send us some new ones." + description = "After years of storage our defibrillation units have worn out. Please send us some new ones." reward = 2250 required_count = 5 wanted_types = list(/obj/item/defibrillator) diff --git a/code/modules/cargo/bounties/mining.dm b/code/modules/cargo/bounties/mining.dm index 1f3266af62..cd8d5707d8 100644 --- a/code/modules/cargo/bounties/mining.dm +++ b/code/modules/cargo/bounties/mining.dm @@ -22,7 +22,7 @@ name = "Bone Axe" description = "Station 12 has had their fire axes stolen by marauding clowns. Ship them a bone axe as a replacement." reward = 3500 - wanted_types = list(/obj/item/twohanded/fireaxe/boneaxe) + wanted_types = list(/obj/item/fireaxe/boneaxe) /datum/bounty/item/mining/bone_armor name = "Bone Armor" diff --git a/code/modules/cargo/bounties/science.dm b/code/modules/cargo/bounties/science.dm index a4632f7ed0..ffa608f8fd 100644 --- a/code/modules/cargo/bounties/science.dm +++ b/code/modules/cargo/bounties/science.dm @@ -119,7 +119,7 @@ /datum/bounty/item/science/noneactive_reactivearmor name = "Reactive Armor Shells" - description = "Do to the breakthroughs in anomalies, we can not keep up in making reactive armor shells, can you send us a few?" + description = "Due to the breakthroughs in anomalies, we can not keep up in making reactive armor shells, can you send us a few?" reward = 2000 required_count = 5 wanted_types = list(/obj/item/reactive_armour_shell, /obj/item/clothing/suit/armor/reactive) @@ -138,14 +138,14 @@ /datum/bounty/item/science/anomaly_neutralizer name = "Anomaly Neutralizers" - description = "An idea for a long time was to use an unstable Supermatter Shard to help create the breeding grounds for an unstable part of space to harvest any anomalies we want. It worked a little too well and now were out of anomaly neutralizers please send us a baker's dozen." + description = "An idea for a long time was to use an unstable Supermatter Shard to help create the breeding grounds for an unstable part of space to harvest any anomalies we want. It worked a little too well and now we're out of anomaly neutralizers, please send us a baker's dozen." reward = 2500 required_count = 13 wanted_types = list(/obj/item/anomaly_neutralizer) /datum/bounty/item/science/integrated_circuit_printer name = "Integrated Circuit Printer" - description = "due to a paperwork error, a newly made integrated circuit manufacturer line is missing three of its printers needed to operate. Until the paper work is corrected we are outsourcing this problem, so please send us three integrated circuit printers." + description = "Due to a paperwork error, a newly made integrated circuit manufacturer line is missing three of its printers needed to operate. Until the paper work is corrected we are outsourcing this problem, so please send us three integrated circuit printers." reward = 2000 required_count = 3 wanted_types = list(/obj/item/integrated_circuit_printer) @@ -159,7 +159,7 @@ /datum/bounty/item/science/nanite_trash name = "Nanite Based Gear" - description = "CC wants to make nanite based gear available to a new wing of devolvement but lacks the hand held tools to get it full up and running. Please send us any you have." + description = "CC wants to make nanite based gear available to a new wing of development but lacks the hand held tools to get it fully up and running. Please send us any you have." reward = 2500 required_count = 20 //Its just metal wanted_types = list( /obj/item/nanite_remote, /obj/item/nanite_remote/comm, /obj/item/nanite_scanner) diff --git a/code/modules/cargo/console.dm b/code/modules/cargo/console.dm index d1d895ca69..d010cee761 100644 --- a/code/modules/cargo/console.dm +++ b/code/modules/cargo/console.dm @@ -18,6 +18,7 @@ var/obj/item/radio/headset/radio /// var that tracks message cooldown var/message_cooldown + var/list/loaded_coupons light_color = "#E2853D"//orange @@ -119,6 +120,7 @@ var/list/data = list() data["requestonly"] = requestonly data["supplies"] = list() + data["emagged"] = obj_flags & EMAGGED for(var/pack in SSshuttle.supply_packs) var/datum/supply_pack/P = SSshuttle.supply_packs[pack] if(!data["supplies"][P.group]) @@ -133,7 +135,10 @@ "cost" = P.cost, "id" = pack, "desc" = P.desc || P.name, // If there is a description, use it. Otherwise use the pack's name. - "access" = P.access + "private_goody" = P.goody == PACK_GOODY_PRIVATE, + "goody" = P.goody == PACK_GOODY_PUBLIC, + "access" = P.access, + "can_private_buy" = P.can_private_buy )) return data @@ -195,9 +200,10 @@ rank = "Silicon" var/datum/bank_account/account - if(self_paid && ishuman(usr)) - var/mob/living/carbon/human/H = usr - var/obj/item/card/id/id_card = H.get_idcard(TRUE) + if(self_paid) + if(!pack.can_private_buy && !(obj_flags & EMAGGED)) + return + var/obj/item/card/id/id_card = usr.get_idcard(TRUE) if(!istype(id_card)) say("No ID card detected.") return @@ -212,8 +218,22 @@ if(isnull(reason) || ..()) return + if(pack.goody == PACK_GOODY_PRIVATE && !self_paid) + playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + say("ERROR: Private small crates may only be purchased by private accounts.") + return + + var/obj/item/coupon/applied_coupon + for(var/i in loaded_coupons) + var/obj/item/coupon/coupon_check = i + if(pack.type == coupon_check.discounted_pack) + say("Coupon found! [round(coupon_check.discount_pct_off * 100)]% off applied!") + coupon_check.moveToNullspace() + applied_coupon = coupon_check + break + var/turf/T = get_turf(src) - var/datum/supply_order/SO = new(pack, name, rank, ckey, reason, account) + var/datum/supply_order/SO = new(pack, name, rank, ckey, reason, account, applied_coupon) SO.generateRequisition(T) if(requestonly && !self_paid) SSshuttle.requestlist += SO @@ -226,6 +246,9 @@ var/id = text2num(params["id"]) for(var/datum/supply_order/SO in SSshuttle.shoppinglist) if(SO.id == id) + if(SO.applied_coupon) + say("Coupon refunded.") + SO.applied_coupon.forceMove(get_turf(src)) SSshuttle.shoppinglist -= SO . = TRUE break diff --git a/code/modules/cargo/coupon.dm b/code/modules/cargo/coupon.dm new file mode 100644 index 0000000000..c77050c530 --- /dev/null +++ b/code/modules/cargo/coupon.dm @@ -0,0 +1,50 @@ + +#define COUPON_OMEN "omen" + +/obj/item/coupon + name = "coupon" + desc = "It doesn't matter if you didn't want it before, what matters now is that you've got a coupon for it!" + icon_state = "data_1" + icon = 'icons/obj/card.dmi' + item_flags = NOBLUDGEON + w_class = WEIGHT_CLASS_TINY + var/datum/supply_pack/discounted_pack + var/discount_pct_off = 0.05 + var/obj/machinery/computer/cargo/inserted_console + +/// Choose what our prize is :D +/obj/item/coupon/proc/generate() + discounted_pack = pick(subtypesof(/datum/supply_pack/goody)) + var/list/chances = list("0.10" = 4, "0.15" = 8, "0.20" = 10, "0.25" = 8, "0.50" = 4, COUPON_OMEN = 1) + discount_pct_off = pickweight(chances) + if(discount_pct_off == COUPON_OMEN) + name = "coupon - fuck you" + desc = "The small text reads, 'You will be slaughtered'... That doesn't sound right, does it?" + if(ismob(loc)) + var/mob/M = loc + to_chat(M, "The coupon reads 'fuck you' in large, bold text... is- is that a prize, or?") + M.AddComponent(/datum/component/omen, TRUE, src) + else + discount_pct_off = text2num(discount_pct_off) + name = "coupon - [round(discount_pct_off * 100)]% off [initial(discounted_pack.name)]" + +/obj/item/coupon/attack_obj(obj/O, mob/living/user) + if(!istype(O, /obj/machinery/computer/cargo)) + return ..() + if(discount_pct_off == COUPON_OMEN) + to_chat(user, "\The [O] validates the coupon as authentic, but refuses to accept it...") + O.say("Coupon fulfillment already in progress...") + return + + inserted_console = O + LAZYADD(inserted_console.loaded_coupons, src) + inserted_console.say("Coupon for [initial(discounted_pack.name)] applied!") + forceMove(inserted_console) + +/obj/item/coupon/Destroy() + if(inserted_console) + LAZYREMOVE(inserted_console.loaded_coupons, src) + inserted_console = null + . = ..() + +#undef COUPON_OMEN diff --git a/code/modules/cargo/exports.dm b/code/modules/cargo/exports.dm index 0a1346ba01..671c22bde5 100644 --- a/code/modules/cargo/exports.dm +++ b/code/modules/cargo/exports.dm @@ -68,7 +68,7 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they var/unit_name = "" // Unit name. Only used in "Received [total_amount] [name]s [message]." message var/message = "" var/cost = 100 // Cost of item, in cargo credits. Must not alow for infinite price dupes, see above. - var/k_elasticity = 1/300 //coefficient used in marginal price calculation that roughly corresponds to the inverse of price elasticity, or "quantity elasticity" - CIT EDIT 1/30 - > 0 + var/k_elasticity = 1/100 //coefficient used in marginal price calculation that roughly corresponds to the inverse of price elasticity, or "quantity elasticity" - CIT EDIT 1/30 - > 100 var/list/export_types = list() // Type of the exported object. If none, the export datum is considered base type. var/include_subtypes = TRUE // Set to FALSE to make the datum apply only to a strict type. var/list/exclude_types = list() // Types excluded from export diff --git a/code/modules/cargo/exports/gear.dm b/code/modules/cargo/exports/gear.dm index 8dba7f69da..646e1c6e47 100644 --- a/code/modules/cargo/exports/gear.dm +++ b/code/modules/cargo/exports/gear.dm @@ -1,5 +1,6 @@ /datum/export/gear include_subtypes = FALSE + k_elasticity = 0 //We always want clothing/gear //blanket /datum/export/gear/hat diff --git a/code/modules/cargo/exports/large_objects.dm b/code/modules/cargo/exports/large_objects.dm index 7986a78461..2943130a19 100644 --- a/code/modules/cargo/exports/large_objects.dm +++ b/code/modules/cargo/exports/large_objects.dm @@ -111,7 +111,7 @@ include_subtypes = FALSE /datum/export/large/am_control_unit - cost = 4000 + cost = 2000 unit_name = "antimatter control unit" export_types = list(/obj/machinery/power/am_control_unit) @@ -169,10 +169,10 @@ /datum/export/large/gas_canister/get_cost(obj/O) var/obj/machinery/portable_atmospherics/canister/C = O var/worth = 10 - worth += C.air_contents.get_moles(/datum/gas/bz)*4 + worth += C.air_contents.get_moles(/datum/gas/bz)*3 worth += C.air_contents.get_moles(/datum/gas/stimulum)*25 worth += C.air_contents.get_moles(/datum/gas/hypernoblium)*1000 - worth += C.air_contents.get_moles(/datum/gas/miasma)*4 + worth += C.air_contents.get_moles(/datum/gas/miasma)*2 worth += C.air_contents.get_moles(/datum/gas/tritium)*7 worth += C.air_contents.get_moles(/datum/gas/pluoxium)*6 worth += C.air_contents.get_moles(/datum/gas/nitryl)*30 @@ -301,7 +301,7 @@ export_types = list(/obj/mecha/combat/durand) /datum/export/large/mech/phazon - cost = 35000 //Little over half do to needing a core + cost = 35000 //Little over half due to needing a core unit_name = "working phazon" export_types = list(/obj/mecha/combat/phazon) diff --git a/code/modules/cargo/exports/organs_robotics.dm b/code/modules/cargo/exports/organs_robotics.dm index 7a77568cc7..a6c5ee93ca 100644 --- a/code/modules/cargo/exports/organs_robotics.dm +++ b/code/modules/cargo/exports/organs_robotics.dm @@ -2,15 +2,14 @@ /datum/export/robotics include_subtypes = FALSE - k_elasticity = 0 //ALWAYS worth selling upgrades + k_elasticity = 1/50 /datum/export/implant include_subtypes = FALSE - k_elasticity = 0 //ALWAYS worth selling upgrades + k_elasticity = 1/50 /datum/export/organs include_subtypes = TRUE - k_elasticity = 0 //ALWAYS worth selling orgains /datum/export/implant/autodoc cost = 150 @@ -60,11 +59,6 @@ unit_name = "thrusters set implant" export_types = list(/obj/item/organ/cyberimp/chest/thrusters) -/datum/export/implant/thrusters - cost = 150 - unit_name = "thrusters set implant" - export_types = list(/obj/item/organ/cyberimp/chest/thrusters) - /datum/export/implant/arm cost = 200 unit_name = "arm set implant" diff --git a/code/modules/cargo/exports/parts.dm b/code/modules/cargo/exports/parts.dm index 660d79cae4..da3c0cf31d 100644 --- a/code/modules/cargo/exports/parts.dm +++ b/code/modules/cargo/exports/parts.dm @@ -110,7 +110,7 @@ include_subtypes = FALSE /datum/export/glasswork_lens - cost = 1800 + cost = 1600 unit_name = "small glass lens" export_types = list(/obj/item/glasswork/glass_base/lens) @@ -133,13 +133,13 @@ include_subtypes = FALSE /datum/export/glasswork_teaplate - cost = 1200 + cost = 1000 unit_name = "tea gear" export_types = list(/obj/item/tea_plate) include_subtypes = FALSE /datum/export/glasswork_teacup - cost = 1800 + cost = 1600 unit_name = "tea gear" export_types = list(/obj/item/tea_cup) include_subtypes = FALSE diff --git a/code/modules/cargo/exports/sheets.dm b/code/modules/cargo/exports/sheets.dm index be0d2d6bee..120bfbe5e4 100644 --- a/code/modules/cargo/exports/sheets.dm +++ b/code/modules/cargo/exports/sheets.dm @@ -120,12 +120,6 @@ message = "of cloth" export_types = list(/obj/item/stack/sheet/cloth) -/datum/export/stack/silk - cost = 200 //The new plasma - unit_name = "sheets" - message = "of silk" - export_types = list(/obj/item/stack/sheet/silk) - /datum/export/stack/duracloth cost = 40 unit_name = "sheets" diff --git a/code/modules/cargo/exports/tools.dm b/code/modules/cargo/exports/tools.dm index a68d7238b5..6769dfec40 100644 --- a/code/modules/cargo/exports/tools.dm +++ b/code/modules/cargo/exports/tools.dm @@ -1,4 +1,7 @@ -/datum/export/toolbox +/datum/export/tool + k_elasticity = 1/500 //Tool selling almost always find a target + +/datum/export/tool/toolbox cost = 6 unit_name = "toolbox" export_types = list(/obj/item/storage/toolbox) @@ -29,93 +32,93 @@ // Lights/Eletronic -/datum/export/lights +/datum/export/tool/lights cost = 10 unit_name = "light fixer" export_types = list(/obj/item/wallframe/light_fixture) include_subtypes = TRUE -/datum/export/apc_board +/datum/export/tool/apc_board cost = 5 unit_name = "apc electronics" export_types = list(/obj/item/electronics/apc) include_subtypes = TRUE -/datum/export/apc_frame +/datum/export/tool/apc_frame cost = 3 unit_name = "apc frame" export_types = list(/obj/item/wallframe/apc) include_subtypes = TRUE -/datum/export/floodlights +/datum/export/tool/floodlights cost = 15 unit_name = "floodlight fixer" export_types = list(/obj/structure/floodlight_frame) include_subtypes = TRUE -/datum/export/bolbstubes +/datum/export/tool/bolbstubes cost = 1 //Time unit_name = "light replacement" export_types = list(/obj/item/light/tube, /obj/item/light/bulb) -/datum/export/lightreplacer +/datum/export/tool/lightreplacer cost = 20 unit_name = "lightreplacer" export_types = list(/obj/item/lightreplacer) // Basic tools -/datum/export/basicmining +/datum/export/tool/basicmining cost = 30 unit_name = "basic mining tool" export_types = list(/obj/item/pickaxe, /obj/item/pickaxe/mini, /obj/item/shovel, /obj/item/resonator) include_subtypes = FALSE -/datum/export/upgradedmining +/datum/export/tool/upgradedmining cost = 80 unit_name = "mining tool" export_types = list(/obj/item/pickaxe/silver, /obj/item/pickaxe/drill, /obj/item/gun/energy/plasmacutter, /obj/item/resonator/upgraded) include_subtypes = FALSE -/datum/export/advdmining +/datum/export/tool/advdmining cost = 150 unit_name = "advanced mining tool" export_types = list(/obj/item/pickaxe/diamond, /obj/item/pickaxe/drill/diamonddrill, /obj/item/pickaxe/drill/jackhammer, /obj/item/gun/energy/plasmacutter/adv) include_subtypes = FALSE -/datum/export/screwdriver +/datum/export/tool/screwdriver cost = 2 unit_name = "screwdriver" export_types = list(/obj/item/screwdriver) include_subtypes = FALSE -/datum/export/wrench +/datum/export/tool/wrench cost = 2 unit_name = "wrench" export_types = list(/obj/item/wrench) -/datum/export/crowbar +/datum/export/tool/crowbar cost = 2 unit_name = "crowbar" export_types = list(/obj/item/crowbar) -/datum/export/wirecutters +/datum/export/tool/wirecutters cost = 2 unit_name = "pair" message = "of wirecutters" export_types = list(/obj/item/wirecutters) -/datum/export/weldingtool +/datum/export/tool/weldingtool cost = 5 unit_name = "welding tool" export_types = list(/obj/item/weldingtool) include_subtypes = FALSE -/datum/export/weldingtool/emergency +/datum/export/tool/weldingtool/emergency cost = 2 unit_name = "emergency welding tool" export_types = list(/obj/item/weldingtool/mini) -/datum/export/weldingtool/industrial +/datum/export/tool/weldingtool/industrial cost = 10 unit_name = "industrial welding tool" export_types = list(/obj/item/weldingtool/largetank, /obj/item/weldingtool/hugetank) @@ -131,23 +134,23 @@ unit_name = "pocket fire extinguisher" export_types = list(/obj/item/extinguisher/mini) -/datum/export/flashlight +/datum/export/tool/flashlight cost = 3 unit_name = "flashlight" export_types = list(/obj/item/flashlight) include_subtypes = FALSE -/datum/export/flashlight/flare +/datum/export/tool/flashlight/flare cost = 2 unit_name = "flare" export_types = list(/obj/item/flashlight/flare) -/datum/export/flashlight/seclite +/datum/export/tool/flashlight/seclite cost = 5 unit_name = "seclite" export_types = list(/obj/item/flashlight/seclite) -/datum/export/analyzer +/datum/export/tool/analyzer cost = 5 unit_name = "analyzer" export_types = list(/obj/item/analyzer) @@ -163,32 +166,32 @@ export_types = list(/obj/item/radio) exclude_types = list(/obj/item/radio/mech) -/datum/export/rcd +/datum/export/tool/rcd cost = 100 unit_name = "rapid construction device" export_types = list(/obj/item/construction/rcd) -/datum/export/rcd_ammo +/datum/export/tool/rcd_ammo cost = 60 unit_name = "compressed matter cardridge" export_types = list(/obj/item/rcd_ammo) -/datum/export/rpd +/datum/export/tool/rpd cost = 100 unit_name = "rapid piping device" export_types = list(/obj/item/pipe_dispenser) -/datum/export/rld +/datum/export/tool/rld cost = 150 unit_name = "rapid light device" export_types = list(/obj/item/construction/rld) -/datum/export/rped +/datum/export/tool/rped cost = 100 unit_name = "rapid part exchange device" export_types = list(/obj/item/storage/part_replacer) -/datum/export/bsrped +/datum/export/tool/bsrped cost = 200 unit_name = "blue space part exchange device" export_types = list(/obj/item/storage/part_replacer/bluespace) diff --git a/code/modules/cargo/exports/weapons.dm b/code/modules/cargo/exports/weapons.dm index 2342603bde..983348a358 100644 --- a/code/modules/cargo/exports/weapons.dm +++ b/code/modules/cargo/exports/weapons.dm @@ -267,7 +267,7 @@ /datum/export/weapon/duelsaber cost = 360 //Get it? unit_name = "energy saber" - export_types = list(/obj/item/twohanded/dualsaber) + export_types = list(/obj/item/dualsaber) /datum/export/weapon/esword cost = 130 diff --git a/code/modules/cargo/gondolapod.dm b/code/modules/cargo/gondolapod.dm index 1b4ebd6c1a..be2db06346 100644 --- a/code/modules/cargo/gondolapod.dm +++ b/code/modules/cargo/gondolapod.dm @@ -2,9 +2,12 @@ name = "gondola" real_name = "gondola" desc = "The silent walker. This one seems to be part of a delivery agency." - response_help = "pets" - response_disarm = "bops" - response_harm = "kicks" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "bops" + response_disarm_simple = "bop" + response_harm_continuous = "kicks" + response_harm_simple = "kick" faction = list("gondola") turns_per_move = 10 icon = 'icons/mob/gondolapod.dmi' diff --git a/code/modules/cargo/order.dm b/code/modules/cargo/order.dm index 3d1caf6ba6..4fa6a4eade 100644 --- a/code/modules/cargo/order.dm +++ b/code/modules/cargo/order.dm @@ -27,10 +27,12 @@ var/orderer_rank var/orderer_ckey var/reason + var/discounted_pct var/datum/supply_pack/pack var/datum/bank_account/paying_account + var/obj/item/coupon/applied_coupon -/datum/supply_order/New(datum/supply_pack/pack, orderer, orderer_rank, orderer_ckey, reason, paying_account) +/datum/supply_order/New(datum/supply_pack/pack, orderer, orderer_rank, orderer_ckey, reason, paying_account, coupon) id = SSshuttle.ordernum++ src.pack = pack src.orderer = orderer @@ -38,6 +40,7 @@ src.orderer_ckey = orderer_ckey src.reason = reason src.paying_account = paying_account + src.applied_coupon = coupon /datum/supply_order/proc/generateRequisition(turf/T) var/obj/item/paper/P = new(T) @@ -57,58 +60,64 @@ P.update_icon() return P -/datum/supply_order/proc/generateManifest(obj/structure/closet/crate/C) - var/obj/item/paper/fluff/jobs/cargo/manifest/P = new(C, id, pack.cost) +/datum/supply_order/proc/generateManifest(obj/container, owner, packname) //generates-the-manifests. + var/obj/item/paper/fluff/jobs/cargo/manifest/P = new(container, id, 0) var/station_name = (P.errors & MANIFEST_ERROR_NAME) ? new_station_name() : station_name() - P.name = "shipping manifest - #[id] ([pack.name])" + P.name = "shipping manifest - [packname?"#[id] ([pack.name])":"(Grouped Item Crate)"]" P.info += "

    [command_name()] Shipping Manifest

    " P.info += "
    " - if(paying_account) - P.info += "Direct purchase from [paying_account.account_holder]
    " - P.name += " - Purchased by [paying_account.account_holder]" + if(id && !(id == "Cargo")) + P.info += "Direct purchase from [owner]
    " + P.name += " - Purchased by [owner]" P.info += "Order #[id]
    " P.info += "Destination: [station_name]
    " - P.info += "Item: [pack.name]
    " + if(packname) + P.info += "Item: [packname]
    " P.info += "Contents:
    " P.info += "
      " - for(var/atom/movable/AM in C.contents - P - C.lockerelectronics) + var/list/ignore_this = list(P) + if(istype(container, /obj/structure/closet)) + var/obj/structure/closet/C = container + ignore_this += C.lockerelectronics + for(var/atom/movable/AM in container.contents - ignore_this) if((P.errors & MANIFEST_ERROR_CONTENTS) && prob(50)) continue P.info += "
    • [AM.name]
    • " P.info += "
    " P.info += "

    Stamp below to confirm receipt of goods:

    " + if(P.errors & MANIFEST_ERROR_ITEM) + var/static/list/blacklisted_error = typecacheof(list( + /obj/structure/closet/crate/secure, + /obj/structure/closet/crate/large, + /obj/structure/closet/secure_closet/goodies + )) + if(blacklisted_error[container.type]) + P.errors &= ~MANIFEST_ERROR_ITEM + else + var/lost = max(round(container.contents.len / 10), 1) + while(--lost >= 0) + qdel(pick(container.contents)) + P.update_icon() - P.forceMove(C) - C.manifest = P - C.update_icon() + P.forceMove(container) + + if(istype(container, /obj/structure/closet/crate)) + var/obj/structure/closet/crate/C = container + C.manifest = P + C.update_icon() return P /datum/supply_order/proc/generate(atom/A) var/obj/structure/closet/crate/C = pack.generate(A, paying_account) - var/obj/item/paper/fluff/jobs/cargo/manifest/M = generateManifest(C) - - if(M.errors & MANIFEST_ERROR_ITEM) - if(istype(C, /obj/structure/closet/crate/secure) || istype(C, /obj/structure/closet/crate/large)) - M.errors &= ~MANIFEST_ERROR_ITEM - else - var/lost = max(round(C.contents.len / 10), 1) - while(--lost >= 0) - qdel(pick(C.contents)) + generateManifest(C, paying_account, pack) return C -//Paperwork for NT -/obj/item/folder/paperwork - name = "Incomplete Paperwork" - desc = "These should've been filled out four months ago! Unfinished grant papers issued by Nanotrasen's finance department. Complete this page for additional funding." - icon = 'icons/obj/bureaucracy.dmi' - icon_state = "docs_generic" - -/obj/item/folder/paperwork_correct - name = "Finished Paperwork" - desc = "A neat stack of filled-out forms, in triplicate and signed. Is there anything more satisfying? Make sure they get stamped." - icon = 'icons/obj/bureaucracy.dmi' - icon_state = "docs_verified" +/datum/supply_order/proc/generateCombo(var/miscbox, var/misc_own, var/misc_contents) + for (var/I in misc_contents) + new I(miscbox) + generateManifest(miscbox, misc_own, "") + return diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 96557d58ef..7ec3a775a5 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -15,6 +15,8 @@ var/special_enabled = FALSE var/DropPodOnly = FALSE //only usable by the Bluespace Drop Pod via the express cargo console var/admin_spawned = FALSE //Can only an admin spawn this crate? + var/goody = PACK_GOODY_NONE //Small items can be grouped into a single crate.They also come in a closet/lockbox instead of a full crate, so the 700 min doesn't apply + var/can_private_buy = TRUE //Can it be purchased privately by each crewmember? /datum/supply_pack/proc/generate(atom/A, datum/bank_account/paying_account) var/obj/structure/closet/crate/C diff --git a/code/modules/cargo/packs/armory.dm b/code/modules/cargo/packs/armory.dm index 87dfe243b3..835457536f 100644 --- a/code/modules/cargo/packs/armory.dm +++ b/code/modules/cargo/packs/armory.dm @@ -10,6 +10,7 @@ group = "Armory" access = ACCESS_ARMORY crate_type = /obj/structure/closet/crate/secure/weapon + can_private_buy = FALSE /datum/supply_pack/security/armory/bulletarmor name = "Bulletproof Armor Crate" @@ -36,15 +37,6 @@ contains = list(/obj/item/storage/box/chemimp) crate_name = "chemical implant crate" -/datum/supply_pack/security/armory/combatknives - name = "Combat Knives Crate" - desc = "Contains three sharpened combat knives. Each knife guaranteed to fit snugly inside any Nanotrasen-standard boot. Requires Armory access to open." - cost = 3200 - contains = list(/obj/item/kitchen/knife/combat, - /obj/item/kitchen/knife/combat, - /obj/item/kitchen/knife/combat) - crate_name = "combat knife crate" - /datum/supply_pack/security/armory/ballistic name = "Combat Shotguns Crate" desc = "For when the enemy absolutely needs to be replaced with lead. Contains three Aussec-designed Combat Shotguns, with three Shotgun Bandoliers, as well as seven buchshot and 12g shotgun slugs. Requires Armory access to open." @@ -214,7 +206,7 @@ /datum/supply_pack/security/armory/wt550ammo name = "WT-550 Semi-Auto SMG Ammo Crate" - desc = "Contains four 20-round magazines for the WT-550 Semi-Auto SMG. Each magazine is designed to facilitate rapid tactical reloads. Requires Armory access to open." + desc = "Contains four 32-round magazines for the WT-550 Semi-Auto SMG. Each magazine is designed to facilitate rapid tactical reloads. Requires Armory access to open." cost = 1750 contains = list(/obj/item/ammo_box/magazine/wt550m9, /obj/item/ammo_box/magazine/wt550m9, @@ -224,7 +216,7 @@ /datum/supply_pack/security/armory/wt550ammo_nonlethal // Takes around 12 shots to stamcrit someone name = "WT-550 Semi-Auto SMG Non-Lethal Ammo Crate" - desc = "Contains four 20-round magazines for the WT-550 Semi-Auto SMG. Each magazine is designed to facilitate rapid tactical reloads. Requires Armory access to open." + desc = "Contains four 32-round magazines for the WT-550 Semi-Auto SMG. Each magazine is designed to facilitate rapid tactical reloads. Requires Armory access to open." cost = 1000 contains = list(/obj/item/ammo_box/magazine/wt550m9/wtrubber, /obj/item/ammo_box/magazine/wt550m9/wtrubber, diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm index dab8cad5b6..c181d6fb74 100644 --- a/code/modules/cargo/packs/costumes_toys.dm +++ b/code/modules/cargo/packs/costumes_toys.dm @@ -71,7 +71,8 @@ /obj/item/clothing/mask/gas/syndicate, /obj/item/clothing/neck/necklace/dope, /obj/item/vending_refill/donksoft, - /obj/item/circuitboard/computer/arcade/amputation) + /obj/item/circuitboard/computer/arcade/amputation, + /obj/item/storage/bag/ammo) crate_name = "crate" /datum/supply_pack/costumes_toys/foamforce diff --git a/code/modules/cargo/packs/engine.dm b/code/modules/cargo/packs/engine.dm index 89775c07ee..499881a110 100644 --- a/code/modules/cargo/packs/engine.dm +++ b/code/modules/cargo/packs/engine.dm @@ -148,7 +148,7 @@ crate_name = "supermatter shard crate" crate_type = /obj/structure/closet/crate/secure/engineering dangerous = TRUE - + /datum/supply_pack/engine/tesla_coils name = "Tesla Coil Crate" desc = "Whether it's high-voltage executions, creating research points, or just plain old power generation: This pack of four Tesla coils can do it all!" diff --git a/code/modules/cargo/packs/engineering.dm b/code/modules/cargo/packs/engineering.dm index 22258d19a7..9af18e13f6 100644 --- a/code/modules/cargo/packs/engineering.dm +++ b/code/modules/cargo/packs/engineering.dm @@ -90,16 +90,6 @@ crate_name = "industrial rcd" crate_type = /obj/structure/closet/crate/secure/engineering -/datum/supply_pack/engineering/powergamermitts - name = "Insulated Gloves Crate" - desc = "The backbone of modern society. Barely ever ordered for actual engineering. Contains three insulated gloves." - cost = 2300 //Made of pure-grade bullshittinium - contains = list(/obj/item/clothing/gloves/color/yellow, - /obj/item/clothing/gloves/color/yellow, - /obj/item/clothing/gloves/color/yellow) - crate_name = "insulated gloves crate" - crate_type = /obj/structure/closet/crate/engineering/electrical - /datum/supply_pack/engineering/inducers name = "NT-75 Electromagnetic Power Inducers Crate" desc = "No rechargers? No problem, with the NT-75 EPI, you can recharge any standard cell-based equipment anytime, anywhere. Contains two Inducers." @@ -162,6 +152,7 @@ /obj/item/storage/toolbox/mechanical) cost = 1200 crate_name = "toolbox crate" + special = TRUE //Department resupply shuttle loan event. /datum/supply_pack/engineering/bsa name = "Bluespace Artillery Parts" diff --git a/code/modules/cargo/packs/goodies.dm b/code/modules/cargo/packs/goodies.dm new file mode 100644 index 0000000000..ac8b1e9032 --- /dev/null +++ b/code/modules/cargo/packs/goodies.dm @@ -0,0 +1,77 @@ + +/datum/supply_pack/goody + access = NONE + group = "Goodies" + goody = PACK_GOODY_PRIVATE + +/datum/supply_pack/goody/combatknives_single + name = "Combat Knife Single-Pack" + desc = "Contains one sharpened combat knive. Guaranteed to fit snugly inside any Nanotrasen-standard boot." + cost = 800 + contains = list(/obj/item/kitchen/knife/combat) + +/datum/supply_pack/goody/sologamermitts + name = "Insulated Gloves Single-Pack" + desc = "The backbone of modern society. Barely ever ordered for actual engineering." + cost = 800 + contains = list(/obj/item/clothing/gloves/color/yellow) + +/datum/supply_pack/goody/firstaidbruises_single + name = "Bruise Treatment Kit Single-Pack" + desc = "A single brute first-aid kit, perfect for recovering from being crushed in an airlock. Did you know people get crushed in airlocks all the time? Interesting..." + cost = 330 + contains = list(/obj/item/storage/firstaid/brute) + +/datum/supply_pack/goody/firstaidburns_single + name = "Burn Treatment Kit Single-Pack" + desc = "A single burn first-aid kit. The advertisement displays a winking atmospheric technician giving a thumbs up, saying \"Mistakes happen!\"" + cost = 330 + contains = list(/obj/item/storage/firstaid/fire) + +/datum/supply_pack/goody/firstaid_single + name = "First Aid Kit Single-Pack" + desc = "A single first-aid kit, fit for healing most types of bodily harm." + cost = 250 + contains = list(/obj/item/storage/firstaid/regular) + +/datum/supply_pack/goody/firstaidoxygen_single + name = "Oxygen Deprivation Kit Single-Pack" + desc = "A single oxygen deprivation first-aid kit, marketed heavily to those with crippling fears of asphyxiation." + cost = 330 + contains = list(/obj/item/storage/firstaid/o2) + +/datum/supply_pack/goody/firstaidtoxins_single + name = "Toxin Treatment Kit Single-Pack" + desc = "A single first aid kit focused on healing damage dealt by heavy toxins." + cost = 330 + contains = list(/obj/item/storage/firstaid/toxin) + +/datum/supply_pack/goody/toolbox // mostly just to water down coupon probability + name = "Mechanical Toolbox" + desc = "A fully stocked mechanical toolbox, for when you're too lazy to just print them out." + cost = 300 + contains = list(/obj/item/storage/toolbox/mechanical) + +/datum/supply_pack/goody/electrical_toolbox // mostly just to water down coupon probability + name = "Mechanical Toolbox" + desc = "A fully stocked electrical toolbox, for when you're too lazy to just print them out." + cost = 300 + contains = list(/obj/item/storage/toolbox/electrical) + +/datum/supply_pack/goody/valentine + name = "Valentine Card" + desc = "Make an impression on that special someone! Comes with one valentine card and a free candy heart!" + cost = 150 + contains = list(/obj/item/valentine, /obj/item/reagent_containers/food/snacks/candyheart) + +/datum/supply_pack/goody/beeplush + name = "Bee Plushie" + desc = "The most important thing you could possibly spend your hard-earned money on." + cost = 1500 + contains = list(/obj/item/toy/plush/beeplushie) + +/datum/supply_pack/goody/beach_ball + name = "Beach Ball" + desc = "The simple beach ball is one of Nanotrasen's most popular products. 'Why do we make beach balls? Because we can! (TM)' - Nanotrasen" + cost = 200 + contains = list(/obj/item/toy/beach_ball) diff --git a/code/modules/cargo/packs/materials.dm b/code/modules/cargo/packs/materials.dm index 1ce3a6b084..0cf12fbc5d 100644 --- a/code/modules/cargo/packs/materials.dm +++ b/code/modules/cargo/packs/materials.dm @@ -14,53 +14,60 @@ ////////////////////////////////////////////////////////////////////////////// /datum/supply_pack/materials/cardboard50 + goody = PACK_GOODY_PUBLIC name = "50 Cardboard Sheets" desc = "Create a bunch of boxes." - cost = 1000 + cost = 300 //thrice their export value contains = list(/obj/item/stack/sheet/cardboard/fifty) - crate_name = "cardboard sheets crate" /datum/supply_pack/materials/glass50 + goody = PACK_GOODY_PUBLIC name = "50 Glass Sheets" desc = "Let some nice light in with fifty glass sheets!" - cost = 850 + cost = 300 //double their export value contains = list(/obj/item/stack/sheet/glass/fifty) - crate_name = "glass sheets crate" /datum/supply_pack/materials/metal50 + goody = PACK_GOODY_PUBLIC name = "50 Metal Sheets" desc = "Any construction project begins with a good stack of fifty metal sheets!" - cost = 850 + cost = 300 //double their export value contains = list(/obj/item/stack/sheet/metal/fifty) - crate_name = "metal sheets crate" /datum/supply_pack/materials/plasteel20 + goody = PACK_GOODY_PUBLIC name = "20 Plasteel Sheets" desc = "Reinforce the station's integrity with twenty plasteel sheets!" - cost = 4700 + cost = 4000 contains = list(/obj/item/stack/sheet/plasteel/twenty) - crate_name = "plasteel sheets crate" - -/datum/supply_pack/materials/plasteel50 - name = "50 Plasteel Sheets" - desc = "For when you REALLY have to reinforce something." - cost = 9050 - contains = list(/obj/item/stack/sheet/plasteel/fifty) - crate_name = "plasteel sheets crate" /datum/supply_pack/materials/plastic50 + goody = PACK_GOODY_PUBLIC name = "50 Plastic Sheets" desc = "Build a limitless amount of toys with fifty plastic sheets!" - cost = 950 - contains = list(/obj/item/stack/sheet/plastic/fifty) - crate_name = "plastic sheets crate" + cost = 200 // double their export + contains = list(/obj/item/stack/sheet/plastic/twenty) /datum/supply_pack/materials/sandstone30 + goody = PACK_GOODY_PUBLIC name = "30 Sandstone Blocks" desc = "Neither sandy nor stoney, these thirty blocks will still get the job done." - cost = 800 + cost = 150 // five times their export contains = list(/obj/item/stack/sheet/mineral/sandstone/thirty) - crate_name = "sandstone blocks crate" + +/datum/supply_pack/materials/wood50 + goody = PACK_GOODY_PUBLIC + name = "50 Wood Planks" + desc = "Turn cargo's boring metal groundwork into beautiful panelled flooring and much more with fifty wooden planks!" + cost = 400 // 6-7 planks shy from having equal import/export prices + contains = list(/obj/item/stack/sheet/mineral/wood/twenty) + +/datum/supply_pack/materials/rcdammo + goody = PACK_GOODY_PUBLIC + name = "Large RCD ammo Single-Pack" + desc = "A single large compressed RCD matter pack, to help with any holes or projects people might be working on." + cost = 600 + contains = list(/obj/item/rcd_ammo/large) /datum/supply_pack/materials/rawlumber name = "50 Towercap Logs" @@ -74,61 +81,6 @@ for(var/i in 1 to 49) new /obj/item/grown/log(.) -/datum/supply_pack/materials/wood50 - name = "50 Wood Planks" - desc = "Turn cargo's boring metal groundwork into beautiful panelled flooring and much more with fifty wooden planks!" - cost = 1450 - contains = list(/obj/item/stack/sheet/mineral/wood/fifty) - crate_name = "wood planks crate" - -/datum/supply_pack/materials/rawcotton - name = "Raw Cotton Crate" - desc = "Plushies have been on the down in the market, and now due to a flood of raw cotton the price of it is so cheap, its a steal! Contains 40 raw cotton sheets." - cost = 800 // 100 net cost, 20 x 20 = 400. 300 profit if turned into cloth sheets or more if turned to silk then 10 x 200 = 2000 - contains = list(/obj/item/stack/sheet/cotton/thirty, - /obj/item/stack/sheet/cotton/ten - ) - crate_name = "cotton crate" - crate_type = /obj/structure/closet/crate/hydroponics - -/datum/supply_pack/materials/rawcottonbulk - name = "Raw Cotton Crate (Bulk)" - desc = "We have so much of this stuff we need to get rid of it in -bulk- now. This crate contains 240 raw cotton sheets." - cost = 1300 // 600 net cost 20 x 120 = 2400 profit if turned into cloth sheets or if turned into silk 200 x 60 = 12000 - contains = list(/obj/item/stack/sheet/cotton/thirty, - /obj/item/stack/sheet/cotton/thirty, - /obj/item/stack/sheet/cotton/thirty, - /obj/item/stack/sheet/cotton/thirty, - /obj/item/stack/sheet/cotton/thirty, - /obj/item/stack/sheet/cotton/thirty, - /obj/item/stack/sheet/cotton/thirty, - /obj/item/stack/sheet/cotton/thirty, - ) - crate_name = "bulk cotton crate" - crate_type = /obj/structure/closet/crate/hydroponics - -/datum/supply_pack/materials/rcdammo - name = "Spare RCD ammo" - desc = "This crate contains sixteen RCD compressed matter packs, to help with any holes or projects people might be working on." - cost = 3750 - contains = list(/obj/item/rcd_ammo, - /obj/item/rcd_ammo, - /obj/item/rcd_ammo, - /obj/item/rcd_ammo, - /obj/item/rcd_ammo, - /obj/item/rcd_ammo, - /obj/item/rcd_ammo, - /obj/item/rcd_ammo, - /obj/item/rcd_ammo, - /obj/item/rcd_ammo, - /obj/item/rcd_ammo, - /obj/item/rcd_ammo, - /obj/item/rcd_ammo, - /obj/item/rcd_ammo, - /obj/item/rcd_ammo, - /obj/item/rcd_ammo) - crate_name = "rcd ammo" - ////////////////////////////////////////////////////////////////////////////// ///////////////////////////// Canisters ////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// diff --git a/code/modules/cargo/packs/medical.dm b/code/modules/cargo/packs/medical.dm index 5d02bbe60f..2bb629308c 100644 --- a/code/modules/cargo/packs/medical.dm +++ b/code/modules/cargo/packs/medical.dm @@ -141,34 +141,6 @@ ///////////////////////////// Medical Kits /////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// -/datum/supply_pack/medical/firstaidbruises - name = "Bruise Treatment Kit Crate" - desc = "Contains three first aid kits focused on healing bruises and broken bones." - cost = 1000 - contains = list(/obj/item/storage/firstaid/brute, - /obj/item/storage/firstaid/brute, - /obj/item/storage/firstaid/brute) - crate_name = "brute treatment kit crate" - -/datum/supply_pack/medical/firstaidburns - name = "Burn Treatment Kit Crate" - desc = "Contains three first aid kits focused on healing severe burns." - cost = 1000 - contains = list(/obj/item/storage/firstaid/fire, - /obj/item/storage/firstaid/fire, - /obj/item/storage/firstaid/fire) - crate_name = "burn treatment kit crate" - -/datum/supply_pack/medical/firstaid - name = "First Aid Kit Crate" - desc = "Contains four first aid kits for healing most types of wounds." - cost = 1000 - contains = list(/obj/item/storage/firstaid/regular, - /obj/item/storage/firstaid/regular, - /obj/item/storage/firstaid/regular, - /obj/item/storage/firstaid/regular) - crate_name = "first aid kit crate" - /datum/supply_pack/medical/sprays name = "Medical Sprays" desc = "Contains two cans of Styptic Spray, Silver Sulfadiazine Spray, Synthflesh Spray and Sterilizer Compound Spray." @@ -183,35 +155,6 @@ /obj/item/reagent_containers/medspray/sterilizine) crate_name = "medical supplies crate" -/datum/supply_pack/medical/firstaidmixed - name = "Mixed Medical Kits" - desc = "Contains one of each medical kits for dealing with a variety of injured crewmembers." - cost = 1250 - contains = list(/obj/item/storage/firstaid/toxin, - /obj/item/storage/firstaid/o2, - /obj/item/storage/firstaid/brute, - /obj/item/storage/firstaid/fire, - /obj/item/storage/firstaid/regular) - crate_name = "medical supplies crate" - -/datum/supply_pack/medical/firstaidoxygen - name = "Oxygen Deprivation Kit Crate" - desc = "Contains three first aid kits focused on helping oxygen deprivation victims." - cost = 1000 - contains = list(/obj/item/storage/firstaid/o2, - /obj/item/storage/firstaid/o2, - /obj/item/storage/firstaid/o2) - crate_name = "oxygen deprivation kit crate" - -/datum/supply_pack/medical/firstaidtoxins - name = "Toxin Treatment Kit Crate" - desc = "Contains three first aid kits focused on healing damage dealt by heavy toxins." - cost = 1000 - contains = list(/obj/item/storage/firstaid/toxin, - /obj/item/storage/firstaid/toxin, - /obj/item/storage/firstaid/toxin) - crate_name = "toxin treatment kit crate" - /datum/supply_pack/medical/advrad name = "Radiation Treatment Crate Deluxe" desc = "A crate for when radiation is out of hand... Contains two rad-b-gone kits, one bottle of anti radiation deluxe pills, as well as a radiation treatment deluxe pill bottle!" @@ -252,6 +195,7 @@ crate_name = "virus crate" crate_type = /obj/structure/closet/crate/secure/plasma dangerous = TRUE + can_private_buy = FALSE /datum/supply_pack/medical/anitvirus name = "Virus Containment Crate" @@ -271,4 +215,4 @@ /obj/item/storage/box/syringes, /obj/item/storage/box/beakers) crate_name = "virus containment unit crate" - crate_type = /obj/structure/closet/crate/secure/plasma \ No newline at end of file + crate_type = /obj/structure/closet/crate/secure/plasma diff --git a/code/modules/cargo/packs/misc.dm b/code/modules/cargo/packs/misc.dm index 5265b2c2f6..a84e22f6f9 100644 --- a/code/modules/cargo/packs/misc.dm +++ b/code/modules/cargo/packs/misc.dm @@ -294,11 +294,11 @@ name = "Potted Plants Crate" desc = "Spruce up the station with these lovely plants! Contains a random assortment of five potted plants from Nanotrasen's potted plant research division. Warranty void if thrown." cost = 730 - contains = list(/obj/item/twohanded/required/kirbyplants/random, - /obj/item/twohanded/required/kirbyplants/random, - /obj/item/twohanded/required/kirbyplants/random, - /obj/item/twohanded/required/kirbyplants/random, - /obj/item/twohanded/required/kirbyplants/random) + contains = list(/obj/item/kirbyplants/random, + /obj/item/kirbyplants/random, + /obj/item/kirbyplants/random, + /obj/item/kirbyplants/random, + /obj/item/kirbyplants/random) crate_name = "potted plants crate" crate_type = /obj/structure/closet/crate/hydroponics @@ -333,45 +333,58 @@ //////////////////////////// Misc + Decor //////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// -/datum/supply_pack/misc/carpet_exotic - name = "Exotic Carpet Crate" - desc = "Exotic carpets straight from Space Russia, for all your decorating needs. Contains 100 tiles each of 10 different flooring patterns." - cost = 7000 - contains = list(/obj/item/stack/tile/carpet/blue/fifty, - /obj/item/stack/tile/carpet/blue/fifty, - /obj/item/stack/tile/carpet/cyan/fifty, - /obj/item/stack/tile/carpet/cyan/fifty, - /obj/item/stack/tile/carpet/green/fifty, - /obj/item/stack/tile/carpet/green/fifty, - /obj/item/stack/tile/carpet/orange/fifty, - /obj/item/stack/tile/carpet/orange/fifty, - /obj/item/stack/tile/carpet/purple/fifty, - /obj/item/stack/tile/carpet/purple/fifty, - /obj/item/stack/tile/carpet/red/fifty, - /obj/item/stack/tile/carpet/red/fifty, - /obj/item/stack/tile/carpet/royalblue/fifty, - /obj/item/stack/tile/carpet/royalblue/fifty, - /obj/item/stack/tile/carpet/royalblack/fifty, - /obj/item/stack/tile/carpet/royalblack/fifty, - /obj/item/stack/tile/carpet/blackred/fifty, - /obj/item/stack/tile/carpet/blackred/fifty, - /obj/item/stack/tile/carpet/monochrome/fifty, - /obj/item/stack/tile/carpet/monochrome/fifty) - crate_name = "exotic carpet crate" - /datum/supply_pack/misc/carpet - name = "Premium Carpet Crate" - desc = "Plasteel floor tiles getting on your nerves? These stacks of extra soft carpet will tie any room together. Contains some classic carpet, along with black, red, and monochrome varients." - cost = 1350 - contains = list(/obj/item/stack/tile/carpet/fifty, - /obj/item/stack/tile/carpet/fifty, - /obj/item/stack/tile/carpet/black/fifty, - /obj/item/stack/tile/carpet/black/fifty, - /obj/item/stack/tile/carpet/blackred/fifty, - /obj/item/stack/tile/carpet/blackred/fifty, - /obj/item/stack/tile/carpet/monochrome/fifty, - /obj/item/stack/tile/carpet/monochrome/fifty) - crate_name = "premium carpet crate" + goody = PACK_GOODY_PUBLIC + name = "Classic Carpet Single-Pack" + desc = "Plasteel floor tiles getting on your nerves? This 50 units stack of extra soft carpet will tie any room together." + cost = 200 + contains = list(/obj/item/stack/tile/carpet/fifty) + +/datum/supply_pack/misc/carpet/black + name = "Black Carpet Single-Pack" + contains = list(/obj/item/stack/tile/carpet/black/fifty) + +/datum/supply_pack/misc/carpet/premium + name = "Monochrome Carpet Single-Pack" + desc = "Exotic carpets for all your decorating needs. This 30 units stack of extra soft carpet will tie any room together." + cost = 250 + contains = list(/obj/item/stack/tile/carpet/monochrome/thirty) + +/datum/supply_pack/misc/carpet/premium/blackred + name = "Black-Red Carpet Single-Pack" + contains = list(/obj/item/stack/tile/carpet/blackred/thirty) + +/datum/supply_pack/misc/carpet/premium/royalblack + name = "Royal Black Carpet Single-Pack" + contains = list(/obj/item/stack/tile/carpet/royalblack/thirty) + +/datum/supply_pack/misc/carpet/premium/royalblue + name = "Royal Blue Carpet Single-Pack" + contains = list(/obj/item/stack/tile/carpet/royalblue/thirty) + +/datum/supply_pack/misc/carpet/premium/red + name = "Red Carpet Single-Pack" + contains = list(/obj/item/stack/tile/carpet/red/thirty) + +/datum/supply_pack/misc/carpet/premium/purple + name = "Purple Carpet Single-Pack" + contains = list(/obj/item/stack/tile/carpet/purple/thirty) + +/datum/supply_pack/misc/carpet/premium/orange + name = "Orange Carpet Single-Pack" + contains = list(/obj/item/stack/tile/carpet/orange/thirty) + +/datum/supply_pack/misc/carpet/premium/green + name = "Green Carpet Single-Pack" + contains = list(/obj/item/stack/tile/carpet/green/thirty) + +/datum/supply_pack/misc/carpet/premium/cyan + name = "Cyan Carpet Single-Pack" + contains = list(/obj/item/stack/tile/carpet/cyan/thirty) + +/datum/supply_pack/misc/carpet/premium/blue + name = "Blue Carpet Single-Pack" + contains = list(/obj/item/stack/tile/carpet/blue/thirty) /datum/supply_pack/misc/noslipfloor name = "High-traction Floor Tiles" @@ -417,3 +430,40 @@ crate_type = /obj/structure/closet/crate +///Special supply crate that generates random syndicate gear up to a determined TC value + +/datum/supply_pack/misc/syndicate + + name = "Assorted Syndicate Gear" + + desc = "Contains a random assortment of syndicate gear." + + special = TRUE ///Cannot be ordered via cargo + + contains = list() + + crate_name = "syndicate gear crate" + + crate_type = /obj/structure/closet/crate + + var/crate_value = 30 ///Total TC worth of contained uplink items + + +////////////////////////////////////////////////////////////////////////////// +//////////////////////////////// Syndicate Packs ///////////////////////////// +////////////////////////////////////////////////////////////////////////////// + +//Generate assorted uplink items, taking into account the same surplus modifiers used for surplus crates +//(this is exclusively used for the rare variant of the stray cargo event!) +/datum/supply_pack/misc/syndicate/fill(obj/structure/closet/crate/C) + var/list/uplink_items = get_uplink_items(SSticker.mode) + while(crate_value) + var/category = pick(uplink_items) + var/item = pick(uplink_items[category]) + var/datum/uplink_item/I = uplink_items[category][item] + if(!I.surplus || prob(100 - I.surplus)) + continue + if(crate_value < I.cost) + continue + crate_value -= I.cost + new I.item(C) \ No newline at end of file diff --git a/code/modules/cargo/packs/organic.dm b/code/modules/cargo/packs/organic.dm index 22cb518926..249faae33d 100644 --- a/code/modules/cargo/packs/organic.dm +++ b/code/modules/cargo/packs/organic.dm @@ -370,22 +370,6 @@ /////////////////////////////////// Misc ///////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// -/datum/supply_pack/organic/hunting - name = "Hunting Gear" - desc = "Even in space, we can find prey to hunt, this crate contains everthing a fine hunter needs to have a sporting time. This crate needs armory access to open. A true huntter only needs a fine bottle of cognac, a nice coat, some good o' cigars, and of cource a hunting shotgun. " - cost = 3500 - contraband = TRUE - contains = list(/obj/item/clothing/head/flatcap, - /obj/item/clothing/suit/hooded/wintercoat/captain, - /obj/item/reagent_containers/food/drinks/bottle/cognac, - /obj/item/storage/fancy/cigarettes/cigars/havana, - /obj/item/clothing/gloves/color/white, - /obj/item/clothing/under/rank/civilian/curator, - /obj/item/gun/ballistic/shotgun/lethal) - access = ACCESS_ARMORY - crate_name = "sporting crate" - crate_type = /obj/structure/closet/crate/secure // Would have liked a wooden crate but access >:( - /datum/supply_pack/organic/party name = "Party Equipment" desc = "Celebrate both life and death on the station with Nanotrasen's Party Essentials(tm)! Contains seven colored glowsticks, four beers, two ales, a drinking shaker, and a bottle of patron & goldschlager!" diff --git a/code/modules/cargo/packs/science.dm b/code/modules/cargo/packs/science.dm index 51bb2b728f..fd6fee362d 100644 --- a/code/modules/cargo/packs/science.dm +++ b/code/modules/cargo/packs/science.dm @@ -17,6 +17,7 @@ cost = 2500 contains = list (/obj/item/reagent_containers/food/snacks/cube/ape) crate_name = "ape cube crate" + can_private_buy = FALSE /datum/supply_pack/science/beakers name = "Chemistry Beakers Crate" diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm index d134d7bab8..738eb03fbf 100644 --- a/code/modules/cargo/packs/security.dm +++ b/code/modules/cargo/packs/security.dm @@ -10,6 +10,7 @@ group = "Security" access = ACCESS_SECURITY crate_type = /obj/structure/closet/crate/secure/gear + can_private_buy = FALSE /datum/supply_pack/security/ammo name = "Ammo Crate - General Purpose" @@ -57,6 +58,7 @@ /obj/item/toy/crayon/white, /obj/item/clothing/head/fedora/det_hat) crate_name = "forensics crate" + can_private_buy = TRUE /datum/supply_pack/security/helmets name = "Helmets Crate" @@ -134,6 +136,7 @@ /obj/item/grenade/barrier) cost = 2000 crate_name = "security barriers crate" + can_private_buy = TRUE /datum/supply_pack/security/securityclothes name = "Security Clothing Crate" @@ -152,6 +155,7 @@ /obj/item/clothing/suit/armor/hos/navyblue, /obj/item/clothing/head/beret/sec/navyhos) crate_name = "security clothing crate" + can_private_buy = TRUE /datum/supply_pack/security/supplies name = "Security Supplies Crate" @@ -179,6 +183,7 @@ contains = list(/obj/item/clothing/head/helmet/justice, /obj/item/clothing/mask/gas/sechailer) crate_name = "security clothing crate" + can_private_buy = TRUE /datum/supply_pack/security/baton name = "Stun Batons Crate" @@ -207,3 +212,51 @@ /obj/item/storage/box/wall_flash, /obj/item/storage/box/wall_flash) crate_name = "wall-mounted flash crate" + +/datum/supply_pack/security/hunting + name = "Hunting Gear" + desc = "Even in space, we can find prey to hunt, this crate contains everthing a fine hunter needs to have a sporting time. This crate needs armory access to open. A true huntter only needs a fine bottle of cognac, a nice coat, some good o' cigars, and of cource a hunting shotgun. " + cost = 3500 + contraband = TRUE + contains = list(/obj/item/clothing/head/flatcap, + /obj/item/clothing/suit/hooded/wintercoat/captain, + /obj/item/reagent_containers/food/drinks/bottle/cognac, + /obj/item/storage/fancy/cigarettes/cigars/havana, + /obj/item/clothing/gloves/color/white, + /obj/item/clothing/under/rank/civilian/curator, + /obj/item/gun/ballistic/shotgun/lethal) + access = ACCESS_ARMORY + crate_name = "sporting crate" + crate_type = /obj/structure/closet/crate/secure // Would have liked a wooden crate but access >:( + +/datum/supply_pack/security/dumdum + name = ".38 DumDum Speedloader" + desc = "Contains one speedloader of .38 DumDum ammunition, good for embedding in soft targets. Requires Security or Forensics access to open." + cost = 1200 + access = FALSE + access_any = list(ACCESS_SECURITY, ACCESS_FORENSICS_LOCKERS) + contains = list(/obj/item/ammo_box/c38/dumdum) + crate_name = ".38 match crate" + +/datum/supply_pack/security/match + name = ".38 Match Grade Speedloader" + desc = "Contains one speedloader of match grade .38 ammunition, perfect for showing off trickshots. Requires Security or Forensics access to open." + cost = 1200 + access = FALSE + access_any = list(ACCESS_SECURITY, ACCESS_FORENSICS_LOCKERS) + contains = list(/obj/item/ammo_box/c38/match) + crate_name = ".38 match crate" + +/datum/supply_pack/security/stingpack + name = "Stingbang Grenade Pack" + desc = "Contains five \"stingbang\" grenades, perfect for stopping riots and playing morally unthinkable pranks. Requires Security access to open." + cost = 2500 + contains = list(/obj/item/storage/box/stingbangs) + crate_name = "stingbang grenade pack crate" + +/datum/supply_pack/security/stingpack/single + name = "Stingbang Single-Pack" + desc = "Contains one \"stingbang\" grenade, perfect for playing meanhearted pranks. Requires Security access to open." + cost = 1400 + contains = list(/obj/item/grenade/stingbang) + diff --git a/code/modules/cargo/packs/service.dm b/code/modules/cargo/packs/service.dm index 942720dd6b..0c7c63f867 100644 --- a/code/modules/cargo/packs/service.dm +++ b/code/modules/cargo/packs/service.dm @@ -66,6 +66,16 @@ crate_name = "shaft miner starter kit" crate_type = /obj/structure/closet/crate/secure +/datum/supply_pack/service/snowmobile + name = "Snowmobile kit" + desc = "trapped on a frigid wasteland? need to get around fast? purchase a refurbished snowmobile, with a FREE 10 microsecond warranty!" + cost = 1500 // 1000 points cheaper than ATV + contains = list(/obj/vehicle/ridden/atv/snowmobile = 1, + /obj/item/key = 1, + /obj/item/clothing/mask/gas/explorer = 1) + crate_name = "Snowmobile kit" + crate_type = /obj/structure/closet/crate/large + ////////////////////////////////////////////////////////////////////////////// /////////////////////// Chef, Botanist, Bartender //////////////////////////// ////////////////////////////////////////////////////////////////////////////// diff --git a/code/modules/cargo/packs/vending.dm b/code/modules/cargo/packs/vending.dm index 344d19f6c9..810cfd8d6e 100644 --- a/code/modules/cargo/packs/vending.dm +++ b/code/modules/cargo/packs/vending.dm @@ -99,6 +99,7 @@ contains = list(/obj/machinery/vending/security) crate_name = "SecTech supply crate" crate_type = /obj/structure/closet/crate/secure/gear + can_private_buy = FALSE /datum/supply_pack/vending/snack name = "Snack Supply Crate" diff --git a/code/modules/client/client_colour.dm b/code/modules/client/client_colour.dm index 22b15ea868..d89598f6cb 100644 --- a/code/modules/client/client_colour.dm +++ b/code/modules/client/client_colour.dm @@ -17,11 +17,6 @@ //eg: "Bloody screen" > "goggles colour" as the former is much more important -/mob - var/list/client_colours = list() - - - /* Adds an instance of colour_type to the mob's client_colours list colour_type - a typepath (subtyped from /datum/client_colour) @@ -113,4 +108,4 @@ priority = INFINITY //we can't see colors anyway! /datum/client_colour/monochrome/trance - priority = 1 \ No newline at end of file + priority = 1 diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index f865cfddbb..7f670e756f 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -19,6 +19,8 @@ ///Next tick to reset the total message counter var/total_count_reset = 0 var/ircreplyamount = 0 + /// last time they tried to do an autobunker auth + var/autobunker_last_try = 0 ///////// //OTHER// @@ -80,10 +82,67 @@ var/list/char_render_holders //Should only be a key-value list of north/south/east/west = obj/screen. + /// Keys currently held + var/list/keys_held = list() + /// These next two vars are to apply movement for keypresses and releases made while move delayed. + /// Because discarding that input makes the game less responsive. + /// On next move, add this dir to the move that would otherwise be done + var/next_move_dir_add + /// On next move, subtract this dir from the move that would otherwise be done + var/next_move_dir_sub + /// Amount of keydowns in the last keysend checking interval var/client_keysend_amount = 0 + /// World tick time where client_keysend_amount will reset var/next_keysend_reset = 0 + /// World tick time where keysend_tripped will reset back to false var/next_keysend_trip_reset = 0 + /// When set to true, user will be autokicked if they trip the keysends in a second limit again var/keysend_tripped = FALSE + /// custom movement keys for this client + var/list/movement_keys = list() + + ///Autoclick list of two elements, first being the clicked thing, second being the parameters. + var/list/atom/selected_target[2] + ///Autoclick variable referencing the associated item. + var/obj/item/active_mousedown_item = null + ///Used in MouseDrag to preserve the original mouse click parameters + var/mouseParams = "" + ///Used in MouseDrag to preserve the last mouse-entered location. + var/mouseLocation = null + ///Used in MouseDrag to preserve the last mouse-entered object. + var/mouseObject = null + var/mouseControlObject = null + //Middle-mouse-button click dragtime control for aimbot exploit detection. + var/middragtime = 0 + //Middle-mouse-button clicked object control for aimbot exploit detection. + var/atom/middragatom /// Messages currently seen by this client var/list/seen_messages + ///When was the last time we warned them about not cryoing without an ahelp, set to -5 minutes so that rounstart cryo still warns + var/cryo_warned = -5 MINUTES + + var/list/parallax_layers + var/list/parallax_layers_cached + var/atom/movable/movingmob + var/turf/previous_turf + ///world.time of when we can state animate()ing parallax again + var/dont_animate_parallax + ///world.time of last parallax update + var/last_parallax_shift + ///ds between parallax updates + var/parallax_throttle = 0 + var/parallax_movedir = 0 + var/parallax_layers_max = 3 + var/parallax_animate_timer + + // List of all asset filenames sent to this client by the asset cache, along with their assoicated md5s + var/list/sent_assets = list() + /// List of all completed blocking send jobs awaiting acknowledgement by send_asset + var/list/completed_asset_jobs = list() + /// Last asset send job id. + var/last_asset_job = 0 + var/last_completed_asset_job = 0 + + //world.time of when the crew manifest can be accessed + var/crew_manifest_delay diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 989ccaf450..8ae002dd2f 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -36,29 +36,11 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( if(!usr || usr != mob) //stops us calling Topic for somebody else's client. Also helps prevent usr=null return - // asset_cache + var/asset_cache_job if(href_list["asset_cache_confirm_arrival"]) - var/job = text2num(href_list["asset_cache_confirm_arrival"]) - //because we skip the limiter, we have to make sure this is a valid arrival and not somebody tricking us - // into letting append to a list without limit. - if (job && job <= last_asset_job && !(job in completed_asset_jobs)) - completed_asset_jobs += job + asset_cache_job = asset_cache_confirm_arrival(href_list["asset_cache_confirm_arrival"]) + if (!asset_cache_job) return - else if (job in completed_asset_jobs) //byond bug ID:2256651 - to_chat(src, "An error has been detected in how your client is receiving resources. Attempting to correct.... (If you keep seeing these messages you might want to close byond and reconnect)") - src << browse("...", "window=asset_cache_browser") - // Keypress passthrough - if(href_list["__keydown"]) - var/keycode = browser_keycode_to_byond(href_list["__keydown"]) - if(keycode) - keyDown(keycode) - return - if(href_list["__keyup"]) - var/keycode = browser_keycode_to_byond(href_list["__keyup"]) - if(keycode) - keyUp(keycode) - return - var/mtl = CONFIG_GET(number/minute_topic_limit) if (!holder && mtl) @@ -75,7 +57,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( topiclimiter[ADMINSWARNED_AT] = minute msg += " Administrators have been informed." log_game("[key_name(src)] Has hit the per-minute topic limit of [mtl] topic calls in a given game minute") - message_admins("[ADMIN_LOOKUPFLW(src)] [ADMIN_KICK(usr)] Has hit the per-minute topic limit of [mtl] topic calls in a given game minute") + message_admins("[ADMIN_LOOKUPFLW(usr)] [ADMIN_KICK(usr)] Has hit the per-minute topic limit of [mtl] topic calls in a given game minute") to_chat(src, "[msg]") return @@ -96,6 +78,27 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( if(!(href_list["_src_"] == "chat" && href_list["proc"] == "ping" && LAZYLEN(href_list) == 2)) log_href("[src] (usr:[usr]\[[COORD(usr)]\]) : [hsrc ? "[hsrc] " : ""][href]") + //byond bug ID:2256651 + if (asset_cache_job && (asset_cache_job in completed_asset_jobs)) + to_chat(src, "An error has been detected in how your client is receiving resources. Attempting to correct.... (If you keep seeing these messages you might want to close byond and reconnect)") + src << browse("...", "window=asset_cache_browser") + return + if (href_list["asset_cache_preload_data"]) + asset_cache_preload_data(href_list["asset_cache_preload_data"]) + return + + // Keypress passthrough + if(href_list["__keydown"]) + var/keycode = browser_keycode_to_byond(href_list["__keydown"]) + if(keycode) + keyDown(keycode) + return + if(href_list["__keyup"]) + var/keycode = browser_keycode_to_byond(href_list["__keyup"]) + if(keycode) + keyUp(keycode) + return + // Admin PM if(href_list["priv_msg"]) cmd_admin_pm(href_list["priv_msg"],null) @@ -265,6 +268,7 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) else prefs = new /datum/preferences(src) GLOB.preferences_datums[ckey] = prefs + addtimer(CALLBACK(src, .proc/ensure_keys_set), 0) //prevents possible race conditions prefs.last_ip = address //these are gonna be used for banning prefs.last_id = computer_id //these are gonna be used for banning @@ -328,9 +332,6 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) qdel(src) return - if(SSinput.initialized) - set_macros() - chatOutput.start() // Starts the chat if(alert_mob_dupe_login) @@ -461,6 +462,11 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) Master.UpdateTickRate() +/client/proc/ensure_keys_set() + if(SSinput.initialized) + set_macros() + update_movement_keys(prefs) + ////////////// //DISCONNECT// ////////////// @@ -789,7 +795,9 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) log_game("[key_name(src)] is using the middle click aimbot exploit") message_admins("[ADMIN_LOOKUPFLW(src)] [ADMIN_KICK(usr)] is using the middle click aimbot exploit") add_system_note("aimbot", "Is using the middle click aimbot exploit") - + log_click(object, location, control, params, src, "lockout (spam - minute ab c [ab] s [middragtime])", TRUE) + else + log_click(object, location, control, params, src, "lockout (spam - minute)", TRUE) log_game("[key_name(src)] Has hit the per-minute click limit of [mcl] clicks in a given game minute") message_admins("[ADMIN_LOOKUPFLW(src)] [ADMIN_KICK(usr)] Has hit the per-minute click limit of [mcl] clicks in a given game minute") to_chat(src, "[msg]") @@ -809,8 +817,12 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) return if(ab) //Citadel edit, things with stuff. + log_click(object, location, control, params, src, "dropped (ab c [ab] s [middragtime])", TRUE) return + if(prefs.log_clicks) + log_click(object, location, control, params, src) + if (prefs.hotkeys) // If hotkey mode is enabled, then clicking the map will automatically // unfocus the text bar. This removes the red color from the text bar @@ -852,8 +864,14 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) 'html/browser/playeroptions.css', ) spawn (10) //removing this spawn causes all clients to not get verbs. + + //load info on what assets the client has + src << browse('code/modules/asset_cache/validate_assets.html', "window=asset_cache_browser") + //Precache the client with all other assets slowly, so as to not block other browse() calls getFilesSlow(src, SSassets.preload, register_asset = FALSE) + addtimer(CALLBACK(GLOBAL_PROC, /proc/getFilesSlow, src, SSassets.preload, FALSE), 5 SECONDS) + #if (PRELOAD_RSC == 0) for (var/name in GLOB.vox_sounds) var/file = GLOB.vox_sounds[name] @@ -892,6 +910,23 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) y = clamp(y+change, min,max) change_view("[x]x[y]") +/client/proc/update_movement_keys(datum/preferences/direct_prefs) + var/datum/preferences/D = prefs || direct_prefs + if(!D?.key_bindings) + return + movement_keys = list() + for(var/key in D.key_bindings) + for(var/kb_name in D.key_bindings[key]) + switch(kb_name) + if("North") + movement_keys[key] = NORTH + if("East") + movement_keys[key] = EAST + if("West") + movement_keys[key] = WEST + if("South") + movement_keys[key] = SOUTH + /client/proc/change_view(new_size) if (isnull(new_size)) CRASH("change_view called without argument.") @@ -902,23 +937,27 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) new_size = "15x15" //END OF CIT CHANGES + var/list/old_view = getviewsize(view) view = new_size - apply_clickcatcher() + var/list/actualview = getviewsize(view) + apply_clickcatcher(actualview) mob.reload_fullscreen() if (isliving(mob)) var/mob/living/M = mob M.update_damage_hud() if (prefs.auto_fit_viewport) fit_viewport() + SEND_SIGNAL(mob, COMSIG_MOB_CLIENT_CHANGE_VIEW, src, old_view, actualview) /client/proc/generate_clickcatcher() if(!void) void = new() screen += void -/client/proc/apply_clickcatcher() +/client/proc/apply_clickcatcher(list/actualview) generate_clickcatcher() - var/list/actualview = getviewsize(view) + if(!actualview) + actualview = getviewsize(view) void.UpdateGreed(actualview[1],actualview[2]) /client/proc/AnnouncePR(announcement) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index bb105f2652..aaee5c85f6 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1,11 +1,6 @@ - /* CAUTION! CAUTION! CAUTION! CAUTION! CAUTION! *\ - | THIS FILE CONTAINS HOOKS FOR FOR | - | CHANGES SPECIFIC TO CITADEL. IF | - | YOU'RE FIXING A MERGE CONFLICT | - | HERE, PLEASE ASK FOR REVIEW FROM | - | ANOTHER MAINTAINER TO ENSURE YOU | - | DON'T INTRODUCE REGRESSIONS. | - \* */ +#define DEFAULT_SLOT_AMT 2 +#define HANDS_SLOT_AMT 2 +#define BACKPACK_SLOT_AMT 4 GLOBAL_LIST_EMPTY(preferences_datums) @@ -20,6 +15,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/muted = 0 var/last_ip var/last_id + var/log_clicks = FALSE var/icon/custom_holoform_icon var/list/cached_holoform_icons @@ -51,6 +47,13 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/chat_on_map = TRUE var/max_chat_length = CHAT_MESSAGE_MAX_LENGTH var/see_chat_non_mob = TRUE + + /// Custom Keybindings + var/list/key_bindings = list() + /// List with a key string associated to a list of keybindings. Unlike key_bindings, this one operates on raw key, allowing for binding a key that triggers regardless of if a modifier is depressed as long as the raw key is sent. + var/list/modless_key_bindings = list() + + var/tgui_fancy = TRUE var/tgui_lock = TRUE var/windowflashing = TRUE @@ -153,11 +156,14 @@ GLOBAL_LIST_EMPTY(preferences_datums) "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", + "silicon_flavor_text" = "", "ooc_notes" = "", "meat_type" = "Mammalian", "body_model" = MALE, "body_size" = RESIZE_DEFAULT_SIZE ) + var/custom_speech_verb = "default" //if your say_mod is to be something other than your races + var/custom_tongue = "default" //if your tongue is to be something other than your races var/list/custom_names = list() var/preferred_ai_core_display = "Blue" @@ -189,9 +195,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/uplink_spawn_loc = UPLINK_PDA - var/sprint_spacebar = FALSE - var/sprint_toggle = FALSE - var/hud_toggle_flash = TRUE var/hud_toggle_color = "#ffffff" @@ -204,6 +207,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/vore_flags = 0 var/list/belly_prefs = list() var/vore_taste = "nothing in particular" + var/toggleeatingnoise = TRUE + var/toggledigestionnoise = TRUE + var/hound_sleeper = TRUE + var/cit_toggles = TOGGLES_CITADEL //backgrounds var/mutable_appearance/character_background @@ -214,6 +221,19 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/no_tetris_storage = FALSE + ///loadout stuff + var/gear_points = 10 + var/list/gear_categories + var/list/chosen_gear = list() + var/gear_tab + + var/screenshake = 100 + var/damagescreenshake = 2 + var/arousable = TRUE + var/widescreenpref = TRUE + var/autostand = TRUE + var/auto_ooc = FALSE + /datum/preferences/New(client/C) parent = C @@ -233,6 +253,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) return //we couldn't load character data so just randomize the character appearance + name random_character() //let's create a random character then - rather than a fat, bald and naked man. + key_bindings = deepCopyList(GLOB.hotkey_keybinding_list_by_key) // give them default keybinds and update their movement keys + C?.update_movement_keys(src) real_name = pref_species.random_name(gender,1) if(!loaded_preferences_successfully) save_preferences() @@ -254,6 +276,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Loadout" dat += "Game Preferences" dat += "Content Preferences" + dat += "Keybindings" if(!path) dat += "
    Please create an account to save your preferences
    " @@ -349,6 +372,15 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "[features["flavor_text"]]" else dat += "[TextPreview(features["flavor_text"])]...
    " + dat += "

    Silicon Flavor Text

    " + dat += "Set Silicon Examine Text
    " + if(length(features["silicon_flavor_text"]) <= 40) + if(!length(features["silicon_flavor_text"])) + dat += "\[...\]" + else + dat += "[features["silicon_flavor_text"]]" + else + dat += "[TextPreview(features["silicon_flavor_text"])]...
    " dat += "

    OOC notes

    " dat += "Set OOC notes
    " var/ooc_notes_len = length(features["ooc_notes"]) @@ -395,7 +427,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) mutant_colors = TRUE if (CONFIG_GET(number/body_size_min) != CONFIG_GET(number/body_size_max)) - dat += "Sprite Size: [features["body_size"]]%
    " + dat += "Sprite Size: [features["body_size"]*100]%
    " if((EYECOLOR in pref_species.species_traits) && !(NOEYES in pref_species.species_traits)) @@ -410,6 +442,13 @@ GLOBAL_LIST_EMPTY(preferences_datums) else if(use_skintones || mutant_colors) dat += "" + dat += APPEARANCE_CATEGORY_COLUMN + dat += "

    Speech preferences

    " + dat += "Custom Speech Verb:
    " + dat += "
    [custom_speech_verb]
    " + dat += "Custom Tongue:
    " + dat += "
    [custom_tongue]
    " + if(HAIR in pref_species.species_traits) dat += APPEARANCE_CATEGORY_COLUMN @@ -843,7 +882,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "See Runechat for non-mobs: [see_chat_non_mob ? "Enabled" : "Disabled"]
    " dat += "
    " dat += "Action Buttons: [(buttons_locked) ? "Locked In Place" : "Unlocked"]
    " - dat += "Keybindings: [(hotkeys) ? "Hotkeys" : "Default"]
    " dat += "
    " dat += "PDA Color:     Change
    " dat += "PDA Style: [pda_style]
    " @@ -939,8 +977,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "
    " dat += "Ambient Occlusion: [ambientocclusion ? "Enabled" : "Disabled"]
    " dat += "Fit Viewport: [auto_fit_viewport ? "Auto" : "Manual"]
    " - dat += "Sprint Key: [sprint_spacebar ? "Space" : "Shift"]
    " - dat += "Toggle Sprint: [sprint_toggle ? "Enabled" : "Disabled"]
    " dat += "HUD Button Flashes: [hud_toggle_flash ? "Enabled" : "Disabled"]
    " dat += "HUD Button Flash Color:     Change
    " @@ -1063,6 +1099,70 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Ass Slapping: [(cit_toggles & NO_ASS_SLAP) ? "Disallowed" : "Allowed"]
    " dat += "" dat += "
    " + if(5) // Custom keybindings + dat += "Keybindings: [(hotkeys) ? "Hotkeys" : "Input"]
    " + dat += "Keybindings mode controls how the game behaves with tab and map/input focus.
    If it is on Hotkeys, the game will always attempt to force you to map focus, meaning keypresses are sent \ + directly to the map instead of the input. You will still be able to use the command bar, but you need to tab to do it every time you click on the game map.
    \ + If it is on Input, the game will not force focus away from the input bar, and you can switch focus using TAB between these two modes: If the input bar is pink, that means that you are in non-hotkey mode, sending all keypresses of the normal \ + alphanumeric characters, punctuation, spacebar, backspace, enter, etc, typing keys into the input bar. If the input bar is white, you are in hotkey mode, meaning all keypresses go into the game's keybind handling system unless you \ + manually click on the input bar to shift focus there.
    \ + Input mode is the closest thing to the old input system.
    \ + IMPORTANT: While in input mode's non hotkey setting (tab toggled), Ctrl + KEY will send KEY to the keybind system as the key itself, not as Ctrl + KEY. This means Ctrl + T/W/A/S/D/all your familiar stuff still works, but you \ + won't be able to access any regular Ctrl binds.
    " + dat += "
    Modifier-Independent binding - This is a singular bind that works regardless of if Ctrl/Shift/Alt are held down. For example, if combat mode is bound to C in modifier-independent binds, it'll trigger regardless of if you are \ + holding down shift for sprint. Each keybind can only have one independent binding, and each key can only have one keybind independently bound to it." + // Create an inverted list of keybindings -> key + var/list/user_binds = list() + var/list/user_modless_binds = list() + for (var/key in key_bindings) + for(var/kb_name in key_bindings[key]) + user_binds[kb_name] += list(key) + for (var/key in modless_key_bindings) + user_modless_binds[modless_key_bindings[key]] = key + + var/list/kb_categories = list() + // Group keybinds by category + for (var/name in GLOB.keybindings_by_name) + var/datum/keybinding/kb = GLOB.keybindings_by_name[name] + kb_categories[kb.category] += list(kb) + + dat += {" + + "} + + for (var/category in kb_categories) + dat += "

    [category]

    " + for (var/i in kb_categories[category]) + var/datum/keybinding/kb = i + var/current_independent_binding = user_modless_binds[kb.name] || "Unbound" + if(!length(user_binds[kb.name])) + dat += "[kb.full_name]Unbound" + var/list/default_keys = hotkeys ? kb.hotkey_keys : kb.classic_keys + if(LAZYLEN(default_keys)) + dat += "| Default: [default_keys.Join(", ")]" + dat += "Independent Binding: [current_independent_binding]" + dat += "
    " + else + var/bound_key = user_binds[kb.name][1] + dat += "[kb.full_name][bound_key]" + for(var/bound_key_index in 2 to length(user_binds[kb.name])) + bound_key = user_binds[kb.name][bound_key_index] + dat += " | [bound_key]" + if(length(user_binds[kb.name]) < MAX_KEYS_PER_KEYBIND) + dat += "| Add Secondary" + var/list/default_keys = hotkeys ? kb.classic_keys : kb.hotkey_keys + if(LAZYLEN(default_keys)) + dat += "| Default: [default_keys.Join(", ")]" + dat += "Independent Binding: [current_independent_binding]" + dat += "
    " + + dat += "

    " + dat += "\[Reset to default\]" + dat += "" dat += "
    " @@ -1083,6 +1183,31 @@ GLOBAL_LIST_EMPTY(preferences_datums) #undef APPEARANCE_CATEGORY_COLUMN #undef MAX_MUTANT_ROWS +/datum/preferences/proc/CaptureKeybinding(mob/user, datum/keybinding/kb, old_key, independent = FALSE) + var/HTML = {" +
    Keybinding: [kb.full_name]
    [kb.description]

    Press any key to change
    Press ESC to clear
    + + "} + winshow(user, "capturekeypress", TRUE) + var/datum/browser/popup = new(user, "capturekeypress", "
    Keybindings
    ", 350, 300) + popup.set_content(HTML) + popup.open(FALSE) + onclose(user, "capturekeypress", src) + /datum/preferences/proc/SetChoices(mob/user, limit = 17, list/splitJobs = list("Chief Engineer"), widthPerColumn = 295, height = 620) if(!SSjob) return @@ -1522,14 +1647,19 @@ GLOBAL_LIST_EMPTY(preferences_datums) age = max(min( round(text2num(new_age)), AGE_MAX),AGE_MIN) if("flavor_text") - var/msg = stripped_multiline_input(usr, "Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!", "Flavor Text", features["flavor_text"], MAX_FLAVOR_LEN, TRUE) + var/msg = stripped_multiline_input(usr, "Set the flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!", "Flavor Text", html_decode(features["flavor_text"]), MAX_FLAVOR_LEN, TRUE) if(!isnull(msg)) - features["flavor_text"] = html_decode(msg) + features["flavor_text"] = msg + + if("silicon_flavor_text") + var/msg = stripped_multiline_input(usr, "Set the silicon flavor text in your 'examine' verb. This can also be used for OOC notes and preferences!", "Silicon Flavor Text", html_decode(features["silicon_flavor_text"]), MAX_FLAVOR_LEN, TRUE) + if(!isnull(msg)) + features["silicon_flavor_text"] = msg if("ooc_notes") - var/msg = stripped_multiline_input(usr, "Set always-visible OOC notes related to content preferences. THIS IS NOT FOR CHARACTER DESCRIPTIONS!", "OOC notes", features["ooc_notes"], MAX_FLAVOR_LEN, TRUE) + var/msg = stripped_multiline_input(usr, "Set always-visible OOC notes related to content preferences. THIS IS NOT FOR CHARACTER DESCRIPTIONS!", "OOC notes", html_decode(features["ooc_notes"]), MAX_FLAVOR_LEN, TRUE) if(!isnull(msg)) - features["ooc_notes"] = html_decode(msg) + features["ooc_notes"] = msg if("hair") var/new_hair = input(user, "Choose your character's hair colour:", "Character Preference","#"+hair_color) as color|null @@ -2192,17 +2322,26 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/min = CONFIG_GET(number/body_size_min) var/max = CONFIG_GET(number/body_size_max) var/danger = CONFIG_GET(number/threshold_body_size_slowdown) - var/new_body_size = input(user, "Choose your desired sprite size:\n([min*100]%-[max*100]%), Warning: May make your character look distorted[danger > min ? ", and an exponential slowdown will occur for those smaller than [danger*100]%!" : "!"]", "Character Preference", features["body_size"]*100) as num|null + var/new_body_size = input(user, "Choose your desired sprite size: ([min*100]%-[max*100]%)\nWarning: This may make your character look distorted[danger > min ? "! Additionally, a proportional movement speed penalty will be applied to characters smaller than [danger*100]%." : "!"]", "Character Preference", features["body_size"]*100) as num|null if (new_body_size) new_body_size = clamp(new_body_size * 0.01, min, max) var/dorfy - if(danger > new_body_size) - dorfy = alert(user, "The chosen size appears to be smaller than the threshold of [danger*100]%, which will lead to an added exponential slowdown. Are you sure about that?", "Dwarfism Alert", "Yes", "Move it to the threshold", "No") - if(!dorfy || dorfy == "Move it above the threshold") + if((new_body_size + 0.01) < danger) // Adding 0.01 as a dumb fix to prevent the warning message from appearing when exactly at threshold... Not sure why that happens in the first place. + dorfy = alert(user, "You have chosen a size below the slowdown threshold of [danger*100]%. For balancing purposes, the further you go below this percentage, the slower your character will be. Do you wish to keep this size?", "Speed Penalty Alert", "Yes", "Move it to the threshold", "No") + if(dorfy == "Move it to the threshold") new_body_size = danger + if(!dorfy) //Aborts if this var is somehow empty + return if(dorfy != "No") features["body_size"] = new_body_size - + if("tongue") + var/selected_custom_tongue = input(user, "Choose your desired tongue (none means your species tongue)", "Character Preference") as null|anything in GLOB.roundstart_tongues + if(selected_custom_tongue) + custom_tongue = selected_custom_tongue + if("speech_verb") + var/selected_custom_speech_verb = input(user, "Choose your desired speech verb (none means your species speech verb)", "Character Preference") as null|anything in GLOB.speech_verbs + if(selected_custom_speech_verb) + custom_speech_verb = selected_custom_speech_verb else switch(href_list["preference"]) //CITADEL PREFERENCES EDIT - I can't figure out how to modularize these, so they have to go here. :c -Pooj @@ -2263,10 +2402,81 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("hotkeys") hotkeys = !hotkeys - if(hotkeys) - winset(user, null, "input.focus=true input.background-color=[COLOR_INPUT_ENABLED] mainwindow.macro=default") + user.client.set_macros() + + if("keybindings_capture") + var/datum/keybinding/kb = GLOB.keybindings_by_name[href_list["keybinding"]] + CaptureKeybinding(user, kb, href_list["old_key"], text2num(href_list["independent"])) + return + + if("keybindings_set") + var/kb_name = href_list["keybinding"] + if(!kb_name) + user << browse(null, "window=capturekeypress") + ShowChoices(user) + return + + var/independent = href_list["independent"] + + var/clear_key = text2num(href_list["clear_key"]) + var/old_key = href_list["old_key"] + if(clear_key) + if(independent) + modless_key_bindings -= old_key + else + if(key_bindings[old_key]) + key_bindings[old_key] -= kb_name + if(!length(key_bindings[old_key])) + key_bindings -= old_key + user << browse(null, "window=capturekeypress") + save_preferences() + ShowChoices(user) + return + + var/new_key = uppertext(href_list["key"]) + var/AltMod = text2num(href_list["alt"]) ? "Alt" : "" + var/CtrlMod = text2num(href_list["ctrl"]) ? "Ctrl" : "" + var/ShiftMod = text2num(href_list["shift"]) ? "Shift" : "" + var/numpad = text2num(href_list["numpad"]) ? "Numpad" : "" + // var/key_code = text2num(href_list["key_code"]) + + if(GLOB._kbMap[new_key]) + new_key = GLOB._kbMap[new_key] + + var/full_key + switch(new_key) + if("Alt") + full_key = "[new_key][CtrlMod][ShiftMod]" + if("Ctrl") + full_key = "[AltMod][new_key][ShiftMod]" + if("Shift") + full_key = "[AltMod][CtrlMod][new_key]" + else + full_key = "[AltMod][CtrlMod][ShiftMod][numpad][new_key]" + if(independent) + modless_key_bindings -= old_key + modless_key_bindings[full_key] = kb_name else - winset(user, null, "input.focus=true input.background-color=[COLOR_INPUT_ENABLED] mainwindow.macro=old_default") + if(key_bindings[old_key]) + key_bindings[old_key] -= kb_name + if(!length(key_bindings[old_key])) + key_bindings -= old_key + key_bindings[full_key] += list(kb_name) + key_bindings[full_key] = sortList(key_bindings[full_key]) + user.client.update_movement_keys() + user << browse(null, "window=capturekeypress") + save_preferences() + + if("keybindings_reset") + var/choice = tgalert(user, "Would you prefer 'hotkey' or 'classic' defaults?", "Setup keybindings", "Hotkey", "Classic", "Cancel") + if(choice == "Cancel") + ShowChoices(user) + return + hotkeys = (choice == "Hotkey") + key_bindings = (hotkeys) ? deepCopyList(GLOB.hotkey_keybinding_list_by_key) : deepCopyList(GLOB.classic_keybinding_list_by_key) + modless_key_bindings = list() + user.client.update_movement_keys() + if("chat_on_map") chat_on_map = !chat_on_map if("see_chat_non_mob") @@ -2385,21 +2595,18 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("ambientocclusion") ambientocclusion = !ambientocclusion if(parent && parent.screen && parent.screen.len) - var/obj/screen/plane_master/game_world/PM = locate(/obj/screen/plane_master/game_world) in parent.screen - PM.backdrop(parent.mob) + var/obj/screen/plane_master/game_world/G = parent.mob.hud_used.plane_masters["[GAME_PLANE]"] + var/obj/screen/plane_master/above_wall/A = parent.mob.hud_used.plane_masters["[ABOVE_WALL_PLANE]"] + var/obj/screen/plane_master/wall/W = parent.mob.hud_used.plane_masters["[WALL_PLANE]"] + G.backdrop(parent.mob) + A.backdrop(parent.mob) + W.backdrop(parent.mob) if("auto_fit_viewport") auto_fit_viewport = !auto_fit_viewport if(auto_fit_viewport && parent) parent.fit_viewport() - if("sprint_key") - sprint_spacebar = !sprint_spacebar - - if("sprint_toggle") - sprint_toggle = !sprint_toggle - - if("hud_toggle_flash") hud_toggle_flash = !hud_toggle_flash @@ -2422,8 +2629,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) current_tab = text2num(href_list["tab"]) if(href_list["preference"] == "gear") if(href_list["clear_loadout"]) - LAZYCLEARLIST(chosen_gear) - gear_points = initial(gear_points) + chosen_gear = list() + gear_points = CONFIG_GET(number/initial_gear_points) save_preferences() if(href_list["select_category"]) for(var/i in GLOB.loadout_items) @@ -2435,7 +2642,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) return var/toggle = text2num(href_list["toggle_gear"]) if(!toggle && (G.type in chosen_gear))//toggling off and the item effectively is in chosen gear) - LAZYREMOVE(chosen_gear, G.type) + chosen_gear -= G.type gear_points += initial(G.cost) else if(toggle && (!(is_type_in_ref_list(G, chosen_gear)))) if(!is_loadout_slot_available(G.category)) @@ -2445,7 +2652,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) to_chat(user, "This is an item intended for donator use only. You are not authorized to use this item.") return if(gear_points >= initial(G.cost)) - LAZYADD(chosen_gear, G.type) + chosen_gear += G.type gear_points -= initial(G.cost) ShowChoices(user) @@ -2531,6 +2738,19 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.dna.update_body_size(old_size) + //speech stuff + if(custom_tongue != "default") + var/new_tongue = GLOB.roundstart_tongues[custom_tongue] + if(new_tongue) + var/obj/item/organ/tongue/T = character.getorganslot(ORGAN_SLOT_TONGUE) + if(T) + qdel(T) + var/obj/item/organ/tongue/new_custom_tongue = new new_tongue + new_custom_tongue.Insert(character) + if(custom_speech_verb != "default") + character.dna.species.say_mod = custom_speech_verb + + SEND_SIGNAL(character, COMSIG_HUMAN_PREFS_COPIED_TO, src, icon_updates, roundstart_checks) //let's be sure the character updates @@ -2578,3 +2798,37 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(!cached_holoform_icons[filter_type]) cached_holoform_icons[filter_type] = process_holoform_icon_filter(custom_holoform_icon, filter_type) return cached_holoform_icons[filter_type] + +//Used in savefile update 32, can be removed once that is no longer relevant. +/datum/preferences/proc/force_reset_keybindings() + var/choice = tgalert(parent.mob, "Your basic keybindings need to be reset, emotes will remain as before. Would you prefer 'hotkey' or 'classic' mode?", "Reset keybindings", "Hotkey", "Classic") + hotkeys = (choice != "Classic") + var/list/oldkeys = key_bindings + key_bindings = (hotkeys) ? deepCopyList(GLOB.hotkey_keybinding_list_by_key) : deepCopyList(GLOB.classic_keybinding_list_by_key) + + for(var/key in oldkeys) + if(!key_bindings[key]) + key_bindings[key] = oldkeys[key] + parent.update_movement_keys() + +/datum/preferences/proc/is_loadout_slot_available(slot) + var/list/L + LAZYINITLIST(L) + for(var/i in chosen_gear) + var/datum/gear/G = i + var/occupied_slots = L[slot_to_string(initial(G.category))] ? L[slot_to_string(initial(G.category))] + 1 : 1 + LAZYSET(L, slot_to_string(initial(G.category)), occupied_slots) + switch(slot) + if(SLOT_IN_BACKPACK) + if(L[slot_to_string(SLOT_IN_BACKPACK)] < BACKPACK_SLOT_AMT) + return TRUE + if(SLOT_HANDS) + if(L[slot_to_string(SLOT_HANDS)] < HANDS_SLOT_AMT) + return TRUE + else + if(L[slot_to_string(slot)] < DEFAULT_SLOT_AMT) + return TRUE + +#undef DEFAULT_SLOT_AMT +#undef HANDS_SLOT_AMT +#undef BACKPACK_SLOT_AMT diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index ca8599c4d5..3a8e7582cb 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -5,7 +5,7 @@ // You do not need to raise this if you are adding new values that have sane defaults. // Only raise this value when changing the meaning/format/name/layout of an existing value // where you would want the updater procs below to run -#define SAVEFILE_VERSION_MAX 31 +#define SAVEFILE_VERSION_MAX 33 /* SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn @@ -42,7 +42,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //if your savefile is 3 months out of date, then 'tough shit'. /datum/preferences/proc/update_preferences(current_version, savefile/S) - return + if(current_version < 32) //If you remove this, remove force_reset_keybindings() too. + addtimer(CALLBACK(src, .proc/force_reset_keybindings), 30) //No mob available when this is run, timer allows user choice. /datum/preferences/proc/update_character(current_version, savefile/S) if(current_version < 19) @@ -194,6 +195,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["wing_color"] >> features["wings_color"] S["horn_color"] >> features["horns_color"] + if(current_version < 33) + features["flavor_text"] = html_encode(features["flavor_text"]) + features["silicon_flavor_text"] = html_encode(features["silicon_flavor_text"]) + features["ooc_notes"] = html_encode(features["ooc_notes"]) + /datum/preferences/proc/load_path(ckey,filename="preferences.sav") if(!ckey) return @@ -250,8 +256,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["parallax"] >> parallax S["ambientocclusion"] >> ambientocclusion S["auto_fit_viewport"] >> auto_fit_viewport - S["sprint_spacebar"] >> sprint_spacebar - S["sprint_toggle"] >> sprint_toggle S["hud_toggle_flash"] >> hud_toggle_flash S["hud_toggle_color"] >> hud_toggle_color S["menuoptions"] >> menuoptions @@ -261,6 +265,10 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["pda_color"] >> pda_color S["pda_skin"] >> pda_skin + // Custom hotkeys + S["key_bindings"] >> key_bindings + S["modless_key_bindings"] >> modless_key_bindings + //citadel code S["arousable"] >> arousable S["screenshake"] >> screenshake @@ -295,8 +303,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car parallax = sanitize_integer(parallax, PARALLAX_INSANE, PARALLAX_DISABLE, null) ambientocclusion = sanitize_integer(ambientocclusion, 0, 1, initial(ambientocclusion)) auto_fit_viewport = sanitize_integer(auto_fit_viewport, 0, 1, initial(auto_fit_viewport)) - sprint_spacebar = sanitize_integer(sprint_spacebar, 0, 1, initial(sprint_spacebar)) - sprint_toggle = sanitize_integer(sprint_toggle, 0, 1, initial(sprint_toggle)) hud_toggle_flash = sanitize_integer(hud_toggle_flash, 0, 1, initial(hud_toggle_flash)) hud_toggle_color = sanitize_hexcolor(hud_toggle_color, 6, 1, initial(hud_toggle_color)) ghost_form = sanitize_inlist(ghost_form, GLOB.ghost_forms, initial(ghost_form)) @@ -315,9 +321,31 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car cit_toggles = sanitize_integer(cit_toggles, 0, 16777215, initial(cit_toggles)) auto_ooc = sanitize_integer(auto_ooc, 0, 1, initial(auto_ooc)) no_tetris_storage = sanitize_integer(no_tetris_storage, 0, 1, initial(no_tetris_storage)) + key_bindings = sanitize_islist(key_bindings, list()) + modless_key_bindings = sanitize_islist(modless_key_bindings, list()) + + verify_keybindings_valid() // one of these days this will runtime and you'll be glad that i put it in a different proc so no one gets their saves wiped return 1 +/datum/preferences/proc/verify_keybindings_valid() + // Sanitize the actual keybinds to make sure they exist. + for(var/key in key_bindings) + if(!islist(key_bindings[key])) + key_bindings -= key + var/list/binds = key_bindings[key] + for(var/bind in binds) + if(!GLOB.keybindings_by_name[bind]) + binds -= bind + if(!length(binds)) + key_bindings -= key + // End + // I hate copypaste but let's do it again but for modless ones + for(var/key in modless_key_bindings) + var/bindname = modless_key_bindings[key] + if(!GLOB.keybindings_by_name[bindname]) + modless_key_bindings -= key + /datum/preferences/proc/save_preferences() if(!path) return 0 @@ -362,8 +390,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["parallax"], parallax) WRITE_FILE(S["ambientocclusion"], ambientocclusion) WRITE_FILE(S["auto_fit_viewport"], auto_fit_viewport) - WRITE_FILE(S["sprint_spacebar"], sprint_spacebar) - WRITE_FILE(S["sprint_toggle"], sprint_toggle) WRITE_FILE(S["hud_toggle_flash"], hud_toggle_flash) WRITE_FILE(S["hud_toggle_color"], hud_toggle_color) WRITE_FILE(S["menuoptions"], menuoptions) @@ -372,6 +398,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["pda_style"], pda_style) WRITE_FILE(S["pda_color"], pda_color) WRITE_FILE(S["pda_skin"], pda_skin) + WRITE_FILE(S["key_bindings"], key_bindings) + WRITE_FILE(S["modless_key_bindings"], modless_key_bindings) //citadel code WRITE_FILE(S["screenshake"], screenshake) @@ -451,6 +479,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["backbag"] >> backbag S["jumpsuit_style"] >> jumpsuit_style S["uplink_loc"] >> uplink_spawn_loc + S["custom_speech_verb"] >> custom_speech_verb + S["custom_tongue"] >> custom_tongue S["feature_mcolor"] >> features["mcolor"] S["feature_lizard_tail"] >> features["tail_lizard"] S["feature_lizard_snout"] >> features["snout"] @@ -465,6 +495,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_insect_wings"] >> features["insect_wings"] S["feature_insect_fluff"] >> features["insect_fluff"] S["feature_insect_markings"] >> features["insect_markings"] + S["feature_horns_color"] >> features["horns_color"] + S["feature_wings_color"] >> features["wings_color"] + //Custom names for(var/custom_name_id in GLOB.preferences_custom_names) @@ -535,12 +568,31 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car else //We have no old flavortext, default to new S["feature_flavor_text"] >> features["flavor_text"] + + S["silicon_feature_flavor_text"] >> features["silicon_flavor_text"] + S["feature_ooc_notes"] >> features["ooc_notes"] + S["silicon_flavor_text"] >> features["silicon_flavor_text"] S["vore_flags"] >> vore_flags S["vore_taste"] >> vore_taste S["belly_prefs"] >> belly_prefs + //gear loadout + var/text_to_load + S["loadout"] >> text_to_load + var/list/saved_loadout_paths = splittext(text_to_load, "|") + chosen_gear = list() + gear_points = CONFIG_GET(number/initial_gear_points) + for(var/i in saved_loadout_paths) + var/datum/gear/path = text2path(i) + if(path) + var/init_cost = initial(path.cost) + if(init_cost > gear_points) + continue + chosen_gear += path + gear_points -= init_cost + //try to fix any outdated data if necessary if(needs_update >= 0) update_character(needs_update, S) //needs_update == savefile_version if we need an update (positive integer) @@ -643,8 +695,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car features["balls_visibility"] = sanitize_inlist(features["balls_visibility"], safe_visibilities, GEN_VISIBLE_NO_UNDIES) features["vag_visibility"] = sanitize_inlist(features["vag_visibility"], safe_visibilities, GEN_VISIBLE_NO_UNDIES) + custom_speech_verb = sanitize_inlist(custom_speech_verb, GLOB.speech_verbs, "default") + custom_tongue = sanitize_inlist(custom_tongue, GLOB.roundstart_tongues, "default") features["flavor_text"] = copytext(features["flavor_text"], 1, MAX_FLAVOR_LEN) + features["silicon_flavor_text"] = copytext(features["silicon_flavor_text"], 1, MAX_FLAVOR_LEN) features["ooc_notes"] = copytext(features["ooc_notes"], 1, MAX_FLAVOR_LEN) joblessrole = sanitize_integer(joblessrole, 1, 3, initial(joblessrole)) @@ -701,12 +756,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["shirt_color"] , shirt_color) WRITE_FILE(S["socks"] , socks) WRITE_FILE(S["socks_color"] , socks_color) - WRITE_FILE(S["horns_color"] , features["horns_color"]) - WRITE_FILE(S["wings_color"] , features["wings_color"]) WRITE_FILE(S["backbag"] , backbag) WRITE_FILE(S["jumpsuit_style"] , jumpsuit_style) WRITE_FILE(S["uplink_loc"] , uplink_spawn_loc) WRITE_FILE(S["species"] , pref_species.id) + WRITE_FILE(S["custom_speech_verb"] , custom_speech_verb) + WRITE_FILE(S["custom_tongue"] , custom_tongue) WRITE_FILE(S["feature_mcolor"] , features["mcolor"]) WRITE_FILE(S["feature_lizard_tail"] , features["tail_lizard"]) WRITE_FILE(S["feature_human_tail"] , features["tail_human"]) @@ -718,6 +773,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["feature_lizard_body_markings"] , features["body_markings"]) WRITE_FILE(S["feature_lizard_legs"] , features["legs"]) WRITE_FILE(S["feature_deco_wings"] , features["deco_wings"]) + WRITE_FILE(S["feature_horns_color"] , features["horns_color"]) + WRITE_FILE(S["feature_wings_color"] , features["wings_color"]) WRITE_FILE(S["feature_insect_wings"] , features["insect_wings"]) WRITE_FILE(S["feature_insect_fluff"] , features["insect_fluff"]) WRITE_FILE(S["feature_insect_markings"] , features["insect_markings"]) @@ -771,6 +828,13 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["vore_taste"] , vore_taste) WRITE_FILE(S["belly_prefs"] , belly_prefs) + //gear loadout + if(chosen_gear.len) + var/text_to_save = chosen_gear.Join("|") + S["loadout"] << text_to_save + else + S["loadout"] << "" //empty string to reset the value + cit_character_pref_save(S) return 1 diff --git a/code/modules/client/verbs/aooc.dm b/code/modules/client/verbs/aooc.dm index bc32d3c222..1a019bba80 100644 --- a/code/modules/client/verbs/aooc.dm +++ b/code/modules/client/verbs/aooc.dm @@ -13,21 +13,38 @@ GLOBAL_VAR_INIT(normal_aooc_colour, "#ce254f") if(!mob) return + if(!(prefs.toggles & CHAT_OOC)) + to_chat(src, " You have OOC muted.") + return + if(jobban_isbanned(mob, "OOC")) + to_chat(src, "You have been banned from OOC.") + return + if(!holder) - if(mob.stat == DEAD) - to_chat(usr, "You cannot use AOOC while dead.") - return - if(!is_special_character(mob)) - to_chat(usr, "You aren't an antagonist!") - if(prefs.muted & MUTE_OOC) - to_chat(src, "You cannot use AOOC (muted).") - return - if(jobban_isbanned(src.mob, "OOC")) - to_chat(src, "You are banned from OOC.") - return if(!GLOB.aooc_allowed) to_chat(src, "AOOC is currently muted.") return + if(prefs.muted & MUTE_OOC) + to_chat(src, "You cannot use AOOC (muted).") + return + if(!is_special_character(mob)) + to_chat(usr, "You aren't an antagonist!") + if(handle_spam_prevention(msg,MUTE_OOC)) + return + if(findtext(msg, "byond://")) + to_chat(src, "Advertising other servers is not allowed.") + log_admin("[key_name(src)] has attempted to advertise in LOOC: [msg]") + return + if(mob.stat) + to_chat(usr, "You cannot use AOOC while unconscious or dead.") + return + if(isdead(mob)) + to_chat(src, "You cannot use AOOC while ghosting.") + return + if(HAS_TRAIT(mob, TRAIT_AOOC_MUTE)) + to_chat(src, "You cannot use AOOC right now.") + return + if(QDELETED(src)) return diff --git a/code/modules/client/verbs/autobunker.dm b/code/modules/client/verbs/autobunker.dm new file mode 100644 index 0000000000..03200c5f0b --- /dev/null +++ b/code/modules/client/verbs/autobunker.dm @@ -0,0 +1,37 @@ +/client/verb/bunker_auto_authorize() + set name = "Auto Authorize Panic Bunker" + set desc = "Authorizes your account in the panic bunker of any servers connected to this function." + set category = "OOC" + + if(autobunker_last_try + 5 SECONDS > world.time) + to_chat(src, "Function on cooldown, try again in 5 seconds.") + return + autobunker_last_try = world.time + + world.send_cross_server_bunker_overrides(key, src) + +/world/proc/send_cross_server_bunker_overrides(key, client/C) + var/comms_key = CONFIG_GET(string/comms_key) + if(!comms_key) + return + var/list/message = list() + message["ckey"] = key + message["source"] = "[CONFIG_GET(string/cross_comms_name)]" + message["key"] = comms_key + message["auto_bunker_override"] = TRUE + var/list/servers = CONFIG_GET(keyed_list/cross_server_bunker_override) + if(!length(servers)) + to_chat(C, "AUTOBUNKER: No servers are configured to receive from this one.") + return + log_admin("[key] ([key_name(C)]) has initiated an autobunker authentication with linked servers.") + for(var/name in servers) + var/returned = world.Export("[servers[name]]?[list2params(message)]") + switch(returned) + if("Bad Key") + to_chat(C, "AUTOBuNKER: [name] failed to authenticate with this server.") + if("Function Disabled") + to_chat(C, "AUTOBUNKER: [name] has autobunker receive disabled.") + if("Success") + to_chat(C, "AUTOBUNKER: Successfully authenticated with [name]. Panic bunker bypass granted to [key]..") + else + to_chat(C, "AUTOBUNKER: Unknown error ([name]).") diff --git a/code/modules/client/verbs/looc.dm b/code/modules/client/verbs/looc.dm index 075cabcbbb..da39eabc12 100644 --- a/code/modules/client/verbs/looc.dm +++ b/code/modules/client/verbs/looc.dm @@ -38,11 +38,15 @@ GLOBAL_VAR_INIT(normal_looc_colour, "#6699CC") log_admin("[key_name(src)] has attempted to advertise in LOOC: [msg]") return if(mob.stat) - to_chat(src, "You cannot salt in LOOC while unconscious or dead.") + to_chat(src, "You cannot use LOOC while unconscious or dead.") return - if(istype(mob, /mob/dead)) + if(isdead(mob)) to_chat(src, "You cannot use LOOC while ghosting.") return + if(HAS_TRAIT(mob, TRAIT_LOOC_MUTE)) + to_chat(src, "You cannot use LOOC right now.") + return + msg = emoji_parse(msg) diff --git a/code/modules/client/verbs/minimap.dm b/code/modules/client/verbs/minimap.dm index 3d213dc210..3cdb1d57a8 100644 --- a/code/modules/client/verbs/minimap.dm +++ b/code/modules/client/verbs/minimap.dm @@ -6,5 +6,7 @@ if(!CONFIG_GET(flag/minimaps_enabled)) to_chat(usr, "Minimap generation is not enabled in the server's configuration.") return - + if(!SSminimaps.station_minimap) + to_chat(usr, "Minimap generation is in progress, please wait!") + return SSminimaps.station_minimap.show(src) diff --git a/code/modules/clothing/ears/_ears.dm b/code/modules/clothing/ears/_ears.dm index 39d23c0107..f58be1373a 100644 --- a/code/modules/clothing/ears/_ears.dm +++ b/code/modules/clothing/ears/_ears.dm @@ -6,7 +6,7 @@ throwforce = 0 slot_flags = ITEM_SLOT_EARS resistance_flags = NONE - custom_price = 250 + custom_price = PRICE_BELOW_NORMAL /obj/item/clothing/ears/earmuffs name = "earmuffs" @@ -31,7 +31,7 @@ slot_flags = ITEM_SLOT_EARS | ITEM_SLOT_HEAD | ITEM_SLOT_NECK //Fluff item, put it whereever you want! actions_types = list(/datum/action/item_action/toggle_headphones) var/headphones_on = FALSE - custom_price = 125 + custom_price = PRICE_ALMOST_CHEAP /obj/item/clothing/ears/headphones/Initialize() . = ..() diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 8cbc416b2e..01effea6f2 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -203,6 +203,12 @@ icon_state = "hipster_glasses" item_state = "hipster_glasses" +/obj/item/clothing/glasses/regular/circle + name = "circle glasses" + desc = "Why would you wear something so controversial yet so brave?" + icon_state = "circle_glasses" + item_state = "circle_glasses" + //Here lies green glasses, so ugly they died. RIP /obj/item/clothing/glasses/sunglasses diff --git a/code/modules/clothing/glasses/phantomthief.dm b/code/modules/clothing/glasses/phantomthief.dm index fecf660450..6d209ec695 100644 --- a/code/modules/clothing/glasses/phantomthief.dm +++ b/code/modules/clothing/glasses/phantomthief.dm @@ -24,7 +24,7 @@ . += "[DisplayTimeText(nextadrenalinepop - world.time)] left before the adrenaline injector can be used again." /obj/item/clothing/glasses/phantomthief/syndicate/proc/injectadrenaline(mob/living/user, was_forced = FALSE) - if(user.combat_flags & COMBAT_FLAG_COMBAT_TOGGLED && world.time >= nextadrenalinepop) + if(SEND_SIGNAL(user, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_TOGGLED) && world.time >= nextadrenalinepop) nextadrenalinepop = world.time + 5 MINUTES user.reagents.add_reagent(/datum/reagent/syndicateadrenals, 5) user.playsound_local(user, 'sound/misc/adrenalinject.ogg', 100, 0, pressure_affected = FALSE) diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index 63521c9b75..56d6e7d38f 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -10,8 +10,56 @@ permeability_coefficient = 0.05 resistance_flags = NONE var/can_be_cut = 1 - custom_price = 1200 - custom_premium_price = 1200 + custom_price = PRICE_EXPENSIVE + custom_premium_price = PRICE_ALMOST_ONE_GRAND + +/obj/item/toy/sprayoncan + name = "spray-on insulation applicator" + desc = "What is the number one problem facing our station today?" + icon = 'icons/obj/clothing/gloves.dmi' + icon_state = "sprayoncan" + +/obj/item/toy/sprayoncan/afterattack(atom/target, mob/living/carbon/user, proximity) + if(iscarbon(target) && proximity) + var/mob/living/carbon/C = target + var/mob/living/carbon/U = user + var/success = C.equip_to_slot_if_possible(new /obj/item/clothing/gloves/color/yellow/sprayon, ITEM_SLOT_GLOVES, TRUE, TRUE, clothing_check = TRUE) + if(success) + if(C == user) + C.visible_message("[U] sprays their hands with glittery rubber!") + else + C.visible_message("[U] sprays glittery rubber on the hands of [C]!") + else + user.visible_message("The rubber fails to stick to [C]'s hands!", + "The rubber fails to stick to [C]'s [(SLOT_GLOVES in C.check_obscured_slots()) ? "unexposed" : ""] hands!") + + qdel(src) + +/obj/item/clothing/gloves/color/yellow/sprayon + desc = "How're you gonna get 'em off, nerd?" + name = "spray-on insulated gloves" + icon_state = "sprayon" + item_state = "sprayon" + permeability_coefficient = 0 + resistance_flags = ACID_PROOF + var/shocks_remaining = 10 + +/obj/item/clothing/gloves/color/yellow/sprayon/Initialize() + .=..() + ADD_TRAIT(src, TRAIT_NODROP, GLOVE_TRAIT) + +/obj/item/clothing/gloves/color/yellow/sprayon/equipped(mob/user, slot) + . = ..() + RegisterSignal(user, COMSIG_LIVING_SHOCK_PREVENTED, .proc/Shocked) + +/obj/item/clothing/gloves/color/yellow/sprayon/proc/Shocked() + shocks_remaining-- + if(shocks_remaining < 0) + qdel(src) //if we run out of uses, the gloves crumble away into nothing, just like my dreams after working with .dm + +/obj/item/clothing/gloves/color/yellow/sprayon/dropped() + .=..() + qdel(src) //loose nodrop items bad /obj/item/clothing/gloves/color/fyellow //Cheap Chinese Crap desc = "These gloves are cheap knockoffs of the coveted ones - no way this can end badly." @@ -202,6 +250,17 @@ permeability_coefficient = 0.3 resistance_flags = FIRE_PROOF | ACID_PROOF +/obj/item/clothing/gloves/color/latex/engineering + name = "tinker's gloves" + desc = "Overdesigned engineering gloves that have automated construction subrutines dialed in, allowing for faster construction while worn." + icon = 'icons/obj/clothing/clockwork_garb.dmi' + icon_state = "clockwork_gauntlets" + item_state = "clockwork_gauntlets" + siemens_coefficient = 0.8 + permeability_coefficient = 0.3 + carrytrait = TRAIT_QUICK_BUILD + custom_materials = list(/datum/material/iron=2000, /datum/material/silver=1500, /datum/material/gold = 1000) + /obj/item/clothing/gloves/color/white name = "white gloves" desc = "These look pretty fancy." diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index b1c6746351..a8017631bd 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -10,7 +10,7 @@ cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT strip_mod = 0.9 - custom_price = 75 + custom_price = PRICE_ALMOST_CHEAP /obj/item/clothing/gloves/fingerless/pugilist name = "armwraps" diff --git a/code/modules/clothing/gloves/tacklers.dm b/code/modules/clothing/gloves/tacklers.dm index ddbeeab7f6..11b2afa968 100644 --- a/code/modules/clothing/gloves/tacklers.dm +++ b/code/modules/clothing/gloves/tacklers.dm @@ -7,7 +7,7 @@ cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT resistance_flags = NONE - //custom_premium_price = 350 + //custom_premium_price = PRICE_EXPENSIVE /// For storing our tackler datum so we can remove it after var/datum/component/tackler /// See: [/datum/component/tackler/var/stamina_cost] diff --git a/code/modules/clothing/head/beanie.dm b/code/modules/clothing/head/beanie.dm index 79f8931889..e79095863a 100644 --- a/code/modules/clothing/head/beanie.dm +++ b/code/modules/clothing/head/beanie.dm @@ -5,7 +5,6 @@ name = "white beanie" desc = "A stylish beanie. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their heads." icon_state = "beanie" //Default white - custom_price = 60 /obj/item/clothing/head/beanie/black name = "black beanie" @@ -75,6 +74,10 @@ icon_state = "beaniedurathread" armor = list("melee" = 25, "bullet" = 10, "laser" = 20,"energy" = 10, "bomb" = 30, "bio" = 15, "rad" = 20, "fire" = 100, "acid" = 50) - +/obj/item/clothing/head/beanie/waldo + name = "red striped bobble hat" + desc = "If you're going on a worldwide hike, you'll need some cold protection." + icon_state = "waldo_hat" + item_state = "waldo_hat" //No dog fashion sprites yet :( poor Ian can't be dope like the rest of us yet \ No newline at end of file diff --git a/code/modules/clothing/head/cit_hats.dm b/code/modules/clothing/head/cit_hats.dm deleted file mode 100644 index df4a21d6c1..0000000000 --- a/code/modules/clothing/head/cit_hats.dm +++ /dev/null @@ -1,6 +0,0 @@ -/obj/item/clothing/head/hunter - name = "hunter" - desc = "A basic hat for hunting things." - icon = 'modular_citadel/icons/obj/clothing/cit_hats.dmi' - icon_state = "hunter" - item_state = "hunter_worn" diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index ffd50cbfbe..80d0b7c8a8 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -60,6 +60,16 @@ cold_protection = HEAD min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT +/obj/item/clothing/head/hardhat/red/upgraded + name = "workplace-ready firefighter helmet" + desc = "By applying state of the art lighting technology to a fire helmet, and using photo-chemical hardening methods, this hardhat will protect you from robust workplace hazards." + icon_state = "hardhat0_purple" + item_state = "hardhat0_purple" + brightness_on = 5 + resistance_flags = FIRE_PROOF | ACID_PROOF + custom_materials = list(/datum/material/iron = 4000, /datum/material/glass = 1000, /datum/material/plastic = 3000, /datum/material/silver = 500) + hat_type = "purple" + /obj/item/clothing/head/hardhat/white icon_state = "hardhat0_white" item_state = "hardhat0_white" diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index ae851ec4f1..662318fb82 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -58,7 +58,7 @@ desc = "A reliable, blue tinted helmet reminding you that you still owe that engineer a beer." icon_state = "blueshift" item_state = "blueshift" - custom_premium_price = 750 + custom_premium_price = PRICE_ABOVE_EXPENSIVE /obj/item/clothing/head/helmet/riot name = "riot helmet" @@ -244,7 +244,7 @@ icon_state = "knight_greyscale" item_state = "knight_greyscale" armor = list("melee" = 35, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 10, "bio" = 10, "rad" = 10, "fire" = 40, "acid" = 40) - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS //Can change color and add prefix + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS //Can change color and add prefix /obj/item/clothing/head/helmet/skull name = "skull helmet" @@ -386,3 +386,9 @@ cold_protection = HEAD min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT armor = list("melee" = 10, "bullet" = 5, "laser" = 5,"energy" = 5, "bomb" = 5, "bio" = 50, "rad" = 20, "fire" = -10, "acid" = 0) + +/obj/item/clothing/head/helmet/police + name = "police officer's hat" + desc = "A police officer's Hat. This hat emphasizes that you are THE LAW." + icon_state = "policehelm" + dynamic_hair_suffix = "" diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 8627887492..73675257e4 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -375,12 +375,6 @@ icon_state = "telegram" dog_fashion = /datum/dog_fashion/head/telegram -/obj/item/clothing/head/colour - name = "Singer cap" - desc = "A light white hat that has bands of color. Just makes you want to sing and dance!" - icon_state = "colour" - dog_fashion = /datum/dog_fashion/head/colour - /obj/item/clothing/head/christmashat name = "red santa hat" desc = "A red Christmas Hat! How festive!" @@ -434,3 +428,21 @@ desc = "A symbol of discipline, honor, and lots and lots of removal of some type of skewered food." icon_state = "russobluecamohat" item_state = "russobluecamohat" + dynamic_hair_suffix = "" + +/obj/item/clothing/head/hunter + name = "bounty hunting hat" + desc = "Ain't nobody gonna cheat the hangman in my town." + icon_state = "hunter" + item_state = "hunter" + armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 15, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + resistance_flags = FIRE_PROOF | ACID_PROOF + +/obj/item/clothing/head/kepi + name = "kepi" + desc = "A white cap with visor. Oui oui, mon capitane!" + icon_state = "kepi" + +/obj/item/clothing/head/kepi/old + icon_state = "kepi_old" + desc = "A flat, white circular cap with a visor, that demands some honor from it's wearer." diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 764b50de8c..723fb93b78 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -114,6 +114,7 @@ desc = "A jack o' lantern! Believed to ward off evil spirits." icon_state = "hardhat0_pumpkin" item_state = "hardhat0_pumpkin" + hat_type = "pumpkin" flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) brightness_on = 2 //luminosity when on @@ -150,6 +151,7 @@ desc = "Some fake antlers and a very fake red nose." icon_state = "hardhat0_reindeer" item_state = "hardhat0_reindeer" + hat_type = "reindeer" flags_inv = 0 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) brightness_on = 1 //luminosity when on @@ -236,7 +238,7 @@ item_state = "foilhat" armor = list("melee" = 0, "bullet" = 0, "laser" = -5,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = -5, "fire" = 0, "acid" = 0) equip_delay_other = 140 - var/datum/brain_trauma/mild/phobia/paranoia + var/datum/brain_trauma/mild/phobia/conspiracies/paranoia var/warped = FALSE clothing_flags = IGNORE_HAT_TOSS @@ -253,7 +255,8 @@ return if(paranoia) QDEL_NULL(paranoia) - paranoia = new("conspiracies") + paranoia = new() + paranoia.clonable = FALSE user.gain_trauma(paranoia, TRAUMA_RESILIENCE_MAGIC) to_chat(user, "As you don the foiled hat, an entire world of conspiracy theories and seemingly insane ideas suddenly rush into your mind. What you once thought unbelievable suddenly seems.. undeniable. Everything is connected and nothing happens just by accident. You know too much and now they're out to get you. ") diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index 2f4bd44e4f..084d39a9b5 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -134,7 +134,7 @@ name = "baseball cap" desc = "It's a robust baseball hat, this one belongs to syndicate major league team." icon_state = "baseballsoft" - soft_type = "baseballsoft" + soft_type = "baseball" item_state = "baseballsoft" flags_inv = HIDEEYES|HIDEFACE armor = list("melee" = 35, "bullet" = 35, "laser" = 25, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 90) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 90b3d7d86b..4c26a0863e 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -198,6 +198,7 @@ desc = "A creepy wooden mask. Surprisingly expressive for a poorly carved bit of wood." icon_state = "tiki_eyebrow" item_state = "tiki_eyebrow" + custom_materials = list(/datum/material/wood = MINERAL_MATERIAL_AMOUNT * 1.25) resistance_flags = FLAMMABLE max_integrity = 100 actions_types = list(/datum/action/item_action/adjust) @@ -230,3 +231,16 @@ A.UpdateButtonIcon() to_chat(M, "The Tiki Mask has now changed into the [choice] Mask!") return TRUE + +/obj/item/clothing/mask/gas/tiki_mask/yalp_elor + icon_state = "tiki_yalp" + item_state = "tiki_yalp" + actions_types = list() + +/obj/item/clothing/mask/gas/hunter + name = "bounty hunting mask" + desc = "A custom tactical mask with decals added." + icon_state = "hunter" + item_state = "hunter" + resistance_flags = FIRE_PROOF | ACID_PROOF + flags_inv = HIDEFACIALHAIR|HIDEFACE|HIDEEYES|HIDEEARS|HIDEHAIR diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm index 086d47e8bf..a7038f7ec9 100644 --- a/code/modules/clothing/masks/hailer.dm +++ b/code/modules/clothing/masks/hailer.dm @@ -185,3 +185,9 @@ playsound(src.loc, "sound/voice/complionator/[phrase_sound].ogg", 100, 0, 4) cooldown = world.time cooldown_special = world.time + +/obj/item/clothing/mask/gas/sechailer/swat/spacepol + name = "spacepol mask" + desc = "A close-fitting tactical mask created in cooperation with a certain megacorporation, comes with an especially aggressive Compli-o-nator 3000." + icon_state = "spacepol" + item_state = "spacepol" diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index 3052d7af8e..6a836cad7b 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -22,7 +22,6 @@ icon_state = "bluetie" item_state = "" //no inhands w_class = WEIGHT_CLASS_SMALL - custom_price = 60 /obj/item/clothing/neck/tie/blue name = "blue tie" @@ -88,7 +87,6 @@ /obj/item/clothing/neck/scarf //Default white color, same functionality as beanies. name = "white scarf" icon_state = "scarf" - custom_price = 60 desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks." dog_fashion = /datum/dog_fashion/head diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index d692f9c3fb..afe74de6a0 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -123,7 +123,7 @@ l_pocket = /obj/item/reagent_containers/food/snacks/grown/banana r_pocket = /obj/item/bikehorn id = /obj/item/card/id - r_hand = /obj/item/twohanded/fireaxe + r_hand = /obj/item/fireaxe /datum/outfit/tunnel_clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) if(visualsOnly) @@ -148,7 +148,7 @@ suit = /obj/item/clothing/suit/apron l_pocket = /obj/item/kitchen/knife r_pocket = /obj/item/scalpel - r_hand = /obj/item/twohanded/fireaxe + r_hand = /obj/item/fireaxe /datum/outfit/psycho/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) for(var/obj/item/carried_item in H.get_equipped_items(TRUE)) diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index 802dd7265e..447a531717 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -18,6 +18,7 @@ mutantrace_variation = STYLE_DIGITIGRADE var/last_bloodtype = "" //used to track the last bloodtype to have graced these shoes; makes for better performing footprint shenanigans var/last_blood_DNA = "" //same as last one + var/last_blood_color = "" /obj/item/clothing/shoes/ComponentInitialize() . = ..() @@ -48,6 +49,7 @@ if(blood_dna.len) last_bloodtype = blood_dna[blood_dna[blood_dna.len]]//trust me this works last_blood_DNA = blood_dna[blood_dna.len] + last_blood_color = blood_dna["color"] /obj/item/clothing/shoes/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = ..() diff --git a/code/modules/clothing/shoes/colour.dm b/code/modules/clothing/shoes/colour.dm index 8cadb84cef..df0f03f614 100644 --- a/code/modules/clothing/shoes/colour.dm +++ b/code/modules/clothing/shoes/colour.dm @@ -1,6 +1,5 @@ /obj/item/clothing/shoes/sneakers dying_key = DYE_REGISTRY_SNEAKERS - custom_price = 50 /obj/item/clothing/shoes/sneakers/black name = "black shoes" diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 9c6c81372a..b68bef6329 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -45,6 +45,7 @@ desc = "A pair of rather plain wooden sandals." name = "sandals" icon_state = "wizard" + custom_materials = list(/datum/material/wood = MINERAL_MATERIAL_AMOUNT * 0.5) strip_delay = 50 equip_delay_other = 50 permeability_coefficient = 0.9 @@ -71,7 +72,7 @@ equip_delay_other = 50 resistance_flags = NONE armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 40, "acid" = 75) - custom_price = 600 + custom_price = PRICE_ABOVE_EXPENSIVE /obj/item/clothing/shoes/galoshes/dry name = "absorbent galoshes" @@ -383,7 +384,6 @@ /obj/item/clothing/shoes/cowboyboots name = "cowboy boots" desc = "A standard pair of brown cowboy boots." - custom_price = 60 //remember to replace these lame cosmetics with tg's YEEEEHAW counterparts. icon_state = "cowboyboots" /obj/item/clothing/shoes/cowboyboots/black diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm index 94ccdf94c6..4590d46219 100644 --- a/code/modules/clothing/spacesuits/chronosuit.dm +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -84,7 +84,7 @@ user.alpha = 255 user.update_atom_colour() user.animate_movement = FORWARD_STEPS - user.notransform = 0 + user.mob_transforming = 0 user.anchored = FALSE teleporting = 0 for(var/obj/item/I in user.held_items) @@ -125,7 +125,7 @@ ADD_TRAIT(I, TRAIT_NODROP, CHRONOSUIT_TRAIT) user.animate_movement = NO_STEPS user.changeNext_move(8 + phase_in_ds) - user.notransform = 1 + user.mob_transforming = 1 user.anchored = TRUE user.Stun(INFINITY) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 2e72c154d9..695d25dbf4 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -639,7 +639,7 @@ /obj/item/clothing/suit/space/hardsuit/ancient/mason name = "M.A.S.O.N RIG" - desc = "The Multi-Augmented Severe Operations Networked Resource Integration Gear is an man-portable tank designed for extreme environmental situations. It is excessively bulky, but rated for all but the most atomic of hazards. The specialized armor is surprisingly weak to conventional weaponry. The exo slot can attach most storge bags on to the suit." + desc = "The Multi-Augmented Severe Operations Networked Resource Integration Gear is an man-portable tank designed for extreme environmental situations. It is excessively bulky, but rated for all but the most atomic of hazards. The specialized armor is surprisingly weak to conventional weaponry. The exo slot can attach most storage bags on to the suit." icon_state = "hardsuit-ancient" item_state = "anc_hardsuit" armor = list("melee" = 20, "bullet" = 15, "laser" = 15, "energy" = 45, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) @@ -649,7 +649,6 @@ max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | IMMUTABLE_SLOW resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF - flags_1 = TESLA_IGNORE_1 /obj/item/clothing/head/helmet/space/hardsuit/ancient/mason name = "M.A.S.O.N RIG helmet" @@ -665,7 +664,6 @@ max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT | ALLOWINTERNALS | SCAN_REAGENTS resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF - flags_1 = TESLA_IGNORE_1 /obj/item/clothing/head/helmet/space/hardsuit/ancient/mason/Initialize() . = ..() @@ -676,12 +674,14 @@ if (slot == SLOT_HEAD) var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_DIAGNOSTIC_BASIC] DHUD.add_hud_to(user) + ADD_TRAIT(user, TRAIT_TESLA_SHOCKIMMUNE, "mason_hardsuit") /obj/item/clothing/head/helmet/space/hardsuit/ancient/mason/dropped(mob/living/carbon/human/user) ..() - if (user.head == src) + if (HAS_TRAIT_FROM(user, TRAIT_TESLA_SHOCKIMMUNE, "mason_hardsuit")) var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_DIAGNOSTIC_BASIC] DHUD.remove_hud_from(user) + REMOVE_TRAIT(user, TRAIT_TESLA_SHOCKIMMUNE, "mason_hardsuit") /obj/item/clothing/suit/space/hardsuit/ancient/proc/on_mob_move() var/mob/living/carbon/human/H = loc @@ -915,8 +915,8 @@ /obj/item/clothing/head/helmet/space/hardsuit/lavaknight/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands) - var/mutable_appearance/energy_overlay = mutable_appearance(icon_file, "knight_cydonia_overlay", ABOVE_LIGHTING_LAYER) - energy_overlay.plane = ABOVE_LIGHTING_LAYER + var/mutable_appearance/energy_overlay = mutable_appearance(icon_file, "knight_cydonia_overlay", EMISSIVE_LAYER) + energy_overlay.plane = EMISSIVE_PLANE energy_overlay.color = energy_color . += energy_overlay @@ -946,8 +946,8 @@ /obj/item/clothing/suit/space/hardsuit/lavaknight/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands) - var/mutable_appearance/energy_overlay = mutable_appearance(icon_file, "knight_cydonia_overlay", ABOVE_LIGHTING_LAYER) - energy_overlay.plane = ABOVE_LIGHTING_LAYER + var/mutable_appearance/energy_overlay = mutable_appearance(icon_file, "knight_cydonia_overlay", EMISSIVE_LAYER) + energy_overlay.plane = EMISSIVE_PLANE energy_overlay.color = energy_color . += energy_overlay diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index e1deb5d28c..7df91352ca 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -395,10 +395,18 @@ Contains: actions_types = list() resistance_flags = FIRE_PROOF mutantrace_variation = NONE + var/charges = INFINITY -/obj/item/clothing/suit/space/hardsuit/ert/paranormal/Initialize() +/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/Initialize() . = ..() - AddComponent(/datum/component/anti_magic, FALSE, FALSE, TRUE, ITEM_SLOT_HEAD) + AddComponent(/datum/component/anti_magic, FALSE, FALSE, TRUE, ITEM_SLOT_HEAD, charges, TRUE, null, CALLBACK(src, .proc/anti_magic_gone)) + +/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/proc/anti_magic_gone() + var/mob/M = loc + if(!istype(M)) + return + do_sparks(2, TRUE, M) + M.show_message("\The [src] sparks and fizzles as its psychic wards wane away at last...", MSG_VISUAL) /obj/item/clothing/suit/space/hardsuit/ert/paranormal name = "paranormal response team suit" @@ -408,10 +416,18 @@ Contains: helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF + var/charges = INFINITY /obj/item/clothing/suit/space/hardsuit/ert/paranormal/Initialize() . = ..() - AddComponent(/datum/component/anti_magic, TRUE, TRUE, FALSE, ITEM_SLOT_OCLOTHING) + AddComponent(/datum/component/anti_magic, TRUE, TRUE, FALSE, ITEM_SLOT_OCLOTHING, charges, TRUE, null, CALLBACK(src, .proc/anti_magic_gone)) + +/obj/item/clothing/suit/space/hardsuit/ert/paranormal/proc/anti_magic_gone() + var/mob/M = loc + if(!istype(M)) + return + do_sparks(2, TRUE, M) + M.show_message("\The [src] sparks and fizzles as its anti magic wards wane away at last...", MSG_VISUAL) /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor name = "inquisitor's hardsuit" @@ -424,6 +440,18 @@ Contains: icon_state = "hardsuit0-inq" item_state = "hardsuit0-inq" +/obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor/old + desc = "Powerful wards are built into this hardsuit, protecting the user from all manner of paranormal threats. Alas, this one looks pretty worn out and rusted." + armor = list("melee" = 55, "bullet" = 40, "laser" = 40, "energy" = 40, "bomb" = 40, "bio" = 80, "rad" = 80, "fire" = 60, "acid" = 60) + slowdown = 0.8 + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor/old + charges = 12 + +/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor/old + desc = "A helmet worn by those who deal with paranormal threats for a living. Alas, this one looks pretty worn out and rusted." + armor = list("melee" = 55, "bullet" = 40, "laser" = 40, "energy" = 40, "bomb" = 40, "bio" = 80, "rad" = 80, "fire" = 60, "acid" = 60) + charges = 12 + /obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker name = "champion's hardsuit" desc = "Voices echo from the hardsuit, driving the user insane." @@ -437,6 +465,18 @@ Contains: icon_state = "hardsuit0-beserker" item_state = "hardsuit0-beserker" +/obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker/old + desc = "Voices echo from the hardsuit, driving the user insane. This one is pretty battle-worn, but still fearsome." + armor = list("melee" = 55, "bullet" = 40, "laser" = 40, "energy" = 40, "bomb" = 40, "bio" = 80, "rad" = 80, "fire" = 60, "acid" = 60) + slowdown = 0.8 + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/beserker/old + charges = 6 + +/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/beserker/old + desc = "Peering into the eyes of the helmet is enough to seal damnation. This one is pretty battle-worn, but still fearsome." + armor = list("melee" = 55, "bullet" = 40, "laser" = 40, "energy" = 40, "bomb" = 40, "bio" = 80, "rad" = 80, "fire" = 60, "acid" = 60) + charges = 6 + /obj/item/clothing/head/helmet/space/fragile name = "emergency space helmet" desc = "A bulky, air-tight helmet meant to protect the user during emergency situations. It doesn't look very durable." @@ -477,4 +517,15 @@ Contains: name = "paramedic EVA helmet" desc = "A deep blue space helmet with a large red cross on the faceplate to designate the wearer as trained emergency medical personnel." icon_state = "paramedic-eva-helmet" - item_state = "paramedic-eva-helmet" \ No newline at end of file + item_state = "paramedic-eva-helmet" + +/obj/item/clothing/suit/space/hunter + name = "bounty hunting suit" + desc = "A custom version of the MK.II SWAT suit, modified to look rugged and tough. Works as a space suit, if you can find a helmet." + icon_state = "hunter" + item_state = "swat_suit" + allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/kitchen/knife/combat) + armor = list("melee" = 60, "bullet" = 40, "laser" = 40, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) + strip_delay = 130 + resistance_flags = FIRE_PROOF | ACID_PROOF + diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 21dcd37bc2..0ef1a83bf5 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -49,7 +49,7 @@ desc = "A large, yet comfortable piece of armor, protecting you from some threats." icon_state = "blueshift" item_state = "blueshift" - custom_premium_price = 750 + custom_premium_price = PRICE_ABOVE_EXPENSIVE /obj/item/clothing/suit/armor/hos name = "armored greatcoat" @@ -286,7 +286,7 @@ icon_state = "knight_greyscale" item_state = "knight_greyscale" armor = list("melee" = 35, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 10, "bio" = 10, "rad" = 10, "fire" = 40, "acid" = 40) - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS //Can change color and add prefix + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS //Can change color and add prefix /obj/item/clothing/suit/armor/vest/durathread name = "makeshift vest" diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index ce3d2576f9..d5f65e4fa8 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -59,7 +59,7 @@ name = "goliath cloak" icon_state = "goliath_cloak" desc = "A staunch, practical cape made out of numerous monster materials, it is coveted amongst exiles & hermits." - allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/twohanded/spear, /obj/item/twohanded/bonespear, /obj/item/organ/regenerative_core/legion, /obj/item/kitchen/knife/combat/bone, /obj/item/kitchen/knife/combat/survival) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/spear, /obj/item/spear/bonespear, /obj/item/organ/regenerative_core/legion, /obj/item/kitchen/knife/combat/bone, /obj/item/kitchen/knife/combat/survival) armor = list("melee" = 35, "bullet" = 10, "laser" = 25, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 60) //a fair alternative to bone armor, requiring alternative materials and gaining a suit slot hoodtype = /obj/item/clothing/head/hooded/cloakhood/goliath body_parts_covered = CHEST|ARMS|LEGS @@ -75,8 +75,8 @@ name = "drake armour" icon_state = "dragon" desc = "A suit of armour fashioned from the remains of an ash drake." - allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/twohanded/spear) - armor = list("melee" = 70, "bullet" = 30, "laser" = 50, "energy" = 40, "bomb" = 70, "bio" = 60, "rad" = 50, "fire" = 100, "acid" = 100) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/spear) + armor = list("melee" = 70, "bullet" = 20, "laser" = 35, "energy" = 25, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) hoodtype = /obj/item/clothing/head/hooded/cloakhood/drake heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS @@ -87,7 +87,7 @@ name = "drake helm" icon_state = "dragon" desc = "The skull of a dragon." - armor = list("melee" = 70, "bullet" = 30, "laser" = 50, "energy" = 40, "bomb" = 70, "bio" = 60, "rad" = 50, "fire" = 100, "acid" = 100) + armor = list("melee" = 70, "bullet" = 20, "laser" = 35, "energy" = 25, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) heat_protection = HEAD max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | ACID_PROOF | GOLIATH_RESISTANCE diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 6c4511324d..05abed603c 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -537,7 +537,7 @@ /obj/item/clothing/suit/hooded/wintercoat/captain name = "captain's winter coat" - desc = "A luxuriant winter coat, stuffed with the down of the endangered Uka bird and trimmed with genuine sable. The fabric is an indulgently soft micro-fiber, and the deep ultramarine color is only one that could be achieved with minute amounts of crystalline bluespace dust woven into the thread between the plectrums. Extremely lavish, and extremely durable. The tiny flakes of protective material make it nothing short of extremely light lamellar armor." + desc = "A luxurious winter coat, stuffed with the down of the endangered Uka bird and trimmed with genuine sable. The fabric is an indulgently soft micro-fiber, and the deep ultramarine color is only one that could be achieved with minute amounts of crystalline bluespace dust woven into the thread between the plectrums. Extremely lavish, and extremely durable. The tiny flakes of protective material make it nothing short of extremely light lamellar armor." icon_state = "coatcaptain" item_state = "coatcaptain" armor = list("melee" = 25, "bullet" = 30, "laser" = 30, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 50) @@ -565,7 +565,7 @@ /obj/item/clothing/suit/hooded/wintercoat/security name = "security winter coat" - desc = "A red, armor-padded winter coat. It glitters with a mild ablative coating and a robust air of authority. The zipper tab is a pair of jingly little handcuffs and got annoying after the first ten seconds." + desc = "A red, armor-padded winter coat. It glitters with a mild ablative coating and a robust air of authority. The zipper tab is a pair of jingly little handcuffs that get annoying after the first ten seconds." icon_state = "coatsecurity" item_state = "coatsecurity" armor = list("melee" = 25, "bullet" = 15, "laser" = 30, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 45) @@ -647,6 +647,19 @@ desc = "A white winter coat hood with green markings." icon_state = "winterhood_viro" +/obj/item/clothing/suit/hooded/wintercoat/paramedic + name = "paramedic winter coat" + desc = "A winter coat with blue markings. Warm, but probably won't protect from biological agents. For the cozy doctor on the go." + icon_state = "coatparamed" + item_state = "coatparamed" + allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) + armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 0, "acid" = 45) + hoodtype = /obj/item/clothing/head/hooded/winterhood/paramedic + +/obj/item/clothing/head/hooded/winterhood/paramedic + desc = "A white winter coat hood with blue markings." + icon_state = "winterhood_paramed" + /obj/item/clothing/suit/hooded/wintercoat/science name = "science winter coat" desc = "A white winter coat with an outdated atomic model instead of a plastic zipper tab." @@ -854,7 +867,7 @@ icon_state = "coatnarsie" item_state = "coatnarsie" armor = list("melee" = 30, "bullet" = 20, "laser" = 30,"energy" = 10, "bomb" = 30, "bio" = 10, "rad" = 10, "fire" = 30, "acid" = 30) - allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/restraints/legcuffs/bola/cult,/obj/item/melee/cultblade,/obj/item/melee/cultblade/dagger,/obj/item/reagent_containers/glass/beaker/unholywater,/obj/item/cult_shift,/obj/item/flashlight/flare/culttorch,/obj/item/twohanded/cult_spear) + allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/restraints/legcuffs/bola/cult,/obj/item/melee/cultblade,/obj/item/melee/cultblade/dagger,/obj/item/reagent_containers/glass/beaker/unholywater,/obj/item/cult_shift,/obj/item/flashlight/flare/culttorch,/obj/item/cult_spear) hoodtype = /obj/item/clothing/head/hooded/winterhood/narsie var/real = TRUE @@ -1003,3 +1016,9 @@ /obj/item/clothing/head/hooded/winterhood/polychromic icon_state = "winterhood_poly" item_state = "winterhood_poly" + +/obj/item/clothing/suit/striped_sweater + name = "striped sweater" + desc = "Reminds you of someone, but you just can't put your finger on it..." + icon_state = "waldo_shirt" + item_state = "waldo_shirt" diff --git a/code/modules/clothing/suits/reactive_armour.dm b/code/modules/clothing/suits/reactive_armour.dm index c9b7695779..98fb836c38 100644 --- a/code/modules/clothing/suits/reactive_armour.dm +++ b/code/modules/clothing/suits/reactive_armour.dm @@ -164,21 +164,21 @@ desc = "An experimental suit of armor with sensitive detectors hooked up to a huge capacitor grid, with emitters strutting out of it. Zap." siemens_coefficient = -1 reactivearmor_cooldown_duration = 20 - var/tesla_power = 25000 - var/tesla_range = 20 - var/tesla_flags = TESLA_MOB_DAMAGE | TESLA_OBJ_DAMAGE + var/zap_power = 25000 + var/zap_range = 20 + var/zap_flags = ZAP_MOB_DAMAGE | ZAP_OBJ_DAMAGE var/legacy = FALSE var/legacy_dmg = 30 /obj/item/clothing/suit/armor/reactive/tesla/dropped(mob/user) ..() if(istype(user)) - user.flags_1 &= ~TESLA_IGNORE_1 + REMOVE_TRAIT(user, TRAIT_TESLA_SHOCKIMMUNE, "reactive_tesla_armor") /obj/item/clothing/suit/armor/reactive/tesla/equipped(mob/user, slot) ..() if(slot_flags & slotdefine2slotbit(slot)) //Was equipped to a valid slot for this item? - user.flags_1 |= TESLA_IGNORE_1 + ADD_TRAIT(user, TRAIT_TESLA_SHOCKIMMUNE, "reactive_tesla_armor") /obj/item/clothing/suit/armor/reactive/tesla/block_action(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) if(prob(hit_reaction_chance)) @@ -190,7 +190,7 @@ return owner.visible_message("[src] blocks [attack_text], sending out arcs of lightning!") if(!legacy) - tesla_zap(owner, tesla_range, tesla_power, tesla_flags) + tesla_zap(owner, zap_range, zap_power, zap_flags) else for(var/mob/living/M in view(7, owner)) if(M == owner) diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm index 639f2d3bfb..60f8cc179a 100644 --- a/code/modules/clothing/suits/toggles.dm +++ b/code/modules/clothing/suits/toggles.dm @@ -164,7 +164,7 @@ RemoveHelmet() ..() -/obj/item/clothing/suit/space/hardsuit/proc/RemoveHelmet() +/obj/item/clothing/suit/space/hardsuit/proc/RemoveHelmet(message = TRUE) if(!helmet) return suittoggled = FALSE @@ -174,16 +174,18 @@ helmet.attack_self(H) H.transferItemToLoc(helmet, src, TRUE) H.update_inv_wear_suit() - to_chat(H, "The helmet on the hardsuit disengages.") + if(message) + to_chat(H, "The helmet on the hardsuit disengages.") playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1) else helmet.forceMove(src) + return TRUE /obj/item/clothing/suit/space/hardsuit/dropped(mob/user) ..() RemoveHelmet() -/obj/item/clothing/suit/space/hardsuit/proc/ToggleHelmet() +/obj/item/clothing/suit/space/hardsuit/proc/ToggleHelmet(message = TRUE) var/mob/living/carbon/human/H = loc if(!helmettype) return @@ -192,15 +194,19 @@ if(!suittoggled) if(ishuman(src.loc)) if(H.wear_suit != src) - to_chat(H, "You must be wearing [src] to engage the helmet!") + if(message) + to_chat(H, "You must be wearing [src] to engage the helmet!") return if(H.head) - to_chat(H, "You're already wearing something on your head!") + if(message) + to_chat(H, "You're already wearing something on your head!") return else if(H.equip_to_slot_if_possible(helmet,SLOT_HEAD,0,0,1)) - to_chat(H, "You engage the helmet on the hardsuit.") + if(message) + to_chat(H, "You engage the helmet on the hardsuit.") suittoggled = TRUE H.update_inv_wear_suit() playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1) + return TRUE else - RemoveHelmet() + return RemoveHelmet(message) diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index e392a6b2d1..047dc7b7a3 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -165,31 +165,134 @@ var/robe_charge = TRUE actions_types = list(/datum/action/item_action/stickmen) +/obj/item/clothing/suit/wizrobe/paper/item_action_slot_check(slot, mob/user, datum/action/A) + if(A.type == /datum/action/item_action/stickmen && slot != SLOT_WEAR_SUIT) + return FALSE + return ..() -/obj/item/clothing/suit/wizrobe/paper/ui_action_click(mob/user, action) - stickmen() +//Stickmemes. VV-friendly. +/datum/action/item_action/stickmen + name = "Summon Stick Minions" + desc = "Allows you to summon faithful stickmen allies to aide you in battle." + icon_icon = 'icons/mob/actions/actions_minor_antag.dmi' + button_icon_state = "art_summon" + var/ready = TRUE + var/list/summoned_stickmen = list() + var/summoned_mob_path = /mob/living/simple_animal/hostile/stickman //Must be an hostile animal path. + var/max_stickmen = 8 + var/cooldown = 3 SECONDS + var/list/book_of_grudges = list() + +/datum/action/item_action/stickmen/New(Target) + ..() + if(isitem(Target)) + RegisterSignal(Target, COMSIG_PARENT_EXAMINE, .proc/give_infos) + +/datum/action/item_action/stickmen/Destroy() + for(var/A in summoned_stickmen) + var/mob/living/simple_animal/hostile/S = A + if(S.client) + to_chat(S, "A dizzying sensation strikes you as the comglomerate of pencil lines you call \ + your body crumbles under the pressure of an invisible eraser, soon to join bilions discarded sketches. \ + It seems whatever was keeping you in this realm has come to an end, like all things.") + animate(S, alpha = 0, time = 5 SECONDS) + QDEL_IN(S, 5 SECONDS) + return ..() + +/datum/action/item_action/stickmen/proc/give_infos(atom/source, mob/user, list/examine_list) + examine_list += "Making sure you are properly wearing or holding it, \ + point at whatever you want to rally your minions to its position." + examine_list += "While on harm intent, pointed mobs (minus you and the minions) \ + will also be marked as foes for your minions to attack for the next 2 minutes." + +/datum/action/item_action/stickmen/Grant(mob/M) + . = ..() + if(owner) + RegisterSignal(M, COMSIG_MOB_POINTED, .proc/rally) + if(book_of_grudges[M]) //Stop attacking your new master. + book_of_grudges -= M + for(var/A in summoned_stickmen) + var/mob/living/simple_animal/hostile/S = A + if(!S.mind) + S.LoseTarget() -/obj/item/clothing/suit/wizrobe/paper/verb/stickmen() - set category = "Object" - set name = "Summon Stick Minions" - set src in usr - if(!isliving(usr)) +/datum/action/item_action/stickmen/Remove(mob/M) + . = ..() + UnregisterSignal(M, COMSIG_MOB_POINTED) + +/datum/action/item_action/stickmen/Trigger() + . = ..() + if(!.) return - if(!robe_charge) - to_chat(usr, "\The robe's internal magic supply is still recharging!") + if(!ready) + to_chat(owner, "[src]'s internal magic supply is still recharging!") + return FALSE + var/summon = TRUE + if(length(summoned_stickmen) >= max_stickmen) + var/mob/living/simple_animal/hostile/S = popleft(summoned_stickmen) + if(!S.client) + qdel(S) + else + S.forceMove(owner.drop_location()) + S.revive(TRUE) + summoned_stickmen[S] = TRUE + summon = FALSE + + owner.say("Rise, my creation! Off your page into this realm!", forced = "stickman summoning") + playsound(owner, 'sound/magic/summon_magic.ogg', 50, 1, 1) + if(summon) + var/mob/living/simple_animal/hostile/S = new summoned_mob_path (get_turf(usr)) + S.faction = owner.faction + S.foes = book_of_grudges + RegisterSignal(S, COMSIG_PARENT_QDELETING, .proc/remove_from_list) + ready = FALSE + addtimer(CALLBACK(src, .proc/ready_again), cooldown) + +/datum/action/item_action/stickmen/proc/remove_from_list(datum/source, forced) + summoned_stickmen -= source + +/datum/action/item_action/stickmen/proc/ready_again() + ready = TRUE + if(owner) + to_chat(owner, "[src] hums, its internal magic supply restored.") + +/** + * Rallies your army of stickmen to whichever target the user is pointing. + * Should the user be on harm intent and the target be a living mob that's not the user or a fellow stickman, + * said target will be added to a list of foes which the stickmen will gladly dispose regardless of faction. + * This is designed so stickmen will move toward whatever you point at even when you don't want to, that's the downside. + */ +/datum/action/item_action/stickmen/proc/rally(mob/source, atom/A) + var/turf/T = get_turf(A) + var/list/surrounding_turfs = block(locate(T.x - 1, T.y - 1, T.z), locate(T.x + 1, T.y + 1, T.z)) + if(!surrounding_turfs.len) return + if(source.a_intent == INTENT_HARM && A != source && !summoned_stickmen[A]) + var/mob/living/L + if(isliving(A)) //Gettem boys! + L = A + else if(ismecha(A)) + var/obj/mecha/M = A + L = M.occupant + if(L && L.stat != DEAD && !HAS_TRAIT(L, TRAIT_DEATHCOMA)) //Taking revenge on the deads would be proposterous. + addtimer(CALLBACK(src, .proc/clear_grudge, L), 2 MINUTES, TIMER_OVERRIDE|TIMER_UNIQUE) + if(!book_of_grudges[L]) + RegisterSignal(L, list(COMSIG_PARENT_QDELETING, COMSIG_MOB_DEATH), .proc/grudge_settled) + book_of_grudges[L] = TRUE + for(var/k in summoned_stickmen) //Shamelessly copied from the blob rally power + var/mob/living/simple_animal/hostile/S = k + if(!S.mind && isturf(S.loc) && get_dist(S, T) <= 10) + S.LoseTarget() + S.Goto(pick(surrounding_turfs), S.move_to_delay) - usr.say("Rise, my creation! Off your page into this realm!", forced = "stickman summoning") - playsound(src.loc, 'sound/magic/summon_magic.ogg', 50, 1, 1) - var/mob/living/M = new /mob/living/simple_animal/hostile/stickman(get_turf(usr)) - var/list/factions = usr.faction - M.faction = factions - src.robe_charge = FALSE - sleep(30) - src.robe_charge = TRUE - to_chat(usr, "\The robe hums, its internal magic supply restored.") +/datum/action/item_action/stickmen/proc/clear_grudge(mob/living/L) + if(!QDELETED(L)) + book_of_grudges -= L +/datum/action/item_action/stickmen/proc/grudge_settled(mob/living/L) + UnregisterSignal(L, list(COMSIG_PARENT_QDELETING, COMSIG_MOB_DEATH)) + book_of_grudges -= L //Shielded Armour diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 88821e1afe..cb173f3bde 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -329,14 +329,14 @@ name = "bone talisman" desc = "A hunter's talisman, some say the old gods smile on those who wear it." icon_state = "talisman" - armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 20, "bio" = 20, "rad" = 5, "fire" = 0, "acid" = 25) + armor = list("melee" = 5, "bullet" = 5, "laser" = 0, "energy" = 0, "bomb" = 10, "bio" = 20, "rad" = 5, "fire" = 0, "acid" = 25) /obj/item/clothing/accessory/skullcodpiece name = "skull codpiece" desc = "A skull shaped ornament, intended to protect the important things in life." icon_state = "skull" above_suit = TRUE - armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 20, "bio" = 20, "rad" = 5, "fire" = 0, "acid" = 25) + armor = list("melee" = 5, "bullet" = 5, "laser" = 0, "energy" = 0, "bomb" = 10, "bio" = 20, "rad" = 5, "fire" = 0, "acid" = 25) /obj/item/clothing/accessory/skullcodpiece/fake name = "false codpiece" diff --git a/code/modules/clothing/under/jobs/command.dm b/code/modules/clothing/under/jobs/command.dm index a614e2fcb3..1bc0f64373 100644 --- a/code/modules/clothing/under/jobs/command.dm +++ b/code/modules/clothing/under/jobs/command.dm @@ -46,4 +46,4 @@ icon_state = "lewdcap" item_state = "lewdcap" can_adjust = FALSE - mutantrace_variation = USE_TAUR_CLIP_MASK + mutantrace_variation = STYLE_DIGITIGRADE|USE_TAUR_CLIP_MASK diff --git a/code/modules/clothing/under/jobs/medical.dm b/code/modules/clothing/under/jobs/medical.dm index f50e5161b6..78a905f897 100644 --- a/code/modules/clothing/under/jobs/medical.dm +++ b/code/modules/clothing/under/jobs/medical.dm @@ -22,7 +22,7 @@ icon_state = "cmoturtle" item_state = "w_suit" alt_covers_chest = TRUE - mutantrace_variation = USE_TAUR_CLIP_MASK + mutantrace_variation = STYLE_DIGITIGRADE|USE_TAUR_CLIP_MASK /obj/item/clothing/under/rank/medical/geneticist desc = "It's made of a special fiber that gives special protection against biohazards. It has a genetics rank stripe on it." diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index 0061a4bc2d..26fff7c8ed 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -192,3 +192,14 @@ icon_state = "hos_parade_fem" item_state = "r_suit" fitted = FEMALE_UNIFORM_TOP + +/* + *Spacepol + */ + +/obj/item/clothing/under/rank/security/spacepol + name = "police uniform" + desc = "Space not controlled by megacorporations, planets, or pirates is under the jurisdiction of Spacepol." + icon_state = "spacepol" + item_state = "spacepol" + can_adjust = FALSE \ No newline at end of file diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index cd58571251..997f10a379 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -87,7 +87,6 @@ icon_state = "overalls" item_state = "lb_suit" can_adjust = FALSE - custom_price = 60 /obj/item/clothing/under/misc/assistantformal name = "assistant's formal uniform" diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm index 46fc13d06e..c93cefeae9 100644 --- a/code/modules/clothing/under/pants.dm +++ b/code/modules/clothing/under/pants.dm @@ -3,7 +3,6 @@ body_parts_covered = GROIN|LEGS fitted = NO_FEMALE_UNIFORM can_adjust = FALSE - custom_price = 60 mutantrace_variation = STYLE_DIGITIGRADE //how do they show up on taurs otherwise? /obj/item/clothing/under/pants/classicjeans @@ -15,7 +14,7 @@ name = "Must Hang jeans" desc = "Made in the finest space jeans factory this side of Alpha Centauri." icon_state = "jeansmustang" - custom_price = 180 + custom_price = PRICE_ABOVE_NORMAL /obj/item/clothing/under/pants/blackjeans name = "black jeans" diff --git a/code/modules/clothing/under/skirt_dress.dm b/code/modules/clothing/under/skirt_dress.dm index 0d04193e1f..e1212cf337 100644 --- a/code/modules/clothing/under/skirt_dress.dm +++ b/code/modules/clothing/under/skirt_dress.dm @@ -17,7 +17,6 @@ body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - custom_price = 60 /obj/item/clothing/under/dress/skirt/red name = "red skirt" @@ -27,7 +26,6 @@ body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - custom_price = 60 /obj/item/clothing/under/dress/skirt/purple name = "purple skirt" @@ -37,7 +35,6 @@ body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - custom_price = 60 /obj/item/clothing/under/dress/sundress name = "sundress" @@ -151,7 +148,6 @@ fitted = FEMALE_UNIFORM_TOP can_adjust = TRUE alt_covers_chest = TRUE - custom_price = 60 /obj/item/clothing/under/dress/skirt/plaid/blue name = "blue plaid skirt" diff --git a/code/modules/clothing/under/trek.dm b/code/modules/clothing/under/trek.dm index bc64168142..8b6b8055bd 100644 --- a/code/modules/clothing/under/trek.dm +++ b/code/modules/clothing/under/trek.dm @@ -97,6 +97,48 @@ icon_state = "trek_ds9_medsci" item_state = "b_suit" +//Orvilike (Orville-inspired clothing with TOS-like color code) +/obj/item/clothing/under/trek/command/orv + desc = "An uniform worn by command officers since 2420s." + icon_state = "orv_com" + +/obj/item/clothing/under/trek/engsec/orv + desc = "An uniform worn by operations officers since 2420s." + icon_state = "orv_ops" + +/obj/item/clothing/under/trek/medsci/orv + desc = "An uniform worn by medsci officers since 2420s." + icon_state = "orv_medsci" + +//Orvilike Extra (Ditto, but expands it for Civilian department with SS13 colors and gives specified command uniform) +//honestly no idea why i added specified comm. uniforms but w/e +/obj/item/clothing/under/trek/command/orv/captain + name = "captain uniform" + desc = "An uniform worn by captains since 2550s." + icon_state = "orv_com_capt" + +/obj/item/clothing/under/trek/command/orv/engsec + name = "operations command uniform" + desc = "An uniform worn by operations command officers since 2550s." + icon_state = "orv_com_ops" + +/obj/item/clothing/under/trek/command/orv/medsci + name = "medsci command uniform" + desc = "An uniform worn by medsci command officers since 2550s." + icon_state = "orv_com_medsci" + +/obj/item/clothing/under/trek/orv + name = "adjutant uniform" + desc = "An uniform worn by adjutants (assistants) since 2550s." + icon_state = "orv_ass" + item_state = "gy_suit" + +/obj/item/clothing/under/trek/orv/service + name = "service uniform" + desc = "An uniform worn by service officers since 2550s." + icon_state = "orv_srv" + item_state = "g_suit" + //The Motion Picture /obj/item/clothing/under/trek/fedutil name = "federation utility uniform" diff --git a/code/modules/events/_event.dm b/code/modules/events/_event.dm index a8ab470d5d..b88bef1c87 100644 --- a/code/modules/events/_event.dm +++ b/code/modules/events/_event.dm @@ -17,9 +17,9 @@ var/holidayID = "" //string which should be in the SSeventss.holidays list if you wish this event to be holiday-specific //anything with a (non-null) holidayID which does not match holiday, cannot run. - var/wizardevent = 0 - - var/alertadmins = 1 //should we let the admins know this event is firing + var/wizardevent = FALSE + var/random = FALSE //If the event has occured randomly, or if it was forced by an admin or in-game occurance + var/alert_observers = TRUE //should we let the ghosts and admins know this event is firing //should be disabled on events that fire a lot var/list/gamemode_blacklist = list() // Event won't happen in these gamemodes @@ -33,7 +33,7 @@ min_players = CEILING(min_players * CONFIG_GET(number/events_min_players_mul), 1) /datum/round_event_control/wizard - wizardevent = 1 + wizardevent = TRUE var/can_be_midround_wizard = TRUE // Checks if the event can be spawned. Used by event controller and "false alarm" event. @@ -67,7 +67,7 @@ return EVENT_CANT_RUN triggering = TRUE - if (alertadmins) + if (alert_observers) message_admins("Random Event triggering in 10 seconds: [name] (CANCEL)") sleep(100) var/gamemode = SSticker.mode.config_tag @@ -92,7 +92,7 @@ log_admin_private("[key_name(usr)] cancelled event [name].") SSblackbox.record_feedback("tally", "event_admin_cancelled", 1, typepath) -/datum/round_event_control/proc/runEvent(random) +/datum/round_event_control/proc/runEvent() var/datum/round_event/E = new typepath() E.current_players = get_active_player_count(alive_check = 1, afk_check = 1, human_check = 1) E.control = src @@ -101,10 +101,9 @@ testing("[time2text(world.time, "hh:mm:ss")] [E.type]") if(random) - if(alertadmins) - deadchat_broadcast("[name] has just been randomly triggered!") //STOP ASSUMING IT'S BADMINS! log_game("Random Event triggering: [name] ([typepath])") - + if (alert_observers) + deadchat_broadcast("[name] has just been[random ? " randomly" : ""] triggered!") //STOP ASSUMING IT'S BADMINS! return E //Special admins setup @@ -140,6 +139,17 @@ /datum/round_event/proc/start() return +/** + * Called after something followable has been spawned by an event + * Provides ghosts a follow link to an atom if possible + * Only called once. + */ +/datum/round_event/proc/announce_to_ghosts(atom/atom_of_interest) + if(control.alert_observers) + if (atom_of_interest) + notify_ghosts("[control.name] has an object of interest: [atom_of_interest]!", source=atom_of_interest, action=NOTIFY_ORBIT, header="Something's Interesting!") + return + //Called when the tick is equal to the announceWhen variable. //Allows you to announce before starting or vice versa. //Only called once. diff --git a/code/modules/events/anomaly.dm b/code/modules/events/anomaly.dm index d8122eac75..394294db37 100644 --- a/code/modules/events/anomaly.dm +++ b/code/modules/events/anomaly.dm @@ -8,7 +8,7 @@ /datum/round_event/anomaly var/area/impact_area - var/obj/effect/anomaly/newAnomaly + var/obj/effect/anomaly/anomaly_path = /obj/effect/anomaly/flux announceWhen = 1 @@ -27,7 +27,7 @@ //Subtypes from the above that actually should explode. var/list/unsafe_area_subtypes = typecacheof(list(/area/engine/break_room)) - + allowed_areas = make_associative(GLOB.the_station_areas) - safe_area_types + unsafe_area_subtypes return safepick(typecache_filter_list(GLOB.sortedAreas,allowed_areas)) @@ -44,6 +44,9 @@ priority_announce("Localized energetic flux wave detected on long range scanners. Expected location of impact: [impact_area.name].", "Anomaly Alert") /datum/round_event/anomaly/start() - var/turf/T = safepick(get_area_turfs(impact_area)) + var/turf/T = pick(get_area_turfs(impact_area)) + var/newAnomaly if(T) - newAnomaly = new /obj/effect/anomaly/flux(T) \ No newline at end of file + newAnomaly = new anomaly_path(T) + if (newAnomaly) + announce_to_ghosts(newAnomaly) diff --git a/code/modules/events/anomaly_bluespace.dm b/code/modules/events/anomaly_bluespace.dm index a6a0effa2b..395b3b88a5 100644 --- a/code/modules/events/anomaly_bluespace.dm +++ b/code/modules/events/anomaly_bluespace.dm @@ -1,6 +1,7 @@ /datum/round_event_control/anomaly/anomaly_bluespace name = "Anomaly: Bluespace" typepath = /datum/round_event/anomaly/anomaly_bluespace + max_occurrences = 1 weight = 5 gamemode_blacklist = list("dynamic") @@ -8,15 +9,10 @@ /datum/round_event/anomaly/anomaly_bluespace startWhen = 3 announceWhen = 10 - + anomaly_path = /obj/effect/anomaly/bluespace /datum/round_event/anomaly/anomaly_bluespace/announce(fake) if(prob(90)) priority_announce("Unstable bluespace anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") else print_command_report("Unstable bluespace anomaly detected on long range scanners. Expected location: [impact_area.name].", "Unstable bluespace anomaly") - -/datum/round_event/anomaly/anomaly_bluespace/start() - var/turf/T = safepick(get_area_turfs(impact_area)) - if(T) - newAnomaly = new /obj/effect/anomaly/bluespace(T) diff --git a/code/modules/events/anomaly_flux.dm b/code/modules/events/anomaly_flux.dm index f4c78c0ec4..a9a7ed50b9 100644 --- a/code/modules/events/anomaly_flux.dm +++ b/code/modules/events/anomaly_flux.dm @@ -10,14 +10,10 @@ /datum/round_event/anomaly/anomaly_flux startWhen = 10 announceWhen = 3 + anomaly_path = /obj/effect/anomaly/flux /datum/round_event/anomaly/anomaly_flux/announce(fake) if(prob(90)) priority_announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") else print_command_report("Localized hyper-energetic flux wave detected on long range scanners. Expected location: [impact_area.name].","Localized hyper-energetic flux wave") - -/datum/round_event/anomaly/anomaly_flux/start() - var/turf/T = safepick(get_area_turfs(impact_area)) - if(T) - newAnomaly = new /obj/effect/anomaly/flux(T) diff --git a/code/modules/events/anomaly_grav.dm b/code/modules/events/anomaly_grav.dm index 8500b44597..cabd7face8 100644 --- a/code/modules/events/anomaly_grav.dm +++ b/code/modules/events/anomaly_grav.dm @@ -1,6 +1,7 @@ /datum/round_event_control/anomaly/anomaly_grav name = "Anomaly: Gravitational" typepath = /datum/round_event/anomaly/anomaly_grav + max_occurrences = 5 weight = 20 gamemode_blacklist = list("dynamic") @@ -9,14 +10,10 @@ /datum/round_event/anomaly/anomaly_grav startWhen = 3 announceWhen = 20 + anomaly_path = /obj/effect/anomaly/grav /datum/round_event/anomaly/anomaly_grav/announce(fake) if(prob(90)) priority_announce("Gravitational anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") else print_command_report("Gravitational anomaly detected on long range scanners. Expected location: [impact_area.name].", "Gravitational anomaly") - -/datum/round_event/anomaly/anomaly_grav/start() - var/turf/T = safepick(get_area_turfs(impact_area)) - if(T) - newAnomaly = new /obj/effect/anomaly/grav(T) diff --git a/code/modules/events/anomaly_pyro.dm b/code/modules/events/anomaly_pyro.dm index 9594727784..8c8fbd6d36 100644 --- a/code/modules/events/anomaly_pyro.dm +++ b/code/modules/events/anomaly_pyro.dm @@ -1,6 +1,7 @@ /datum/round_event_control/anomaly/anomaly_pyro name = "Anomaly: Pyroclastic" typepath = /datum/round_event/anomaly/anomaly_pyro + max_occurrences = 5 weight = 20 gamemode_blacklist = list("dynamic") @@ -8,14 +9,10 @@ /datum/round_event/anomaly/anomaly_pyro startWhen = 3 announceWhen = 10 + anomaly_path = /obj/effect/anomaly/pyro /datum/round_event/anomaly/anomaly_pyro/announce(fake) if(prob(90)) priority_announce("Pyroclastic anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") else print_command_report("Pyroclastic anomaly detected on long range scanners. Expected location: [impact_area.name].", "Pyroclastic anomaly") - -/datum/round_event/anomaly/anomaly_pyro/start() - var/turf/T = safepick(get_area_turfs(impact_area)) - if(T) - newAnomaly = new /obj/effect/anomaly/pyro(T) diff --git a/code/modules/events/anomaly_vortex.dm b/code/modules/events/anomaly_vortex.dm index f6eaea40d5..96d084873d 100644 --- a/code/modules/events/anomaly_vortex.dm +++ b/code/modules/events/anomaly_vortex.dm @@ -10,14 +10,10 @@ /datum/round_event/anomaly/anomaly_vortex startWhen = 10 announceWhen = 3 + anomaly_path = /obj/effect/anomaly/bhole /datum/round_event/anomaly/anomaly_vortex/announce(fake) if(prob(90)) priority_announce("Localized high-intensity vortex anomaly detected on long range scanners. Expected location: [impact_area.name]", "Anomaly Alert") else print_command_report("Localized high-intensity vortex anomaly detected on long range scanners. Expected location: [impact_area.name].","Vortex anomaly") - -/datum/round_event/anomaly/anomaly_vortex/start() - var/turf/T = safepick(get_area_turfs(impact_area)) - if(T) - newAnomaly = new /obj/effect/anomaly/bhole(T) diff --git a/code/modules/events/brain_trauma.dm b/code/modules/events/brain_trauma.dm new file mode 100644 index 0000000000..3e8182a827 --- /dev/null +++ b/code/modules/events/brain_trauma.dm @@ -0,0 +1,33 @@ +/datum/round_event_control/brain_trauma + name = "Spontaneous Brain Trauma" + typepath = /datum/round_event/brain_trauma + weight = 25 + +/datum/round_event/brain_trauma + fakeable = FALSE + +/datum/round_event/brain_trauma/start() + for(var/mob/living/carbon/human/H in shuffle(GLOB.alive_mob_list)) + if(!H.client) + continue + if(H.stat == DEAD) // What are you doing in this list + continue + if(!H.getorgan(/obj/item/organ/brain)) // If only I had a brain + continue + + traumatize(H) + break + +/datum/round_event/brain_trauma/proc/traumatize(mob/living/carbon/human/H) + var/resistance = pick( + 65;TRAUMA_RESILIENCE_BASIC, + 30;TRAUMA_RESILIENCE_SURGERY, + 5;TRAUMA_RESILIENCE_LOBOTOMY) + + var/trauma_type = pickweight(list( + BRAIN_TRAUMA_MILD = 60, + BRAIN_TRAUMA_SEVERE = 30, + BRAIN_TRAUMA_SPECIAL = 10 + )) + + H.gain_trauma_type(trauma_type, resistance) diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index e61af1368d..da5b4c0cb2 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -54,6 +54,7 @@ vendingMachines.Remove(originMachine) originMachine.shut_up = 0 originMachine.shoot_inventory = 1 + announce_to_ghosts(originMachine) /datum/round_event/brand_intelligence/tick() diff --git a/code/modules/events/camerafailure.dm b/code/modules/events/camerafailure.dm index e8556e9118..8d7ef3204c 100644 --- a/code/modules/events/camerafailure.dm +++ b/code/modules/events/camerafailure.dm @@ -3,7 +3,7 @@ typepath = /datum/round_event/camera_failure weight = 100 max_occurrences = 20 - alertadmins = 0 + alert_observers = FALSE /datum/round_event/camera_failure fakeable = FALSE diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm index e6cb043165..2c553fc8a7 100644 --- a/code/modules/events/carp_migration.dm +++ b/code/modules/events/carp_migration.dm @@ -10,6 +10,7 @@ /datum/round_event/carp_migration announceWhen = 3 startWhen = 50 + var/hasAnnounced = FALSE /datum/round_event/carp_migration/setup() startWhen = rand(40, 60) @@ -22,10 +23,16 @@ /datum/round_event/carp_migration/start() + var/mob/living/simple_animal/hostile/carp/fish for(var/obj/effect/landmark/carpspawn/C in GLOB.landmarks_list) if(prob(95)) - new /mob/living/simple_animal/hostile/carp(C.loc) + fish = new (C.loc) else - new /mob/living/simple_animal/hostile/carp/megacarp(C.loc) - + fish = new /mob/living/simple_animal/hostile/carp/megacarp(C.loc) + fishannounce(fish) //Prefer to announce the megacarps over the regular fishies + fishannounce(fish) +/datum/round_event/carp_migration/proc/fishannounce(atom/fish) + if (!hasAnnounced) + announce_to_ghosts(fish) //Only anounce the first fish + hasAnnounced = TRUE diff --git a/code/modules/events/dust.dm b/code/modules/events/dust.dm index 802736d5d4..860685c787 100644 --- a/code/modules/events/dust.dm +++ b/code/modules/events/dust.dm @@ -4,7 +4,7 @@ weight = 200 max_occurrences = 1000 earliest_start = 0 MINUTES - alertadmins = 0 + alert_observers = FALSE gamemode_blacklist = list("dynamic") /datum/round_event/space_dust diff --git a/code/modules/events/electrical_storm.dm b/code/modules/events/electrical_storm.dm index 6e6abb1cd4..5e5e318e3c 100644 --- a/code/modules/events/electrical_storm.dm +++ b/code/modules/events/electrical_storm.dm @@ -4,7 +4,7 @@ earliest_start = 10 MINUTES min_players = 5 weight = 40 - alertadmins = 0 + alert_observers = FALSE gamemode_blacklist = list("dynamic") /datum/round_event/electrical_storm diff --git a/code/modules/events/fake_virus.dm b/code/modules/events/fake_virus.dm new file mode 100644 index 0000000000..77520198e8 --- /dev/null +++ b/code/modules/events/fake_virus.dm @@ -0,0 +1,30 @@ +/datum/round_event_control/fake_virus + name = "Fake Virus" + typepath = /datum/round_event/fake_virus + weight = 20 + +/datum/round_event/fake_virus/start() + var/list/fake_virus_victims = list() + for(var/mob/living/carbon/human/H in shuffle(GLOB.player_list)) + if(!H.client || H.stat == DEAD || H.InCritical()) + continue + fake_virus_victims += H + + //first we do hard status effect victims + var/defacto_min = min(3, LAZYLEN(fake_virus_victims)) + if(defacto_min)// event will hit 1-3 people by default, but will do 1-2 or just 1 if only those many candidates are available + for(var/i=1; i<=rand(1,defacto_min); i++) + var/mob/living/carbon/human/hypochondriac = pick(fake_virus_victims) + hypochondriac.apply_status_effect(STATUS_EFFECT_FAKE_VIRUS) + fake_virus_victims -= hypochondriac + + //then we do light one-message victims who simply cough or whatever once (have to repeat the process since the last operation modified our candidates list) + defacto_min = min(5, LAZYLEN(fake_virus_victims)) + if(defacto_min) + for(var/i=1; i<=rand(1,defacto_min); i++) + var/mob/living/carbon/human/onecoughman = pick(fake_virus_victims) + if(prob(25))//1/4 odds to get a spooky message instead of coughing out loud + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, onecoughman, "[pick("Your head hurts.", "Your head pounds.")]"), rand(30,150)) + else + addtimer(CALLBACK(onecoughman, .mob/proc/emote, pick("cough", "sniff", "sneeze")), rand(30,150))//deliver the message with a slightly randomized time interval so there arent multiple people coughing at the exact same time + fake_virus_victims -= onecoughman diff --git a/code/modules/events/fugitive_spawning.dm b/code/modules/events/fugitive_spawning.dm new file mode 100644 index 0000000000..7b4628f135 --- /dev/null +++ b/code/modules/events/fugitive_spawning.dm @@ -0,0 +1,117 @@ +/datum/round_event_control/fugitives + name = "Spawn Fugitives" + typepath = /datum/round_event/ghost_role/fugitives + max_occurrences = 1 + min_players = 20 + earliest_start = 30 MINUTES //deadchat sink, lets not even consider it early on. + gamemode_blacklist = list("nuclear") + +/datum/round_event/ghost_role/fugitives + minimum_required = 1 + role_name = "fugitive" + fakeable = FALSE + +/datum/round_event/ghost_role/fugitives/spawn_role() + var/list/possible_spawns = list()//Some xeno spawns are in some spots that will instantly kill the refugees, like atmos + for(var/turf/X in GLOB.xeno_spawn) + if(istype(X.loc, /area/maintenance)) + possible_spawns += X + if(!possible_spawns.len) + message_admins("No valid spawn locations found, aborting...") + return MAP_ERROR + var/turf/landing_turf = pick(possible_spawns) + var/list/possible_backstories = list() + var/list/candidates = get_candidates(ROLE_TRAITOR, null, ROLE_TRAITOR) + if(candidates.len >= 1) //solo refugees + if(prob(30)) + possible_backstories.Add("waldo") //less common as it comes with magicks and is kind of immershun shattering + else //For accurate deadchat feedback + minimum_required = 4 + if(candidates.len >= 4)//group refugees + possible_backstories.Add("prisoner", "cultist", "synth") + if(!possible_backstories.len) + return NOT_ENOUGH_PLAYERS + + var/backstory = pick(possible_backstories) + var/member_size = 3 + var/leader + switch(backstory) + if("synth") + leader = pick_n_take(candidates) + if("waldo") + member_size = 0 //solo refugees have no leader so the member_size gets bumped to one a bit later + var/list/members = list() + var/list/spawned_mobs = list() + if(isnull(leader)) + member_size++ //if there is no leader role, then the would be leader is a normal member of the team. + + for(var/i in 1 to member_size) + members += pick_n_take(candidates) + + for(var/mob/dead/selected in members) + var/mob/living/carbon/human/S = gear_fugitive(selected, landing_turf, backstory) + spawned_mobs += S + if(!isnull(leader)) + gear_fugitive_leader(leader, landing_turf, backstory) + +//after spawning + playsound(src, 'sound/weapons/emitter.ogg', 50, TRUE) + new /obj/item/storage/toolbox/mechanical(landing_turf) //so they can actually escape maint + addtimer(CALLBACK(src, .proc/spawn_hunters), 10 MINUTES) + role_name = "fugitive hunter" + return SUCCESSFUL_SPAWN + +/datum/round_event/ghost_role/fugitives/proc/gear_fugitive(mob/dead/selected, turf/landing_turf, backstory) //spawns normal fugitive + var/datum/mind/player_mind = new /datum/mind(selected.key) + player_mind.active = TRUE + var/mob/living/carbon/human/S = new(landing_turf) + player_mind.transfer_to(S) + player_mind.assigned_role = "Fugitive" + player_mind.special_role = "Fugitive" + player_mind.add_antag_datum(/datum/antagonist/fugitive) + var/datum/antagonist/fugitive/fugitiveantag = player_mind.has_antag_datum(/datum/antagonist/fugitive) + INVOKE_ASYNC(fugitiveantag, /datum/antagonist/fugitive.proc/greet, backstory) //some fugitives have a sleep on their greet, so we don't want to stop the entire antag granting proc with fluff + + switch(backstory) + if("prisoner") + S.equipOutfit(/datum/outfit/prisoner) + if("cultist") + S.equipOutfit(/datum/outfit/yalp_cultist) + if("waldo") + S.equipOutfit(/datum/outfit/waldo) + if("synth") + S.equipOutfit(/datum/outfit/synthetic) + message_admins("[ADMIN_LOOKUPFLW(S)] has been made into a Fugitive by an event.") + log_game("[key_name(S)] was spawned as a Fugitive by an event.") + spawned_mobs += S + return S + + //special spawn for one member. it can be used for a special mob or simply to give one normal member special items. +/datum/round_event/ghost_role/fugitives/proc/gear_fugitive_leader(mob/dead/leader, turf/landing_turf, backstory) + var/datum/mind/player_mind = new /datum/mind(leader.key) + player_mind.active = TRUE + //if you want to add a fugitive with a special leader in the future, make this switch with the backstory + var/mob/living/carbon/human/S = gear_fugitive(leader, landing_turf, backstory) + var/obj/item/choice_beacon/augments/A = new(S) + S.put_in_hands(A) + new /obj/item/autosurgeon(landing_turf) + +//security team gets called in after 10 minutes of prep to find the refugees +/datum/round_event/ghost_role/fugitives/proc/spawn_hunters() + var/backstory = pick("space cop", "russian", "bounty hunter") + var/datum/map_template/shuttle/ship + if(backstory == "space cop") + ship = new /datum/map_template/shuttle/hunter/space_cop + else if (backstory == "russian") + ship = new /datum/map_template/shuttle/hunter/russian + else + ship = new /datum/map_template/shuttle/hunter/bounty + var/x = rand(TRANSITIONEDGE,world.maxx - TRANSITIONEDGE - ship.width) + var/y = rand(TRANSITIONEDGE,world.maxy - TRANSITIONEDGE - ship.height) + var/z = SSmapping.empty_space.z_value + var/turf/T = locate(x,y,z) + if(!T) + CRASH("Fugitive Hunters (Created from fugitive event) found no turf to load in") + if(!ship.load(T)) + CRASH("Loading [backstory] ship failed!") + priority_announce("Unidentified ship detected near the station.") diff --git a/code/modules/events/ghost_role.dm b/code/modules/events/ghost_role.dm index e50d89a3a3..ae1d1320a5 100644 --- a/code/modules/events/ghost_role.dm +++ b/code/modules/events/ghost_role.dm @@ -37,7 +37,10 @@ signing up.") else if(status == SUCCESSFUL_SPAWN) message_admins("[role_name] spawned successfully.") - if(!spawned_mobs.len) + if(spawned_mobs.len) + for(var/mob/M in spawned_mobs) + announce_to_ghosts(M) + else message_admins("No mobs found in the `spawned_mobs` list, this is \ a bug.") else diff --git a/code/modules/events/heart_attack.dm b/code/modules/events/heart_attack.dm index a47a8b81b4..b3bc571a4a 100644 --- a/code/modules/events/heart_attack.dm +++ b/code/modules/events/heart_attack.dm @@ -20,4 +20,4 @@ var/mob/living/carbon/human/winner = pickweight(heart_attack_contestants) var/datum/disease/D = new /datum/disease/heart_failure() winner.ForceContractDisease(D, FALSE, TRUE) - notify_ghosts("[winner] is beginning to have a heart attack!", enter_link="(Click to orbit)", source=winner, action=NOTIFY_ORBIT) + announce_to_ghosts(winner) \ No newline at end of file diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm index d4f51e995e..0ace65ffd3 100644 --- a/code/modules/events/immovable_rod.dm +++ b/code/modules/events/immovable_rod.dm @@ -35,7 +35,8 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 var/z = pick(SSmapping.levels_by_trait(ZTRAIT_STATION)) var/turf/startT = spaceDebrisStartLoc(startside, z) var/turf/endT = spaceDebrisFinishLoc(startside, z) - new /obj/effect/immovablerod(startT, endT, C.special_target) + var/atom/rod = new /obj/effect/immovablerod(startT, endT, C.special_target) + announce_to_ghosts(rod) /obj/effect/immovablerod name = "immovable rod" @@ -61,10 +62,6 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 z_original = z destination = end special_target = aimed_at - if(notify) - notify_ghosts("\A [src] is inbound!", - enter_link="(Click to orbit)", - source=src, action=NOTIFY_ORBIT) GLOB.poi_list += src var/special_target_valid = FALSE diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm index 8a693b77d2..fd3a189eb3 100644 --- a/code/modules/events/pirates.dm +++ b/code/modules/events/pirates.dm @@ -63,7 +63,7 @@ if(!SSmapping.empty_space) SSmapping.empty_space = SSmapping.add_new_zlevel("Empty Area For Pirates", list(ZTRAIT_LINKAGE = SELFLOOPING)) - + var/datum/map_template/shuttle/pirate/default/ship = new var/x = rand(TRANSITIONEDGE,world.maxx - TRANSITIONEDGE - ship.width) var/y = rand(TRANSITIONEDGE,world.maxy - TRANSITIONEDGE - ship.height) @@ -80,8 +80,9 @@ var/mob/M = candidates[1] spawner.create(M.ckey) candidates -= M + announce_to_ghosts(M) else - notify_ghosts("Space pirates are waking up!", source = spawner, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_dnr_observers = TRUE) + announce_to_ghosts(spawner) priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", "commandreport") //CITADEL EDIT also metabreak here too @@ -159,11 +160,12 @@ active = FALSE STOP_PROCESSING(SSobj,src) -/obj/machinery/shuttle_scrambler/update_icon_state() +/obj/machinery/shuttle_scrambler/update_overlays() + . = ..() if(active) - icon_state = "dominator-blue" - else - icon_state = "dominator" + var/mutable_appearance/M = mutable_appearance(icon, "dominator-overlay") + M.color = "#00FFFF" + . += M /obj/machinery/shuttle_scrambler/Destroy() toggle_off() diff --git a/code/modules/events/processor_overload.dm b/code/modules/events/processor_overload.dm index cf6223bf0d..22e475a8ef 100644 --- a/code/modules/events/processor_overload.dm +++ b/code/modules/events/processor_overload.dm @@ -30,6 +30,7 @@ /datum/round_event/processor_overload/start() for(var/obj/machinery/telecomms/processor/P in GLOB.telecomms_list) if(prob(10)) + announce_to_ghosts(P) // Damage the surrounding area to indicate that it popped explosion(get_turf(P), 0, 0, 2) // Only a level 1 explosion actually damages the machine diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index f071ab3f9c..a17df4db9a 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -22,7 +22,8 @@ if(turfs.len) //Pick a turf to spawn at if we can var/turf/T = pick(turfs) - new /datum/spacevine_controller(T, pick(subtypesof(/datum/spacevine_mutation)), rand(30,100), rand(5,10), src) //spawn a controller at turf with randomized stats and a single random mutation + new /datum/spacevine_controller(T, list(pick(subtypesof(/datum/spacevine_mutation))), rand(30,100), rand(5,10), src) //spawn a controller at turf with randomized stats and a single random mutation + /datum/spacevine_mutation @@ -317,8 +318,8 @@ if(!override) qdel(src) -/obj/structure/spacevine/attacked_by(obj/item/I, mob/living/user) - var/damage_dealt = I.force +/obj/structure/spacevine/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1) + var/damage_dealt = I.force * damage_multiplier if(I.get_sharpness()) damage_dealt *= 4 if(I.damtype == BURN) @@ -370,6 +371,9 @@ /datum/spacevine_controller/New(turf/location, list/muts, potency, production, datum/round_event/event = null) vines = list() growth_queue = list() + var/obj/structure/spacevine/SV = spawn_spacevine_piece(location, null, muts) + if (event) + event.announce_to_ghosts(SV) START_PROCESSING(SSobj, src) vine_mutations_list = list() init_subtypes(/datum/spacevine_mutation/, vine_mutations_list) @@ -404,7 +408,6 @@ if(muts && muts.len) for(var/datum/spacevine_mutation/M in muts) M.add_mutation_to_vinepiece(SV) - return if(parent) SV.mutations |= parent.mutations var/parentcolor = parent.atom_colours[FIXED_COLOUR_PRIORITY] diff --git a/code/modules/events/spider_infestation.dm b/code/modules/events/spider_infestation.dm index 2cba5fc529..d1c327e0f7 100644 --- a/code/modules/events/spider_infestation.dm +++ b/code/modules/events/spider_infestation.dm @@ -35,6 +35,6 @@ var/spawn_type = /obj/structure/spider/spiderling if(prob(66)) spawn_type = /obj/structure/spider/spiderling/nurse - spawn_atom_to_turf(spawn_type, vent, 1, FALSE) + announce_to_ghosts(spawn_atom_to_turf(spawn_type, vent, 1, FALSE)) vents -= vent spawncount-- diff --git a/code/modules/events/stray_cargo.dm b/code/modules/events/stray_cargo.dm new file mode 100644 index 0000000000..02d02a8510 --- /dev/null +++ b/code/modules/events/stray_cargo.dm @@ -0,0 +1,99 @@ +///Spawns a cargo pod containing a random cargo supply pack on a random area of the station +/datum/round_event_control/stray_cargo + name = "Stray Cargo Pod" + typepath = /datum/round_event/stray_cargo + weight = 20 + max_occurrences = 4 + earliest_start = 10 MINUTES + +///Spawns a cargo pod containing a random cargo supply pack on a random area of the station +/datum/round_event/stray_cargo + var/area/impact_area ///Randomly picked area + var/list/possible_pack_types = list() ///List of possible supply packs dropped in the pod, if empty picks from the cargo list + var/static/list/stray_spawnable_supply_packs = list() ///List of default spawnable supply packs, filtered from the cargo list + +/datum/round_event/stray_cargo/announce(fake) + priority_announce("Stray cargo pod detected on long-range scanners. Expected location of impact: [impact_area.name].", "Collision Alert") + +/** +* Tries to find a valid area, throws an error if none are found +* Also randomizes the start timer +*/ +/datum/round_event/stray_cargo/setup() + startWhen = rand(20, 40) + impact_area = find_event_area() + if(!impact_area) + CRASH("No valid areas for cargo pod found.") + var/list/turf_test = get_area_turfs(impact_area) + if(!turf_test.len) + CRASH("Stray Cargo Pod : No valid turfs found for [impact_area] - [impact_area.type]") + + if(!stray_spawnable_supply_packs.len) + stray_spawnable_supply_packs = SSshuttle.supply_packs.Copy() + for(var/pack in stray_spawnable_supply_packs) + var/datum/supply_pack/pack_type = pack + if(initial(pack_type.special)) + stray_spawnable_supply_packs -= pack + +///Spawns a random supply pack, puts it in a pod, and spawns it on a random tile of the selected area +/datum/round_event/stray_cargo/start() + var/list/turf/valid_turfs = get_area_turfs(impact_area) + //Only target non-dense turfs to prevent wall-embedded pods + for(var/i in valid_turfs) + var/turf/T = i + if(T.density) + valid_turfs -= T + var/turf/LZ = pick(valid_turfs) + var/pack_type + if(possible_pack_types.len) + pack_type = pick(possible_pack_types) + else + pack_type = pick(stray_spawnable_supply_packs) + var/datum/supply_pack/SP = new pack_type + var/obj/structure/closet/crate/crate = SP.generate(null) + crate.locked = FALSE //Unlock secure crates + crate.update_icon() + var/obj/structure/closet/supplypod/pod = make_pod() + crate.forceMove(pod) + new /obj/effect/abstract/DPtarget(LZ, pod) + +///Handles the creation of the pod, in case it needs to be modified beforehand +/datum/round_event/stray_cargo/proc/make_pod() + var/obj/structure/closet/supplypod/S = new + return S + +///Picks an area that wouldn't risk critical damage if hit by a pod explosion +/datum/round_event/stray_cargo/proc/find_event_area() + var/static/list/allowed_areas + if(!allowed_areas) + ///Places that shouldn't explode + var/list/safe_area_types = typecacheof(list( + /area/ai_monitored/turret_protected/ai, + /area/ai_monitored/turret_protected/ai_upload, + /area/engine, + /area/shuttle) + ) + + ///Subtypes from the above that actually should explode. + var/list/unsafe_area_subtypes = typecacheof(list(/area/engine/break_room)) + allowed_areas = make_associative(GLOB.the_station_areas) - safe_area_types + unsafe_area_subtypes + var/list/possible_areas = typecache_filter_list(GLOB.sortedAreas,allowed_areas) + if (length(possible_areas)) + return pick(possible_areas) + +///A rare variant that drops a crate containing syndicate uplink items +/datum/round_event_control/stray_cargo/syndicate + name = "Stray Syndicate Cargo Pod" + typepath = /datum/round_event/stray_cargo/syndicate + weight = 0 + max_occurrences = 0 + earliest_start = 30 MINUTES + +/datum/round_event/stray_cargo/syndicate + possible_pack_types = list(/datum/supply_pack/misc/syndicate) + +///Apply the syndicate pod skin +/datum/round_event/stray_cargo/syndicate/make_pod() + var/obj/structure/closet/supplypod/S = new + S.setStyle(STYLE_SYNDICATE) + return S diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm index 77bb7661ba..dc672cec45 100644 --- a/code/modules/events/vent_clog.dm +++ b/code/modules/events/vent_clog.dm @@ -40,6 +40,7 @@ /datum/reagent/pax, /datum/reagent/consumable/laughter, /datum/reagent/concentrated_barbers_aid, + /datum/reagent/baldium, /datum/reagent/colorful_reagent, /datum/reagent/peaceborg_confuse, /datum/reagent/peaceborg_tire, @@ -139,22 +140,6 @@ typepath = /datum/round_event/vent_clog/plasma_decon max_occurrences = 0 -/datum/round_event_control/vent_clog/female - name = "Clogged Vents; Girlcum" - typepath = /datum/round_event/vent_clog/female - max_occurrences = 0 - -/datum/round_event/vent_clog/female - reagentsAmount = 100 - -/datum/round_event_control/vent_clog/male - name = "Clogged Vents: Semen" - typepath = /datum/round_event/vent_clog/male - max_occurrences = 0 - -/datum/round_event/vent_clog/male - reagentsAmount = 100 - /datum/round_event/vent_clog/beer/announce() priority_announce("The scrubbers network is experiencing an unexpected surge of pressurized beer. Some ejection of contents may occur.", "Atmospherics alert") @@ -170,36 +155,6 @@ foam.start() CHECK_TICK -/datum/round_event/vent_clog/male/announce() - priority_announce("The scrubbers network is experiencing a backpressure surge. Some ejaculation of contents may occur.", "Atmospherics alert") - -/datum/round_event/vent_clog/male/start() - for(var/obj/machinery/atmospherics/components/unary/vent in vents) - if(vent && vent.loc && !vent.welded) - var/datum/reagents/R = new/datum/reagents(1000) - R.my_atom = vent - R.add_reagent(/datum/reagent/consumable/semen, reagentsAmount) - - var/datum/effect_system/foam_spread/foam = new - foam.set_up(200, get_turf(vent), R) - foam.start() - CHECK_TICK - -/datum/round_event/vent_clog/female/announce() - priority_announce("The scrubbers network is experiencing a backpressure squirt. Some ejection of contents may occur.", "Atmospherics alert") - -/datum/round_event/vent_clog/female/start() - for(var/obj/machinery/atmospherics/components/unary/vent in vents) - if(vent && vent.loc && !vent.welded) - var/datum/reagents/R = new/datum/reagents(1000) - R.my_atom = vent - R.add_reagent(/datum/reagent/consumable/femcum, reagentsAmount) - - var/datum/effect_system/foam_spread/foam = new - foam.set_up(200, get_turf(vent), R) - foam.start() - CHECK_TICK - /datum/round_event/vent_clog/plasma_decon/announce() priority_announce("We are deploying an experimental plasma decontamination system. Please stand away from the vents and do not breathe the smoke that comes out.", "Central Command Update") diff --git a/code/modules/events/wisdomcow.dm b/code/modules/events/wisdomcow.dm new file mode 100644 index 0000000000..4a50ccb306 --- /dev/null +++ b/code/modules/events/wisdomcow.dm @@ -0,0 +1,15 @@ +/datum/round_event_control/wisdomcow + name = "Wisdom cow" + typepath = /datum/round_event/wisdomcow + max_occurrences = 1 + weight = 20 + +/datum/round_event/wisdomcow/announce(fake) + priority_announce("A wise cow has been spotted in the area. Be sure to ask for her advice.", "Nanotrasen Cow Ranching Agency") + +/datum/round_event/wisdomcow/start() + var/turf/targetloc = get_random_station_turf() + new /mob/living/simple_animal/cow/wisdom(targetloc) + var/datum/effect_system/smoke_spread/smoke = new + smoke.set_up(1, targetloc) + smoke.start() diff --git a/code/modules/events/wizard/embeddies.dm b/code/modules/events/wizard/embeddies.dm new file mode 100644 index 0000000000..fe08b9c743 --- /dev/null +++ b/code/modules/events/wizard/embeddies.dm @@ -0,0 +1,46 @@ +/datum/round_event_control/wizard/embedpocalypse + name = "Make Everything Embeddable" + weight = 2 + typepath = /datum/round_event/wizard/embedpocalypse + max_occurrences = 1 + earliest_start = 0 MINUTES + +/datum/round_event/wizard/embedpocalypse/start() + for(var/obj/item/I in world) + CHECK_TICK + + if(!(I.flags_1 & INITIALIZED_1)) + continue + + if(!I.embedding || I.embedding == EMBED_HARMLESS) + I.embedding = EMBED_POINTY + I.updateEmbedding() + I.name = "pointy [I.name]" + + GLOB.embedpocalypse = TRUE + GLOB.stickpocalypse = FALSE // embedpocalypse takes precedence over stickpocalypse + +/datum/round_event_control/wizard/embedpocalypse/sticky + name = "Make Everything Sticky" + weight = 6 + typepath = /datum/round_event/wizard/embedpocalypse/sticky + max_occurrences = 1 + earliest_start = 0 MINUTES + +/datum/round_event_control/wizard/embedpocalypse/sticky/canSpawnEvent(players_amt, gamemode) + if(GLOB.embedpocalypse) + return FALSE + +/datum/round_event/wizard/embedpocalypse/sticky/start() + for(var/obj/item/I in world) + CHECK_TICK + + if(!(I.flags_1 & INITIALIZED_1)) + continue + + if(!I.embedding) + I.embedding = EMBED_HARMLESS + I.updateEmbedding() + I.name = "sticky [I.name]" + + GLOB.stickpocalypse = TRUE diff --git a/code/modules/events/wizard/madness.dm b/code/modules/events/wizard/madness.dm new file mode 100644 index 0000000000..ac86236623 --- /dev/null +++ b/code/modules/events/wizard/madness.dm @@ -0,0 +1,28 @@ +/datum/round_event_control/wizard/madness + name = "Curse of Madness" + weight = 1 + typepath = /datum/round_event/wizard/madness + earliest_start = 0 MINUTES + + var/forced_secret + +/datum/round_event_control/wizard/madness/admin_setup() + if(!check_rights(R_FUN)) + return + + var/suggested = pick(strings(REDPILL_FILE, "redpill_questions")) + + forced_secret = (input(usr, "What horrifying truth will you reveal?", "Curse of Madness", sortList(suggested)) as text|null) || suggested + +/datum/round_event/wizard/madness/start() + var/datum/round_event_control/wizard/madness/C = control + + var/horrifying_truth + + if(C.forced_secret) + horrifying_truth = C.forced_secret + C.forced_secret = null + else + horrifying_truth = pick(strings(REDPILL_FILE, "redpill_questions")) + + curse_of_madness(null, horrifying_truth) diff --git a/code/modules/fields/gravity.dm b/code/modules/fields/gravity.dm index 8b16bb6487..2334a84e04 100644 --- a/code/modules/fields/gravity.dm +++ b/code/modules/fields/gravity.dm @@ -2,16 +2,17 @@ name = "modified gravity zone" setup_field_turfs = TRUE var/gravity_value = 0 - var/list/grav_components = list() + var/list/modified_turfs = list() field_shape = FIELD_SHAPE_RADIUS_SQUARE /datum/proximity_monitor/advanced/gravity/setup_field_turf(turf/T) . = ..() - grav_components[T] = T.AddComponent(/datum/component/forced_gravity,gravity_value) + T.AddElement(/datum/element/forced_gravity, gravity_value) + modified_turfs[T] = gravity_value /datum/proximity_monitor/advanced/gravity/cleanup_field_turf(turf/T) . = ..() - var/datum/component/forced_gravity/G = grav_components[T] - grav_components -= T - if(G) - qdel(G) \ No newline at end of file + if(isnull(modified_turfs[T])) + return + T.RemoveElement(/datum/element/forced_gravity, modified_turfs[T]) + modified_turfs -= T \ No newline at end of file diff --git a/code/modules/flufftext/Dreaming.dm b/code/modules/flufftext/Dreaming.dm index 43c3337a4b..860d3898f2 100644 --- a/code/modules/flufftext/Dreaming.dm +++ b/code/modules/flufftext/Dreaming.dm @@ -1,7 +1,3 @@ -/mob/living/carbon/proc/handle_dreams() - if(prob(10) && !dreaming) - dream() - /mob/living/carbon/proc/dream() set waitfor = FALSE var/list/dream_fragments = list() diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 0c2cbc0c67..2c1299f5b4 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -679,9 +679,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( var/list/mob/living/carbon/people = list() var/mob/living/carbon/person = null var/datum/language/understood_language = target.get_random_understood_language() - for(var/mob/living/carbon/H in view(target)) - if(H == target) - continue + for(var/mob/living/carbon/H in view(target) - target) if(!person) person = H else @@ -1064,6 +1062,8 @@ GLOBAL_LIST_INIT(hallucination_list, list( qdel(src) /obj/effect/hallucination/danger + layer = TURF_LAYER + plane = FLOOR_PLANE var/image/image /obj/effect/hallucination/danger/proc/show_icon() @@ -1087,7 +1087,8 @@ GLOBAL_LIST_INIT(hallucination_list, list( name = "lava" /obj/effect/hallucination/danger/lava/show_icon() - image = image('icons/turf/floors/lava.dmi',src,"smooth",TURF_LAYER) + image = image('icons/turf/floors/lava.dmi',src,"smooth",layer) + image.plane = plane if(target.client) target.client.images += image @@ -1257,7 +1258,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( ..() if(!target.halbody) var/list/possible_points = list() - for(var/turf/open/floor/F in view(target,world.view)) + for(var/turf/open/floor/F in target.fov_view(world.view)) possible_points += F if(possible_points.len) var/turf/open/floor/husk_point = pick(possible_points) @@ -1288,7 +1289,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( set waitfor = FALSE ..() var/list/turf/startlocs = list() - for(var/turf/open/T in view(world.view+1,target)-view(world.view,target)) + for(var/turf/open/T in target.fov_view(world.view+1)-view(world.view,target)) startlocs += T if(!startlocs.len) qdel(src) diff --git a/code/modules/food_and_drinks/autobottler.dm b/code/modules/food_and_drinks/autobottler.dm index 6d5e0508a9..37b6fca2ce 100644 --- a/code/modules/food_and_drinks/autobottler.dm +++ b/code/modules/food_and_drinks/autobottler.dm @@ -7,7 +7,7 @@ "Wines", "Beers", "Brands", - "Storge", + "Storage", ) production_animation = "protolathe_n" allowed_buildtypes = AUTOBOTTLER @@ -15,4 +15,4 @@ //Brands - This is just export verson of the booze bottles //Storge - Just the bottles not booze inside //Wines - Holds wines later made by Sci nodes -//Beers - Holds beers later made by Sci nodes \ No newline at end of file +//Beers - Holds beers later made by Sci nodes diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 46600e9fee..2e68c57abd 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -268,12 +268,15 @@ /obj/item/reagent_containers/food/drinks/ice name = "ice cup" desc = "Careful, cold ice, do not chew." - custom_price = 15 + custom_price = PRICE_CHEAP_AS_FREE icon_state = "coffee" list_reagents = list(/datum/reagent/consumable/ice = 30) spillable = TRUE isGlass = FALSE +/obj/item/reagent_containers/food/drinks/ice/sustanance + custom_price = PRICE_FREE + /obj/item/reagent_containers/food/drinks/mug/ // parent type is literally just so empty mug sprites are a thing name = "mug" desc = "A drink served in a classy mug." @@ -303,7 +306,7 @@ list_reagents = list(/datum/reagent/consumable/hot_coco = 30, /datum/reagent/consumable/sugar = 5) foodtype = SUGAR resistance_flags = FREEZE_PROOF - custom_price = 120 + custom_price = PRICE_ALMOST_CHEAP /obj/item/reagent_containers/food/drinks/dry_ramen name = "cup ramen" @@ -312,7 +315,7 @@ list_reagents = list(/datum/reagent/consumable/dry_ramen = 30) foodtype = GRAIN isGlass = FALSE - custom_price = 95 + custom_price = PRICE_PRETTY_CHEAP /obj/item/reagent_containers/food/drinks/beer name = "space beer" @@ -320,7 +323,7 @@ icon_state = "beer" list_reagents = list(/datum/reagent/consumable/ethanol/beer = 30) foodtype = GRAIN | ALCOHOL - custom_price = 60 + custom_price = PRICE_PRETTY_CHEAP /obj/item/reagent_containers/food/drinks/beer/light name = "Carp Lite" @@ -421,7 +424,7 @@ custom_materials = list(/datum/material/iron=250) volume = 60 isGlass = FALSE - custom_price = 200 + custom_price = PRICE_ABOVE_NORMAL /obj/item/reagent_containers/food/drinks/flask/gold name = "captain's flask" @@ -452,7 +455,7 @@ reagent_flags = NONE spillable = FALSE isGlass = FALSE - custom_price = 45 + custom_price = PRICE_CHEAP_AS_FREE /obj/item/reagent_containers/food/drinks/soda_cans/suicide_act(mob/living/carbon/user) user.visible_message("[user] is trying to eat \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 9faf0918ab..d87eb8fbc0 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -346,7 +346,7 @@ /obj/item/reagent_containers/food/drinks/bottle/applejack name = "Buckin' Bronco's Applejack" desc = "Kicks like a horse, tastes like an apple!" - custom_price = 100 + custom_price = PRICE_CHEAP icon_state = "applejack_bottle" list_reagents = list(/datum/reagent/consumable/ethanol/applejack = 100) foodtype = FRUIT @@ -357,7 +357,6 @@ /obj/item/reagent_containers/food/drinks/bottle/champagne name = "Eau d' Dandy Brut Champagne" desc = "Finely sourced from only the most pretentious French vineyards." - custom_premium_price = 250 icon_state = "champagne_bottle" list_reagents = list(/datum/reagent/consumable/ethanol/champagne = 100) @@ -376,7 +375,7 @@ /obj/item/reagent_containers/food/drinks/bottle/trappist name = "Mont de Requin Trappistes Bleu" desc = "Brewed in space-Belgium. Fancy!" - custom_premium_price = 170 + custom_premium_price = PRICE_ABOVE_NORMAL icon_state = "trappistbottle" volume = 50 list_reagents = list(/datum/reagent/consumable/ethanol/trappist = 50) @@ -389,7 +388,7 @@ /obj/item/reagent_containers/food/drinks/bottle/orangejuice name = "orange juice" desc = "Full of vitamins and deliciousness!" - custom_price = 100 + custom_price = PRICE_CHEAP icon_state = "orangejuice" item_state = "carton" lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' @@ -411,7 +410,7 @@ /obj/item/reagent_containers/food/drinks/bottle/cream name = "milk cream" desc = "It's cream. Made from milk. What else did you think you'd find in there?" - custom_price = 100 + custom_price = PRICE_CHEAP icon_state = "cream" item_state = "carton" lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' @@ -423,7 +422,7 @@ /obj/item/reagent_containers/food/drinks/bottle/tomatojuice name = "tomato juice" desc = "Well, at least it LOOKS like tomato juice. You can't tell with all that redness." - custom_price = 100 + custom_price = PRICE_CHEAP icon_state = "tomatojuice" item_state = "carton" lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' @@ -435,7 +434,7 @@ /obj/item/reagent_containers/food/drinks/bottle/limejuice name = "lime juice" desc = "Sweet-sour goodness." - custom_price = 100 + custom_price = PRICE_CHEAP icon_state = "limejuice" item_state = "carton" lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' @@ -469,7 +468,7 @@ /obj/item/reagent_containers/food/drinks/bottle/menthol name = "menthol" desc = "Tastes naturally minty, and imparts a very mild numbing sensation." - custom_price = 100 + custom_price = PRICE_CHEAP icon_state = "mentholbox" item_state = "carton" lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' @@ -480,7 +479,7 @@ /obj/item/reagent_containers/food/drinks/bottle/grenadine name = "Jester Grenadine" desc = "Contains 0% real cherries!" - custom_price = 100 + custom_price = PRICE_CHEAP icon_state = "grenadine" isGlass = TRUE list_reagents = list(/datum/reagent/consumable/grenadine = 100) diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm index 5ebcec91b9..8e5069925f 100644 --- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm @@ -11,7 +11,7 @@ spillable = TRUE resistance_flags = ACID_PROOF obj_flags = UNIQUE_RENAME - custom_price = 25 + custom_price = PRICE_REALLY_CHEAP /obj/item/reagent_containers/food/drinks/drinkingglass/on_reagent_change(changetype) cut_overlays() @@ -47,7 +47,7 @@ possible_transfer_amounts = list() volume = 15 custom_materials = list(/datum/material/glass=100) - custom_price = 20 + custom_price = PRICE_CHEAP_AS_FREE /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass/on_reagent_change(changetype) cut_overlays() @@ -94,7 +94,7 @@ list_reagents = list(/datum/reagent/consumable/nuka_cola = 50) /obj/item/reagent_containers/food/drinks/drinkingglass/filled/syndicatebomb - name = "Syndicat Bomb" + name = "Syndicate Bomb" list_reagents = list(/datum/reagent/consumable/ethanol/syndicatebomb = 50) /obj/item/reagent_containers/food/drinks/drinkingglass/attackby(obj/item/I, mob/user, params) diff --git a/code/modules/food_and_drinks/food.dm b/code/modules/food_and_drinks/food.dm index 203eb3eef6..f83a1222fd 100644 --- a/code/modules/food_and_drinks/food.dm +++ b/code/modules/food_and_drinks/food.dm @@ -6,7 +6,6 @@ /// get_random_food proc. //////////////////////////////////////////////////////////////////////////////// -#define STOP_SERVING_BREAKFAST (15 MINUTES) /obj/item/reagent_containers/food possible_transfer_amounts = list() @@ -51,5 +50,3 @@ if((foodtype & BREAKFAST) && world.time - SSticker.round_start_time < STOP_SERVING_BREAKFAST) SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "breakfast", /datum/mood_event/breakfast) last_check_time = world.time - -#undef STOP_SERVING_BREAKFAST diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index ccac1d4a77..900fc99171 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -303,12 +303,12 @@ All foods are distributed among various categories. Use common sense. var/obj/item/result if(cooked_type) result = new cooked_type(T) - //if the result is food, set its food quality to the original food item's quality - if(isfood(result)) - var/obj/item/reagent_containers/food/food_output = result - food_output.adjust_food_quality(food_quality + M.quality_increase) if(istype(M)) initialize_cooked_food(result, M.efficiency) + //if the result is food, set its food quality to the original food item's quality + if(isfood(result)) + var/obj/item/reagent_containers/food/food_output = result + food_output.adjust_food_quality(food_quality + M.quality_increase) else initialize_cooked_food(result, 1) SSblackbox.record_feedback("tally", "food_made", 1, result.type) diff --git a/code/modules/food_and_drinks/food/snacks/meat.dm b/code/modules/food_and_drinks/food/snacks/meat.dm index 7f75a93464..fe70739ab5 100644 --- a/code/modules/food_and_drinks/food/snacks/meat.dm +++ b/code/modules/food_and_drinks/food/snacks/meat.dm @@ -1,6 +1,7 @@ /obj/item/reagent_containers/food/snacks/meat var/subjectname = "" var/subjectjob = null + custom_materials = list(/datum/material/meat = MINERAL_MATERIAL_AMOUNT * 4) /obj/item/reagent_containers/food/snacks/meat/slab name = "meat" @@ -82,6 +83,7 @@ /obj/item/reagent_containers/food/snacks/meat/slab/chicken name = "chicken meat" desc = "A slab of raw chicken. Remember to wash your hands!" + icon_state = "chickenbreast" cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/chicken slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/chicken tastes = list("chicken" = 1) @@ -315,6 +317,15 @@ slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/gondola foodtype = RAW | MEAT +/obj/item/reagent_containers/food/snacks/meat/slab/wisdomcow + name = "wisdom cow meat" + desc = "The meat from the legendary creature known as the wisdom cow. You monster." + list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/medicine/liquid_wisdom = 5) + tastes = list("meat" = 1, "wisdom" = 5) + filling_color = "#18e3ca" + cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/wisdomcow + slice_path = /obj/item/reagent_containers/food/snacks/meat/rawcutlet/wisdomcow + ////////////////////////////////////// MEAT STEAKS /////////////////////////////////////////////////////////// @@ -331,8 +342,14 @@ /obj/item/reagent_containers/food/snacks/meat/steak/chicken name = "chicken steak" //Can you have chicken steaks? Maybe this should be renamed once it gets new sprites. + icon_state = "chickenbreast_cooked" tastes = list("chicken" = 1) +/obj/item/reagent_containers/food/snacks/meat/steak/fish + name = "fish fillet" + icon_state = "grilled_carp_slice" + tastes = list("charred sushi" = 1) + /obj/item/reagent_containers/food/snacks/meat/steak/plain foodtype = MEAT @@ -351,6 +368,7 @@ /obj/item/reagent_containers/food/snacks/meat/steak/bear name = "bear steak" + icon_state = "bearcook" tastes = list("meat" = 1, "salmon" = 1) /obj/item/reagent_containers/food/snacks/meat/steak/xeno @@ -374,6 +392,10 @@ name = "gondola steak" tastes = list("meat" = 1, "tranquility" = 1) +/obj/item/reagent_containers/food/snacks/meat/steak/wisdomcow + name = "wisdom cow steak" + tastes = list("meat" = 1, "wisdom" = 5) + //////////////////////////////// MEAT CUTLETS /////////////////////////////////////////////////////// //Raw cutlets @@ -441,6 +463,11 @@ cooked_type = /obj/item/reagent_containers/food/snacks/meat/cutlet/gondola tastes = list("meat" = 1, "tranquility" = 1) +/obj/item/reagent_containers/food/snacks/meat/rawcutlet/wisdomcow + name = "raw wisdom cow cutlet" + cooked_type = /obj/item/reagent_containers/food/snacks/meat/cutlet/wisdomcow + tastes = list("meat" = 1, "wisdom" = 5) + //Cooked cutlets /obj/item/reagent_containers/food/snacks/meat/cutlet @@ -488,3 +515,7 @@ /obj/item/reagent_containers/food/snacks/meat/cutlet/chicken name = "chicken cutlet" tastes = list("chicken" = 1) + +/obj/item/reagent_containers/food/snacks/meat/cutlet/wisdomcow + name = "wisdom cow cutlet" + tastes = list("meat" = 1, "wisdom" = 5) diff --git a/code/modules/food_and_drinks/food/snacks_cake.dm b/code/modules/food_and_drinks/food/snacks_cake.dm index f2253ee760..1117dbc3d3 100644 --- a/code/modules/food_and_drinks/food/snacks_cake.dm +++ b/code/modules/food_and_drinks/food/snacks_cake.dm @@ -312,7 +312,7 @@ obj/item/reagent_containers/food/snacks/store/cake/pound_cake name = "pound cake" desc = "A condensed cake made for filling people up quickly." icon_state = "pound_cake" - slices_num = 7 //Its ment to feed the party + slices_num = 7 //Its meant to feed the party slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/pound_cake_slice bonus_reagents = list(/datum/reagent/consumable/nutriment = 60) tastes = list("cake" = 5, "sweetness" = 1, "batter" = 1) diff --git a/code/modules/food_and_drinks/food/snacks_frozen.dm b/code/modules/food_and_drinks/food/snacks_frozen.dm index b699477245..39c9c6c04f 100644 --- a/code/modules/food_and_drinks/food/snacks_frozen.dm +++ b/code/modules/food_and_drinks/food/snacks_frozen.dm @@ -91,7 +91,7 @@ icon = 'icons/obj/food/snowcones.dmi' icon_state = "flavorless_sc" trash = /obj/item/reagent_containers/food/drinks/sillycup //We dont eat paper cups - bonus_reagents = list(/datum/reagent/water = 10) //Base line will allways give water + bonus_reagents = list(/datum/reagent/water = 10) //Base line will always give water list_reagents = list(/datum/reagent/water = 1) // We dont get food for water/juices filling_color = "#FFFFFF" //Ice is white tastes = list("ice" = 1, "water" = 1) diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm index 4e6be19488..e25f99c69e 100644 --- a/code/modules/food_and_drinks/food/snacks_meat.dm +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -22,6 +22,7 @@ list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/toxin/carpotoxin = 2, /datum/reagent/consumable/nutriment/vitamin = 2) bitesize = 6 filling_color = "#FA8072" + cooked_type = /obj/item/reagent_containers/food/snacks/meat/steak/fish tastes = list("fish" = 1) foodtype = MEAT @@ -54,6 +55,15 @@ tastes = list("fish" = 1, "chips" = 1) foodtype = MEAT | VEGETABLES | FRIED +/obj/item/reagent_containers/food/snacks/fishfry + name = "fish fry" + desc = "All that and no bag of chips..." + icon_state = "fish_fry" + list_reagents = list (/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 3) + filling_color = "#ee7676" + tastes = list("fish" = 1, "pan seared vegtables" = 1) + foodtype = MEAT | VEGETABLES | FRIED + /obj/item/reagent_containers/food/snacks/sushi_basic name = "funa hosomaki" desc = "A small cylindrical kudzu skin, filled with rice and fish." diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm index 2463ed3ced..7b0ffe2a19 100644 --- a/code/modules/food_and_drinks/food/snacks_other.dm +++ b/code/modules/food_and_drinks/food/snacks_other.dm @@ -12,6 +12,17 @@ tastes = list("cheese" = 1) foodtype = DAIRY + + +/obj/item/reagent_containers/food/snacks/royalcheese + name = "royal cheese" + desc = "Ascend the throne. Consume the wheel. Feel the POWER." + icon_state = "royalcheese" + list_reagents = list(/datum/reagent/consumable/nutriment = 15, /datum/reagent/consumable/nutriment/vitamin = 5, /datum/reagent/gold = 20, /datum/reagent/toxin/mutagen = 5) + w_class = WEIGHT_CLASS_BULKY + tastes = list("cheese" = 4, "royalty" = 1) + foodtype = DAIRY + /obj/item/reagent_containers/food/snacks/cheesewedge name = "cheese wedge" desc = "A wedge of delicious Cheddar. The cheese wheel it was cut from can't have gone far." @@ -125,6 +136,17 @@ tastes = list("fries" = 3, "cheese" = 1) foodtype = VEGETABLES | GRAIN +/obj/item/reagent_containers/food/snacks/chilicheesefries + name = "chili cheese fries" + desc = "Fries smothered in cheese -and- chilli." + icon_state = "chilicheesefries" + trash = /obj/item/trash/plate + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/nutriment/vitamin = 1) + filling_color = "#FFD700" + tastes = list("fries" = 3, "cheese" = 1) + foodtype = VEGETABLES | GRAIN + /obj/item/reagent_containers/food/snacks/badrecipe name = "burned mess" desc = "Someone should be demoted from cook for this." @@ -526,6 +548,15 @@ tastes = list("butter" = 1) foodtype = DAIRY +/obj/item/reagent_containers/food/snacks/butter/margarine + name = "stick of margarine" + desc = "A stick of lightly salted vegetable oil." + icon_state = "marge" + list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/cornoil = 2, /datum/reagent/consumable/sodiumchloride = 1) + filling_color = "#FFD700" + tastes = list("butter" = 1) + foodtype = JUNKFOOD + /obj/item/reagent_containers/food/snacks/onionrings name = "onion rings" desc = "Onion slices coated in batter." diff --git a/code/modules/food_and_drinks/food/snacks_pastry.dm b/code/modules/food_and_drinks/food/snacks_pastry.dm index c5268380a1..d65907daea 100644 --- a/code/modules/food_and_drinks/food/snacks_pastry.dm +++ b/code/modules/food_and_drinks/food/snacks_pastry.dm @@ -144,6 +144,15 @@ is_decorated = TRUE filling_color = "#879630" +/obj/item/reagent_containers/food/snacks/donut/laugh + name = "sweet pea donut" + desc = "Goes great with a glass of Bastion Burbon!" + icon_state = "donut_laugh" + bonus_reagents = list(/datum/reagent/consumable/laughter = 3) + tastes = list("donut" = 3, "fizzy tutti frutti" = 1,) + is_decorated = TRUE + filling_color = "#803280" + //////////////////////JELLY DONUTS///////////////////////// /obj/item/reagent_containers/food/snacks/donut/jelly @@ -234,6 +243,15 @@ is_decorated = TRUE filling_color = "#879630" +/obj/item/reagent_containers/food/snacks/donut/jelly/laugh + name = "sweet pea jelly donut" + desc = "Goes great with a glass of Bastion Burbon!" + icon_state = "jelly_laugh" + bonus_reagents = list(/datum/reagent/consumable/laughter = 3) + tastes = list("jelly" = 3, "donut" = 1, "fizzy tutti frutti" = 1) + is_decorated = TRUE + filling_color = "#803280" + //////////////////////////SLIME DONUTS///////////////////////// /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly @@ -315,6 +333,15 @@ is_decorated = TRUE filling_color = "#879630" +/obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/laugh + name = "sweet pea jelly donut" + desc = "Goes great with a glass of Bastion Burbon!" + icon_state = "jelly_laugh" + bonus_reagents = list(/datum/reagent/consumable/laughter = 3) + tastes = list("jelly" = 3, "donut" = 1, "fizzy tutti frutti" = 1) + is_decorated = TRUE + filling_color = "#803280" + /obj/item/reagent_containers/food/snacks/donut/glaze name = "glazed donut" desc = "A sugar glazed donut." @@ -451,7 +478,7 @@ /obj/item/reagent_containers/food/snacks/donkpocket/initialize_cooked_food(obj/item/reagent_containers/food/snacks/donkpocket/S, cooking_efficiency = 1) . = ..() if(istype(S)) - desc = initial(desc) //reset the desc since will now cool down. + S.desc = initial(S.desc) //reset the desc since will now cool down. for(var/R in S.bonus_reagents) LAZYSET(S.cached_reagents_amount, R, S.reagents.get_reagent_amount(R)) S.previous_typepath = type diff --git a/code/modules/food_and_drinks/food/snacks_pizza.dm b/code/modules/food_and_drinks/food/snacks_pizza.dm index ebc67a28c1..f30c182963 100644 --- a/code/modules/food_and_drinks/food/snacks_pizza.dm +++ b/code/modules/food_and_drinks/food/snacks_pizza.dm @@ -10,6 +10,17 @@ tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1) foodtype = GRAIN | DAIRY | VEGETABLES +/obj/item/reagent_containers/food/snacks/pizzaslice/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/kitchen/rollingpin)) + if(!isturf(loc)) + to_chat(user, "You need to put [src] on a surface to roll it out!") + return + new /obj/item/stack/sheet/pizza(loc) + to_chat(user, "You smoosh [src] into a cheesy sheet.") + qdel(src) + return + return ..() + /obj/item/reagent_containers/food/snacks/pizzaslice icon = 'icons/obj/food/pizzaspaghetti.dmi' list_reagents = list(/datum/reagent/consumable/nutriment = 5) diff --git a/code/modules/food_and_drinks/food/snacks_salad.dm b/code/modules/food_and_drinks/food/snacks_salad.dm index a977eac3c2..be7c3d25da 100644 --- a/code/modules/food_and_drinks/food/snacks_salad.dm +++ b/code/modules/food_and_drinks/food/snacks_salad.dm @@ -124,4 +124,22 @@ trash = /obj/item/kitchen/knife bonus_reagents = list(/datum/reagent/medicine/earthsblood = 1, /datum/reagent/iron = 4) tastes = list("iron" = 1, "conspiracy" = 1) - foodtype = VEGETABLES \ No newline at end of file + foodtype = VEGETABLES + +/obj/item/reagent_containers/food/snacks/salad/edensalad + name = "\improper Salad of Eden" + desc = "A salad brimming with untapped potential." + icon_state = "eden_salad" + trash = /obj/item/reagent_containers/glass/bowl + list_reagents = list(/datum/reagent/consumable/nutriment = 7, /datum/reagent/consumable/nutriment/vitamin = 5, /datum/reagent/medicine/earthsblood = 3, /datum/reagent/medicine/omnizine = 5, /datum/reagent/drug/happiness = 2) + tastes = list("hope" = 1) + foodtype = VEGETABLES + +/obj/item/reagent_containers/food/snacks/salad/gumbo + name = "black eyed gumbo" + desc = "A spicy and savory meat and rice dish." + icon_state = "gumbo" + trash = /obj/item/reagent_containers/glass/bowl + list_reagents = list(/datum/reagent/consumable/capsaicin = 2, /datum/reagent/consumable/nutriment/vitamin = 3, /datum/reagent/consumable/nutriment = 5) + tastes = list("building heat" = 2, "savory meat and vegtables" = 1) + foodtype = GRAIN | MEAT | VEGETABLES diff --git a/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm b/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm index 9096429228..d812655b91 100644 --- a/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm +++ b/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm @@ -21,6 +21,17 @@ tastes = list("toast" = 1) foodtype = GRAIN +/obj/item/reagent_containers/food/snacks/baconlettucetomato + name = "blt sandwich" + desc = "The classic bacon, lettuce tomato sandwich." + icon = 'icons/obj/food/burgerbread.dmi' + icon_state = "blt" + trash = /obj/item/trash/plate + bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 8, /datum/reagent/consumable/nutriment/vitamin = 2) + tastes = list("bacon" = 1, "lettuce" = 1, "tomato" = 1, "mayo" = 1) + foodtype = GRAIN | MEAT | VEGETABLES + /obj/item/reagent_containers/food/snacks/grilledcheese name = "grilled cheese sandwich" desc = "Goes great with Tomato soup!" @@ -136,8 +147,9 @@ /obj/item/reagent_containers/food/snacks/tuna_sandwich name = "tuna sandwich" desc = "Both a salad and a sandwich in one." + icon = 'icons/obj/food/burgerbread.dmi' icon_state = "tunasandwich" - trash = /obj/item/trash/plate + list_reagents = list(/datum/reagent/consumable/nutriment = 12, /datum/reagent/consumable/nutriment/vitamin = 4) bonus_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 3) tastes = list("tuna" = 4, "mayonnaise" = 2, "bread" = 2) foodtype = GRAIN | MEAT diff --git a/code/modules/food_and_drinks/food/snacks_soup.dm b/code/modules/food_and_drinks/food/snacks_soup.dm index 3d70b32f2e..a6a251a84c 100644 --- a/code/modules/food_and_drinks/food/snacks_soup.dm +++ b/code/modules/food_and_drinks/food/snacks_soup.dm @@ -262,3 +262,13 @@ tastes = list("bungo" = 2, "hot curry" = 4, "tropical sweetness" = 1) filling_color = "#E6A625" foodtype = VEGETABLES | FRUIT | DAIRY + +/obj/item/reagent_containers/food/snacks/soup/peasoup + name = "pea soup" + desc = "A humble split pea soup." + icon_state = "peasoup" + bonus_reagents = list (/datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/medicine/oculine = 2) + list_reagents = list (/datum/reagent/consumable/nutriment = 8) + tastes = list("creamy peas"= 2, "parsnip" = 1) + filling_color = "#9dc530" + foodtype = VEGETABLES diff --git a/code/modules/food_and_drinks/food/snacks_vend.dm b/code/modules/food_and_drinks/food/snacks_vend.dm index a4d924bae4..38f7ecf5b1 100644 --- a/code/modules/food_and_drinks/food/snacks_vend.dm +++ b/code/modules/food_and_drinks/food/snacks_vend.dm @@ -41,7 +41,6 @@ filling_color = "#FFD700" tastes = list("salt" = 1, "crisps" = 1) foodtype = JUNKFOOD | FRIED - custom_price = 90 /obj/item/reagent_containers/food/snacks/no_raisin name = "4no raisins" @@ -69,7 +68,7 @@ junkiness = 25 filling_color = "#FFD700" foodtype = JUNKFOOD | GRAIN | SUGAR - custom_price = 30 + custom_price = PRICE_CHEAP_AS_FREE /obj/item/reagent_containers/food/snacks/cheesiehonkers name = "cheesie honkers" @@ -81,7 +80,6 @@ filling_color = "#FFD700" tastes = list("cheese" = 5, "crisps" = 2) foodtype = JUNKFOOD | DAIRY | SUGAR - custom_price = 45 /obj/item/reagent_containers/food/snacks/syndicake name = "syndi-cakes" @@ -92,3 +90,4 @@ filling_color = "#F5F5DC" tastes = list("sweetness" = 3, "cake" = 1) foodtype = GRAIN | FRUIT | VEGETABLES + custom_price = PRICE_CHEAP diff --git a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm index feba35da97..f09d3d6728 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm @@ -1,5 +1,5 @@ #define STORAGE_CAPACITY 30 -#define LIQUID_CAPACIY 200 +#define LIQUID_CAPACITY 200 #define MIXER_CAPACITY 100 /obj/machinery/food_cart @@ -19,7 +19,7 @@ /obj/machinery/food_cart/Initialize() . = ..() - create_reagents(LIQUID_CAPACIY, OPENCONTAINER | NO_REACT) + create_reagents(LIQUID_CAPACITY, OPENCONTAINER | NO_REACT) mixer = new /obj/item/reagent_containers(src, MIXER_CAPACITY) mixer.name = "Mixer" @@ -60,6 +60,9 @@ return food_stored >= STORAGE_CAPACITY /obj/machinery/food_cart/attackby(obj/item/O, mob/user, params) + if(O.tool_behaviour == TOOL_WRENCH) + default_unfasten_wrench(user, O, 0) + return TRUE if(istype(O, /obj/item/reagent_containers/food/drinks/drinkingglass)) var/obj/item/reagent_containers/food/drinks/drinkingglass/DG = O if(!DG.reagents.total_volume) //glass is empty @@ -106,7 +109,7 @@ return if(href_list["disposeI"]) - reagents.del_reagent(href_list["disposeI"]) + reagents.del_reagent(text2path(href_list["disposeI"])) if(href_list["dispense"]) if(stored_food[href_list["dispense"]]-- <= 0) @@ -116,9 +119,13 @@ if(sanitize(O.name) == href_list["dispense"]) O.forceMove(drop_location()) break + log_combat(usr, src, "dispensed [O] from", null, "with [stored_food[href_list["dispense"]]] remaining") if(href_list["portion"]) - portion = clamp(input("How much drink do you want to dispense per glass?") as num, 0, 50) + portion = clamp(input("How much drink do you want to dispense per glass?") as num|null, 0, 50) + + if (isnull(portion)) + return if(href_list["pour"] || href_list["m_pour"]) if(glasses-- <= 0) @@ -127,16 +134,16 @@ else var/obj/item/reagent_containers/food/drinks/drinkingglass/DG = new(loc) if(href_list["pour"]) - reagents.trans_id_to(DG, href_list["pour"], portion) + reagents.trans_id_to(DG, text2path(href_list["pour"]), portion) if(href_list["m_pour"]) - mixer.reagents.trans_id_to(DG, href_list["m_pour"], portion) + mixer.reagents.trans_id_to(DG, text2path(href_list["m_pour"]), portion) if(href_list["mix"]) - if(reagents.trans_id_to(mixer, href_list["mix"], portion) == 0) + if(reagents.trans_id_to(mixer, text2path(href_list["mix"]), portion) == 0) to_chat(usr, "[mixer] is full!") if(href_list["transfer"]) - if(mixer.reagents.trans_id_to(src, href_list["transfer"], portion) == 0) + if(mixer.reagents.trans_id_to(src, text2path(href_list["transfer"]), portion) == 0) to_chat(usr, "[src] is full!") updateDialog() @@ -152,5 +159,5 @@ qdel(src) #undef STORAGE_CAPACITY -#undef LIQUID_CAPACIY +#undef LIQUID_CAPACITY #undef MIXER_CAPACITY diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 67a636eb9c..891a6abec2 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -463,7 +463,7 @@ return TRUE if(!O.reagents || !O.reagents.reagent_list.len) // other empty containers not accepted return FALSE - if(istype(O, /obj/item/reagent_containers/syringe) || istype(O, /obj/item/reagent_containers/glass/bottle) || istype(O, /obj/item/reagent_containers/glass/beaker) || istype(O, /obj/item/reagent_containers/spray) || istype(O, /obj/item/reagent_containers/medspray)) + if(istype(O, /obj/item/reagent_containers/syringe) || istype(O, /obj/item/reagent_containers/glass/bottle) || istype(O, /obj/item/reagent_containers/glass/beaker) || istype(O, /obj/item/reagent_containers/spray) || istype(O, /obj/item/reagent_containers/medspray) || istype(O, /obj/item/reagent_containers/chem_pack)) return TRUE return FALSE diff --git a/code/modules/food_and_drinks/recipes/food_mixtures.dm b/code/modules/food_and_drinks/recipes/food_mixtures.dm index ec96a4537c..541c972490 100644 --- a/code/modules/food_and_drinks/recipes/food_mixtures.dm +++ b/code/modules/food_and_drinks/recipes/food_mixtures.dm @@ -179,3 +179,14 @@ id = /datum/reagent/consumable/bbqsauce results = list(/datum/reagent/consumable/bbqsauce = 5) required_reagents = list(/datum/reagent/ash = 1, /datum/reagent/consumable/tomatojuice = 1, /datum/reagent/medicine/salglu_solution = 3, /datum/reagent/consumable/blackpepper = 1) + +/datum/chemical_reaction/margarine + name = "Margarine" + id = "margarine" + required_reagents = list(/datum/reagent/consumable/cornoil = 5, /datum/reagent/consumable/soymilk = 5, /datum/reagent/consumable/sodiumchloride = 1) + mix_message = "The ingredients solidify into a stick of margarine." + +/datum/chemical_reaction/margarine/on_reaction(datum/reagents/holder, multiplier) + var/location = get_turf(holder.my_atom) + for(var/i = 1, i <= multiplier, i++) + new /obj/item/reagent_containers/food/snacks/butter/margarine(location) \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.dm index ac5576ac25..c376ab4025 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_donut.dm @@ -121,6 +121,15 @@ datum/crafting_recipe/food/donut/meat ) result = /obj/item/reagent_containers/food/snacks/donut/matcha + +/datum/crafting_recipe/food/donut/laugh + name = "Sweet Pea Donut" + reqs = list( + /datum/reagent/consumable/laughsyrup = 3, + /obj/item/reagent_containers/food/snacks/donut/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/laugh + ////////////////////////////////////////////////////JELLY DONUTS/////////////////////////////////////////////////////// /datum/crafting_recipe/food/donut/jelly/apple @@ -187,6 +196,14 @@ datum/crafting_recipe/food/donut/meat ) result = /obj/item/reagent_containers/food/snacks/donut/jelly/trumpet +/datum/crafting_recipe/food/donut/jelly/laugh + name = "Sweet Pea Jelly Donut" + reqs = list( + /datum/reagent/consumable/laughsyrup = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/laugh + ////////////////////////////////////////////////////SLIME DONUTS/////////////////////////////////////////////////////// /datum/crafting_recipe/food/donut/slimejelly/apple @@ -253,3 +270,11 @@ datum/crafting_recipe/food/donut/meat /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 ) result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/matcha + +/datum/crafting_recipe/food/donut/slimejelly/laugh + name = "Sweet Pea Jelly Donut" + reqs = list( + /datum/reagent/consumable/laughsyrup = 3, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/laugh diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm index e8640886c2..53c3682e2c 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm @@ -22,6 +22,15 @@ result = /obj/item/reagent_containers/food/snacks/baconegg subcategory = CAT_EGG +/datum/crafting_recipe/food/wrap + name = "Egg Wrap" + reqs = list(/datum/reagent/consumable/soysauce = 10, + /obj/item/reagent_containers/food/snacks/friedegg = 1, + /obj/item/reagent_containers/food/snacks/grown/cabbage = 1, + ) + result = /obj/item/reagent_containers/food/snacks/eggwrap + subcategory = CAT_EGG + /datum/crafting_recipe/food/omelette name = "Omelette" reqs = list( diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm index 3e47904e6e..5b81c54bc5 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm @@ -15,7 +15,7 @@ result = /obj/item/reagent_containers/food/snacks/banana_split subcategory = CAT_ICE - /datum/crafting_recipe/food/bluecharrie_float +/datum/crafting_recipe/food/bluecharrie_float name = "Blue Cherry Shake" always_availible = FALSE reqs = list( @@ -276,4 +276,4 @@ /datum/reagent/consumable/laughter = 5 ) result = /obj/item/reagent_containers/food/snacks/snowcones/clown - subcategory = CAT_ICE \ No newline at end of file + subcategory = CAT_ICE diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index e7fdeffe14..60b363c168 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -171,3 +171,14 @@ ) result = /obj/item/reagent_containers/food/snacks/salad/ricepork subcategory = CAT_MEAT + +/datum/crafting_recipe/food/gumbo + name = "Black eyed gumbo" + reqs = list( + /obj/item/reagent_containers/food/snacks/salad/boiledrice = 1, + /obj/item/reagent_containers/food/snacks/grown/peas = 1, + /obj/item/reagent_containers/food/snacks/grown/chili = 1, + /obj/item/reagent_containers/food/snacks/meat/cutlet = 1 + ) + result = /obj/item/reagent_containers/food/snacks/salad/gumbo + subcategory = CAT_MEAT diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm index 689345b04f..bbaa49a1eb 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm @@ -14,15 +14,6 @@ result = /obj/item/reagent_containers/food/snacks/chawanmushi subcategory = CAT_MISCFOOD -/datum/crafting_recipe/food/wrap - name = "Egg Wrap" - reqs = list(/datum/reagent/consumable/soysauce = 10, - /obj/item/reagent_containers/food/snacks/friedegg = 1, - /obj/item/reagent_containers/food/snacks/grown/cabbage = 1, - ) - result = /obj/item/reagent_containers/food/snacks/eggwrap - subcategory = CAT_MISCFOOD - /datum/crafting_recipe/food/khachapuri name = "Khachapuri" reqs = list( @@ -93,6 +84,16 @@ result = /obj/item/reagent_containers/food/snacks/cheesyfries subcategory = CAT_MISCFOOD +/datum/crafting_recipe/food/chilicheesefries + name = "Chilli cheese fries" + reqs = list( + /obj/item/reagent_containers/food/snacks/fries = 1, + /obj/item/reagent_containers/food/snacks/cheesewedge = 1, + /obj/item/reagent_containers/food/snacks/grown/chili = 1 + ) + result = /obj/item/reagent_containers/food/snacks/chilicheesefries + subcategory = CAT_MISCFOOD + /datum/crafting_recipe/food/eggplantparm name ="Eggplant parmigiana" reqs = list( @@ -194,3 +195,14 @@ ) result = /mob/living/simple_animal/hostile/bear/butter subcategory = CAT_MISCFOOD + +/datum/crafting_recipe/food/royalcheese + name = "Royal Cheese" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/cheesewheel = 1, + /obj/item/clothing/head/crown = 1, + /datum/reagent/medicine/strange_reagent = 5, + /datum/reagent/toxin/mutagen = 5 + ) + result = /obj/item/reagent_containers/food/snacks/royalcheese + subcategory = CAT_MISCFOOD \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm index f25aaab6fd..7cf70dacf2 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm @@ -93,4 +93,17 @@ /obj/item/reagent_containers/food/snacks/grown/cabbage = 1 ) result = /obj/item/reagent_containers/food/snacks/salad/caesar - subcategory = CAT_SALAD \ No newline at end of file + subcategory = CAT_SALAD + + +/datum/crafting_recipe/food/edensalad + name = "Salad of Eden" + reqs = list( + /obj/item/reagent_containers/glass/bowl =1, + /obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris = 1, + /obj/item/reagent_containers/food/snacks/grown/ambrosia/deus = 1, + /obj/item/reagent_containers/food/snacks/grown/ambrosia/gaia = 1, + /obj/item/reagent_containers/food/snacks/grown/peace = 1 + ) + result = /obj/item/reagent_containers/food/snacks/salad/edensalad + subcategory = CAT_SALAD diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm index d2ea1da50a..60bcd65a80 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm @@ -25,6 +25,17 @@ result = /obj/item/reagent_containers/food/snacks/grilledcheese subcategory = CAT_SANDWICH +/datum/crafting_recipe/food/baconlettucetomato + name = "BLT sandwich" + reqs = list( + /obj/item/reagent_containers/food/snacks/meat/bacon = 2, + /obj/item/reagent_containers/food/snacks/grown/cabbage = 1, + /obj/item/reagent_containers/food/snacks/grown/tomato = 1, + /datum/reagent/consumable/mayonnaise = 5 + ) + result = /obj/item/reagent_containers/food/snacks/baconlettucetomato + subcategory = CAT_SANDWICH + /datum/crafting_recipe/food/slimesandwich name = "Jelly sandwich" reqs = list( @@ -99,7 +110,7 @@ /obj/item/reagent_containers/food/snacks/breadslice/plain = 2, /obj/item/reagent_containers/food/snacks/tuna = 1, /obj/item/reagent_containers/food/snacks/grown/onion = 1, - /obj/item/reagent_containers/food/condiment/mayonnaise = 5 + /datum/reagent/consumable/mayonnaise = 5 ) result = /obj/item/reagent_containers/food/snacks/tuna_sandwich subcategory = CAT_SANDWICH diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.dm index 45083e0374..d1c13115a5 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.dm @@ -135,4 +135,14 @@ /obj/item/reagent_containers/food/snacks/carpmeat = 1 ) result = /obj/item/reagent_containers/food/snacks/fishandchips - subcategory = CAT_SEAFOOD \ No newline at end of file + subcategory = CAT_SEAFOOD + +/datum/crafting_recipe/food/fishfry + name = "Fish fry" + reqs = list( + /obj/item/reagent_containers/food/snacks/grown/corn = 1, + /obj/item/reagent_containers/food/snacks/grown/peas =1, + /obj/item/reagent_containers/food/snacks/carpmeat = 1 + ) + result = /obj/item/reagent_containers/food/snacks/fishfry + subcategory = CAT_SEAFOOD diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm index ae8bd6a49c..8f4b4c2726 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm @@ -255,4 +255,16 @@ /obj/item/reagent_containers/glass/bowl = 1 ) result= /obj/item/reagent_containers/food/snacks/soup/wish - subcategory = CAT_SOUP \ No newline at end of file + subcategory = CAT_SOUP + + +/datum/crafting_recipe/food/peasoup + name = "Pea soup" + reqs = list( + /datum/reagent/water = 10, + /obj/item/reagent_containers/food/snacks/grown/peas = 2, + /obj/item/reagent_containers/food/snacks/grown/parsnip = 1, + /obj/item/reagent_containers/food/snacks/grown/carrot = 1 + ) + result = /obj/item/reagent_containers/food/snacks/soup/peasoup + subcategory = CAT_SOUP diff --git a/code/modules/games/unum.dm b/code/modules/games/unum.dm new file mode 100644 index 0000000000..9820fa6754 --- /dev/null +++ b/code/modules/games/unum.dm @@ -0,0 +1,22 @@ +/// A deck of unum cards. Classic. +/obj/item/toy/cards/deck/unum + name = "\improper UNUM deck" + desc = "A deck of unum cards. House rules to argue over not included." + icon = 'icons/obj/toy.dmi' + icon_state = "deck_unum_full" + deckstyle = "unum" + original_size = 108 + +//Populate the deck. +/obj/item/toy/cards/deck/unum/populate_deck() + for(var/colour in list("Red","Yellow","Green","Blue")) + cards += "[colour] 0" //Uno, i mean, cough cough, Unum decks have only one colour of each 0, weird huh? + for(var/k in 0 to 1) //two of each colour of number + cards += "[colour] skip" + cards += "[colour] reverse" + cards += "[colour] draw 2" + for(var/i in 1 to 9) + cards += "[colour] [i]" + for(var/k in 0 to 3) //4 wilds and draw 4s + cards += "Wildcard" + cards += "Draw 4" diff --git a/code/modules/goonchat/browserassets/css/browserOutput.css b/code/modules/goonchat/browserassets/css/browserOutput.css index d4dc3cb213..3455a97ba2 100644 --- a/code/modules/goonchat/browserassets/css/browserOutput.css +++ b/code/modules/goonchat/browserassets/css/browserOutput.css @@ -403,6 +403,12 @@ h1.alert, h2.alert {color: #000000;} .his_grace {color: #15D512; font-family: "Courier New", cursive, sans-serif; font-style: italic;} .spooky {color: #FF6100;} .velvet {color: #660015; font-weight: bold; animation: velvet 5000ms infinite;} + +.lethal {color: #bf3d3d; font-weight: bold;} +.stun {color: #0f81bc; font-weight: bold;} +.ion {color: #d084d6; font-weight: bold;} +.xray {color: #32c025; font-weight: bold;} + @keyframes velvet { 0% { color: #400020; } 40% { color: #FF0000; } diff --git a/code/modules/goonchat/browserassets/html/browserOutput.html b/code/modules/goonchat/browserassets/html/browserOutput.html index 314cd42446..0acb127517 100644 --- a/code/modules/goonchat/browserassets/html/browserOutput.html +++ b/code/modules/goonchat/browserassets/html/browserOutput.html @@ -29,7 +29,7 @@ --ms
    - +
    diff --git a/code/modules/holiday/halloween/bartholomew.dm b/code/modules/holiday/halloween/bartholomew.dm index f51b8b7ea1..82ac374525 100644 --- a/code/modules/holiday/halloween/bartholomew.dm +++ b/code/modules/holiday/halloween/bartholomew.dm @@ -88,7 +88,7 @@ /obj/item/t_scanner = 5, /obj/item/airlock_painter = 1, /obj/item/stack/cable_coil = 6, - /obj/item/stack/medical/bruise_pack = 1, + /obj/item/stack/medical/suture = 1, /obj/item/stack/rods = 3, /obj/item/stack/sheet/cardboard = 2, /obj/item/stack/sheet/metal = 1, @@ -117,7 +117,7 @@ /obj/item/weldingtool = 3, /obj/item/wirecutters = 2, /obj/item/wrench = 4, - /obj/item/weaponcrafting/receiver = 1, + /obj/item/weaponcrafting/improvised_parts/shotgun_receiver = 1, /obj/item/geiger_counter = 3, /obj/item/reagent_containers/food/snacks/grown/citrus/orange = 5, /obj/item/assembly/infra = 1, diff --git a/code/modules/holiday/halloween/jacqueen.dm b/code/modules/holiday/halloween/jacqueen.dm index 7f6d48e731..957d9df376 100644 --- a/code/modules/holiday/halloween/jacqueen.dm +++ b/code/modules/holiday/halloween/jacqueen.dm @@ -38,8 +38,10 @@ health = 25 density = FALSE speech_span = "spooky" - friendly = "pets" - response_help = "chats with" + friendly_verb_continuous = "pets" + friendly_verb_simple = "pet" + response_help_continuous = "chats with" + response_help_simple = "chat with" light_range = 3 light_color = "#ff9842" var/last_poof @@ -54,8 +56,9 @@ cached_z = z poof() -/mob/living/simple_animal/jacq/Life() - ..() +/mob/living/simple_animal/jacq/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(!ckey) if((last_poof+3 MINUTES) < world.realtime) poof() diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm index 68001db517..83bb67b879 100644 --- a/code/modules/holiday/holidays.dm +++ b/code/modules/holiday/holidays.dm @@ -189,6 +189,14 @@ begin_day = 22 begin_month = APRIL +/datum/holiday/lesbianvisibility + name = "Lesbian Visibility Day" + begin_day = 26 + begin_month = APRIL + +/datum/holiday/lesbianvisibility/greet() + return "Today is Lesbian Visibility Day!" + /datum/holiday/labor name = "Labor Day" begin_day = 1 @@ -292,6 +300,14 @@ /datum/holiday/programmers/getStationPrefix() return pick("span>","DEBUG: ","null","/list","EVENT PREFIX NOT FOUND") //Portability +/datum/holiday/bivisibility + name = "Bisexual Visibility Day" + begin_day = 23 + begin_month = SEPTEMBER + +/datum/holiday/bivisibility/greet() + return "Today is Bisexual Visibility Day!" + /datum/holiday/questions name = "Stupid-Questions Day" begin_day = 28 @@ -314,12 +330,25 @@ begin_month = OCTOBER drone_hat = /obj/item/clothing/head/papersack/smiley +/datum/holiday/comingoutday + name = "Coming Out Day" + begin_day = 11 + begin_month = OCTOBER + /datum/holiday/boss name = "Boss' Day" begin_day = 16 begin_month = OCTOBER drone_hat = /obj/item/clothing/head/that +/datum/holiday/intersexawareness + name = "Intersex Awareness Day" + begin_day = 26 + begin_month = OCTOBER + +/datum/holiday/intersexawareness/greet() + return "Today is Intersex Awareness Day! It has been [text2num(time2text(world.timeofday, "YYYY")) - 1996] years since the first public protest speaking out against the human rights issues faced by intersex people." + /datum/holiday/halloween name = HALLOWEEN begin_day = 28 @@ -359,6 +388,23 @@ begin_month = NOVEMBER drone_hat = /obj/item/reagent_containers/food/snacks/grown/moonflower +/datum/holiday/transawareness + name = "Transgender Awareness Week" + begin_day = 13 + begin_month = NOVEMBER + end_day = 19 + +/datum/holiday/transawareness/greet() + return "This week is Transgender Awareness Week!" + +/datum/holiday/transremembrance + name = "Transgender Day of Remembrance" + begin_day = 20 + begin_month = NOVEMBER + +/datum/holiday/transremembrance/greet() + return "Today is the Transgender Day of Remembrance." + /datum/holiday/hello name = "Saying-'Hello' Day" begin_day = 21 @@ -397,6 +443,26 @@ begin_month = OCTOBER begin_weekday = MONDAY +/datum/holiday/aceawareness + name = "Asexual Awareness Week" + begin_month = OCTOBER + +/datum/holiday/aceawareness/greet() + return "This week is Asexual Awareness Week!" + +/datum/holiday/aceawareness/shouldCelebrate(dd, mm, yy, ww, ddd) //Ace awareness week falls on the last full week of October. + if(mm != begin_month) + return FALSE //it's not even the right month + var/daypointer = world.timeofday - ((WEEKDAY2NUM(ddd) - 1) * 24 HOURS) + if(text2num(time2text(daypointer, "MM")) != mm) + return FALSE //it's the beginning of the month and it isn't even a full week + daypointer += (24 HOURS * 6) + if(text2num(time2text(daypointer, "MM")) != mm) + return FALSE //this is the end of the month, and it is not a full week. + daypointer += (24 HOURS * 7) + if(text2num(time2text(daypointer, "MM")) != mm) + return TRUE //the end of next week falls on a different month, meaning that the current week is the last full week + /datum/holiday/mother name = "Mother's Day" begin_week = 2 @@ -412,11 +478,39 @@ begin_month = JUNE begin_weekday = SUNDAY +/datum/holiday/pride + name = PRIDE_MONTH + begin_day = 1 + begin_month = JUNE + end_day = 30 + +/datum/holiday/pride/getStationPrefix() + return pick("Pride", "Gay", "Bi", "Trans", "Lesbian", "Ace", "Aro", "Agender", pick("Enby", "Enbie"), "Pan", "Intersex", "Demi", "Poly", "Closeted", "Genderfluid") + +/datum/holiday/stonewall + name = "Stonewall Riots Anniversary" + begin_day = 28 + begin_month = JUNE + +/datum/holiday/stonewall/greet() //Not gonna lie, I was fairly tempted to make this use the IC year instead of the IRL year, but I was worried that it would have caused too much confusion. + return "Today marks the [text2num(time2text(world.timeofday, "YYYY")) - 1969]\th anniversary of the riots at the Stonewall Inn!" + /datum/holiday/moth name = "Moth Week" + begin_month = JULY /datum/holiday/moth/shouldCelebrate(dd, mm, yy, ww, ddd) //National Moth Week falls on the last full week of July - return mm == JULY && (ww == 4 || (ww == 5 && ddd == SUNDAY)) + if(mm != begin_month) + return FALSE //it's not even the right month + var/daypointer = world.timeofday - ((WEEKDAY2NUM(ddd) - 1) * 24 HOURS) + if(text2num(time2text(daypointer, "MM")) != mm) + return FALSE //it's the beginning of the month and it isn't even a full week + daypointer += (24 HOURS * 6) + if(text2num(time2text(daypointer, "MM")) != mm) + return FALSE //this is the end of the month, and it is not a full week. + daypointer += (24 HOURS * 7) + if(text2num(time2text(daypointer, "MM")) != mm) + return TRUE //the end of next week falls on a different month, meaning that the current week is the last full week /datum/holiday/moth/getStationPrefix() return pick("Mothball","Lepidopteran","Lightbulb","Moth","Giant Atlas","Twin-spotted Sphynx","Madagascan Sunset","Luna","Death's Head","Emperor Gum","Polyphenus","Oleander Hawk","Io","Rosy Maple","Cecropia","Noctuidae","Giant Leopard","Dysphania Militaris","Garden Tiger") diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm index 3fac417605..c68c5de804 100644 --- a/code/modules/holodeck/items.dm +++ b/code/modules/holodeck/items.dm @@ -40,9 +40,6 @@ return ..() return ..() -/obj/item/holo/esword/attack(target as mob, mob/user as mob) - ..() - /obj/item/holo/esword/Initialize() . = ..() saber_color = pick("red","blue","green","purple") diff --git a/code/modules/holodeck/mobs.dm b/code/modules/holodeck/mobs.dm index adac4ea7b2..121989bf1e 100644 --- a/code/modules/holodeck/mobs.dm +++ b/code/modules/holodeck/mobs.dm @@ -15,6 +15,9 @@ speak_chance = 1 turns_per_move = 2 butcher_results = list() - response_help = "pets" - response_disarm = "pushes aside" - response_harm = "kicks" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "pushes aside" + response_disarm_simple = "push aside" + response_harm_continuous = "kicks" + response_harm_simple = "kick" diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index 28f3387097..06d2b3efda 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -205,6 +205,11 @@ popup.set_content(dat) popup.open() +/obj/machinery/biogenerator/AltClick(mob/living/user) + . = ..() + if(istype(user) && user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + detach(user) + /obj/machinery/biogenerator/proc/activate() if (usr.stat != CONSCIOUS) return @@ -293,9 +298,9 @@ update_icon() return . -/obj/machinery/biogenerator/proc/detach() +/obj/machinery/biogenerator/proc/detach(mob/living/user) if(beaker) - beaker.forceMove(drop_location()) + user.put_in_hands(beaker) beaker = null update_icon() @@ -310,7 +315,7 @@ updateUsrDialog() else if(href_list["detach"]) - detach() + detach(usr) updateUsrDialog() else if(href_list["create"]) diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm index 851753da46..f4748ccde8 100644 --- a/code/modules/hydroponics/grown/citrus.dm +++ b/code/modules/hydroponics/grown/citrus.dm @@ -195,7 +195,7 @@ /obj/item/reagent_containers/food/snacks/grown/firelemon/ex_act(severity) qdel(src) //Ensuring that it's deleted by its own explosion -/obj/item/reagent_containers/food/snacks/grown/firelemon/proc/prime() +/obj/item/reagent_containers/food/snacks/grown/firelemon/proc/prime(mob/living/lanced_by) switch(seed.potency) //Combustible lemons are alot like IEDs, lots of flame, very little bang. if(0 to 30) update_mob() diff --git a/code/modules/hydroponics/grown/flowers.dm b/code/modules/hydroponics/grown/flowers.dm index 8b0dcdaae1..abd06775af 100644 --- a/code/modules/hydroponics/grown/flowers.dm +++ b/code/modules/hydroponics/grown/flowers.dm @@ -277,7 +277,7 @@ growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi' icon_grow = "bee_balm-grow" icon_dead = "bee_balm-dead" - mutatelist = list(/obj/item/seeds/poppy/geranium, /obj/item/seeds/bee_balm/honey) //Lower odds of becoming honey + mutatelist = list(/obj/item/seeds/poppy/geranium, /obj/item/seeds/bee_balm/honey_balm) //Lower odds of becoming honey reagents_add = list(/datum/reagent/medicine/spaceacillin = 0.1, /datum/reagent/space_cleaner/sterilizine = 0.05) /obj/item/reagent_containers/food/snacks/grown/bee_balm @@ -291,11 +291,11 @@ foodtype = GROSS // Beebalm -/obj/item/seeds/bee_balm/honey +/obj/item/seeds/bee_balm/honey_balm name = "pack of Honey Balm seeds" desc = "These seeds grow into Honey Balms." - icon_state = "seed-bee_balmalt" - species = "seed-bee_balm_alt" + icon_state = "seed-honey_balm" + species = "honey_balm" plantname = "Honey Balm Pods" product = /obj/item/reagent_containers/food/snacks/grown/bee_balm/honey endurance = 1 @@ -304,16 +304,16 @@ potency = 1 growthstages = 3 growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi' - icon_grow = "bee_balmalt-grow" - icon_dead = "bee_balmalt-dead" + icon_grow = "honey_balm-grow" + icon_dead = "honey_balm-dead" reagents_add = list(/datum/reagent/consumable/honey = 0.1, /datum/reagent/lye = 0.3) //To make wax rarity = 30 /obj/item/reagent_containers/food/snacks/grown/bee_balm/honey - seed = /obj/item/seeds/bee_balm/honey + seed = /obj/item/seeds/bee_balm/honey_balm name = "honey balm" desc = "A large honey filled pod of a flower." - icon_state = "bee_balmalt" + icon_state = "honey_balm" filling_color = "#FF6347" bitesize_mod = 8 tastes = list("wax" = 1) diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm index 097d784592..01044cda25 100644 --- a/code/modules/hydroponics/grown/misc.dm +++ b/code/modules/hydroponics/grown/misc.dm @@ -223,7 +223,7 @@ /obj/item/reagent_containers/food/snacks/grown/cherry_bomb/ex_act(severity) qdel(src) //Ensuring that it's deleted by its own explosion. Also prevents mass chain reaction with piles of cherry bombs -/obj/item/reagent_containers/food/snacks/grown/cherry_bomb/proc/prime() +/obj/item/reagent_containers/food/snacks/grown/cherry_bomb/proc/prime(mob/living/lanced_by) icon_state = "cherry_bomb_lit" playsound(src, 'sound/effects/fuse.ogg', seed.potency, 0) addtimer(CALLBACK(src, /obj/item/reagent_containers/food/snacks/grown/cherry_bomb/proc/detonate), rand(50, 100)) diff --git a/code/modules/hydroponics/grown/peas.dm b/code/modules/hydroponics/grown/peas.dm new file mode 100644 index 0000000000..6229d98b2c --- /dev/null +++ b/code/modules/hydroponics/grown/peas.dm @@ -0,0 +1,102 @@ +// Finally, peas. Base plant. +/obj/item/seeds/peas + name = "pack of pea pods" + desc = "These seeds grows into vitamin rich peas!" + icon_state = "seed-peas" + species = "peas" + plantname = "Pea Vines" + product = /obj/item/reagent_containers/food/snacks/grown/peas + maturation = 3 + potency = 25 + growthstages = 3 + growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' + icon_grow = "peas-grow" + icon_dead = "peas-dead" + genes = list(/datum/plant_gene/trait/repeated_harvest) + mutatelist = list(/obj/item/seeds/peas/laugh) // TODO: Add /obj/item/seeds/peas/shoot at a later date, for the peashooter mutation line + reagents_add = list (/datum/reagent/consumable/nutriment/vitamin = 0.1, /datum/reagent/consumable/nutriment = 0.05, /datum/reagent/water = 0.05) + + +/obj/item/reagent_containers/food/snacks/grown/peas + seed = /obj/item/seeds/peas + name = "peapod" + desc = "Finally... peas." + icon_state = "peas" + filling_color = "#739122" + bitesize_mod = 1 + foodtype = VEGETABLES + tastes = list ("peas" = 1, "chalky saltiness" = 1) + wine_power = 50 + wine_flavor = "what is, distressingly, fermented peas." + // distill_regeant = /datum/reagent/saltpetre //if allowed, remove wine_power, ya dingus. + + +// Laughin' Peas +/obj/item/seeds/peas/laugh + name = "pack of laughin' peas" + desc = "These seeds give off a very soft purple glow.. they should grow into Laughin' Peas." + icon_state = "seed-laughpeas" + species = "laughpeas" + plantname = "Laughin' Peas" + product = /obj/item/reagent_containers/food/snacks/grown/laugh + maturation = 7 + potency = 10 + yield = 7 + production = 5 + growthstages = 3 + growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' + icon_grow = "laughpeas-grow" + icon_dead = "laughpeas-dead" + genes = list (/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/glow/purple) + mutatelist = list (/obj/item/seeds/peas/laugh/peace) + reagents_add = list (/datum/reagent/consumable/laughter = 0.05, /datum/reagent/consumable/sugar = 0.05, /datum/reagent/consumable/nutriment = 0.07) + rarity = 25 //It actually might make Central Command Officials loosen up a smidge, eh? + + +/obj/item/reagent_containers/food/snacks/grown/laugh + seed = /obj/item/seeds/peas/laugh + name = "pod of laughin' peas" + desc = "Ridens Cicer, guaranteed to improve your mood dramatically upon consumption!" + icon_state = "laughpeas" + filling_color = "#ee7bee" + bitesize_mod = 2 + foodtype = VEGETABLES + tastes = list ("a prancing rabbit" = 1) //Vib Ribbon sends her regards.. wherever she is. + wine_power = 90 + wine_flavor = "a vector-graphic rabbit dancing on your tongue" + + +// World Peas - Peace at last, peace at last... +/obj/item/seeds/peas/laugh/peace + name = "pack of world peas" + desc = "These rather large seeds give off a soothing blue glow..." + icon_state = "seed-worldpeas" + species = "worldpeas" + plantname = "World Peas" + product = /obj/item/reagent_containers/food/snacks/grown/peace + maturation = 20 + potency = 75 + yield = 1 + production = 10 + growthstages = 3 + growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' + icon_grow = "worldpeas-grow" + icon_dead = "worldpeas-dead" + genes = list (/datum/plant_gene/trait/glow/blue) + reagents_add = list (/datum/reagent/pax = 0.1, /datum/reagent/drug/happiness = 0.1, /datum/reagent/consumable/nutriment = 0.15) + rarity = 50 // This absolutely will make even the most hardened Syndicate Operators relax, and lay down their arms. + + +/obj/item/reagent_containers/food/snacks/grown/peace + seed = /obj/item/seeds/peas/laugh/peace + name = "cluster of world peas" + desc = "A plant discovered through extensive genetic engineering, and iterative graft work. It's rumored to bring peace to any who consume it. In the wider AgSci community, it's attained the nickname of 'Pax Mundi'." //at last... world peas. I'm not sorry. + icon_state = "worldpeas" + filling_color = "#0099CC" + bitesize_mod = 4 + foodtype = VEGETABLES + tastes = list ("numbing tranquility" = 2, "warmth" = 1) + wine_power = 100 + wine_flavor = "mind-numbing peace and warmth" + + diff --git a/code/modules/hydroponics/grown/tea_coffee.dm b/code/modules/hydroponics/grown/tea_coffee.dm index 48990d88c9..de27d1eed7 100644 --- a/code/modules/hydroponics/grown/tea_coffee.dm +++ b/code/modules/hydroponics/grown/tea_coffee.dm @@ -48,7 +48,7 @@ /obj/item/seeds/tea/catnip name = "pack of catnip seeds" icon_state = "seed-catnip" - desc = "Long stocks with flowering tips that has a chemical to make feline attracted to it." + desc = "Long stocks with flowering tips that contain a chemical to make felines attracted to it." species = "catnip" plantname = "Catnip Plant" growthstages = 3 diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index b18f4396d6..a666a36099 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -392,7 +392,7 @@ /datum/plant_gene/trait/battery/on_attackby(obj/item/reagent_containers/food/snacks/grown/G, obj/item/I, mob/user) if(istype(I, /obj/item/stack/cable_coil)) - if(I.use_tool(src, user, 0, 5, max_level = JOB_SKILL_EXPERT)) + if(I.use_tool(src, user, 0, 5, skill_gain_mult = TRIVIAL_USE_TOOL_MULT)) to_chat(user, "You add some cable to [G] and slide it inside the battery encasing.") var/obj/item/stock_parts/cell/potato/pocell = new /obj/item/stock_parts/cell/potato(user.loc) pocell.icon_state = G.icon_state diff --git a/code/modules/instruments/instruments/item.dm b/code/modules/instruments/instruments/item.dm index dde35a9f75..0141a4baee 100644 --- a/code/modules/instruments/instruments/item.dm +++ b/code/modules/instruments/instruments/item.dm @@ -69,7 +69,7 @@ /obj/item/instrument/dropped(mob/user) . = ..() if((loc != user) && (user.machine == src)) - user.set_machine(null) + user.unset_machine() /obj/item/instrument/interact(mob/user) ui_interact(user) diff --git a/code/modules/instruments/instruments/stationary.dm b/code/modules/instruments/instruments/stationary.dm index f236927c38..f54132984f 100644 --- a/code/modules/instruments/instruments/stationary.dm +++ b/code/modules/instruments/instruments/stationary.dm @@ -24,6 +24,7 @@ /obj/structure/musician/ui_interact(mob/user) . = ..() + user.set_machine(src) song.ui_interact(user) /obj/structure/musician/wrench_act(mob/living/user, obj/item/I) diff --git a/code/modules/instruments/songs/_song.dm b/code/modules/instruments/songs/_song.dm index 0fb4418a30..463398d2f2 100644 --- a/code/modules/instruments/songs/_song.dm +++ b/code/modules/instruments/songs/_song.dm @@ -223,8 +223,6 @@ /// Updates the window for our user. Override in subtypes. /datum/song/proc/updateDialog(mob/user = usr) - if(user.machine != src) - return ui_interact(user) /datum/song/process(wait) diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm index ef63ba97f8..384991e976 100644 --- a/code/modules/integrated_electronics/core/assemblies.dm +++ b/code/modules/integrated_electronics/core/assemblies.dm @@ -873,3 +873,8 @@ pixel_x = -31 if(WEST) pixel_x = 31 + plane = ABOVE_WALL_PLANE + +/obj/item/electronic_assembly/wallmount/Moved(atom/OldLoc, Dir, Forced = FALSE) //reset the plane if moved off the wall. + . = ..() + plane = GAME_PLANE diff --git a/code/modules/integrated_electronics/passive/power.dm b/code/modules/integrated_electronics/passive/power.dm index 4b6b8723dd..8f9a45ac4d 100644 --- a/code/modules/integrated_electronics/passive/power.dm +++ b/code/modules/integrated_electronics/passive/power.dm @@ -89,7 +89,7 @@ desc = "Produces electricity from chemicals." icon_state = "chemical_cell" extended_desc = "This is effectively an internal beaker. It will consume and produce power from plasma, slime jelly, welding fuel, carbon,\ - ethanol, nutriment, and blood in order of decreasing efficiency. It will consume fuel only if the battery can take more energy." + ethanol, nutriment, and blood in order of decreasing efficiency. It will consume fuel only if the battery can take more energy. But no fuel can be compared with blood of living human." complexity = 4 inputs = list() outputs = list("volume used" = IC_PINTYPE_NUMBER, "self reference" = IC_PINTYPE_SELFREF) @@ -102,10 +102,8 @@ var/lfwb =TRUE /obj/item/integrated_circuit/passive/power/chemical_cell/Initialize() - ..() + . = ..() create_reagents(volume, OPENCONTAINER) - extended_desc +="But no fuel can be compared with blood of living human." - /obj/item/integrated_circuit/passive/power/chemical_cell/interact(mob/user) set_pin_data(IC_OUTPUT, 2, WEAKREF(src)) diff --git a/code/modules/integrated_electronics/subtypes/arithmetic.dm b/code/modules/integrated_electronics/subtypes/arithmetic.dm index 6a6ee27ae1..e207f57ddb 100644 --- a/code/modules/integrated_electronics/subtypes/arithmetic.dm +++ b/code/modules/integrated_electronics/subtypes/arithmetic.dm @@ -283,10 +283,8 @@ /obj/item/integrated_circuit/arithmetic/square_root/do_work() var/result = 0 - for(var/k in 2 to inputs.len) - var/I = get_pin_data(IC_INPUT, k) - if(isnum(I)) - result += sqrt(I) + var/I = get_pin_data(IC_INPUT, 1) + result = sqrt(I) set_pin_data(IC_OUTPUT, 1, result) push_data() diff --git a/code/modules/integrated_electronics/subtypes/converters.dm b/code/modules/integrated_electronics/subtypes/converters.dm index 8c7529651b..ebb91a894e 100644 --- a/code/modules/integrated_electronics/subtypes/converters.dm +++ b/code/modules/integrated_electronics/subtypes/converters.dm @@ -426,7 +426,7 @@ activators = list("compute abs coordinates" = IC_PINTYPE_PULSE_IN, "on convert" = IC_PINTYPE_PULSE_OUT) spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH -/obj/item/integrated_circuit/converter/abs_to_rel_coords/do_work() +/obj/item/integrated_circuit/converter/rel_to_abs_coords/do_work() var/x1 = get_pin_data(IC_INPUT, 1) var/y1 = get_pin_data(IC_INPUT, 2) @@ -456,7 +456,7 @@ activators = list("compute abs coordinates" = IC_PINTYPE_PULSE_IN, "on convert" = IC_PINTYPE_PULSE_OUT) spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH -/obj/item/integrated_circuit/converter/abs_to_rel_coords/do_work() +/obj/item/integrated_circuit/converter/adv_rel_to_abs_coords/do_work() var/turf/T = get_turf(src) if(!T) diff --git a/code/modules/integrated_electronics/subtypes/manipulation.dm b/code/modules/integrated_electronics/subtypes/manipulation.dm index fd4e6abfc5..eac16d2950 100644 --- a/code/modules/integrated_electronics/subtypes/manipulation.dm +++ b/code/modules/integrated_electronics/subtypes/manipulation.dm @@ -78,7 +78,7 @@ for(var/i in 1 to length(harvest_output)) harvest_output[i] = WEAKREF(harvest_output[i]) - if(harvest_output.len) + if(length(harvest_output)) set_pin_data(IC_OUTPUT, 1, harvest_output) push_data() if(1) @@ -162,7 +162,7 @@ /obj/item/integrated_circuit/manipulation/grabber/do_work() var/obj/item/AM = get_pin_data_as_type(IC_INPUT, 1, /obj/item) - if(!QDELETED(AM) && !istype(AM, /obj/item/electronic_assembly) && !istype(AM, /obj/item/transfer_valve) && !istype(AM, /obj/item/twohanded) && !istype(assembly.loc, /obj/item/implant/storage)) + if(!QDELETED(AM) && !istype(AM, /obj/item/electronic_assembly) && !istype(AM, /obj/item/transfer_valve) && !istype(assembly.loc, /obj/item/implant/storage) && !AM.GetComponent(/datum/component/two_handed)) var/mode = get_pin_data(IC_INPUT, 2) switch(mode) if(1) @@ -300,7 +300,7 @@ var/target_y_rel = round(get_pin_data(IC_INPUT, 2)) var/obj/item/A = get_pin_data_as_type(IC_INPUT, 3, /obj/item) - if(!A || A.anchored || A.throwing || A == assembly || istype(A, /obj/item/twohanded) || istype(A, /obj/item/transfer_valve)) + if(!A || A.anchored || A.throwing || A == assembly || istype(A, /obj/item/transfer_valve) || A.GetComponent(/datum/component/two_handed)) return if (istype(assembly.loc, /obj/item/implant/storage)) //Prevents the more abusive form of chestgun. diff --git a/code/modules/integrated_electronics/subtypes/weaponized.dm b/code/modules/integrated_electronics/subtypes/weaponized.dm index 2f6a2cd841..950525ab7f 100644 --- a/code/modules/integrated_electronics/subtypes/weaponized.dm +++ b/code/modules/integrated_electronics/subtypes/weaponized.dm @@ -81,7 +81,7 @@ to_chat(user, "There's no weapon to remove from the mechanism.") /obj/item/integrated_circuit/weaponized/weapon_firing/do_work() - if(!assembly || !installed_gun) + if(!assembly || !installed_gun || !installed_gun.can_shoot()) return if(isliving(assembly.loc)) var/mob/living/L = assembly.loc @@ -246,7 +246,7 @@ var/obj/item/A = get_pin_data_as_type(IC_INPUT, 3, /obj/item) var/obj/item/integrated_circuit/atmospherics/AT = get_pin_data_as_type(IC_INPUT, 4, /obj/item/integrated_circuit/atmospherics) - if(!A || A.anchored || A.throwing || A == assembly || istype(A, /obj/item/twohanded) || istype(A, /obj/item/transfer_valve)) + if(!A || A.anchored || A.throwing || A == assembly || istype(A, /obj/item/transfer_valve) || A.GetComponent(/datum/component/two_handed)) return var/obj/item/I = get_object() @@ -296,6 +296,7 @@ var/x_abs = clamp(T.x + target_x_rel, 0, world.maxx) var/y_abs = clamp(T.y + target_y_rel, 0, world.maxy) var/range = round(clamp(sqrt(target_x_rel*target_x_rel+target_y_rel*target_y_rel),0,8),1) + playsound(src, 'sound/weapons/sonic_jackhammer.ogg', 50, 1) assembly.visible_message("\The [assembly] has thrown [A]!") log_attack("[assembly] [REF(assembly)] has thrown [A] with lethal force.") A.forceMove(drop_location()) diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index 8539ed071d..c700d668c5 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -69,10 +69,8 @@ // How much threat this job is worth in dynamic. Is subtracted if the player's not an antag, added if they are. var/threat = 0 - /// Starting skill levels. - var/list/starting_skills - /// Skill affinities to set - var/list/skill_affinities + /// Starting skill modifiers. + var/list/starting_modifiers //Only override this proc //H is usually a human unless an /equip override transformed it @@ -180,15 +178,10 @@ to_chat(M, "Prefix your message with :h to speak on your department's radio. To see other prefixes, look closely at your headset.") /datum/job/proc/standard_assign_skills(datum/mind/M) - if(!starting_skills) + if(!starting_modifiers) return - for(var/skill in starting_skills) - M.skill_holder.boost_skill_value_to(skill, starting_skills[skill], TRUE) //silent - // do wipe affinities though - M.skill_holder.skill_affinities = list() - for(var/skill in skill_affinities) - M.skill_holder.skill_affinities[skill] = skill_affinities[skill] - UNSETEMPTY(M.skill_holder.skill_affinities) //if we didn't set any. + for(var/mod in starting_modifiers) + ADD_SINGLETON_SKILL_MODIFIER(M, mod, null) /datum/outfit/job name = "Standard Gear" diff --git a/code/modules/jobs/job_types/ai.dm b/code/modules/jobs/job_types/ai.dm index 1395b90b39..a7401791ab 100644 --- a/code/modules/jobs/job_types/ai.dm +++ b/code/modules/jobs/job_types/ai.dm @@ -17,7 +17,7 @@ var/do_special_check = TRUE threat = 5 - starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_BASIC)) + starting_modifiers = list(/datum/skill_modifier/job/level/wiring/basic) /datum/job/ai/equip(mob/living/carbon/human/H, visualsOnly, announce, latejoin, datum/outfit/outfit_override, client/preference_source = null) if(visualsOnly) diff --git a/code/modules/jobs/job_types/assistant.dm b/code/modules/jobs/job_types/assistant.dm index 91b3a3f581..b8fc963989 100644 --- a/code/modules/jobs/job_types/assistant.dm +++ b/code/modules/jobs/job_types/assistant.dm @@ -35,12 +35,9 @@ Assistant ..() var/suited = !preference_source || preference_source.prefs.jumpsuit_style == PREF_SUIT if (CONFIG_GET(flag/grey_assistants)) - if(suited) - uniform = /obj/item/clothing/under/color/grey - else - uniform = /obj/item/clothing/under/color/jumpskirt/grey + uniform = suited ? /obj/item/clothing/under/color/grey : /obj/item/clothing/under/color/jumpskirt/grey else - if(suited) - uniform = /obj/item/clothing/under/color/random + if(SSevents.holidays && SSevents.holidays[PRIDE_MONTH]) + uniform = suited ? /obj/item/clothing/under/color/rainbow : /obj/item/clothing/under/color/jumpskirt/rainbow else - uniform = /obj/item/clothing/under/color/jumpskirt/random + uniform = suited ? /obj/item/clothing/under/color/random : /obj/item/clothing/under/color/jumpskirt/random diff --git a/code/modules/jobs/job_types/atmospheric_technician.dm b/code/modules/jobs/job_types/atmospheric_technician.dm index 768aff0927..1962b8e8a9 100644 --- a/code/modules/jobs/job_types/atmospheric_technician.dm +++ b/code/modules/jobs/job_types/atmospheric_technician.dm @@ -20,8 +20,7 @@ paycheck = PAYCHECK_MEDIUM paycheck_department = ACCOUNT_ENG - starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_BASIC)) - skill_affinities = list(/datum/skill/level/job/wiring = STARTING_SKILL_AFFINITY_WIRING_ENGI_ROBO) + starting_modifiers = list(/datum/skill_modifier/job/level/wiring/basic, /datum/skill_modifier/job/affinity/wiring) display_order = JOB_DISPLAY_ORDER_ATMOSPHERIC_TECHNICIAN threat = 0.5 diff --git a/code/modules/jobs/job_types/chemist.dm b/code/modules/jobs/job_types/chemist.dm index a477ff3da3..b2699071e3 100644 --- a/code/modules/jobs/job_types/chemist.dm +++ b/code/modules/jobs/job_types/chemist.dm @@ -21,8 +21,7 @@ display_order = JOB_DISPLAY_ORDER_CHEMIST threat = 1.5 - starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL) - skill_affinities = list(/datum/skill/numerical/surgery = STARTING_SKILL_AFFINITY_SURGERY_MEDICAL) + starting_modifiers = list(/datum/skill_modifier/job/surgery, /datum/skill_modifier/job/affinity/surgery) /datum/outfit/job/chemist name = "Chemist" diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm index eee0c3437f..d8df767a9f 100644 --- a/code/modules/jobs/job_types/chief_engineer.dm +++ b/code/modules/jobs/job_types/chief_engineer.dm @@ -29,8 +29,7 @@ paycheck = PAYCHECK_COMMAND paycheck_department = ACCOUNT_ENG - starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_TRAINED)) - skill_affinities = list(/datum/skill/level/job/wiring = STARTING_SKILL_AFFINITY_WIRING_ENGI_ROBO) + starting_modifiers = list(/datum/skill_modifier/job/level/wiring, /datum/skill_modifier/job/affinity/wiring) display_order = JOB_DISPLAY_ORDER_CHIEF_ENGINEER blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/paraplegic, /datum/quirk/insanity) diff --git a/code/modules/jobs/job_types/chief_medical_officer.dm b/code/modules/jobs/job_types/chief_medical_officer.dm index 89bb4ed96b..adee2856fa 100644 --- a/code/modules/jobs/job_types/chief_medical_officer.dm +++ b/code/modules/jobs/job_types/chief_medical_officer.dm @@ -31,8 +31,7 @@ blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity) threat = 2 - starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL) - skill_affinities = list(/datum/skill/numerical/surgery = STARTING_SKILL_AFFINITY_SURGERY_MEDICAL) + starting_modifiers = list(/datum/skill_modifier/job/surgery, /datum/skill_modifier/job/affinity/surgery) /datum/outfit/job/cmo name = "Chief Medical Officer" diff --git a/code/modules/jobs/job_types/cyborg.dm b/code/modules/jobs/job_types/cyborg.dm index d88d888aec..4f74542b2a 100644 --- a/code/modules/jobs/job_types/cyborg.dm +++ b/code/modules/jobs/job_types/cyborg.dm @@ -12,7 +12,7 @@ exp_requirements = 120 exp_type = EXP_TYPE_CREW - starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_BASIC)) + starting_modifiers = list(/datum/skill_modifier/job/level/wiring/basic) display_order = JOB_DISPLAY_ORDER_CYBORG diff --git a/code/modules/jobs/job_types/geneticist.dm b/code/modules/jobs/job_types/geneticist.dm index 21ba9f0f9b..a40ca0fca3 100644 --- a/code/modules/jobs/job_types/geneticist.dm +++ b/code/modules/jobs/job_types/geneticist.dm @@ -21,7 +21,7 @@ display_order = JOB_DISPLAY_ORDER_GENETICIST threat = 1.5 - starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL) + starting_modifiers = list(/datum/skill_modifier/job/surgery, /datum/skill_modifier/job/affinity/surgery) /datum/outfit/job/geneticist name = "Geneticist" diff --git a/code/modules/jobs/job_types/medical_doctor.dm b/code/modules/jobs/job_types/medical_doctor.dm index bff83df973..5ec4b83b2f 100644 --- a/code/modules/jobs/job_types/medical_doctor.dm +++ b/code/modules/jobs/job_types/medical_doctor.dm @@ -19,8 +19,7 @@ display_order = JOB_DISPLAY_ORDER_MEDICAL_DOCTOR threat = 0.5 - starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL) - skill_affinities = list(/datum/skill/numerical/surgery = STARTING_SKILL_AFFINITY_SURGERY_MEDICAL) + starting_modifiers = list(/datum/skill_modifier/job/surgery, /datum/skill_modifier/job/affinity/surgery) /datum/outfit/job/doctor name = "Medical Doctor" diff --git a/code/modules/jobs/job_types/paramedic.dm b/code/modules/jobs/job_types/paramedic.dm index c253574268..9bdfdfe279 100644 --- a/code/modules/jobs/job_types/paramedic.dm +++ b/code/modules/jobs/job_types/paramedic.dm @@ -21,8 +21,7 @@ threat = 0.5 - starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL) - skill_affinities = list(/datum/skill/numerical/surgery = STARTING_SKILL_AFFINITY_SURGERY_MEDICAL) + starting_modifiers = list(/datum/skill_modifier/job/surgery, /datum/skill_modifier/job/affinity/surgery) /datum/outfit/job/paramedic name = "Paramedic" diff --git a/code/modules/jobs/job_types/roboticist.dm b/code/modules/jobs/job_types/roboticist.dm index b4801ce6df..f5ae93bb6a 100644 --- a/code/modules/jobs/job_types/roboticist.dm +++ b/code/modules/jobs/job_types/roboticist.dm @@ -18,9 +18,7 @@ paycheck = PAYCHECK_MEDIUM paycheck_department = ACCOUNT_SCI - starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_TRAINED)) - skill_affinities = list(/datum/skill/level/job/wiring = STARTING_SKILL_AFFINITY_WIRING_ENGI_ROBO) - + starting_modifiers = list(/datum/skill_modifier/job/level/wiring, /datum/skill_modifier/job/affinity/wiring) display_order = JOB_DISPLAY_ORDER_ROBOTICIST threat = 1 diff --git a/code/modules/jobs/job_types/shaft_miner.dm b/code/modules/jobs/job_types/shaft_miner.dm index a09c4376fb..ebf7ba0f1f 100644 --- a/code/modules/jobs/job_types/shaft_miner.dm +++ b/code/modules/jobs/job_types/shaft_miner.dm @@ -16,7 +16,7 @@ access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MAILSORTING, ACCESS_MINERAL_STOREROOM) - paycheck = PAYCHECK_HARD + paycheck = PAYCHECK_EASY ///Not necessarily easy itself, but it can be trivial to make lot of cash on this job. paycheck_department = ACCOUNT_CAR display_order = JOB_DISPLAY_ORDER_SHAFT_MINER diff --git a/code/modules/jobs/job_types/station_engineer.dm b/code/modules/jobs/job_types/station_engineer.dm index f5b8c7cd4e..d3f5db7dbb 100644 --- a/code/modules/jobs/job_types/station_engineer.dm +++ b/code/modules/jobs/job_types/station_engineer.dm @@ -20,8 +20,7 @@ paycheck = PAYCHECK_MEDIUM paycheck_department = ACCOUNT_ENG - starting_skills = list(/datum/skill/level/job/wiring = GET_STANDARD_LVL(JOB_SKILL_TRAINED)) - skill_affinities = list(/datum/skill/level/job/wiring = STARTING_SKILL_AFFINITY_WIRING_ENGI_ROBO) + starting_modifiers = list(/datum/skill_modifier/job/level/wiring, /datum/skill_modifier/job/affinity/wiring) display_order = JOB_DISPLAY_ORDER_STATION_ENGINEER diff --git a/code/modules/jobs/job_types/virologist.dm b/code/modules/jobs/job_types/virologist.dm index 37a21dd3ac..790e828931 100644 --- a/code/modules/jobs/job_types/virologist.dm +++ b/code/modules/jobs/job_types/virologist.dm @@ -22,8 +22,7 @@ threat = 1.5 - starting_skills = list(/datum/skill/numerical/surgery = STARTING_SKILL_SURGERY_MEDICAL) - skill_affinities = list(/datum/skill/numerical/surgery = STARTING_SKILL_AFFINITY_SURGERY_MEDICAL) + starting_modifiers = list(/datum/skill_modifier/job/surgery, /datum/skill_modifier/job/affinity/surgery) /datum/outfit/job/virologist name = "Virologist" diff --git a/code/modules/keybindings/bindings_admin.dm b/code/modules/keybindings/bindings_admin.dm deleted file mode 100644 index ca232adbe0..0000000000 --- a/code/modules/keybindings/bindings_admin.dm +++ /dev/null @@ -1,24 +0,0 @@ -/datum/admins/key_down(_key, client/user) - switch(_key) - if("F3") - user.get_admin_say() - return - if("F5") - user.admin_ghost() - return - if("F6") - player_panel_new() - return - if("F7") - user.togglebuildmodeself() - return - if("F8") - if(user.keys_held["Ctrl"]) - user.stealth() - else - user.invisimin() - return - if("F10") - user.get_dead_say() - return - ..() diff --git a/code/modules/keybindings/bindings_atom.dm b/code/modules/keybindings/bindings_atom.dm index 5f3e879237..47d6b16feb 100644 --- a/code/modules/keybindings/bindings_atom.dm +++ b/code/modules/keybindings/bindings_atom.dm @@ -5,7 +5,7 @@ if(!user.keys_held["Ctrl"]) var/movement_dir = NONE for(var/_key in user.keys_held) - movement_dir = movement_dir | SSinput.movement_keys[_key] + movement_dir = movement_dir | user.movement_keys[_key] if(user.next_move_dir_add) movement_dir |= user.next_move_dir_add if(user.next_move_dir_sub) diff --git a/code/modules/keybindings/bindings_carbon.dm b/code/modules/keybindings/bindings_carbon.dm deleted file mode 100644 index e344bc9d20..0000000000 --- a/code/modules/keybindings/bindings_carbon.dm +++ /dev/null @@ -1,9 +0,0 @@ -/mob/living/carbon/key_down(_key, client/user) - switch(_key) - if("R", "Southwest") // Southwest is End - toggle_throw_mode() - return - if("C") - user_toggle_intentional_combat_mode() - return - return ..() \ No newline at end of file diff --git a/code/modules/keybindings/bindings_client.dm b/code/modules/keybindings/bindings_client.dm index 6030362a61..3a47cd2315 100644 --- a/code/modules/keybindings/bindings_client.dm +++ b/code/modules/keybindings/bindings_client.dm @@ -33,55 +33,79 @@ to_chat(src, "Invalid KeyDown detected! You have been disconnected from the server automatically.") log_admin("Client [ckey] just attempted to send an invalid keypress. Keymessage was over [MAX_KEYPRESS_COMMANDLENGTH] characters, autokicking due to likely abuse.") message_admins("Client [ckey] just attempted to send an invalid keypress. Keymessage was over [MAX_KEYPRESS_COMMANDLENGTH] characters, autokicking due to likely abuse.") - QDEL_IN(src, 1) + qdel(src) + return + + if(_key == "Tab") + ForceAllKeysUp() //groan, more hacky kevcode return if(length(keys_held) > MAX_HELD_KEYS) keys_held.Cut(1,2) keys_held[_key] = TRUE - var/movement = SSinput.movement_keys[_key] + var/movement = movement_keys[_key] if(!(next_move_dir_sub & movement) && !keys_held["Ctrl"]) next_move_dir_add |= movement // Client-level keybindings are ones anyone should be able to do at any time // Things like taking screenshots, hitting tab, and adminhelps. - + var/AltMod = keys_held["Alt"] ? "Alt" : "" + var/CtrlMod = keys_held["Ctrl"] ? "Ctrl" : "" + var/ShiftMod = keys_held["Shift"] ? "Shift" : "" + var/full_key switch(_key) - if("F1") - if(keys_held["Ctrl"] && keys_held["Shift"]) // Is this command ever used? - winset(src, null, "command=.options") - else - get_adminhelp() - return - if("F2") // Screenshot. Hold shift to choose a name and location to save in - winset(src, null, "command=.screenshot [!keys_held["shift"] ? "auto" : ""]") - return - if("F12") // Toggles minimal HUD - mob.button_pressed_F12() - return + if("Alt", "Ctrl", "Shift") + full_key = "[AltMod][CtrlMod][ShiftMod]" + else + full_key = "[AltMod][CtrlMod][ShiftMod][_key]" + var/keycount = 0 + if(prefs.modless_key_bindings[_key]) + var/datum/keybinding/kb = GLOB.keybindings_by_name[prefs.modless_key_bindings[_key]] + if(kb.can_use(src)) + kb.down(src) + keycount++ + for(var/kb_name in prefs.key_bindings[full_key]) + keycount++ + var/datum/keybinding/kb = GLOB.keybindings_by_name[kb_name] + if(kb.can_use(src) && kb.down(src) && keycount >= MAX_COMMANDS_PER_KEY) + break - if(holder) - holder.key_down(_key, src) - if(mob.focus) - mob.focus.key_down(_key, src) + holder?.key_down(_key, src) + mob.focus?.key_down(_key, src) + +/// Keyup's all keys held down. +/client/proc/ForceAllKeysUp() + // simulate a user releasing all keys except for the mod keys. groan. i hate this. thanks, byond. why aren't keyups able to be forced to fire on macro change aoaoaoao. + // groan + for(var/key in keys_held) // all of these won't be the 3 mod keys. + if((key == "Ctrl") || (key == "Alt") || (key == "Shift")) + continue + keyUp("[key]") /client/verb/keyUp(_key as text) set instant = TRUE set hidden = TRUE keys_held -= _key - var/movement = SSinput.movement_keys[_key] + var/movement = movement_keys[_key] if(!(next_move_dir_add & movement)) next_move_dir_sub |= movement - if(holder) - holder.key_up(_key, src) - if(mob.focus) - mob.focus.key_up(_key, src) + if(prefs.modless_key_bindings[_key]) + var/datum/keybinding/kb = GLOB.keybindings_by_name[prefs.modless_key_bindings[_key]] + if(kb.can_use(src)) + kb.up(src) + + // We don't do full key for release, because for mod keys you + // can hold different keys and releasing any should be handled by the key binding specifically + for (var/kb_name in prefs.key_bindings[_key]) + var/datum/keybinding/kb = GLOB.keybindings_by_name[kb_name] + if(kb.can_use(src) && kb.up(src)) + break + holder?.key_up(_key, src) + mob.focus?.key_up(_key, src) // Called every game tick /client/keyLoop() - if(holder) - holder.keyLoop(src) - if(mob.focus) - mob.focus.keyLoop(src) \ No newline at end of file + holder?.keyLoop(src) + mob.focus?.keyLoop(src) diff --git a/code/modules/keybindings/bindings_human.dm b/code/modules/keybindings/bindings_human.dm deleted file mode 100644 index 9569de338c..0000000000 --- a/code/modules/keybindings/bindings_human.dm +++ /dev/null @@ -1,80 +0,0 @@ -/mob/living/carbon/human/key_down(_key, client/user) - if(client.keys_held["Shift"]) - switch(_key) - if("E") // Put held thing in belt or take out most recent thing from belt - var/obj/item/thing = get_active_held_item() - var/obj/item/storage/equipped_belt = get_item_by_slot(SLOT_BELT) - if(!equipped_belt) // We also let you equip a belt like this - if(!thing) - to_chat(user, "You have no belt to take something out of.") - return - equip_to_slot_if_possible(thing, SLOT_BELT) - return - if(!istype(equipped_belt)) // not a storage item - if(!thing) - to_chat(user, "You have no belt to take something out of.") - else - to_chat(user, "You can't fit anything in.") - return - if(thing) // put thing in belt - if(!SEND_SIGNAL(equipped_belt, COMSIG_TRY_STORAGE_INSERT, thing, user.mob)) - to_chat(user, "You can't fit anything in.") - return - if(!equipped_belt.contents.len) // nothing to take out - to_chat(user, "There's nothing in your belt to take out.") - return - var/obj/item/stored = equipped_belt.contents[equipped_belt.contents.len] - if(!stored || stored.on_found(src)) - return - stored.attack_hand(src) // take out thing from belt - return - - if("B") // Put held thing in backpack or take out most recent thing from backpack - var/obj/item/thing = get_active_held_item() - var/obj/item/storage/equipped_backpack = get_item_by_slot(SLOT_BACK) - if(!equipped_backpack) // We also let you equip a backpack like this - if(!thing) - to_chat(user, "You have no backpack to take something out of.") - return - equip_to_slot_if_possible(thing, SLOT_BACK) - return - if(!istype(equipped_backpack)) // not a storage item - if(!thing) - to_chat(user, "You have no backpack to take something out of.") - else - to_chat(user, "You can't fit anything in.") - return - if(thing) // put thing in backpack - if(!SEND_SIGNAL(equipped_backpack, COMSIG_TRY_STORAGE_INSERT, thing, user.mob)) - to_chat(user, "You can't fit anything in.") - return - if(!equipped_backpack.contents.len) // nothing to take out - to_chat(user, "There's nothing in your backpack to take out.") - return - var/obj/item/stored = equipped_backpack.contents[equipped_backpack.contents.len] - if(!stored || stored.on_found(src)) - return - stored.attack_hand(src) // take out thing from backpack - return - switch(_key) - if("Shift") - if(!user.prefs.sprint_spacebar) - user.prefs.sprint_toggle ? default_toggle_sprint() : sprint_hotkey(TRUE) //Yes, this looks hacky. Yes, this works. - return - if("Space") - if(user.prefs.sprint_spacebar) - user.prefs.sprint_toggle ? default_toggle_sprint() : sprint_hotkey(TRUE) - return - return ..() - -/mob/living/carbon/human/key_up(_key, client/user) - switch(_key) - if("Shift") - if(!user.prefs.sprint_spacebar && !user.prefs.sprint_toggle) - sprint_hotkey(FALSE) - return - if("Space") - if(user.prefs.sprint_spacebar && !user.prefs.sprint_toggle) - sprint_hotkey(FALSE) - return - return ..() diff --git a/code/modules/keybindings/bindings_living.dm b/code/modules/keybindings/bindings_living.dm deleted file mode 100644 index ec6c5dd539..0000000000 --- a/code/modules/keybindings/bindings_living.dm +++ /dev/null @@ -1,27 +0,0 @@ -/mob/living/key_down(_key, client/user) - switch(_key) - if("B") - resist() - return - if("1") - if(possible_a_intents) - a_intent_change(INTENT_HELP) - return - if("2") - if(possible_a_intents) - a_intent_change(INTENT_DISARM) - return - if("3") - if(possible_a_intents) - a_intent_change(INTENT_GRAB) - return - if("4") - if(possible_a_intents) - a_intent_change(INTENT_HARM) - return - if ("V") - lay_down() - return - - - return ..() \ No newline at end of file diff --git a/code/modules/keybindings/bindings_mob.dm b/code/modules/keybindings/bindings_mob.dm deleted file mode 100644 index 36b4775c34..0000000000 --- a/code/modules/keybindings/bindings_mob.dm +++ /dev/null @@ -1,94 +0,0 @@ -// Technically the client argument is unncessary here since that SHOULD be src.client but let's not assume things -// All it takes is one badmin setting their focus to someone else's client to mess things up -// Or we can have NPC's send actual keypresses and detect that by seeing no client - -/mob/key_down(_key, client/user) - switch(_key) - if("Delete", "H") - if(!pulling) - to_chat(src, "You are not pulling anything.") - else - stop_pulling() - return - if("Insert", "G") - a_intent_change(INTENT_HOTKEY_RIGHT) - return - if("F") - a_intent_change(INTENT_HOTKEY_LEFT) - return - if("X", "Northeast") // Northeast is Page-up - swap_hand() - return - if("Y", "Z", "Southeast") // Southeast is Page-down - mode() // attack_self(). No idea who came up with "mode()" - return - if("Q", "Northwest") // Northwest is Home - var/obj/item/I = get_active_held_item() - if(!I) - to_chat(src, "You have nothing to drop in your hand!") - else - dropItemToGround(I) - return - if("E") - quick_equip() - return - if("Alt") - toggle_move_intent() - return - //Bodypart selections - if("Numpad8") - user.body_toggle_head() - return - if("Numpad4") - user.body_r_arm() - return - if("Numpad5") - user.body_chest() - return - if("Numpad6") - user.body_l_arm() - return - if("Numpad1") - user.body_r_leg() - return - if("Numpad2") - user.body_groin() - return - if("Numpad3") - user.body_l_leg() - return - - if(client.keys_held["Ctrl"]) - switch(SSinput.movement_keys[_key]) - if(NORTH) - if(client.keys_held["Shift"]) - northshift() - else - northface() - return - if(SOUTH) - if(client.keys_held["Shift"]) - southshift() - else - southface() - return - if(WEST) - if(client.keys_held["Shift"]) - westshift() - else - westface() - return - if(EAST) - if(client.keys_held["Shift"]) - eastshift() - else - eastface() - return - return ..() - -/mob/key_up(_key, client/user) - switch(_key) - if("Alt") - toggle_move_intent() - return - return ..() diff --git a/code/modules/keybindings/bindings_robot.dm b/code/modules/keybindings/bindings_robot.dm deleted file mode 100644 index 29fb36fa65..0000000000 --- a/code/modules/keybindings/bindings_robot.dm +++ /dev/null @@ -1,22 +0,0 @@ -/mob/living/silicon/robot/key_down(_key, client/user) - switch(_key) - if("1", "2", "3") - toggle_module(text2num(_key)) - return - if("4") - a_intent_change(INTENT_HOTKEY_LEFT) - return - if("Q") - uneq_active() - return - if("Shift") - sprint_hotkey(TRUE) - return - return ..() - -/mob/living/silicon/robot/key_up(_key, client/user) - switch(_key) - if("Shift") - sprint_hotkey(FALSE) - return - return ..() diff --git a/code/modules/keybindings/focus.dm b/code/modules/keybindings/focus.dm index 205b293e9a..d542b49267 100644 --- a/code/modules/keybindings/focus.dm +++ b/code/modules/keybindings/focus.dm @@ -1,6 +1,3 @@ -/mob - var/datum/focus //What receives our keyboard inputs. src by default - /mob/proc/set_focus(datum/new_focus) if(focus == new_focus) return diff --git a/code/modules/keybindings/keybind/__defines.dm b/code/modules/keybindings/keybind/__defines.dm new file mode 100644 index 0000000000..93d033eea5 --- /dev/null +++ b/code/modules/keybindings/keybind/__defines.dm @@ -0,0 +1,21 @@ +#define CATEGORY_CLIENT "CLIENT" +#define CATEGORY_EMOTE "EMOTE" +#define CATEGORY_ADMIN "ADMIN" +#define CATEGORY_XENO "XENO" +#define CATEGORY_CARBON "CARBON" +#define CATEGORY_HUMAN "HUMAN" +#define CATEGORY_ROBOT "ROBOT" +#define CATEGORY_MISC "MISC" +#define CATEGORY_MOVEMENT "MOVEMENT" +#define CATEGORY_TARGETING "TARGETING" +#define CATEGORY_COMBAT "COMBAT" + +#define WEIGHT_HIGHEST 0 +#define WEIGHT_ADMIN 10 +#define WEIGHT_CLIENT 20 +#define WEIGHT_ROBOT 30 +#define WEIGHT_MOB 40 +#define WEIGHT_LIVING 50 +#define WEIGHT_DEAD 60 +#define WEIGHT_EMOTE 70 +#define WEIGHT_LOWEST 999 diff --git a/code/modules/keybindings/keybind/_keybind.dm b/code/modules/keybindings/keybind/_keybind.dm new file mode 100644 index 0000000000..1d68e2d037 --- /dev/null +++ b/code/modules/keybindings/keybind/_keybind.dm @@ -0,0 +1,24 @@ +/datum/keybinding + var/list/hotkey_keys + var/list/classic_keys + var/name + var/full_name + var/description = "" + var/category = CATEGORY_MISC + var/weight = WEIGHT_LOWEST + var/keybind_signal + +/datum/keybinding/New() + + // Default keys to the master "hotkey_keys" + if(LAZYLEN(hotkey_keys) && !LAZYLEN(classic_keys)) + classic_keys = hotkey_keys.Copy() + +/datum/keybinding/proc/down(client/user) + return FALSE + +/datum/keybinding/proc/up(client/user) + return FALSE + +/datum/keybinding/proc/can_use(client/user) + return TRUE diff --git a/code/modules/keybindings/keybind/admin.dm b/code/modules/keybindings/keybind/admin.dm new file mode 100644 index 0000000000..b63221e97a --- /dev/null +++ b/code/modules/keybindings/keybind/admin.dm @@ -0,0 +1,96 @@ +/datum/keybinding/admin + category = CATEGORY_ADMIN + weight = WEIGHT_ADMIN + +/datum/keybinding/admin/can_use(client/user) + return user.holder ? TRUE : FALSE + +/datum/keybinding/admin/admin_say + hotkey_keys = list("F3") + name = "admin_say" + full_name = "Admin say" + description = "Talk with other admins." + +/datum/keybinding/admin/admin_say/down(client/user) + user.get_admin_say() + return TRUE + +/datum/keybinding/admin/admin_ghost + hotkey_keys = list("F5") + name = "admin_ghost" + full_name = "Aghost" + description = "Go ghost" + +/datum/keybinding/admin/admin_ghost/down(client/user) + user.admin_ghost() + return TRUE + +/datum/keybinding/admin/player_panel_new + hotkey_keys = list("F6") + name = "player_panel_new" + full_name = "Player Panel New" + description = "Opens up the new player panel" + +/datum/keybinding/admin/player_panel_new/down(client/user) + user.holder.player_panel_new() + return TRUE + +/datum/keybinding/admin/toggle_buildmode_self + hotkey_keys = list("F7") + name = "toggle_buildmode_self" + full_name = "Toggle Buildmode Self" + description = "Toggles buildmode" + +/datum/keybinding/admin/toggle_buildmode_self/down(client/user) + user.togglebuildmodeself() + return TRUE + +/datum/keybinding/admin/stealthmode + hotkey_keys = list("CtrlF8") + name = "stealth_mode" + full_name = "Stealth mode" + description = "Enters stealth mode" + +/datum/keybinding/admin/stealthmode/down(client/user) + user.stealth() + return TRUE + +/datum/keybinding/admin/invisimin + hotkey_keys = list("F8") + name = "invisimin" + full_name = "Admin invisibility" + description = "Toggles ghost-like invisibility (Don't abuse this)" + +/datum/keybinding/admin/invisimin/down(client/user) + user.invisimin() + return TRUE + +/datum/keybinding/admin/deadsay + hotkey_keys = list("F10") + name = "dsay" + full_name = "deadsay" + description = "Allows you to send a message to dead chat" + +/datum/keybinding/admin/deadsay/down(client/user) + user.get_dead_say() + return TRUE + +/datum/keybinding/admin/deadmin + hotkey_keys = list("Unbound") + name = "deadmin" + full_name = "Deadmin" + description = "Shed your admin powers" + +/datum/keybinding/admin/deadmin/down(client/user) + user.deadmin() + return TRUE + +/datum/keybinding/admin/readmin + hotkey_keys = list("Unbound") + name = "readmin" + full_name = "Readmin" + description = "Regain your admin powers" + +/datum/keybinding/admin/readmin/down(client/user) + user.readmin() + return TRUE diff --git a/code/modules/keybindings/keybind/carbon.dm b/code/modules/keybindings/keybind/carbon.dm new file mode 100644 index 0000000000..46cb5cd0ac --- /dev/null +++ b/code/modules/keybindings/keybind/carbon.dm @@ -0,0 +1,62 @@ +/datum/keybinding/carbon + category = CATEGORY_CARBON + weight = WEIGHT_MOB + +/datum/keybinding/carbon/can_use(client/user) + return iscarbon(user.mob) + +/datum/keybinding/carbon/toggle_throw_mode + hotkey_keys = list("R", "Southwest") // END + name = "toggle_throw_mode" + full_name = "Toggle throw mode" + description = "Toggle throwing the current item or not." + category = CATEGORY_CARBON + +/datum/keybinding/carbon/toggle_throw_mode/down(client/user) + var/mob/living/carbon/C = user.mob + C.toggle_throw_mode() + return TRUE + +/datum/keybinding/carbon/select_help_intent + hotkey_keys = list("1") + name = "select_help_intent" + full_name = "Select help intent" + description = "" + category = CATEGORY_CARBON + +/datum/keybinding/carbon/select_help_intent/down(client/user) + user.mob?.a_intent_change(INTENT_HELP) + return TRUE + +/datum/keybinding/carbon/select_disarm_intent + hotkey_keys = list("2") + name = "select_disarm_intent" + full_name = "Select disarm intent" + description = "" + category = CATEGORY_CARBON + +/datum/keybinding/carbon/select_disarm_intent/down(client/user) + user.mob?.a_intent_change(INTENT_DISARM) + return TRUE + +/datum/keybinding/carbon/select_grab_intent + hotkey_keys = list("3") + name = "select_grab_intent" + full_name = "Select grab intent" + description = "" + category = CATEGORY_CARBON + +/datum/keybinding/carbon/select_grab_intent/down(client/user) + user.mob?.a_intent_change(INTENT_GRAB) + return TRUE + +/datum/keybinding/carbon/select_harm_intent + hotkey_keys = list("4") + name = "select_harm_intent" + full_name = "Select harm intent" + description = "" + category = CATEGORY_CARBON + +/datum/keybinding/carbon/select_harm_intent/down(client/user) + user.mob?.a_intent_change(INTENT_HARM) + return TRUE diff --git a/code/modules/keybindings/keybind/client.dm b/code/modules/keybindings/keybind/client.dm new file mode 100644 index 0000000000..1d44efa063 --- /dev/null +++ b/code/modules/keybindings/keybind/client.dm @@ -0,0 +1,33 @@ +/datum/keybinding/client + category = CATEGORY_CLIENT + weight = WEIGHT_HIGHEST + +/datum/keybinding/client/admin_help + hotkey_keys = list("F1") + name = "admin_help" + full_name = "Admin Help" + description = "Ask an admin for help." + +/datum/keybinding/client/admin_help/down(client/user) + user.get_adminhelp() + return TRUE + +/datum/keybinding/client/screenshot + hotkey_keys = list("F2") + name = "screenshot" + full_name = "Screenshot" + description = "Take a screenshot." + +/datum/keybinding/client/screenshot/down(client/user) + winset(user, null, "command=.screenshot [!user.keys_held["shift"] ? "auto" : ""]") + return TRUE + +/datum/keybinding/client/minimal_hud + hotkey_keys = list("F12") + name = "minimal_hud" + full_name = "Minimal HUD" + description = "Hide most HUD features" + +/datum/keybinding/client/minimal_hud/down(client/user) + user.mob.button_pressed_F12() + return TRUE diff --git a/code/modules/keybindings/keybind/combat.dm b/code/modules/keybindings/keybind/combat.dm new file mode 100644 index 0000000000..8a0e713d8f --- /dev/null +++ b/code/modules/keybindings/keybind/combat.dm @@ -0,0 +1,49 @@ +/datum/keybinding/living/toggle_combat_mode + hotkey_keys = list("C") + name = "toggle_combat_mode" + full_name = "Toggle combat mode" + category = CATEGORY_COMBAT + description = "Toggles whether or not you're in combat mode." + +/datum/keybinding/living/toggle_combat_mode/down(client/user) + SEND_SIGNAL(user.mob, COMSIG_TOGGLE_COMBAT_MODE) + return TRUE + +/datum/keybinding/living/active_block + hotkey_keys = list("Northwest", "F") // HOME + name = "active_block" + full_name = "Block (Hold)" + category = CATEGORY_COMBAT + description = "Hold down to actively block with your currently in-hand object." + +/datum/keybinding/living/active_block/down(client/user) + var/mob/living/L = user.mob + L.keybind_start_active_blocking() + return TRUE + +/datum/keybinding/living/active_block/up(client/user) + var/mob/living/L = user.mob + L.keybind_stop_active_blocking() + +/datum/keybinding/living/active_block_toggle + name = "active_block_toggle" + full_name = "Block (Toggle)" + category = CATEGORY_COMBAT + description = "Toggles active blocking system using currenet in hand object, or any found object if applicable." + +/datum/keybinding/living/active_block_toggle/down(client/user) + var/mob/living/L = user.mob + L.keybind_toggle_active_blocking() + return TRUE + +/datum/keybinding/living/active_parry + hotkey_keys = list("Insert", "G") + name = "active_parry" + full_name = "Parry" + category = CATEGORY_COMBAT + description = "Press to initiate a parry sequence with your currently in-hand object." + +/datum/keybinding/living/active_parry/down(client/user) + var/mob/living/L = user.mob + L.keybind_parry() + return TRUE diff --git a/code/modules/keybindings/keybind/emote.dm b/code/modules/keybindings/keybind/emote.dm new file mode 100644 index 0000000000..6099826819 --- /dev/null +++ b/code/modules/keybindings/keybind/emote.dm @@ -0,0 +1,15 @@ +/datum/keybinding/emote + category = CATEGORY_EMOTE + weight = WEIGHT_EMOTE + var/emote_key + +/datum/keybinding/emote/proc/link_to_emote(datum/emote/faketype) + hotkey_keys = list("Unbound") + emote_key = initial(faketype.key) + name = initial(faketype.key) + full_name = capitalize(initial(faketype.key)) + description = "Do the emote '*[emote_key]'" + +/datum/keybinding/emote/down(client/user) + . = ..() + return user.mob.emote(emote_key, intentional=TRUE) diff --git a/code/modules/keybindings/keybind/human.dm b/code/modules/keybindings/keybind/human.dm new file mode 100644 index 0000000000..43f5653472 --- /dev/null +++ b/code/modules/keybindings/keybind/human.dm @@ -0,0 +1,39 @@ +/datum/keybinding/human + category = CATEGORY_HUMAN + weight = WEIGHT_MOB + +/datum/keybinding/human/can_use(client/user) + return ishuman(user.mob) + +/datum/keybinding/human/quick_equip + hotkey_keys = list("E") + name = "quick_equip" + full_name = "Quick Equip" + description = "Quickly puts an item in the best slot available" + +/datum/keybinding/human/quick_equip/down(client/user) + var/mob/living/carbon/human/H = user.mob + H.quick_equip() + return TRUE + +/datum/keybinding/human/quick_equipbelt + hotkey_keys = list("ShiftE") + name = "quick_equipbelt" + full_name = "Quick equip belt" + description = "Put held thing in belt or take out most recent thing from belt" + +/datum/keybinding/human/quick_equipbelt/down(client/user) + var/mob/living/carbon/human/H = user.mob + H.smart_equipbelt() + return TRUE + +/datum/keybinding/human/bag_equip + hotkey_keys = list("ShiftB") + name = "bag_equip" + full_name = "Bag equip" + description = "Put held thing in backpack or take out most recent thing from backpack" + +/datum/keybinding/human/bag_equip/down(client/user) + var/mob/living/carbon/human/H = user.mob + H.smart_equipbag() + return TRUE diff --git a/code/modules/keybindings/keybind/living.dm b/code/modules/keybindings/keybind/living.dm new file mode 100644 index 0000000000..b5921b378a --- /dev/null +++ b/code/modules/keybindings/keybind/living.dm @@ -0,0 +1,27 @@ +/datum/keybinding/living + category = CATEGORY_HUMAN + weight = WEIGHT_MOB + +/datum/keybinding/living/can_use(client/user) + return isliving(user.mob) + +/datum/keybinding/living/resist + hotkey_keys = list("B") + name = "resist" + full_name = "Resist" + description = "Break free of your current state. Handcuffed? on fire? Resist!" + +/datum/keybinding/living/resist/down(client/user) + var/mob/living/L = user.mob + L.resist() + return TRUE + +/datum/keybinding/living/toggle_resting + hotkey_keys = list("V") + name = "toggle_resting" + full_name = "Toggle Resting" + description = "Toggles whether or not you are intentionally laying down." + +/datum/keybinding/living/toggle_resting/down(client/user) + var/mob/living/L = user.mob + L.lay_down() diff --git a/code/modules/keybindings/keybind/mob.dm b/code/modules/keybindings/keybind/mob.dm new file mode 100644 index 0000000000..2ce4dc35a0 --- /dev/null +++ b/code/modules/keybindings/keybind/mob.dm @@ -0,0 +1,123 @@ +/datum/keybinding/mob + category = CATEGORY_HUMAN + weight = WEIGHT_MOB + +/datum/keybinding/mob/stop_pulling + hotkey_keys = list("H", "Delete") + name = "stop_pulling" + full_name = "Stop pulling" + description = "" + +/datum/keybinding/mob/stop_pulling/down(client/user) + var/mob/M = user.mob + if(!M.pulling) + to_chat(user, "You are not pulling anything.") + else + M.stop_pulling() + return TRUE + +/datum/keybinding/mob/cycle_intent_right + hotkey_keys = list("Unbound") + name = "cycle_intent_right" + full_name = "Cycle Action Intent Right" + description = "" + +/datum/keybinding/mob/cycle_intent_right/down(client/user) + var/mob/M = user.mob + M.a_intent_change(INTENT_HOTKEY_RIGHT) + return TRUE + +/datum/keybinding/mob/cycle_intent_left + hotkey_keys = list("Unbound") + name = "cycle_intent_left" + full_name = "Cycle Action Intent Left" + description = "" + +/datum/keybinding/mob/cycle_intent_left/down(client/user) + var/mob/M = user.mob + M.a_intent_change(INTENT_HOTKEY_LEFT) + return TRUE + +/datum/keybinding/mob/swap_hands + hotkey_keys = list("X", "Northeast") // PAGEUP + name = "swap_hands" + full_name = "Swap hands" + description = "" + +/datum/keybinding/mob/swap_hands/down(client/user) + var/mob/M = user.mob + M.swap_hand() + return TRUE + +/datum/keybinding/mob/activate_inhand + hotkey_keys = list("Z", "Southeast") // PAGEDOWN + name = "activate_inhand" + full_name = "Activate in-hand" + description = "Uses whatever item you have inhand" + +/datum/keybinding/mob/activate_inhand/down(client/user) + var/mob/M = user.mob + M.mode() + return TRUE + +/datum/keybinding/mob/drop_item + hotkey_keys = list("Q") + name = "drop_item" + full_name = "Drop Item" + description = "" + +/datum/keybinding/mob/drop_item/down(client/user) + if(iscyborg(user.mob)) //cyborgs can't drop items + return FALSE + var/mob/M = user.mob + var/obj/item/I = M.get_active_held_item() + if(!I) + to_chat(user, "You have nothing to drop in your hand!") + else + user.mob.dropItemToGround(I) + return TRUE + +/datum/keybinding/mob/say_with_indicator + hotkey_keys = list("CtrlT") + classic_keys = list() + name = "say_with_indicator" + full_name = "Say with Typing Indicator" + +/datum/keybinding/mob/say_with_indicator/down(client/user) + var/mob/M = user.mob + M.say_typing_indicator() + return TRUE + +/datum/keybinding/mob/me_with_indicator + hotkey_keys = list("CtrlM") + classic_keys = list() + name = "me_with_indicator" + full_name = "Me (emote) with Typing Indicator" + +/datum/keybinding/mob/me_with_indicator/down(client/user) + var/mob/M = user.mob + M.me_typing_indicator() + return TRUE + +/datum/keybinding/living/subtle + hotkey_keys = list("5") + classic_keys = list() + name = "subtle_emote" + full_name = "Subtle Emote" + +/datum/keybinding/living/subtle/down(client/user) + var/mob/living/L = user.mob + L.subtle_keybind() + return TRUE + +/datum/keybinding/mob/whisper + hotkey_keys = list("Y") + classic_keys = list() + name = "whisper" + full_name = "Whisper" + +/datum/keybinding/mob/whisper/down(client/user) + var/mob/M = user.mob + M.whisper_keybind() + return TRUE + diff --git a/code/modules/keybindings/keybind/movement.dm b/code/modules/keybindings/keybind/movement.dm new file mode 100644 index 0000000000..176e6b9fb8 --- /dev/null +++ b/code/modules/keybindings/keybind/movement.dm @@ -0,0 +1,187 @@ +/datum/keybinding/movement + category = CATEGORY_MOVEMENT + weight = WEIGHT_HIGHEST + +/datum/keybinding/movement/north + hotkey_keys = list("W", "North") + name = "North" + full_name = "Move North" + description = "Moves your character north" + +/datum/keybinding/movement/south + hotkey_keys = list("S", "South") + name = "South" + full_name = "Move South" + description = "Moves your character south" + +/datum/keybinding/movement/west + hotkey_keys = list("A", "West") + name = "West" + full_name = "Move West" + description = "Moves your character left" + +/datum/keybinding/movement/east + hotkey_keys = list("D", "East") + name = "East" + full_name = "Move East" + description = "Moves your character east" + +/datum/keybinding/mob/face_north + hotkey_keys = list("CtrlW", "CtrlNorth") + name = "face_north" + full_name = "Face North" + description = "" + category = CATEGORY_MOVEMENT + +/datum/keybinding/mob/face_north/down(client/user) + var/mob/M = user.mob + M.northface() + return TRUE + +/datum/keybinding/mob/face_east + hotkey_keys = list("CtrlD", "CtrlEast") + name = "face_east" + full_name = "Face East" + description = "" + category = CATEGORY_MOVEMENT + +/datum/keybinding/mob/face_east/down(client/user) + var/mob/M = user.mob + M.eastface() + return TRUE + +/datum/keybinding/mob/face_south + hotkey_keys = list("CtrlS", "CtrlSouth") + name = "face_south" + full_name = "Face South" + description = "" + category = CATEGORY_MOVEMENT + +/datum/keybinding/mob/face_south/down(client/user) + var/mob/M = user.mob + M.southface() + return TRUE + +/datum/keybinding/mob/face_west + hotkey_keys = list("CtrlA", "CtrlWest") + name = "face_west" + full_name = "Face West" + description = "" + category = CATEGORY_MOVEMENT + +/datum/keybinding/mob/face_west/down(client/user) + var/mob/M = user.mob + M.westface() + return TRUE + +/datum/keybinding/mob/shift_north + hotkey_keys = list("CtrlShiftW", "CtrlShiftNorth") + name = "pixel_shift_north" + full_name = "Pixel Shift North" + description = "" + category = CATEGORY_MOVEMENT + +/datum/keybinding/mob/shift_north/down(client/user) + var/mob/M = user.mob + M.northshift() + return TRUE + +/datum/keybinding/mob/shift_east + hotkey_keys = list("CtrlShiftD", "CtrlShiftEast") + name = "pixel_shift_east" + full_name = "Pixel Shift East" + description = "" + category = CATEGORY_MOVEMENT + +/datum/keybinding/mob/shift_east/down(client/user) + var/mob/M = user.mob + M.eastshift() + return TRUE + +/datum/keybinding/mob/shift_south + hotkey_keys = list("CtrlShiftS", "CtrlShiftSouth") + name = "pixel_shift_south" + full_name = "Pixel Shift South" + description = "" + category = CATEGORY_MOVEMENT + +/datum/keybinding/mob/shift_south/down(client/user) + var/mob/M = user.mob + M.southshift() + return TRUE + +/datum/keybinding/mob/shift_west + hotkey_keys = list("CtrlShiftA", "CtrlShiftWest") + name = "pixel_shift_west" + full_name = "Pixel Shift West" + description = "" + category = CATEGORY_MOVEMENT + +/datum/keybinding/mob/shift_west/down(client/user) + var/mob/M = user.mob + M.westshift() + return TRUE + +/datum/keybinding/living/hold_sprint + hotkey_keys = list("Shift") + name = "hold_sprint" + full_name = "Sprint (hold down)" + description = "Hold down to sprint" + category = CATEGORY_MOVEMENT + +/datum/keybinding/living/hold_sprint/can_use(client/user) + return ishuman(user.mob) || iscyborg(user.mob) + +/datum/keybinding/living/hold_sprint/down(client/user) + var/mob/living/L = user.mob + L.sprint_hotkey(TRUE) + return TRUE + +/datum/keybinding/living/hold_sprint/up(client/user) + var/mob/living/L = user.mob + L.sprint_hotkey(FALSE) + return TRUE + +/datum/keybinding/living/toggle_sprint + hotkey_keys = list() + name = "toggle_sprint" + full_name = "Sprint (toggle)" + description = "Press to toggle sprint" + category = CATEGORY_MOVEMENT + +/datum/keybinding/living/toggle_sprint/can_use(client/user) + return ishuman(user.mob) || iscyborg(user.mob) + +/datum/keybinding/living/toggle_sprint/down(client/user) + var/mob/living/L = user.mob + L.default_toggle_sprint(TRUE) + return TRUE + +/datum/keybinding/mob/toggle_move_intent + hotkey_keys = list("Alt") + name = "toggle_move_intent" + full_name = "Hold to toggle move intent" + description = "Held down to cycle to the other move intent, release to cycle back" + category = CATEGORY_MOVEMENT + +/datum/keybinding/mob/toggle_move_intent/down(client/user) + var/mob/M = user.mob + M.toggle_move_intent() + return TRUE + +/datum/keybinding/mob/toggle_move_intent/up(client/user) + var/mob/M = user.mob + M.toggle_move_intent() + return TRUE + +/datum/keybinding/mob/toggle_move_intent_alternative + hotkey_keys = list("Unbound") + name = "toggle_move_intent_alt" + full_name = "press to cycle move intent" + description = "Pressing this cycle to the opposite move intent, does not cycle back" + category = CATEGORY_MOVEMENT + +/datum/keybinding/mob/toggle_move_intent_alternative/down(client/user) + var/mob/M = user.mob + M.toggle_move_intent() + return TRUE diff --git a/code/modules/keybindings/keybind/robot.dm b/code/modules/keybindings/keybind/robot.dm new file mode 100644 index 0000000000..b9f6ce83eb --- /dev/null +++ b/code/modules/keybindings/keybind/robot.dm @@ -0,0 +1,61 @@ +/datum/keybinding/robot + category = CATEGORY_ROBOT + weight = WEIGHT_ROBOT + +/datum/keybinding/robot/can_use(client/user) + return iscyborg(user.mob) + +/datum/keybinding/robot/moduleone + hotkey_keys = list("1") + name = "module_one" + full_name = "Toggle module 1" + description = "Equips or unequips the first module" + +/datum/keybinding/robot/moduleone/down(client/user) + var/mob/living/silicon/robot/R = user.mob + R.toggle_module(1) + return TRUE + +/datum/keybinding/robot/moduletwo + hotkey_keys = list("2") + name = "module_two" + full_name = "Toggle module 2" + description = "Equips or unequips the second module" + +/datum/keybinding/robot/moduletwo/down(client/user) + var/mob/living/silicon/robot/R = user.mob + R.toggle_module(2) + return TRUE + +/datum/keybinding/robot/modulethree + hotkey_keys = list("3") + name = "module_three" + full_name = "Toggle module 3" + description = "Equips or unequips the third module" + +/datum/keybinding/robot/modulethree/down(client/user) + var/mob/living/silicon/robot/R = user.mob + R.toggle_module(3) + return TRUE + +/datum/keybinding/robot/intent_cycle + hotkey_keys = list("4") + name = "cycle_intent" + full_name = "Cycle intent left" + description = "Cycles the intent left" + +/datum/keybinding/robot/intent_cycle/down(client/user) + var/mob/living/silicon/robot/R = user.mob + R.a_intent_change(INTENT_HOTKEY_LEFT) + return TRUE + +/datum/keybinding/robot/unequip_module + hotkey_keys = list("Q") + name = "unequip_module" + full_name = "Unequip module" + description = "Unequips the active module" + +/datum/keybinding/robot/unequip_module/down(client/user) + var/mob/living/silicon/robot/R = user.mob + R.uneq_active() + return TRUE diff --git a/code/modules/keybindings/keybind/targeting.dm b/code/modules/keybindings/keybind/targeting.dm new file mode 100644 index 0000000000..1548d768cf --- /dev/null +++ b/code/modules/keybindings/keybind/targeting.dm @@ -0,0 +1,76 @@ +/datum/keybinding/mob/target_head_cycle + hotkey_keys = list("Numpad8") + name = "target_head_cycle" + full_name = "Target: Cycle head" + description = "" + category = CATEGORY_TARGETING + +/datum/keybinding/mob/target_head_cycle/down(client/user) + user.body_toggle_head() + return TRUE + +/datum/keybinding/mob/target_r_arm + hotkey_keys = list("Numpad4") + name = "target_r_arm" + full_name = "Target: right arm" + description = "" + category = CATEGORY_TARGETING + +/datum/keybinding/mob/target_r_arm/down(client/user) + user.body_r_arm() + return TRUE + +/datum/keybinding/mob/target_body_chest + hotkey_keys = list("Numpad5") + name = "target_body_chest" + full_name = "Target: Body" + description = "" + category = CATEGORY_TARGETING + +/datum/keybinding/mob/target_body_chest/down(client/user) + user.body_chest() + return TRUE + +/datum/keybinding/mob/target_left_arm + hotkey_keys = list("Numpad6") + name = "target_left_arm" + full_name = "Target: left arm" + description = "" + category = CATEGORY_TARGETING + +/datum/keybinding/mob/target_left_arm/down(client/user) + user.body_l_arm() + return TRUE + +/datum/keybinding/mob/target_right_leg + hotkey_keys = list("Numpad1") + name = "target_right_leg" + full_name = "Target: Right leg" + description = "" + category = CATEGORY_TARGETING + +/datum/keybinding/mob/target_right_leg/down(client/user) + user.body_r_leg() + return TRUE + +/datum/keybinding/mob/target_body_groin + hotkey_keys = list("Numpad2") + name = "target_body_groin" + full_name = "Target: Groin" + description = "" + category = CATEGORY_TARGETING + +/datum/keybinding/mob/target_body_groin/down(client/user) + user.body_groin() + return TRUE + +/datum/keybinding/mob/target_left_leg + hotkey_keys = list("Numpad3") + name = "target_left_leg" + full_name = "Target: left leg" + description = "" + category = CATEGORY_TARGETING + +/datum/keybinding/mob/target_left_leg/down(client/user) + user.body_l_leg() + return TRUE diff --git a/code/modules/keybindings/setup.dm b/code/modules/keybindings/setup.dm index 9a13bfb11c..a53820b5d2 100644 --- a/code/modules/keybindings/setup.dm +++ b/code/modules/keybindings/setup.dm @@ -1,55 +1,47 @@ -/client - /// Keys currently held - var/list/keys_held = list() - /// These next two vars are to apply movement for keypresses and releases made while move delayed. - /// Because discarding that input makes the game less responsive. - /// On next move, add this dir to the move that would otherwise be done - var/next_move_dir_add - /// On next move, subtract this dir from the move that would otherwise be done - var/next_move_dir_sub - -// Set a client's focus to an object and override these procs on that object to let it handle keypresses - /datum/proc/key_down(key, client/user) // Called when a key is pressed down initially return + /datum/proc/key_up(key, client/user) // Called when a key is released return + /datum/proc/keyLoop(client/user) // Called once every frame set waitfor = FALSE return // removes all the existing macros /client/proc/erase_all_macros() - var/list/macro_sets = params2list(winget(src, null, "macros")) var/erase_output = "" - for(var/i in 1 to macro_sets.len) - var/setname = macro_sets[i] - var/list/macro_set = params2list(winget(src, "[setname].*", "command")) // The third arg doesnt matter here as we're just removing them all - for(var/k in 1 to macro_set.len) - var/list/split_name = splittext(macro_set[k], ".") - var/macro_name = "[split_name[1]].[split_name[2]]" // [3] is "command" - erase_output = "[erase_output];[macro_name].parent=null" + var/list/macro_set = params2list(winget(src, "default.*", "command")) // The third arg doesnt matter here as we're just removing them all + for(var/k in 1 to length(macro_set)) + var/list/split_name = splittext(macro_set[k], ".") + var/macro_name = "[split_name[1]].[split_name[2]]" // [3] is "command" + erase_output = "[erase_output];[macro_name].parent=null" winset(src, null, erase_output) -/client/proc/set_macros() +/client/proc/apply_macro_set(name, list/macroset) + ASSERT(name) + ASSERT(islist(macroset)) + winclone(src, "default", name) + for(var/i in 1 to length(macroset)) + var/key = macroset[i] + var/command = macroset[key] + winset(src, "[name]-[REF(key)]", "parent=[name];name=[key];command=[command]") + +/client/proc/set_macros(datum/preferences/prefs_override = prefs) set waitfor = FALSE keys_held.Cut() erase_all_macros() - var/list/macro_sets = SSinput.macro_sets - for(var/i in 1 to macro_sets.len) - var/setname = macro_sets[i] - if(setname != "default") - winclone(src, "default", setname) - var/list/macro_set = macro_sets[setname] - for(var/k in 1 to macro_set.len) - var/key = macro_set[k] - var/command = macro_set[key] - winset(src, "[setname]-[REF(key)]", "parent=[setname];name=[key];command=[command]") + apply_macro_set(SKIN_MACROSET_HOTKEYS, SSinput.macroset_hotkey) + apply_macro_set(SKIN_MACROSET_CLASSIC_HOTKEYS, SSinput.macroset_classic_hotkey) + apply_macro_set(SKIN_MACROSET_CLASSIC_INPUT, SSinput.macroset_classic_input) - if(prefs.hotkeys) - winset(src, null, "input.focus=true input.background-color=[COLOR_INPUT_ENABLED] mainwindow.macro=default") + set_hotkeys_preference() + +/client/proc/set_hotkeys_preference(datum/preferences/prefs_override = prefs) + if(prefs_override.hotkeys) + winset(src, null, "map.focus=true input.background-color=[COLOR_INPUT_DISABLED] mainwindow.macro=[SKIN_MACROSET_HOTKEYS]") else - winset(src, null, "input.focus=true input.background-color=[COLOR_INPUT_ENABLED] mainwindow.macro=old_default") + winset(src, null, "input.focus=true input.background-color=[COLOR_INPUT_ENABLED] mainwindow.macro=[SKIN_MACROSET_CLASSIC_INPUT]") diff --git a/code/modules/lighting/emissive_blocker.dm b/code/modules/lighting/emissive_blocker.dm index b69a474009..04c1bb7302 100644 --- a/code/modules/lighting/emissive_blocker.dm +++ b/code/modules/lighting/emissive_blocker.dm @@ -11,6 +11,7 @@ plane = EMISSIVE_BLOCKER_PLANE layer = EMISSIVE_BLOCKER_LAYER mouse_opacity = MOUSE_OPACITY_TRANSPARENT + rad_flags = RAD_NO_CONTAMINATE | RAD_PROTECT_CONTENTS //Why? //render_targets copy the transform of the target as well, but vis_contents also applies the transform //to what's in it. Applying RESET_TRANSFORM here makes vis_contents not apply the transform. diff --git a/code/modules/lighting/lighting_corner.dm b/code/modules/lighting/lighting_corner.dm index d4530acd04..c6e363be07 100644 --- a/code/modules/lighting/lighting_corner.dm +++ b/code/modules/lighting/lighting_corner.dm @@ -2,11 +2,11 @@ // 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. -GLOBAL_LIST_INIT(LIGHTING_CORNER_DIAGONAL, list(NORTHEAST, SOUTHEAST, SOUTHWEST, NORTHWEST)) - /datum/lighting_corner - var/list/turf/masters + var/turf/northeast + var/turf/northwest + var/turf/southeast + var/turf/southwest var/list/datum/light_source/affecting // Light sources affecting us. var/active = FALSE // TRUE if one of our masters has dynamic lighting. @@ -25,10 +25,18 @@ GLOBAL_LIST_INIT(LIGHTING_CORNER_DIAGONAL, list(NORTHEAST, SOUTHEAST, SOUTHWEST, var/cache_b = LIGHTING_SOFT_THRESHOLD var/cache_mx = 0 -/datum/lighting_corner/New(var/turf/new_turf, var/diagonal) +// Diagonal is our direction FROM them, not to. +/datum/lighting_corner/New(turf/new_turf, diagonal) . = ..() - masters = list() - masters[new_turf] = turn(diagonal, 180) + +#define SET_DIAGONAL(turf, diagonal) \ + switch(diagonal){ \ + if(SOUTHWEST) { northeast = turf; turf.lc_bottomleft = src; } \ + if(SOUTHEAST) { northwest = turf; turf.lc_bottomright = src; } \ + if(NORTHEAST) { southwest = turf; turf.lc_topright = src; } \ + if(NORTHWEST) { southeast = turf; turf.lc_topleft = src; } \ + } + SET_DIAGONAL(new_turf, diagonal) 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. @@ -37,52 +45,28 @@ GLOBAL_LIST_INIT(LIGHTING_CORNER_DIAGONAL, list(NORTHEAST, SOUTHEAST, SOUTHWEST, 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. + // Build diagonal one 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 = GLOB.LIGHTING_CORNER_DIAGONAL.Find(turn(diagonal, 180)) - T.corners[i] = src - - // Now the horizontal one. + if(T) + SET_DIAGONAL(T, turn(diagonal, 180)) + // Build horizontal 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 = GLOB.LIGHTING_CORNER_DIAGONAL.Find(turn(masters[T], 180)) - T.corners[i] = src - - // And finally the vertical one. + if(T) + SET_DIAGONAL(T, turn(((T.x > x) ? EAST : WEST) | ((T.y > y) ? NORTH : SOUTH), 180)) + // Build vertical 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 = GLOB.LIGHTING_CORNER_DIAGONAL.Find(turn(masters[T], 180)) - T.corners[i] = src + if(T) + SET_DIAGONAL(T, turn(((T.x > x) ? EAST : WEST) | ((T.y > y) ? NORTH : SOUTH), 180)) update_active() +#undef SET_DIAGONAL + /datum/lighting_corner/proc/update_active() active = FALSE - var/turf/T - var/thing - for (thing in masters) - T = thing - if (T.lighting_object) - active = TRUE + if(northeast?.lighting_object || northwest?.lighting_object || southeast?.lighting_object || southwest?.lighting_object) + 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) @@ -122,13 +106,12 @@ GLOBAL_LIST_INIT(LIGHTING_CORNER_DIAGONAL, list(NORTHEAST, SOUTHEAST, SOUTHWEST, #endif cache_mx = round(mx, LIGHTING_ROUND_VALUE) - for (var/TT in masters) - var/turf/T = TT - if (T.lighting_object) - if (!T.lighting_object.needs_update) - T.lighting_object.needs_update = TRUE - GLOB.lighting_update_objects += T.lighting_object - + #define QUEUE(turf) if(turf?.lighting_object && !turf.lighting_object.needs_update) { turf.lighting_object.needs_update = TRUE; GLOB.lighting_update_objects += turf.lighting_object } + QUEUE(northeast) + QUEUE(northwest) + QUEUE(southeast) + QUEUE(southwest) + #undef QUEUE /datum/lighting_corner/dummy/New() return diff --git a/code/modules/lighting/lighting_object.dm b/code/modules/lighting/lighting_object.dm index 9ceb341f91..ffa2d86e15 100644 --- a/code/modules/lighting/lighting_object.dm +++ b/code/modules/lighting/lighting_object.dm @@ -55,7 +55,7 @@ if (loc) var/turf/oldturf = get_turf(myturf) var/turf/newturf = get_turf(loc) - warning("A lighting object realised it's loc had changed in update() ([myturf]\[[myturf ? myturf.type : "null"]]([COORD(oldturf)]) -> [loc]\[[ loc ? loc.type : "null"]]([COORD(newturf)]))!") + stack_trace("A lighting object realised it's loc had changed in update() ([myturf]\[[myturf ? myturf.type : "null"]]([COORD(oldturf)]) -> [loc]\[[ loc ? loc.type : "null"]]([COORD(newturf)]))!") qdel(src, TRUE) return @@ -71,16 +71,10 @@ // See LIGHTING_CORNER_DIAGONAL in lighting_corner.dm for why these values are what they are. var/static/datum/lighting_corner/dummy/dummy_lighting_corner = new - var/list/corners = myturf.corners - var/datum/lighting_corner/cr = dummy_lighting_corner - var/datum/lighting_corner/cg = dummy_lighting_corner - var/datum/lighting_corner/cb = dummy_lighting_corner - var/datum/lighting_corner/ca = dummy_lighting_corner - if (corners) //done this way for speed - cr = corners[3] || dummy_lighting_corner - cg = corners[2] || dummy_lighting_corner - cb = corners[4] || dummy_lighting_corner - ca = corners[1] || dummy_lighting_corner + var/datum/lighting_corner/cr = myturf.lc_bottomleft || dummy_lighting_corner + var/datum/lighting_corner/cg = myturf.lc_bottomright || dummy_lighting_corner + var/datum/lighting_corner/cb = myturf.lc_topleft || dummy_lighting_corner + var/datum/lighting_corner/ca = myturf.lc_topright || dummy_lighting_corner var/max = max(cr.cache_mx, cg.cache_mx, cb.cache_mx, ca.cache_mx) diff --git a/code/modules/lighting/lighting_source.dm b/code/modules/lighting/lighting_source.dm index 6e48d0097c..324e6c1e99 100644 --- a/code/modules/lighting/lighting_source.dm +++ b/code/modules/lighting/lighting_source.dm @@ -9,7 +9,7 @@ var/turf/pixel_turf // The turf the top_atom appears to over. 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() + var/light_color // The colour of the light, string, decomposed by PARSE_LIGHT_COLOR() // Variables for keeping track of the colour. var/lum_r @@ -48,12 +48,10 @@ light_range = source_atom.light_range light_color = source_atom.light_color - parse_light_color() + PARSE_LIGHT_COLOR(src) update() - return ..() - /datum/light_source/Destroy(force) remove_lum() if (source_atom) @@ -99,17 +97,6 @@ /datum/light_source/proc/vis_update() EFFECT_UPDATE(LIGHTING_VIS_UPDATE) -// 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. @@ -224,7 +211,7 @@ if (source_atom.light_color != light_color) light_color = source_atom.light_color - parse_light_color() + PARSE_LIGHT_COLOR(src) update = TRUE else if (applied_lum_r != lum_r || applied_lum_g != lum_g || applied_lum_b != lum_b) @@ -237,18 +224,24 @@ return //nothing's changed var/list/datum/lighting_corner/corners = list() + var/datum/lighting_corner/C var/list/turf/turfs = list() var/thing - var/datum/lighting_corner/C var/turf/T + if (source_turf) var/oldlum = source_turf.luminosity source_turf.luminosity = CEILING(light_range, 1) for(T in view(CEILING(light_range, 1), source_turf)) - for (thing in T.get_corners(source_turf)) - C = thing - corners[C] = 0 turfs += T + if((!IS_DYNAMIC_LIGHTING(T) && !T.light_sources) || T.has_opaque_atom ) + continue + if(!T.lighting_corners_initialised) + T.generate_missing_corners() + corners[T.lc_topright] = 0 + corners[T.lc_bottomright] = 0 + corners[T.lc_bottomleft] = 0 + corners[T.lc_topleft] = 0 source_turf.luminosity = oldlum LAZYINITLIST(affecting_turfs) diff --git a/code/modules/lighting/lighting_turf.dm b/code/modules/lighting/lighting_turf.dm index fdd581a292..fc9cd0336d 100644 --- a/code/modules/lighting/lighting_turf.dm +++ b/code/modules/lighting/lighting_turf.dm @@ -6,9 +6,15 @@ var/tmp/list/datum/light_source/affecting_lights // List of light sources affecting this turf. var/tmp/atom/movable/lighting_object/lighting_object // Our lighting object. - var/tmp/list/datum/lighting_corner/corners + var/tmp/datum/lighting_corner/lc_topleft + var/tmp/datum/lighting_corner/lc_topright + var/tmp/datum/lighting_corner/lc_bottomleft + var/tmp/datum/lighting_corner/lc_bottomright 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. +// counterclockwisse 0 to 360 +#define PROC_ON_CORNERS(operation) lc_topright?.##operation;lc_bottomright?.##operation;lc_bottomleft?.##operation;lc_topleft?.##operation + // Causes any affecting light sources to be queued for a visibility update, for example a door got opened. /turf/proc/reconsider_lights() var/datum/light_source/L @@ -21,13 +27,7 @@ if (lighting_object) qdel(lighting_object, TRUE) - var/datum/lighting_corner/C - var/thing - for (thing in corners) - if(!thing) - continue - C = thing - C.update_active() + PROC_ON_CORNERS(update_active()) // Builds a lighting object for us, but only if our area is dynamic. /turf/proc/lighting_build_overlay() @@ -43,32 +43,31 @@ new/atom/movable/lighting_object(src) - var/thing - var/datum/lighting_corner/C var/datum/light_source/S - for (thing in corners) - if(!thing) - continue - C = thing - if (!C.active) // We would activate the corner, calculate the lighting for it. - for (thing in C.affecting) - S = thing - S.recalc_corner(C) - C.active = TRUE + var/i +#define OPERATE(corner) \ + if(corner && !corner.active) { \ + for(i in corner.affecting) { \ + S = i ; \ + S.recalc_corner(corner) \ + } \ + corner.active = TRUE \ + } + OPERATE(lc_topright) + OPERATE(lc_bottomright) + OPERATE(lc_bottomleft) + OPERATE(lc_topleft) +#undef OPERATE // Used to get a scaled lumcount. /turf/proc/get_lumcount(var/minlum = 0, var/maxlum = 1) - if (!lighting_object) + if(!lighting_object) return 1 - var/totallums = 0 - var/thing - var/datum/lighting_corner/L - for (thing in corners) - if(!thing) - continue - L = thing - totallums += L.lum_r + L.lum_b + L.lum_g + var/totallums = (lc_topright? (lc_topright.lum_r + lc_topright.lum_g + lc_topright.lum_b) : 0) \ + + (lc_bottomright? (lc_bottomright.lum_r + lc_bottomright.lum_g + lc_bottomright.lum_b) : 0) \ + + (lc_bottomleft? (lc_bottomleft.lum_r + lc_bottomleft.lum_g + lc_bottomleft.lum_b) : 0) \ + + (lc_topleft? (lc_topleft.lum_r + lc_topleft.lum_g + lc_topleft.lum_b) : 0) totallums /= 12 // 4 corners, each with 3 channels, get the average. @@ -110,27 +109,18 @@ else lighting_clear_overlay() -/turf/proc/get_corners() - if (!IS_DYNAMIC_LIGHTING(src) && !light_sources) - return null - if (!lighting_corners_initialised) - generate_missing_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() if (!IS_DYNAMIC_LIGHTING(src) && !light_sources) return 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, GLOB.LIGHTING_CORNER_DIAGONAL[i]) - + // counterclockwise from 0 to 360. + if(!lc_topright) + new /datum/lighting_corner(src, NORTHEAST) + if(!lc_bottomright) + new /datum/lighting_corner(src, SOUTHEAST) + if(!lc_bottomleft) + new /datum/lighting_corner(src, SOUTHWEST) + if(!lc_topleft) + new /datum/lighting_corner(src, NORTHWEST) +#undef PROC_ON_CORNERS diff --git a/code/modules/mapping/mapping_helpers/network_builder/_network_builder.dm b/code/modules/mapping/mapping_helpers/network_builder/_network_builder.dm index 78a835cffa..69a75148dd 100644 --- a/code/modules/mapping/mapping_helpers/network_builder/_network_builder.dm +++ b/code/modules/mapping/mapping_helpers/network_builder/_network_builder.dm @@ -12,7 +12,6 @@ /obj/effect/mapping_helpers/network_builder/Initialize(mapload) . = ..() - to_chat(world, "DEBUG: Initializing [COORD(src)]") var/conflict = check_duplicates() if(conflict) stack_trace("WARNING: [type] network building helper found check_duplicates() conflict [conflict] in its location.!") @@ -27,7 +26,6 @@ /// How this works: On LateInitialize, detect all directions that this should be applicable to, and do what it needs to do, and then inform all network builders in said directions that it's been around since it won't be around afterwards. /obj/effect/mapping_helpers/network_builder/LateInitialize() - to_chat(world, "DEBUG: LateInitializing [COORD(src)]") scan_directions() build_network() if(!custom_spawned) diff --git a/code/modules/mapping/minimaps.dm b/code/modules/mapping/minimaps.dm index 29a9fca9b7..7a62e9ab44 100644 --- a/code/modules/mapping/minimaps.dm +++ b/code/modules/mapping/minimaps.dm @@ -1,21 +1,27 @@ /datum/minimap - var/name + var/name = "minimap" + var/icon/overlay_icon + // The map icons var/icon/map_icon var/icon/meta_icon - var/icon/overlay_icon + var/list/color_area_names = list() + var/minx var/maxx var/miny var/maxy - var/z_level - var/id = 0 - var/static/next_id = 0 -/datum/minimap/New(z, x1 = 1, y1 = 1, x2 = world.maxx, y2 = world.maxy, name) + var/z_level + var/id = "" + +/datum/minimap/New(z, x1 = 1, y1 = 1, x2 = world.maxx, y2 = world.maxy, name = "minimap") + if(!z) + CRASH("ERROR: new minimap requested without z level") //CRASH to halt the operatio + src.name = name - id = ++next_id z_level = z + id = "[md5("[z_level]" + src.name + REF(src))]" //use it's own md5 as a special identifier var/crop_x1 = x2 var/crop_x2 = x1 @@ -25,10 +31,11 @@ // do the generating map_icon = new('html/blank.png') meta_icon = new('html/blank.png') - map_icon.Scale(x2-x1+1, y2-y1+1) // arrays start at 1 - meta_icon.Scale(x2-x1+1, y2-y1+1) + map_icon.Scale(x2 - x1 + 1, y2 - y1 + 1) // arrays start at 1 + meta_icon.Scale(x2 - x1 + 1, y2 - y1 + 1) + var/list/area_to_color = list() - for(var/turf/T in block(locate(x1,y1,z),locate(x2,y2,z))) + for(var/turf/T in block(locate(x1, y1, z_level), locate(x2, y2, z_level))) var/area/A = T.loc var/img_x = T.x - x1 + 1 // arrays start at 1 var/img_y = T.y - y1 + 1 @@ -37,21 +44,26 @@ crop_x2 = max(crop_x2, T.x) crop_y1 = min(crop_y1, T.y) crop_y2 = max(crop_y2, T.y) + var/meta_color = area_to_color[A] if(!meta_color) - meta_color = rgb(rand(0,255),rand(0,255),rand(0,255)) // technically conflicts could happen but it's like very unlikely and it's not that big of a deal if one happens + meta_color = rgb(rand(0, 255), rand(0, 255), rand(0, 255)) // technically conflicts could happen but it's like very unlikely and it's not that big of a deal if one happens area_to_color[A] = meta_color color_area_names[meta_color] = A.name meta_icon.DrawBox(meta_color, img_x, img_y) + if(istype(T, /turf/closed/wall)) map_icon.DrawBox("#000000", img_x, img_y) + else if(!istype(A, /area/space)) var/color = A.minimap_color || "#FF00FF" if(locate(/obj/machinery/power/solar) in T) color = "#02026a" + if((locate(/obj/effect/spawner/structure/window) in T) || (locate(/obj/structure/grille) in T)) color = BlendRGB(color, "#000000", 0.5) map_icon.DrawBox(color, img_x, img_y) + map_icon.Crop(crop_x1, crop_y1, crop_x2, crop_y2) meta_icon.Crop(crop_x1, crop_y1, crop_x2, crop_y2) minx = crop_x1 @@ -60,14 +72,17 @@ maxy = crop_y2 overlay_icon = new(map_icon) overlay_icon.Scale(16, 16) - -/datum/minimap/proc/send(mob/user) + //we're done baking, now we ship it. register_asset("minimap-[id].png", map_icon) register_asset("minimap-[id]-meta.png", meta_icon) - send_asset_list(user, list("minimap-[id].png" = map_icon, "minimap-[id]-meta.png" = meta_icon), verify=FALSE) + +/datum/minimap/proc/send(mob/user) + if(!id) + CRASH("ERROR: send called, but the minimap id is null/missing. ID: [id]") + send_asset_list(user, list("minimap-[id].png" = map_icon, "minimap-[id]-meta.png" = meta_icon)) /datum/minimap_group - var/list/minimaps + var/list/minimaps = list() var/static/next_id = 0 var/id var/name @@ -75,46 +90,62 @@ /datum/minimap_group/New(list/maps, name) id = ++next_id src.name = name - minimaps = maps || list() + if(maps) + minimaps = maps /datum/minimap_group/proc/show(mob/user) if(!length(minimaps)) to_chat(user, "ERROR: Attempted to access an empty datum/minimap_group. This should probably not happen.") return + var/list/datas = list() var/list/info = list() - var/datum/minimap/first_map = minimaps[1] - for(var/i in 1 to length(minimaps)) + + for(var/i in 1 to length(minimaps))// OLD: for(var/i in 1 to length(minimaps)) var/datum/minimap/M = minimaps[i] M.send(user) - info += "
    " + info += {" +
    +
    + + +
    +
    +
    + "} datas += json_encode(M.color_area_names); - info = info.Join() - var/html = {" - - - - - - - -[name] - -[info] -"} + + + "} - user << browse(html, "window=minimap_[id];size=768x[round(768 / first_map.map_icon.Width() * first_map.map_icon.Height() + 50)]") + var/datum/browser/popup = new(user, "minimap_[id]", name, 500, 700) + popup.add_head_content(headerJS) //set the head + popup.set_content(info) + var/datum/minimap/MICO = minimaps[1] + popup.set_title_image(MICO.overlay_icon) + popup.open(FALSE) diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index a45275e0c8..39f8e296af 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -16,7 +16,6 @@ resistance_flags = FIRE_PROOF mutantrace_variation = STYLE_DIGITIGRADE|STYLE_SNEK_TAURIC|STYLE_PAW_TAURIC - /obj/item/clothing/head/hooded/explorer name = "explorer hood" desc = "An armoured hood for exploring harsh environments." @@ -51,7 +50,7 @@ visor_flags_inv = HIDEFACIALHAIR visor_flags_cover = MASKCOVERSMOUTH actions_types = list(/datum/action/item_action/adjust) - armor = list("melee" = 10, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 20, "acid" = 40) + armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 5, "bio" = 50, "rad" = 0, "fire" = 20, "acid" = 40) resistance_flags = FIRE_PROOF /obj/item/clothing/mask/gas/explorer/attack_self(mob/user) @@ -140,7 +139,7 @@ max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS hoodtype = /obj/item/clothing/head/hooded/explorer/seva - armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 25, "bio" = 50, "rad" = 25, "fire" = 100, "acid" = 25) + armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 35, "bio" = 50, "rad" = 25, "fire" = 100, "acid" = 25) resistance_flags = FIRE_PROOF | GOLIATH_WEAKNESS /obj/item/clothing/head/hooded/explorer/seva @@ -149,7 +148,7 @@ icon_state = "seva" item_state = "seva" max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT - armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 25, "bio" = 50, "rad" = 25, "fire" = 100, "acid" = 25) + armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 35, "bio" = 50, "rad" = 25, "fire" = 100, "acid" = 25) resistance_flags = FIRE_PROOF | GOLIATH_WEAKNESS /obj/item/clothing/mask/gas/seva diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index 1fd1b31b69..745c46b131 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -1,5 +1,5 @@ /*********************Mining Hammer****************/ -/obj/item/twohanded/kinetic_crusher +/obj/item/kinetic_crusher icon = 'icons/obj/mining.dmi' icon_state = "crusher" item_state = "crusher0" @@ -11,8 +11,6 @@ force = 0 //You can't hit stuff unless wielded w_class = WEIGHT_CLASS_BULKY slot_flags = ITEM_SLOT_BACK - force_unwielded = 0 - force_wielded = 20 throwforce = 5 throw_speed = 4 armour_penetration = 10 @@ -28,33 +26,45 @@ var/backstab_bonus = 30 var/light_on = FALSE var/brightness_on = 7 + var/wielded = FALSE // track wielded status on item -/obj/item/twohanded/kinetic_crusher/cyborg //probably give this a unique sprite later +/obj/item/kinetic_crusher/cyborg //probably give this a unique sprite later desc = "An integrated version of the standard kinetic crusher with a grinded down axe head to dissuade mis-use against crewmen. Deals damage equal to the standard crusher against creatures, however." force = 10 //wouldn't want to give a borg a 20 brute melee weapon unemagged now would we detonation_damage = 60 wielded = 1 -/obj/item/twohanded/kinetic_crusher/cyborg/unwield() - return +/obj/item/kinetic_crusher/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/on_wield) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/on_unwield) -/obj/item/twohanded/kinetic_crusher/Initialize() +/obj/item/kinetic_crusher/ComponentInitialize() . = ..() AddComponent(/datum/component/butchering, 60, 110) //technically it's huge and bulky, but this provides an incentive to use it + AddComponent(/datum/component/two_handed, force_unwielded=0, force_wielded=20) -/obj/item/twohanded/kinetic_crusher/Destroy() +/obj/item/kinetic_crusher/Destroy() QDEL_LIST(trophies) return ..() -/obj/item/twohanded/kinetic_crusher/examine(mob/living/user) +/// triggered on wield of two handed item +/obj/item/kinetic_crusher/proc/on_wield(obj/item/source, mob/user) + wielded = TRUE + +/// triggered on unwield of two handed item +/obj/item/kinetic_crusher/proc/on_unwield(obj/item/source, mob/user) + wielded = FALSE + +/obj/item/kinetic_crusher/examine(mob/living/user) . = ..() - . += "Mark a large creature with the destabilizing force, then hit them in melee to do [force_wielded + detonation_damage] damage." - . += "Does [force_wielded + detonation_damage + backstab_bonus] damage if the target is backstabbed, instead of [force_wielded + detonation_damage]." + . += "Mark a large creature with the destabilizing force, then hit them in melee to do [force + detonation_damage] damage." + . += "Does [force + detonation_damage + backstab_bonus] damage if the target is backstabbed, instead of [force + detonation_damage]." for(var/t in trophies) var/obj/item/crusher_trophy/T = t . += "It has \a [T] attached, which causes [T.effect_desc()]." -/obj/item/twohanded/kinetic_crusher/attackby(obj/item/I, mob/living/user) +/obj/item/kinetic_crusher/attackby(obj/item/I, mob/living/user) if(istype(I, /obj/item/crowbar)) if(LAZYLEN(trophies)) to_chat(user, "You remove [src]'s trophies.") @@ -70,7 +80,7 @@ else return ..() -/obj/item/twohanded/kinetic_crusher/attack(mob/living/target, mob/living/carbon/user) +/obj/item/kinetic_crusher/attack(mob/living/target, mob/living/carbon/user) if(!wielded) to_chat(user, "[src] is too heavy to use with one hand.") return @@ -84,7 +94,7 @@ if(!QDELETED(C) && !QDELETED(target)) C.total_damage += target_health - target.health //we did some damage, but let's not assume how much we did -/obj/item/twohanded/kinetic_crusher/afterattack(atom/target, mob/living/user, proximity_flag, clickparams) +/obj/item/kinetic_crusher/afterattack(atom/target, mob/living/user, proximity_flag, clickparams) . = ..() if(istype(target, /obj/item/crusher_trophy)) var/obj/item/crusher_trophy/T = target @@ -137,28 +147,28 @@ if(user && lavaland_equipment_pressure_check(get_turf(user))) //CIT CHANGE - makes sure below only happens in low pressure environments user.adjustStaminaLoss(-30)//CIT CHANGE - makes crushers heal stamina -/obj/item/twohanded/kinetic_crusher/proc/Recharge() +/obj/item/kinetic_crusher/proc/Recharge() if(!charged) charged = TRUE update_icon() playsound(src.loc, 'sound/weapons/kenetic_reload.ogg', 60, 1) -/obj/item/twohanded/kinetic_crusher/ui_action_click(mob/user, actiontype) +/obj/item/kinetic_crusher/ui_action_click(mob/user, actiontype) light_on = !light_on playsound(user, 'sound/weapons/empty.ogg', 100, TRUE) update_brightness(user) update_icon() -/obj/item/twohanded/kinetic_crusher/proc/update_brightness(mob/user = null) +/obj/item/kinetic_crusher/proc/update_brightness(mob/user = null) if(light_on) set_light(brightness_on) else set_light(0) -/obj/item/twohanded/kinetic_crusher/update_icon_state() - item_state = "crusher[wielded]" +/obj/item/kinetic_crusher/update_icon_state() + item_state = "crusher[wielded]" // this is not icon_state and not supported by 2hcomponent -/obj/item/twohanded/kinetic_crusher/update_overlays() +/obj/item/kinetic_crusher/update_overlays() . = ..() if(!charged) . += "[icon_state]_uncharged" @@ -175,7 +185,7 @@ flag = "bomb" range = 6 log_override = TRUE - var/obj/item/twohanded/kinetic_crusher/hammer_synced + var/obj/item/kinetic_crusher/hammer_synced /obj/item/projectile/destabilizer/Destroy() hammer_synced = null @@ -214,12 +224,12 @@ return "errors" /obj/item/crusher_trophy/attackby(obj/item/A, mob/living/user) - if(istype(A, /obj/item/twohanded/kinetic_crusher)) + if(istype(A, /obj/item/kinetic_crusher)) add_to(A, user) else ..() -/obj/item/crusher_trophy/proc/add_to(obj/item/twohanded/kinetic_crusher/H, mob/living/user) +/obj/item/crusher_trophy/proc/add_to(obj/item/kinetic_crusher/H, mob/living/user) for(var/t in H.trophies) var/obj/item/crusher_trophy/T = t if(istype(T, denied_type) || istype(src, T.denied_type)) @@ -231,7 +241,7 @@ to_chat(user, "You attach [src] to [H].") return TRUE -/obj/item/crusher_trophy/proc/remove_from(obj/item/twohanded/kinetic_crusher/H, mob/living/user) +/obj/item/crusher_trophy/proc/remove_from(obj/item/kinetic_crusher/H, mob/living/user) forceMove(get_turf(H)) H.trophies -= src return TRUE @@ -318,12 +328,12 @@ /obj/item/crusher_trophy/legion_skull/effect_desc() return "a kinetic crusher to recharge [bonus_value*0.1] second\s faster" -/obj/item/crusher_trophy/legion_skull/add_to(obj/item/twohanded/kinetic_crusher/H, mob/living/user) +/obj/item/crusher_trophy/legion_skull/add_to(obj/item/kinetic_crusher/H, mob/living/user) . = ..() if(.) H.charge_time -= bonus_value -/obj/item/crusher_trophy/legion_skull/remove_from(obj/item/twohanded/kinetic_crusher/H, mob/living/user) +/obj/item/crusher_trophy/legion_skull/remove_from(obj/item/kinetic_crusher/H, mob/living/user) . = ..() if(.) H.charge_time += bonus_value @@ -376,21 +386,19 @@ /obj/item/crusher_trophy/demon_claws/effect_desc() return "melee hits to do [bonus_value * 0.2] more damage and heal you for [bonus_value * 0.1], with 5X effect on mark detonation" -/obj/item/crusher_trophy/demon_claws/add_to(obj/item/twohanded/kinetic_crusher/H, mob/living/user) +/obj/item/crusher_trophy/demon_claws/add_to(obj/item/kinetic_crusher/H, mob/living/user) . = ..() if(.) H.force += bonus_value * 0.2 - H.force_unwielded += bonus_value * 0.2 - H.force_wielded += bonus_value * 0.2 H.detonation_damage += bonus_value * 0.8 + AddComponent(/datum/component/two_handed, force_wielded=(20 + bonus_value * 0.2)) -/obj/item/crusher_trophy/demon_claws/remove_from(obj/item/twohanded/kinetic_crusher/H, mob/living/user) +/obj/item/crusher_trophy/demon_claws/remove_from(obj/item/kinetic_crusher/H, mob/living/user) . = ..() if(.) H.force -= bonus_value * 0.2 - H.force_unwielded -= bonus_value * 0.2 - H.force_wielded -= bonus_value * 0.2 H.detonation_damage -= bonus_value * 0.8 + AddComponent(/datum/component/two_handed, force_wielded=20) /obj/item/crusher_trophy/demon_claws/on_melee_hit(mob/living/target, mob/living/user) user.heal_ordered_damage(bonus_value * 0.1, damage_heal_order) @@ -417,7 +425,7 @@ marker.icon_state = "chronobolt" marker.damage = bonus_value marker.nodamage = FALSE - marker.speed = 2 + marker.pixels_per_second = TILES_TO_PIXELS(5) deadly_shot = FALSE /obj/item/crusher_trophy/blaster_tubes/on_mark_detonation(mob/living/target, mob/living/user) diff --git a/code/modules/mining/equipment/lazarus_injector.dm b/code/modules/mining/equipment/lazarus_injector.dm index f8b155cb9f..db826fdb49 100644 --- a/code/modules/mining/equipment/lazarus_injector.dm +++ b/code/modules/mining/equipment/lazarus_injector.dm @@ -33,7 +33,7 @@ if(malfunctioning) H.faction |= list("lazarus", "[REF(user)]") H.robust_searching = 1 - H.friends += user + H.friends[user]++ H.attack_same = 1 log_game("[key_name(user)] has revived hostile mob [key_name(target)] with a malfunctioning lazarus injector") else diff --git a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm index ce76ad04fc..50a3dec9dd 100644 --- a/code/modules/mining/equipment/mining_tools.dm +++ b/code/modules/mining/equipment/mining_tools.dm @@ -168,3 +168,17 @@ throwforce = 7 custom_materials = list(/datum/material/iron=50) w_class = WEIGHT_CLASS_SMALL + +/obj/item/shovel/serrated + name = "serrated bone shovel" + desc = "A wicked tool that cleaves through dirt just as easily as it does flesh. The design was styled after ancient lavaland tribal designs." + icon_state = "shovel_bone" + item_state = "shovel_bone" + lefthand_file = 'icons/mob/inhands/equipment/mining_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/mining_righthand.dmi' + force = 15 + throwforce = 12 + w_class = WEIGHT_CLASS_NORMAL + toolspeed = 0.7 + attack_verb = list("slashed", "impaled", "stabbed", "sliced") + sharpness = IS_SHARP diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm index 439929b9c1..1de3a86702 100644 --- a/code/modules/mining/equipment/regenerative_core.dm +++ b/code/modules/mining/equipment/regenerative_core.dm @@ -111,9 +111,6 @@ go_inert() return ..() -/obj/item/organ/regenerative_core/prepare_eat() - return null - /*************************Legion core********************/ /obj/item/organ/regenerative_core/legion desc = "A strange rock that crackles with power. It can be used to heal completely, but it will rapidly decay into uselessness." diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm index bbab74689c..ab0356aa66 100644 --- a/code/modules/mining/equipment/survival_pod.dm +++ b/code/modules/mining/equipment/survival_pod.dm @@ -270,6 +270,7 @@ desc = "A sign of relief for weary miners, and a warning for would-be competitors to Nanotrasen's mining claims." icon = 'icons/turf/walls/survival_pod_walls.dmi' icon_state = "ntpod" + buildable_sign = FALSE /obj/structure/sign/mining/survival name = "shelter sign" diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 9767ff3866..e611ccf232 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -11,7 +11,7 @@ desc = "It's watching you suspiciously." /obj/structure/closet/crate/necropolis/tendril/PopulateContents() - var/loot = rand(1,28) + var/loot = rand(1,29) switch(loot) if(1) new /obj/item/shared_storage/red(src) @@ -39,7 +39,7 @@ if(11) new /obj/item/ship_in_a_bottle(src) if(12) - new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker(src) + new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker/old(src) if(13) new /obj/item/jacobs_ladder(src) if(14) @@ -67,7 +67,7 @@ new /obj/item/grenade/clusterbuster/inferno(src) if(24) new /obj/item/reagent_containers/food/drinks/bottle/holywater/hell(src) - new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor(src) + new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor/old(src) if(25) new /obj/item/book/granter/spell/summonitem(src) if(26) @@ -77,6 +77,11 @@ new /obj/item/bedsheet/cult(src) if(28) new /obj/item/clothing/neck/necklace/memento_mori(src) + if(29) + if(prob(50)) + new /obj/item/malf_upgrade + else + new /obj/item/disk/tech_disk/illegal //KA modkit design discs /obj/item/disk/design_disk/modkit_disc @@ -487,7 +492,7 @@ setDir(user.dir) user.forceMove(src) - user.notransform = TRUE + user.mob_transforming = TRUE user.status_flags |= GODMODE can_destroy = FALSE @@ -496,7 +501,7 @@ /obj/effect/immortality_talisman/proc/unvanish(mob/user) user.status_flags &= ~GODMODE - user.notransform = FALSE + user.mob_transforming = FALSE user.forceMove(get_turf(src)) user.visible_message("[user] pops back into reality!") diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index e340e36acf..dd317c5b23 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -30,7 +30,7 @@ new /datum/data/mining_equipment("500 Point Transfer Card", /obj/item/card/mining_point_card/mp500, 500), new /datum/data/mining_equipment("Tracking Implant Kit", /obj/item/storage/box/minertracker, 600), new /datum/data/mining_equipment("Jaunter", /obj/item/wormhole_jaunter, 750), - new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/twohanded/kinetic_crusher, 750), + new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/kinetic_crusher, 750), new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/gun/energy/kinetic_accelerator, 750), new /datum/data/mining_equipment("Survival Medipen", /obj/item/reagent_containers/hypospray/medipen/survival, 750), new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/storage/firstaid/brute, 800), @@ -148,9 +148,14 @@ return ..() /obj/machinery/mineral/equipment_vendor/proc/RedeemVoucher(obj/item/mining_voucher/voucher, mob/redeemer) - var/items = list("Survival Capsule and Explorer's Webbing", "Resonator Kit", "Minebot Kit", "Extraction and Rescue Kit", "Crusher Kit", "Mining Conscription Kit") + var/items = list( "Survival Capsule and Explorer's Webbing" = image(icon = 'icons/obj/storage.dmi', icon_state = "explorerpack"), + "Resonator Kit" = image(icon = 'icons/obj/mining.dmi', icon_state = "resonator"), + "Minebot Kit" = image(icon = 'icons/mob/aibots.dmi', icon_state = "mining_drone"), + "Extraction and Rescue Kit" = image(icon = 'icons/obj/fulton.dmi', icon_state = "extraction_pack"), + "Crusher Kit" = image(icon = 'icons/obj/mining.dmi', icon_state = "crusher"), + "Mining Conscription Kit" = image(icon = 'icons/obj/storage.dmi', icon_state = "duffel")) - var/selection = input(redeemer, "Pick your equipment", "Mining Voucher Redemption") as null|anything in items + var/selection = show_radial_menu(redeemer, src, items, require_near = TRUE, tooltips = TRUE) if(!selection || !Adjacent(redeemer) || QDELETED(voucher) || voucher.loc != redeemer) return var/drop_location = drop_location() @@ -171,7 +176,7 @@ new /obj/item/stack/marker_beacon/thirty(drop_location) if("Crusher Kit") new /obj/item/extinguisher/mini(drop_location) - new /obj/item/twohanded/kinetic_crusher(drop_location) + new /obj/item/kinetic_crusher(drop_location) if("Mining Conscription Kit") new /obj/item/storage/backpack/duffelbag/mining_conscript(drop_location) @@ -321,9 +326,10 @@ new /obj/item/clothing/glasses/meson/prescription(src) /obj/machinery/mineral/equipment_vendor/proc/RedeemSVoucher(obj/item/suit_voucher/voucher, mob/redeemer) - var/items = list("Exo-suit", "SEVA suit") + var/items = list( "Exo-suit" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "exo"), + "SEVA suit" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "seva")) - var/selection = input(redeemer, "Pick your suit.", "Suit Voucher Redemption") as null|anything in items + var/selection = show_radial_menu(redeemer, src, items, require_near = TRUE, tooltips = TRUE) if(!selection || !Adjacent(redeemer) || QDELETED(voucher) || voucher.loc != redeemer) return var/drop_location = drop_location() diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index 0c8aef51a8..fb37dcbca0 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -24,7 +24,8 @@ environment_smash = ENVIRONMENT_SMASH_NONE check_friendly_fire = TRUE stop_automated_movement_when_pulled = TRUE - attacktext = "drills" + attack_verb_continuous = "drills" + attack_verb_simple = "drill" attack_sound = 'sound/weapons/circsawhit.ogg' sentience_type = SENTIENCE_MINEBOT speak_emote = list("states") diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index b54b990c77..8bc9cc4512 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -17,7 +17,6 @@ var/points = 0 //How many points this ore gets you from the ore redemption machine var/refined_type = null //What this ore defaults to being refined into novariants = TRUE // Ore stacks handle their icon updates themselves to keep the illusion that there's more going - mats_per_stack = MINERAL_MATERIAL_AMOUNT var/list/stack_overlays /obj/item/stack/ore/update_overlays() @@ -102,7 +101,22 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ /obj/item/stack/ore/glass/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) if(..() || !ishuman(hit_atom)) return - var/mob/living/carbon/human/C = hit_atom + var/mob/living/carbon/human/poorsod = hit_atom + eyesand(poorsod) + +/obj/item/stack/ore/glass/attack(mob/living/M, mob/living/user) + if(!ishuman(M)) + return ..() + if(user.zone_selected != BODY_ZONE_PRECISE_EYES && user.zone_selected != BODY_ZONE_HEAD) + return ..() + var/mob/living/carbon/human/poorsod = M + visible_message("[user] throws the sand at [poorsod]'s face!") + if(ishuman(user)) + var/mob/living/carbon/human/sayer = user + sayer.forcesay("POCKET SAAND!!") + eyesand(poorsod) + +/obj/item/stack/ore/glass/proc/eyesand(mob/living/carbon/human/C) if(C.head && C.head.flags_cover & HEADCOVERSEYES) visible_message("[C]'s headgear blocks the sand!") return @@ -116,8 +130,10 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ C.adjustStaminaLoss(15)//the pain from your eyes burning does stamina damage C.confused += 5 to_chat(C, "\The [src] gets into your eyes! The pain, it burns!") + C.forcesay("*scream") qdel(src) + /obj/item/stack/ore/glass/ex_act(severity, target) if (severity == EXPLODE_NONE) return @@ -194,7 +210,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ item_state = "slag" singular_name = "slag chunk" -/obj/item/twohanded/required/gibtonite +/obj/item/gibtonite name = "gibtonite ore" desc = "Extremely explosive if struck with mining equipment, Gibtonite is often used by miners to speed up their work by using it as a mining charge. This material is illegal to possess by unauthorized personnel under space law." icon = 'icons/obj/mining.dmi' @@ -208,12 +224,16 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ var/attacher = "UNKNOWN" var/det_timer -/obj/item/twohanded/required/gibtonite/Destroy() +/obj/item/gibtonite/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, require_twohands=TRUE) + +/obj/item/gibtonite/Destroy() qdel(wires) wires = null return ..() -/obj/item/twohanded/required/gibtonite/attackby(obj/item/I, mob/user, params) +/obj/item/gibtonite/attackby(obj/item/I, mob/user, params) if(!wires && istype(I, /obj/item/assembly/igniter)) user.visible_message("[user] attaches [I] to [src].", "You attach [I] to [src].") wires = new /datum/wires/explosive/gibtonite(src) @@ -241,22 +261,22 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ return ..() -/obj/item/twohanded/required/gibtonite/attack_self(user) +/obj/item/gibtonite/attack_self(user) if(wires) wires.interact(user) else ..() -/obj/item/twohanded/required/gibtonite/bullet_act(obj/item/projectile/P) +/obj/item/gibtonite/bullet_act(obj/item/projectile/P) GibtoniteReaction(P.firer) return ..() -/obj/item/twohanded/required/gibtonite/ex_act() +/obj/item/gibtonite/ex_act() GibtoniteReaction(null, 1) -/obj/item/twohanded/required/gibtonite/proc/GibtoniteReaction(mob/user, triggered_by = 0) +/obj/item/gibtonite/proc/GibtoniteReaction(mob/user, triggered_by = 0) if(!primed) primed = TRUE playsound(src,'sound/effects/hit_on_shattered_glass.ogg',50,1) @@ -282,7 +302,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ log_game("[key_name(user)] has primed a [name] for detonation at [AREACOORD(bombturf)]") det_timer = addtimer(CALLBACK(src, .proc/detonate, notify_admins), det_time, TIMER_STOPPABLE) -/obj/item/twohanded/required/gibtonite/proc/detonate(notify_admins) +/obj/item/gibtonite/proc/detonate(notify_admins) if(primed) switch(quality) if(GIBTONITE_QUALITY_HIGH) @@ -318,7 +338,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ throwforce = 2 w_class = WEIGHT_CLASS_TINY custom_materials = list(/datum/material/iron = 400) - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS var/string_attached var/list/sideslist = list("heads","tails") var/cooldown = 0 @@ -370,7 +390,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ to_chat(user, "There already is a string attached to this coin!") return - if (W.use_tool(src, user, 0, 1, max_level = JOB_SKILL_BASIC)) + if (W.use_tool(src, user, 0, 1, skill_gain_mult = BARE_USE_TOOL_MULT)) add_overlay("coin_string_overlay") string_attached = 1 to_chat(user, "You attach a string to the coin.") diff --git a/code/modules/mob/dead/dead.dm b/code/modules/mob/dead/dead.dm index 0c50cb0468..bd3a3d304a 100644 --- a/code/modules/mob/dead/dead.dm +++ b/code/modules/mob/dead/dead.dm @@ -68,7 +68,7 @@ INITIALIZE_IMMEDIATE(/mob/dead) set category = "OOC" set name = "Server Hop!" set desc= "Jump to the other server" - if(notransform) + if(mob_transforming) return var/list/csa = CONFIG_GET(keyed_list/cross_server) var/pick @@ -93,9 +93,9 @@ INITIALIZE_IMMEDIATE(/mob/dead) to_chat(C, "Sending you to [pick].") new /obj/screen/splash(C) - notransform = TRUE + mob_transforming = TRUE sleep(29) //let the animation play - notransform = FALSE + mob_transforming = FALSE if(!C) return diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index f7e1f24b63..6888a6590f 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -176,9 +176,6 @@ SSticker.queue_delay = 4 qdel(src) - if(!ready && href_list["preference"]) - if(client) - client.prefs.process_link(src, href_list) else if(!href_list["late_join"]) new_player_panel() @@ -415,6 +412,8 @@ give_guns(humanc) if(GLOB.summon_magic_triggered) give_magic(humanc) + if(GLOB.curse_of_madness_triggered) + give_madness(humanc, GLOB.curse_of_madness_triggered) GLOB.joined_player_list += character.ckey GLOB.latejoiners += character @@ -582,6 +581,12 @@ qdel(src) /mob/dead/new_player/proc/ViewManifest() + if(!client) + return + if(world.time < client.crew_manifest_delay) + return + client.crew_manifest_delay = world.time + (1 SECONDS) + var/dat = "" dat += "

    Crew Manifest

    " dat += GLOB.data_core.get_manifest(OOC = 1) diff --git a/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm b/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm index 3497bff09f..89f2dd5370 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm @@ -189,6 +189,26 @@ name = "Coffee House" icon_state = "hair_coffeehouse" +/datum/sprite_accessory/hair/cornrows1 + name = "Cornrows" + icon_state = "hair_cornrows" + +/datum/sprite_accessory/hair/cornrows2 + name = "Cornrows 2" + icon_state = "hair_cornrows2" + +/datum/sprite_accessory/hair/cornrowbun + name = "Cornrow Bun" + icon_state = "hair_cornrowbun" + +/datum/sprite_accessory/hair/cornrowbraid + name = "Cornrow Braid" + icon_state = "hair_cornrowbraid" + +/datum/sprite_accessory/hair/cornrowdualtail + name = "Cornrow Tail" + icon_state = "hair_cornrowtail" + /datum/sprite_accessory/hair/country name = "Country" icon_state = "hair_country" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/horns.dm b/code/modules/mob/dead/new_player/sprite_accessories/horns.dm index 6126b6c04b..b39f48f858 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/horns.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/horns.dm @@ -1,7 +1,7 @@ /datum/sprite_accessory/horns icon = 'icons/mob/mutant_bodyparts.dmi' color_src = HORNCOLOR - relevant_layers = list(BODY_ADJ_LAYER) + relevant_layers = list(HORNS_LAYER) /datum/sprite_accessory/horns/none name = "None" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm index cbb38a3a6a..2ec6da2da8 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm @@ -64,6 +64,7 @@ taur_mode = STYLE_HOOF_TAURIC alt_taur_mode = STYLE_PAW_TAURIC color_src = MUTCOLORS + extra = TRUE /datum/sprite_accessory/taur/drake name = "Drake" @@ -72,6 +73,12 @@ color_src = MUTCOLORS extra = TRUE +/datum/sprite_accessory/taur/drake/old + name = "Drake (Old)" + icon_state = "drake_old" + color_src = MATRIXED + extra = FALSE + /datum/sprite_accessory/taur/drider name = "Drider" icon_state = "drider" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm index 2bb0d6ba77..33dbd7059f 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm @@ -450,6 +450,18 @@ color_src = MATRIXED icon = 'modular_citadel/icons/mob/mam_tails.dmi' +/datum/sprite_accessory/tails/human/tamamo_kitsune + name = "Tamamo Kitsune Tails" //Tamamo-no-Tiro, let it be known! + icon_state = "9sune" + color_src = MATRIXED + icon = 'modular_citadel/icons/mob/mam_tails.dmi' + +/datum/sprite_accessory/tails_animated/human/tamamo_kitsune + name = "Tamamo Kitsune Tails" + icon_state = "9sune" + color_src = MATRIXED + icon = 'modular_citadel/icons/mob/mam_tails.dmi' + /datum/sprite_accessory/tails/human/tentacle name = "Tentacle" icon_state = "tentacle" @@ -816,6 +828,14 @@ datum/sprite_accessory/mam_tails/insect name = "Squirrel" icon_state = "squirrel" +/datum/sprite_accessory/mam_tails/tamamo_kitsune + name = "Tamamo Kitsune Tails" + icon_state = "9sune" + +/datum/sprite_accessory/mam_tails_animated/tamamo_kitsune + name = "Tamamo Kitsune Tails" + icon_state = "9sune" + /datum/sprite_accessory/mam_tails/tentacle name = "Tentacle" icon_state = "tentacle" diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index b8e56f3d7c..397af1b9d0 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -287,12 +287,12 @@ Works together with spawning an observer, noted above. var/maximumRoundEnd = SSautotransfer.starttime + SSautotransfer.voteinterval * SSautotransfer.maxvotes if(penalty - SSshuttle.realtimeofstart > maximumRoundEnd + SSshuttle.emergencyCallTime + SSshuttle.emergencyDockTime + SSshuttle.emergencyEscapeTime) penalty = CANT_REENTER_ROUND - if(!(ckey in GLOB.client_ghost_timeouts)) - GLOB.client_ghost_timeouts += ckey - GLOB.client_ghost_timeouts[ckey] = 0 - else if(GLOB.client_ghost_timeouts[ckey] == CANT_REENTER_ROUND) + if(!(ghost.ckey in GLOB.client_ghost_timeouts)) + GLOB.client_ghost_timeouts += ghost.ckey + GLOB.client_ghost_timeouts[ghost.ckey] = 0 + else if(GLOB.client_ghost_timeouts[ghost.ckey] == CANT_REENTER_ROUND) return - GLOB.client_ghost_timeouts[ckey] = max(GLOB.client_ghost_timeouts[ckey],penalty) + GLOB.client_ghost_timeouts[ghost.ckey] = max(GLOB.client_ghost_timeouts[ghost.ckey],penalty) // needs to be done AFTER the ckey transfer, too return ghost @@ -707,7 +707,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp //this is a mob verb instead of atom for performance reasons //see /mob/verb/examinate() in mob.dm for more info //overridden here and in /mob/living for different point span classes and sanity checks -/mob/dead/observer/pointed(atom/A as mob|obj|turf in view()) +/mob/dead/observer/pointed(atom/A as mob|obj|turf in fov_view()) if(!..()) return 0 usr.visible_message("[src] points to [A].") @@ -717,6 +717,12 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp set name = "View Crew Manifest" set category = "Ghost" + if(!client) + return + if(world.time < client.crew_manifest_delay) + return + client.crew_manifest_delay = world.time + (1 SECONDS) + var/dat dat += "

    Crew Manifest

    " dat += GLOB.data_core.get_manifest() diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index fad3a7e534..83cc09a624 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -158,7 +158,7 @@ //Returns if a certain item can be equipped to a certain slot. // Currently invalid for two-handed items - call obj/item/mob_can_equip() instead. -/mob/proc/can_equip(obj/item/I, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE) +/mob/proc/can_equip(obj/item/I, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE, clothing_check = FALSE, list/return_warning) return FALSE /mob/proc/can_put_in_hand(I, hand_index) @@ -333,54 +333,68 @@ I.moveToNullspace() else I.forceMove(newloc) + on_item_dropped(I) if(I.dropped(src) == ITEM_RELOCATED_BY_DROPPED) return FALSE return TRUE +//This is a SAFE proc. Use this instead of equip_to_slot()! +//set qdel_on_fail to have it delete W if it fails to equip +//set disable_warning to disable the 'you are unable to equip that' warning. +//unset redraw_mob to prevent the mob from being redrawn at the end. +/mob/proc/equip_to_slot_if_possible(obj/item/W, slot, qdel_on_fail = FALSE, disable_warning = FALSE, redraw_mob = TRUE, bypass_equip_delay_self = FALSE, clothing_check = FALSE) + if(!istype(W)) + return FALSE + var/list/warning = list("You are unable to equip that!") + if(!W.mob_can_equip(src, null, slot, disable_warning, bypass_equip_delay_self, clothing_check, warning)) + if(qdel_on_fail) + qdel(W) + else if(!disable_warning) + to_chat(src, warning[1]) + return FALSE + equip_to_slot(W, slot, redraw_mob) //This proc should not ever fail. + return TRUE + +//This is an UNSAFE proc. It merely handles the actual job of equipping. All the checks on whether you can or can't equip need to be done before! Use mob_can_equip() for that task. +//In most cases you will want to use equip_to_slot_if_possible() +/mob/proc/equip_to_slot(obj/item/W, slot) + return + +//This is just a commonly used configuration for the equip_to_slot_if_possible() proc, used to equip people when the round starts and when events happen and such. +//Also bypasses equip delay checks, since the mob isn't actually putting it on. +/mob/proc/equip_to_slot_or_del(obj/item/W, slot) + return equip_to_slot_if_possible(W, slot, TRUE, TRUE, FALSE, TRUE) + +//puts the item "W" into an appropriate slot in a human's inventory +//returns 0 if it cannot, 1 if successful +/mob/proc/equip_to_appropriate_slot(obj/item/W, clothing_check = FALSE) + if(!istype(W)) + return 0 + var/slot_priority = W.slot_equipment_priority + + if(!slot_priority) + slot_priority = list( \ + SLOT_BACK, SLOT_WEAR_ID,\ + SLOT_W_UNIFORM, SLOT_WEAR_SUIT,\ + SLOT_WEAR_MASK, SLOT_HEAD, SLOT_NECK,\ + SLOT_SHOES, SLOT_GLOVES,\ + SLOT_EARS, SLOT_GLASSES,\ + SLOT_BELT, SLOT_S_STORE,\ + SLOT_L_STORE, SLOT_R_STORE,\ + SLOT_GENERC_DEXTROUS_STORAGE\ + ) + + for(var/slot in slot_priority) + if(equip_to_slot_if_possible(W, slot, FALSE, TRUE, TRUE, FALSE, clothing_check)) //qdel_on_fail = 0; disable_warning = 1; redraw_mob = 1 + return 1 + + return 0 + //Outdated but still in use apparently. This should at least be a human proc. //Daily reminder to murder this - Remie. /mob/living/proc/get_equipped_items(include_pockets = FALSE) return -/mob/living/carbon/get_equipped_items(include_pockets = FALSE) - var/list/items = list() - if(back) - items += back - if(head) - items += head - if(wear_mask) - items += wear_mask - if(wear_neck) - items += wear_neck - return items - -/mob/living/carbon/human/get_equipped_items(include_pockets = FALSE) - var/list/items = ..() - if(belt) - items += belt - if(ears) - items += ears - if(glasses) - items += glasses - if(gloves) - items += gloves - if(shoes) - items += shoes - if(wear_id) - items += wear_id - if(wear_suit) - items += wear_suit - if(w_uniform) - items += w_uniform - if(include_pockets) - if(l_store) - items += l_store - if(r_store) - items += r_store - if(s_store) - items += s_store - return items - /mob/living/proc/unequip_everything() var/list/items = list() items |= get_equipped_items(TRUE) @@ -393,7 +407,7 @@ to_chat(M, "You are not holding anything to equip!") return FALSE - if(M.equip_to_appropriate_slot(src)) + if(M.equip_to_appropriate_slot(src, TRUE)) M.update_inv_hands() return TRUE else diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index a5275f677d..8ca4e6a0e4 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -94,7 +94,9 @@ //We want an accurate reading of .len listclearnulls(BP.embedded_objects) - temp_bleed += 0.5 * BP.embedded_objects.len + for(var/obj/item/embeddies in BP.embedded_objects) + if(!embeddies.isEmbedHarmless()) + temp_bleed += 0.5 if(brutedamage >= 20) temp_bleed += (brutedamage * 0.013) @@ -186,7 +188,7 @@ blood_data["viruses"] += D.Copy() blood_data["blood_DNA"] = dna.unique_enzymes - blood_data["bloodcolor"] = bloodtype_to_color(dna.blood_type) + blood_data["bloodcolor"] = dna.species.exotic_blood_color if(disease_resistances && disease_resistances.len) blood_data["resistances"] = disease_resistances.Copy() var/list/temp_chem = list() diff --git a/code/modules/mob/living/bloodcrawl.dm b/code/modules/mob/living/bloodcrawl.dm index e8a9b50e98..d3dbfac8c8 100644 --- a/code/modules/mob/living/bloodcrawl.dm +++ b/code/modules/mob/living/bloodcrawl.dm @@ -37,10 +37,10 @@ C.put_in_hands(B1) C.put_in_hands(B2) C.regenerate_icons() - src.notransform = TRUE + src.mob_transforming = TRUE spawn(0) bloodpool_sink(B) - src.notransform = FALSE + src.mob_transforming = FALSE return 1 /mob/living/proc/bloodpool_sink(obj/effect/decal/cleanable/B) @@ -155,7 +155,7 @@ addtimer(CALLBACK(src, /atom/.proc/remove_atom_colour, TEMPORARY_COLOUR_PRIORITY, newcolor), 6 SECONDS) /mob/living/proc/phasein(obj/effect/decal/cleanable/B) - if(src.notransform) + if(src.mob_transforming) to_chat(src, "Finish eating first!") return 0 B.visible_message("[B] starts to bubble...") @@ -164,7 +164,7 @@ if(!B) return forceMove(B.loc) - src.client.eye = src + reset_perspective(src) src.visible_message("[src] rises out of the pool of blood!") exit_blood_effect(B) if(iscarbon(src)) diff --git a/code/modules/mob/living/brain/brain.dm b/code/modules/mob/living/brain/brain.dm index 4bca3e7f62..be03827695 100644 --- a/code/modules/mob/living/brain/brain.dm +++ b/code/modules/mob/living/brain/brain.dm @@ -4,6 +4,7 @@ var/emp_damage = 0//Handles a type of MMI damage var/datum/dna/stored/stored_dna // dna var for brain. Used to store dna, brain dna is not considered like actual dna, brain.has_dna() returns FALSE. stat = DEAD //we start dead by default + has_field_of_vision = FALSE //Not really worth it. see_invisible = SEE_INVISIBLE_LIVING possible_a_intents = list(INTENT_HELP, INTENT_HARM) //for mechas speech_span = SPAN_ROBOT @@ -99,3 +100,9 @@ client.mouse_pointer_icon = M.mouse_pointer if (client && ranged_ability && ranged_ability.ranged_mousepointer) client.mouse_pointer_icon = ranged_ability.ranged_mousepointer + +/mob/living/brain/proc/get_traumas() + . = list() + if(istype(loc, /obj/item/organ/brain)) + var/obj/item/organ/brain/B = loc + . = B.traumas diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index 90621ecd3f..4fda02317e 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -51,6 +51,12 @@ var/datum/brain_trauma/BT = X BT.owner = owner BT.on_gain() + if(damage > BRAIN_DAMAGE_MILD) + var/datum/skill_modifier/S + ADD_SKILL_MODIFIER_BODY(/datum/skill_modifier/brain_damage, null, C, S) + if(damage > BRAIN_DAMAGE_SEVERE) + var/datum/skill_modifier/S + ADD_SKILL_MODIFIER_BODY(/datum/skill_modifier/heavy_brain_damage, null, C, S) //Update the body's icon so it doesnt appear debrained anymore C.update_hair() @@ -66,11 +72,10 @@ if((!QDELETED(src) || C) && !no_id_transfer) transfer_identity(C) if(C) + REMOVE_SKILL_MODIFIER_BODY(/datum/skill_modifier/brain_damage, null, C) + REMOVE_SKILL_MODIFIER_BODY(/datum/skill_modifier/heavy_brain_damage, null, C) C.update_hair() -/obj/item/organ/brain/prepare_eat() - return // Too important to eat. - /obj/item/organ/brain/proc/transfer_identity(mob/living/L) name = "[L.name]'s brain" if(brainmob) @@ -129,11 +134,11 @@ if(cached_Bdamage <= HEALTH_THRESHOLD_DEAD) //Fixing dead brains yeilds a trauma if((cached_Bdamage <= HEALTH_THRESHOLD_DEAD) && (brainmob.health > HEALTH_THRESHOLD_DEAD)) if(prob(80)) - gain_trauma_type(BRAIN_TRAUMA_MILD) + gain_trauma_type(BRAIN_TRAUMA_MILD, natural_gain = TRUE) else if(prob(50)) - gain_trauma_type(BRAIN_TRAUMA_SEVERE) + gain_trauma_type(BRAIN_TRAUMA_SEVERE, natural_gain = TRUE) else - gain_trauma_type(BRAIN_TRAUMA_SPECIAL) + gain_trauma_type(BRAIN_TRAUMA_SPECIAL, natural_gain = TRUE) return if((organ_flags & ORGAN_FAILING) && O.is_drainable() && O.reagents.has_reagent(/datum/reagent/medicine/mannitol)) //attempt to heal the brain @@ -219,31 +224,6 @@ Insert(C) else ..() -/* TO BE REMOVED, KEPT IN CASE OF BUGS -/obj/item/organ/brain/proc/get_brain_damage() - var/brain_damage_threshold = max_integrity * BRAIN_DAMAGE_INTEGRITY_MULTIPLIER - var/offset_integrity = obj_integrity - (max_integrity - brain_damage_threshold) - . = round((1 - (offset_integrity / brain_damage_threshold)) * BRAIN_DAMAGE_DEATH, DAMAGE_PRECISION) - -/obj/item/organ/brain/proc/adjust_brain_damage(amount, maximum) - var/adjusted_amount - if(amount >= 0 && maximum) - var/brainloss = get_brain_damage() - var/new_brainloss = clamp(brainloss + amount, 0, maximum) - if(brainloss > new_brainloss) //brainloss is over the cap already - return 0 - adjusted_amount = new_brainloss - brainloss - else - adjusted_amount = amount - - adjusted_amount = round(adjusted_amount * BRAIN_DAMAGE_INTEGRITY_MULTIPLIER, DAMAGE_PRECISION) - if(adjusted_amount) - if(adjusted_amount >= DAMAGE_PRECISION) - take_damage(adjusted_amount) - else if(adjusted_amount <= -DAMAGE_PRECISION) - obj_integrity = min(max_integrity, obj_integrity-adjusted_amount) - . = adjusted_amount -*/ /obj/item/organ/brain/applyOrganDamage(var/d, var/maximum = maxHealth) . = ..() @@ -261,18 +241,28 @@ . = ..() //if we're not more injured than before, return without gambling for a trauma if(damage <= prev_damage) + if(damage < prev_damage && owner) + if(prev_damage > BRAIN_DAMAGE_MILD && damage <= BRAIN_DAMAGE_MILD) + REMOVE_SKILL_MODIFIER_BODY(/datum/skill_modifier/brain_damage, null, owner) + if(prev_damage > BRAIN_DAMAGE_SEVERE && damage <= BRAIN_DAMAGE_SEVERE) + REMOVE_SKILL_MODIFIER_BODY(/datum/skill_modifier/heavy_brain_damage, null, owner) return damage_delta = damage - prev_damage if(damage > BRAIN_DAMAGE_MILD) if(prob(damage_delta * (1 + max(0, (damage - BRAIN_DAMAGE_MILD)/100)))) //Base chance is the hit damage; for every point of damage past the threshold the chance is increased by 1% //learn how to do your bloody math properly goddamnit - gain_trauma_type(BRAIN_TRAUMA_MILD) + gain_trauma_type(BRAIN_TRAUMA_MILD, natural_gain = TRUE) + if(prev_damage <= BRAIN_DAMAGE_MILD && owner) + var/datum/skill_modifier/S + ADD_SKILL_MODIFIER_BODY(/datum/skill_modifier/brain_damage, null, owner, S) if(damage > BRAIN_DAMAGE_SEVERE) if(prob(damage_delta * (1 + max(0, (damage - BRAIN_DAMAGE_SEVERE)/100)))) //Base chance is the hit damage; for every point of damage past the threshold the chance is increased by 1% if(prob(20)) - gain_trauma_type(BRAIN_TRAUMA_SPECIAL) + gain_trauma_type(BRAIN_TRAUMA_SPECIAL, natural_gain = TRUE) else - gain_trauma_type(BRAIN_TRAUMA_SEVERE) - + gain_trauma_type(BRAIN_TRAUMA_SEVERE, natural_gain = TRUE) + if(prev_damage <= BRAIN_DAMAGE_SEVERE && owner) + var/datum/skill_modifier/S + ADD_SKILL_MODIFIER_BODY(/datum/skill_modifier/heavy_brain_damage, null, owner, S) if (owner) if(owner.stat < UNCONSCIOUS) //conscious or soft-crit var/brain_message @@ -315,7 +305,7 @@ if(istype(BT, brain_trauma_type) && (BT.resilience <= resilience)) . += BT -/obj/item/organ/brain/proc/can_gain_trauma(datum/brain_trauma/trauma, resilience) +/obj/item/organ/brain/proc/can_gain_trauma(datum/brain_trauma/trauma, resilience, natural_gain = FALSE) if(!ispath(trauma)) trauma = trauma.type if(!initial(trauma.can_gain)) @@ -348,7 +338,7 @@ if(TRAUMA_RESILIENCE_ABSOLUTE) max_traumas = TRAUMA_LIMIT_ABSOLUTE - if(resilience_tier_count >= max_traumas) + if(natural_gain && resilience_tier_count >= max_traumas) return FALSE return TRUE @@ -388,11 +378,11 @@ return actual_trauma //Add a random trauma of a certain subtype -/obj/item/organ/brain/proc/gain_trauma_type(brain_trauma_type = /datum/brain_trauma, resilience) +/obj/item/organ/brain/proc/gain_trauma_type(brain_trauma_type = /datum/brain_trauma, resilience, natural_gain = FALSE) var/list/datum/brain_trauma/possible_traumas = list() for(var/T in subtypesof(brain_trauma_type)) var/datum/brain_trauma/BT = T - if(can_gain_trauma(BT, resilience) && initial(BT.random_gain)) + if(can_gain_trauma(BT, resilience, natural_gain) && initial(BT.random_gain)) possible_traumas += BT if(!LAZYLEN(possible_traumas)) diff --git a/code/modules/mob/living/brain/life.dm b/code/modules/mob/living/brain/life.dm index 51be1f6971..6d06da41ae 100644 --- a/code/modules/mob/living/brain/life.dm +++ b/code/modules/mob/living/brain/life.dm @@ -1,11 +1,7 @@ -/mob/living/brain/Life() - set invisibility = 0 - if (notransform) +/mob/living/brain/BiologicalLife(seconds, times_fired) + if(!(. = ..())) return - if(!loc) - return - . = ..() handle_emp_damage() /mob/living/brain/update_stat() diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index bf9854e0b4..442bcf8027 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -140,7 +140,8 @@ Des: Removes all infected images from the alien. /mob/living/carbon/alien/proc/alien_evolve(mob/living/carbon/alien/new_xeno) to_chat(src, "You begin to evolve!") - visible_message("[src] begins to twist and contort!") + visible_message("[src] begins to twist and contort!", + "You begin to twist and contort!") new_xeno.setDir(dir) if(!alien_name_regex.Find(name)) new_xeno.name = name diff --git a/code/modules/mob/living/carbon/alien/alien_defense.dm b/code/modules/mob/living/carbon/alien/alien_defense.dm index cdb8aff2c6..5b92bf3dea 100644 --- a/code/modules/mob/living/carbon/alien/alien_defense.dm +++ b/code/modules/mob/living/carbon/alien/alien_defense.dm @@ -8,9 +8,6 @@ /mob/living/carbon/alien/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) return ..(AM, skipcatch = TRUE, hitpush = FALSE) -/mob/living/carbon/alien/can_embed(obj/item/I) - return FALSE - /*Code for aliens attacking aliens. Because aliens act on a hivemind, I don't see them as very aggressive with each other. As such, they can either help or harm other aliens. Help works like the human help command while harm is a simple nibble. In all, this is a lot like the monkey code. /N @@ -27,13 +24,16 @@ In all, this is a lot like the monkey code. /N AdjustUnconscious(-60, FALSE) AdjustSleeping(-100, FALSE) update_mobility() - visible_message("[M.name] nuzzles [src] trying to wake [p_them()] up!") + visible_message("[M.name] nuzzles [src] trying to wake [p_them()] up!", + "[M.name] nuzzles you trying to wake you up!", target = M, + target_message = "You nuzzle [src] trying to wake [p_them()] up!") if(INTENT_DISARM, INTENT_HARM) if(health > 0) M.do_attack_animation(src, ATTACK_EFFECT_BITE) playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) visible_message("[M.name] bites [src]!", \ - "[M.name] bites [src]!", null, COMBAT_MESSAGE_RANGE) + "[M.name] bites [src]!", null, COMBAT_MESSAGE_RANGE, null, M, + "You bite [src]!") adjustBruteLoss(1) log_combat(M, src, "attacked") updatehealth() @@ -51,6 +51,8 @@ In all, this is a lot like the monkey code. /N return switch(M.a_intent) if(INTENT_HELP) + if(M == src && check_self_for_injuries()) + return help_shake_act(M) if(INTENT_GRAB) grabbedby(M) diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index be81e850b7..3827aef8c1 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -22,9 +22,9 @@ Doesn't work on other aliens/AI.*/ action = new(src) /obj/effect/proc_holder/alien/Trigger(mob/living/carbon/user, skip_cost_check = FALSE) - if(!skip_cost_check || !istype(user)) + if(!istype(user)) return TRUE - if(cost_check(check_turf,user)) + if(skip_cost_check || cost_check(check_turf,user)) if(fire(user) && user) // Second check to prevent runtimes when evolving user.adjustPlasma(-plasma_cost) return TRUE diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index c813ce40f0..727a22f844 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -25,6 +25,7 @@ /mob/living/carbon/alien/humanoid/Initialize() AddAbility(new/obj/effect/proc_holder/alien/regurgitate(null)) . = ..() + AddComponent(/datum/component/footstep, FOOTSTEP_MOB_CLAW, 0.5, -3) /mob/living/carbon/alien/humanoid/restrained(ignore_grab) return handcuffed @@ -76,20 +77,18 @@ return TRUE /mob/living/carbon/alien/humanoid/get_standard_pixel_y_offset(lying = 0) + . = ..() if(leaping) - return -32 - else if(custom_pixel_y_offset) - return custom_pixel_y_offset - else - return initial(pixel_y) + . -= 32 + if(custom_pixel_y_offset) + . += custom_pixel_y_offset /mob/living/carbon/alien/humanoid/get_standard_pixel_x_offset(lying = 0) + . = ..() if(leaping) - return -32 - else if(custom_pixel_x_offset) - return custom_pixel_x_offset - else - return initial(pixel_x) + . -= 32 + if(custom_pixel_x_offset) + . += custom_pixel_x_offset /mob/living/carbon/alien/humanoid/get_permeability_protection(list/target_zones) return 0.8 diff --git a/code/modules/mob/living/carbon/alien/humanoid/inventory.dm b/code/modules/mob/living/carbon/alien/humanoid/inventory.dm deleted file mode 100644 index e2537f0f4f..0000000000 --- a/code/modules/mob/living/carbon/alien/humanoid/inventory.dm +++ /dev/null @@ -1,5 +0,0 @@ -/mob/living/carbon/alien/humanoid/doUnEquip(obj/item/I) - . = ..() - if(!. || !I) - return - diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm index 00d929a1e0..f0004b5ed9 100644 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ b/code/modules/mob/living/carbon/alien/larva/life.dm @@ -1,14 +1,10 @@ - - -/mob/living/carbon/alien/larva/Life() - set invisibility = 0 - if (notransform) +/mob/living/carbon/alien/larva/BiologicalLife(seconds, times_fired) + if(!(. = ..())) return - if(..()) //not dead - // GROW! - if(amount_grown < max_grown) - amount_grown++ - update_icons() + // GROW! + if(amount_grown < max_grown) + amount_grown++ + update_icons() /mob/living/carbon/alien/larva/update_stat() @@ -24,12 +20,12 @@ if(!eye_blind) blind_eyes(1) update_mobility() - else - if(stat == UNCONSCIOUS) - stat = CONSCIOUS - if(!(combat_flags & COMBAT_FLAG_HARD_STAMCRIT)) - set_resting(FALSE, TRUE) + else if(stat == UNCONSCIOUS) + stat = CONSCIOUS + if(!(combat_flags & COMBAT_FLAG_HARD_STAMCRIT)) + set_resting(FALSE, TRUE) + if(eye_blind <= 1) adjust_blindness(-1) - update_mobility() + update_mobility() update_damage_hud() update_health_hud() diff --git a/code/modules/mob/living/carbon/alien/life.dm b/code/modules/mob/living/carbon/alien/life.dm index 0a2aee4238..d63686691d 100644 --- a/code/modules/mob/living/carbon/alien/life.dm +++ b/code/modules/mob/living/carbon/alien/life.dm @@ -1,6 +1,7 @@ -/mob/living/carbon/alien/Life() +/mob/living/carbon/alien/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return findQueen() - return..() /mob/living/carbon/alien/check_breath(datum/gas_mixture/breath) if(status_flags & GODMODE) diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm index 8485fece85..8e3966eb03 100644 --- a/code/modules/mob/living/carbon/alien/organs.dm +++ b/code/modules/mob/living/carbon/alien/organs.dm @@ -1,7 +1,8 @@ /obj/item/organ/alien icon_state = "xgibmid2" + food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/toxin/acid = 10) var/list/alien_powers = list() - organ_flags = ORGAN_NO_SPOIL + organ_flags = ORGAN_NO_SPOIL|ORGAN_EDIBLE /obj/item/organ/alien/Initialize() . = ..() @@ -26,12 +27,6 @@ owner.RemoveAbility(P) ..() -/obj/item/organ/alien/prepare_eat() - var/obj/S = ..() - S.reagents.add_reagent(/datum/reagent/toxin/acid, 10) - return S - - /obj/item/organ/alien/plasmavessel name = "plasma vessel" icon_state = "plasma" @@ -39,17 +34,13 @@ zone = BODY_ZONE_CHEST slot = "plasmavessel" alien_powers = list(/obj/effect/proc_holder/alien/plant, /obj/effect/proc_holder/alien/transfer) + food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/toxin/plasma = 10) var/storedPlasma = 100 var/max_plasma = 250 var/heal_rate = 5 var/plasma_rate = 10 -/obj/item/organ/alien/plasmavessel/prepare_eat() - var/obj/S = ..() - S.reagents.add_reagent(/datum/reagent/toxin/plasma, storedPlasma/10) - return S - /obj/item/organ/alien/plasmavessel/large name = "large plasma vessel" icon_state = "plasma_large" diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm index 0e8764a372..bb92eb79bd 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -4,6 +4,7 @@ name = "alien embryo" icon = 'icons/mob/alien.dmi' icon_state = "larva0_dead" + food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/toxin/acid = 10) var/stage = 0 var/bursting = FALSE @@ -16,11 +17,6 @@ if(prob(10)) AttemptGrow(0) -/obj/item/organ/body_egg/alien_embryo/prepare_eat() - var/obj/S = ..() - S.reagents.add_reagent(/datum/reagent/toxin/acid, 10) - return S - /obj/item/organ/body_egg/alien_embryo/on_life() . = ..() if(!owner) @@ -92,7 +88,7 @@ ghost.transfer_ckey(new_xeno, FALSE) SEND_SOUND(new_xeno, sound('sound/voice/hiss5.ogg',0,0,0,100)) //To get the player's attention new_xeno.Paralyze(6) - new_xeno.notransform = TRUE + new_xeno.mob_transforming = TRUE new_xeno.invisibility = INVISIBILITY_MAXIMUM sleep(6) @@ -102,7 +98,7 @@ if(new_xeno) new_xeno.SetParalyzed(0) - new_xeno.notransform = FALSE + new_xeno.mob_transforming = FALSE new_xeno.invisibility = 0 var/mob/living/carbon/old_owner = owner diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index eb1b38b9ff..e35c905539 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -88,6 +88,7 @@ Die() /obj/item/clothing/mask/facehugger/equipped(mob/M) + . = ..() Attach(M) /obj/item/clothing/mask/facehugger/Crossed(atom/target) @@ -254,7 +255,7 @@ return FALSE if(AmBloodsucker(M)) return FALSE - + if(ismonkey(M)) return 1 diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index f694890b95..8472c8bdae 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -22,9 +22,6 @@ QDEL_NULL(dna) GLOB.carbon_list -= src -/mob/living/carbon/initialize_footstep() - AddComponent(/datum/component/footstep, 0.6, 2) - /mob/living/carbon/relaymove(mob/user, direction) if(user in src.stomach_contents) if(prob(40)) @@ -50,16 +47,13 @@ /mob/living/carbon/swap_hand(held_index) + . = ..() + if(!.) + var/obj/item/held_item = get_active_held_item() + to_chat(usr, "Your other hand is too busy holding [held_item].") + return if(!held_index) held_index = (active_hand_index % held_items.len)+1 - - var/obj/item/item_in_hand = src.get_active_held_item() - if(item_in_hand) //this segment checks if the item in your hand is twohanded. - var/obj/item/twohanded/TH = item_in_hand - if(istype(TH)) - if(TH.wielded == 1) - to_chat(usr, "Your other hand is too busy holding [TH]") - return var/oindex = active_hand_index active_hand_index = held_index if(hud_used) @@ -185,7 +179,7 @@ to_chat(src, "You gently let go of [throwable_mob].") return - adjustStaminaLossBuffered(25)//CIT CHANGE - throwing an entire person shall be very tiring + adjustStaminaLossBuffered(STAM_COST_THROW_MOB * ((throwable_mob.mob_size+1)**2))// throwing an entire person shall be very tiring var/turf/start_T = get_turf(loc) //Get the start and target tile for the descriptors var/turf/end_T = get_turf(target) if(start_T && end_T) @@ -250,13 +244,14 @@ /mob/living/carbon/Topic(href, href_list) ..() //strip panel - if(usr.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) + if(usr.canUseTopic(src, BE_CLOSE)) if(href_list["internal"] && !HAS_TRAIT(src, TRAIT_NO_INTERNALS)) var/slot = text2num(href_list["internal"]) var/obj/item/ITEM = get_item_by_slot(slot) if(ITEM && istype(ITEM, /obj/item/tank) && wear_mask && (wear_mask.clothing_flags & ALLOWINTERNALS)) visible_message("[usr] tries to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].", \ - "[usr] tries to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].") + "[usr] tries to [internal ? "close" : "open"] the valve on your [ITEM.name].", \ + target = usr, target_message = "You try to [internal ? "close" : "open"] the valve on [src]'s [ITEM.name].") if(do_mob(usr, src, POCKET_STRIP_DELAY)) if(internal) internal = null @@ -267,8 +262,17 @@ update_internals_hud_icon(1) visible_message("[usr] [internal ? "opens" : "closes"] the valve on [src]'s [ITEM.name].", \ - "[usr] [internal ? "opens" : "closes"] the valve on [src]'s [ITEM.name].") - + "[usr] [internal ? "opens" : "closes"] the valve on your [ITEM.name].", \ + target = usr, target_message = "You [internal ? "opens" : "closes"] the valve on [src]'s [ITEM.name].") + if(href_list["embedded_object"] && usr.canUseTopic(src, BE_CLOSE)) + var/obj/item/bodypart/L = locate(href_list["embedded_limb"]) in bodyparts + if(!L) + return + var/obj/item/I = locate(href_list["embedded_object"]) in L.embedded_objects + if(!I || I.loc != src) //no item, no limb, or item is not in limb or in the person anymore + return + SEND_SIGNAL(src, COMSIG_CARBON_EMBED_RIP, I, L) + return /mob/living/carbon/fall(forced) loc.handle_fall(src, forced)//it's loc so it doesn't call the mob's handle_fall which does nothing @@ -433,10 +437,9 @@ return /mob/living/carbon/get_standard_pixel_y_offset(lying = 0) + . = ..() if(lying) - return -6 - else - return initial(pixel_y) + . -= 6 /mob/living/carbon/proc/accident(obj/item/I) if(!I || (I.item_flags & ABSTRACT) || HAS_TRAIT(I, TRAIT_NODROP)) @@ -444,14 +447,14 @@ //dropItemToGround(I) CIT CHANGE - makes it so the item doesn't drop if the modifier rolls above 100 - var/modifier = 0 + var/modifier = 50 if(HAS_TRAIT(src, TRAIT_CLUMSY)) modifier -= 40 //Clumsy people are more likely to hit themselves -Honk! //CIT CHANGES START HERE - else if(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) - modifier += 50 + else if(SEND_SIGNAL(src, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_INACTIVE)) + modifier -= 50 if(modifier < 100) dropItemToGround(I) @@ -829,16 +832,17 @@ return if(IsUnconscious() || IsSleeping() || getOxyLoss() > 50 || (HAS_TRAIT(src, TRAIT_DEATHCOMA)) || (health <= HEALTH_THRESHOLD_FULLCRIT && !HAS_TRAIT(src, TRAIT_NOHARDCRIT))) stat = UNCONSCIOUS - disable_intentional_combat_mode(FALSE, FALSE) + SEND_SIGNAL(src, COMSIG_DISABLE_COMBAT_MODE) if(!eye_blind) blind_eyes(1) else if(health <= crit_threshold && !HAS_TRAIT(src, TRAIT_NOSOFTCRIT)) stat = SOFT_CRIT - disable_intentional_combat_mode(FALSE, FALSE) + SEND_SIGNAL(src, COMSIG_DISABLE_COMBAT_MODE) else stat = CONSCIOUS - adjust_blindness(-1) + if(eye_blind <= 1) + adjust_blindness(-1) update_mobility() update_damage_hud() update_health_hud() @@ -1124,10 +1128,6 @@ if(mood.sanity < SANITY_UNSTABLE) return TRUE -/mob/living/carbon/transfer_ckey(mob/new_mob, send_signal = TRUE) - disable_intentional_combat_mode(TRUE, FALSE) - return ..() - /mob/living/carbon/can_see_reagents() . = ..() if(.) //No need to run through all of this if it's already true. @@ -1157,3 +1157,16 @@ dna.features["body_model"] = MALE if(update_icon) update_body() + +/mob/living/carbon/check_obscured_slots() + if(head) + if(head.flags_inv & HIDEMASK) + LAZYOR(., SLOT_WEAR_MASK) + if(head.flags_inv & HIDEEYES) + LAZYOR(., SLOT_GLASSES) + if(head.flags_inv & HIDEEARS) + LAZYOR(., SLOT_EARS) + + if(wear_mask) + if(wear_mask.flags_inv & HIDEEYES) + LAZYOR(., SLOT_GLASSES) diff --git a/code/modules/mob/living/carbon/carbon_combat.dm b/code/modules/mob/living/carbon/carbon_combat.dm deleted file mode 100644 index f43d850401..0000000000 --- a/code/modules/mob/living/carbon/carbon_combat.dm +++ /dev/null @@ -1,6 +0,0 @@ -/mob/living/carbon/enable_intentional_combat_mode() - . = ..() - if(.) - if(voremode) - toggle_vore_mode() - diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 9a4f905dd1..bfa9c40a7c 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -65,33 +65,18 @@ throw_mode_off() return TRUE -/mob/living/carbon/embed_item(obj/item/I) - throw_alert("embeddedobject", /obj/screen/alert/embeddedobject) - var/obj/item/bodypart/L = pick(bodyparts) - L.embedded_objects |= I - I.add_mob_blood(src)//it embedded itself in you, of course it's bloody! - I.forceMove(src) - I.embedded() - L.receive_damage(I.w_class*I.embedding.embedded_impact_pain_multiplier) - visible_message("[I] embeds itself in [src]'s [L.name]!","[I] embeds itself in your [L.name]!") - SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "embedded", /datum/mood_event/embedded) - -/mob/living/carbon/attacked_by(obj/item/I, mob/living/user) - var/totitemdamage = pre_attacked_by(I, user) - if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) - totitemdamage *= 0.5 - if(!CHECK_MOBILITY(user, MOBILITY_STAND)) - totitemdamage *= 0.5 - if(!(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) - totitemdamage *= 1.5 +/mob/living/carbon/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1) + var/totitemdamage = pre_attacked_by(I, user) * damage_multiplier var/impacting_zone = (user == src)? check_zone(user.zone_selected) : ran_zone(user.zone_selected) - if((user != src) && (mob_run_block(I, totitemdamage, "the [I]", ATTACK_TYPE_MELEE, I.armour_penetration, user, impacting_zone, null) & BLOCK_SUCCESS)) + var/list/block_return = list() + if((user != src) && (mob_run_block(I, totitemdamage, "the [I]", ((attackchain_flags & ATTACKCHAIN_PARRY_COUNTERATTACK)? ATTACK_TYPE_PARRY_COUNTERATTACK : NONE) | ATTACK_TYPE_MELEE, I.armour_penetration, user, impacting_zone, block_return) & BLOCK_SUCCESS)) return FALSE + totitemdamage = block_calculate_resultant_damage(totitemdamage, block_return) var/obj/item/bodypart/affecting = get_bodypart(impacting_zone) if(!affecting) //missing limb? we select the first bodypart (you can never have zero, because of chest) affecting = bodyparts[1] SEND_SIGNAL(I, COMSIG_ITEM_ATTACK_ZONE, src, user, affecting) - send_item_attack_message(I, user, affecting.name) + send_item_attack_message(I, user, affecting.name, totitemdamage) I.do_stagger_action(src, user, totitemdamage) if(I.force) apply_damage(totitemdamage, I.damtype, affecting) //CIT CHANGE - replaces I.force with totitemdamage @@ -185,7 +170,8 @@ M.powerlevel = 0 visible_message("The [M.name] has shocked [src]!", \ - "The [M.name] has shocked [src]!") + "The [M.name] has shocked you!", target = M, + target_message = "You have shocked [src]!") do_sparks(5, TRUE, src) var/power = M.powerlevel + rand(0,3) @@ -234,43 +220,52 @@ var/obj/item/organ/O = X O.emp_act(severity) +///Adds to the parent by also adding functionality to propagate shocks through pulling and doing some fluff effects. /mob/living/carbon/electrocute_act(shock_damage, source, siemens_coeff = 1, flags = NONE) - if((flags & SHOCK_TESLA) && (flags_1 & TESLA_IGNORE_1)) - return FALSE - if(HAS_TRAIT(src, TRAIT_SHOCKIMMUNE)) - return FALSE - shock_damage *= siemens_coeff - if(dna && dna.species) - shock_damage *= dna.species.siemens_coeff - if(shock_damage < 1) - return 0 - if(reagents.has_reagent(/datum/reagent/teslium)) - shock_damage *= 1.5 //If the mob has teslium in their body, shocks are 50% more damaging! - if((flags & SHOCK_ILLUSION)) - adjustStaminaLoss(shock_damage) - else - take_overall_damage(0,shock_damage) - visible_message( - "[src] was shocked by \the [source]!", \ - "You feel a powerful shock coursing through your body!", \ - "You hear a heavy electrical crack." \ - ) - jitteriness += 1000 //High numbers for violent convulsions + . = ..() + if(!.) + return + //Propagation through pulling, fireman carry + if(!(flags & SHOCK_ILLUSION)) + var/list/shocking_queue = list() + if(iscarbon(pulling) && source != pulling) + shocking_queue += pulling + if(iscarbon(pulledby) && source != pulledby) + shocking_queue += pulledby + if(iscarbon(buckled) && source != buckled) + shocking_queue += buckled + for(var/mob/living/carbon/carried in buckled_mobs) + if(source != carried) + shocking_queue += carried + //Found our victims, now lets shock them all + for(var/victim in shocking_queue) + var/mob/living/carbon/C = victim + C.electrocute_act(shock_damage*0.75, src, 1, flags) + //Stun + var/should_stun = (!(flags & SHOCK_TESLA) || siemens_coeff > 0.5) && !(flags & SHOCK_NOSTUN) + if(should_stun) + Stun(40) + //Jitter and other fluff. + jitteriness += 1000 do_jitter_animation(jitteriness) stuttering += 2 - if((!(flags & SHOCK_TESLA) || siemens_coeff > 0.5) && !(flags & SHOCK_NOSTUN)) - Stun(40) - spawn(20) - jitteriness = max(jitteriness - 990, 10) //Still jittery, but vastly less - if((!(flags & SHOCK_TESLA) || siemens_coeff > 0.5) && !(flags & SHOCK_NOSTUN)) - DefaultCombatKnockdown(60) + addtimer(CALLBACK(src, .proc/secondary_shock, should_stun), 20) return shock_damage +///Called slightly after electrocute act to reduce jittering and apply a secondary stun. +/mob/living/carbon/proc/secondary_shock(should_stun) + jitteriness = max(jitteriness - 990, 10) + if(should_stun) + DefaultCombatKnockdown(60) + /mob/living/carbon/proc/help_shake_act(mob/living/carbon/M) if(on_fire) to_chat(M, "You can't put [p_them()] out with just your bare hands!") return + if(M == src && check_self_for_injuries()) + return + if(health >= 0 && !(HAS_TRAIT(src, TRAIT_FAKEDEATH))) var/friendly_check = FALSE if(mob_run_block(M, 0, M.name, ATTACK_TYPE_UNARMED, 0, null, null, null)) @@ -280,12 +275,14 @@ to_chat(M, "You need to unbuckle [src] first to do that!") return M.visible_message("[M] shakes [src] trying to get [p_them()] up!", \ - "You shake [src] trying to get [p_them()] up!") + "You shake [src] trying to get [p_them()] up!", target = src, + target_message = "[M] shakes you trying to get you up!") else if(M.zone_selected == BODY_ZONE_PRECISE_MOUTH) // I ADDED BOOP-EH-DEH-NOSEH - Jon M.visible_message( \ "[M] boops [src]'s nose.", \ - "You boop [src] on the nose.", ) + "You boop [src] on the nose.", target = src, + target_message = "[M] boops your nose.") playsound(src, 'sound/items/Nose_boop.ogg', 50, 0) else if(check_zone(M.zone_selected) == BODY_ZONE_HEAD) @@ -294,7 +291,8 @@ S = dna.species M.visible_message("[M] gives [src] a pat on the head to make [p_them()] feel better!", \ - "You give [src] a pat on the head to make [p_them()] feel better!") + "You give [src] a pat on the head to make [p_them()] feel better!", target = src, + target_message = "[M] gives you a pat on the head to make you feel better!") SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "headpat", /datum/mood_event/headpat) friendly_check = TRUE if(S?.can_wag_tail(src) && !dna.species.is_wagging_tail()) @@ -307,11 +305,13 @@ else if(check_zone(M.zone_selected) == BODY_ZONE_R_ARM || check_zone(M.zone_selected) == BODY_ZONE_L_ARM) M.visible_message( \ "[M] shakes [src]'s hand.", \ - "You shake [src]'s hand.", ) + "You shake [src]'s hand.", target = src, + target_message = "[M] shakes your hand.") else M.visible_message("[M] hugs [src] to make [p_them()] feel better!", \ - "You hug [src] to make [p_them()] feel better!") + "You hug [src] to make [p_them()] feel better!", target = src,\ + target_message = "[M] hugs you to make you feel better!") SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "hug", /datum/mood_event/hug) friendly_check = TRUE @@ -333,6 +333,26 @@ update_mobility() playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) +/// Check ourselves to see if we've got any shrapnel, return true if we do. This is a much simpler version of what humans do, we only indicate we're checking ourselves if there's actually shrapnel +/mob/living/carbon/proc/check_self_for_injuries() + if(stat == DEAD || stat == UNCONSCIOUS) + return + + var/embeds = FALSE + for(var/X in bodyparts) + var/obj/item/bodypart/LB = X + for(var/obj/item/I in LB.embedded_objects) + if(!embeds) + embeds = TRUE + // this way, we only visibly try to examine ourselves if we have something embedded, otherwise we'll still hug ourselves :) + visible_message("[src] examines [p_them()]self.", \ + "You check yourself for shrapnel.") + if(I.isEmbedHarmless()) + to_chat(src, "\t There is \a [I] stuck to your [LB.name]!") + else + to_chat(src, "\t There is \a [I] embedded in your [LB.name]!") + + return embeds /mob/living/carbon/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0) . = ..() @@ -433,3 +453,17 @@ var/obj/item/organ/ears/ears = getorganslot(ORGAN_SLOT_EARS) if(istype(ears) && !ears.deaf) . = TRUE + +/mob/living/carbon/getBruteLoss_nonProsthetic() + var/amount = 0 + for(var/obj/item/bodypart/BP in bodyparts) + if (BP.status < 2) + amount += BP.brute_dam + return amount + +/mob/living/carbon/getFireLoss_nonProsthetic() + var/amount = 0 + for(var/obj/item/bodypart/BP in bodyparts) + if (BP.status < 2) + amount += BP.burn_dam + return amount diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm index cc390b9329..65e59d0e29 100644 --- a/code/modules/mob/living/carbon/carbon_movement.dm +++ b/code/modules/mob/living/carbon/carbon_movement.dm @@ -20,7 +20,7 @@ if(istype(J) && (movement_dir || J.stabilizers) && J.allow_thrust(0.01, src)) return 1 -/mob/living/carbon/Move(NewLoc, direct) +/mob/living/carbon/Moved() . = ..() if(. && (movement_type & FLOATING)) //floating is easy if(HAS_TRAIT(src, TRAIT_NOHUNGER)) diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm index adca193ce0..becff250b9 100644 --- a/code/modules/mob/living/carbon/damage_procs.dm +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -1,20 +1,21 @@ -/mob/living/carbon/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE) +/mob/living/carbon/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage = FALSE) SEND_SIGNAL(src, COMSIG_MOB_APPLY_DAMGE, damage, damagetype, def_zone) var/hit_percent = (100-blocked)/100 if(!forced && hit_percent <= 0) return 0 var/obj/item/bodypart/BP = null - if(isbodypart(def_zone)) //we specified a bodypart object - BP = def_zone - else - if(!def_zone) - def_zone = ran_zone(def_zone) - BP = get_bodypart(check_zone(def_zone)) - if(!BP) - BP = bodyparts[1] + if(!spread_damage) + if(isbodypart(def_zone)) //we specified a bodypart object + BP = def_zone + else + if(!def_zone) + def_zone = ran_zone(def_zone) + BP = get_bodypart(check_zone(def_zone)) + if(!BP) + BP = bodyparts[1] var/damage_amount = forced ? damage : damage * hit_percent switch(damagetype) @@ -63,7 +64,7 @@ /mob/living/carbon/adjustBruteLoss(amount, updating_health = TRUE, forced = FALSE) - if (!forced && amount < 0 && HAS_TRAIT(src,TRAIT_NONATURALHEAL)) + if(!forced && amount < 0 && HAS_TRAIT(src,TRAIT_NONATURALHEAL)) return FALSE if(!forced && (status_flags & GODMODE)) return FALSE @@ -74,7 +75,7 @@ return amount /mob/living/carbon/adjustFireLoss(amount, updating_health = TRUE, forced = FALSE) - if (!forced && amount < 0 && HAS_TRAIT(src,TRAIT_NONATURALHEAL)) //Vamps don't heal naturally. + if(!forced && amount < 0 && HAS_TRAIT(src,TRAIT_NONATURALHEAL)) //Vamps don't heal naturally. return FALSE if(!forced && (status_flags & GODMODE)) return FALSE @@ -264,46 +265,3 @@ if(update) update_damage_overlays() update_stamina() - -/* TO_REMOVE -/mob/living/carbon/getOrganLoss(ORGAN_SLOT_BRAIN) - . = 0 - var/obj/item/organ/brain/B = getorganslot(ORGAN_SLOT_BRAIN) - if(B) - . = B.get_brain_damage() - -//Some sources of brain damage shouldn't be deadly -/mob/living/carbon/adjustOrganLoss(ORGAN_SLOT_BRAIN, amount, maximum = BRAIN_DAMAGE_DEATH) - if(status_flags & GODMODE) - return FALSE - var/prev_brainloss = getOrganLoss(ORGAN_SLOT_BRAIN) - var/obj/item/organ/brain/B = getorganslot(ORGAN_SLOT_BRAIN) - if(!B) - return - B.adjust_brain_damage(amount, maximum) - if(amount <= 0) //cut this early - return - var/brainloss = getOrganLoss(ORGAN_SLOT_BRAIN) - if(brainloss > BRAIN_DAMAGE_MILD) - if(prob(amount * ((2 * (100 + brainloss - BRAIN_DAMAGE_MILD)) / 100))) //Base chance is the hit damage; for every point of damage past the threshold the chance is increased by 2% - gain_trauma_type(BRAIN_TRAUMA_MILD) - if(brainloss > BRAIN_DAMAGE_SEVERE) - if(prob(amount * ((2 * (100 + brainloss - BRAIN_DAMAGE_SEVERE)) / 100))) //Base chance is the hit damage; for every point of damage past the threshold the chance is increased by 2% - if(prob(20)) - gain_trauma_type(BRAIN_TRAUMA_SPECIAL) - else - gain_trauma_type(BRAIN_TRAUMA_SEVERE) - - if(prev_brainloss < BRAIN_DAMAGE_MILD && brainloss >= BRAIN_DAMAGE_MILD) - to_chat(src, "You feel lightheaded.") - else if(prev_brainloss < BRAIN_DAMAGE_SEVERE && brainloss >= BRAIN_DAMAGE_SEVERE) - to_chat(src, "You feel less in control of your thoughts.") - else if(prev_brainloss < (BRAIN_DAMAGE_DEATH - 20) && brainloss >= (BRAIN_DAMAGE_DEATH - 20)) - to_chat(src, "You can feel your mind flickering on and off...") - -/mob/living/carbon/setBrainLoss(amount) - var/obj/item/organ/brain/B = getorganslot(ORGAN_SLOT_BRAIN) - if(B) - var/adjusted_amount = amount - B.get_brain_damage() - B.adjust_brain_damage(adjusted_amount, null) -*/ diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm index 60fa395319..c3e849efa6 100644 --- a/code/modules/mob/living/carbon/death.dm +++ b/code/modules/mob/living/carbon/death.dm @@ -8,8 +8,6 @@ if(!gibbed) emote("deathgasp") - disable_intentional_combat_mode(TRUE, FALSE) - . = ..() for(var/T in get_traumas()) @@ -25,7 +23,8 @@ if(M in stomach_contents) stomach_contents.Remove(M) M.forceMove(Tsec) - visible_message("[M] bursts out of [src]!") + M.visible_message("[M] bursts out of [src]!", + "You burst out of [src]!") ..() /mob/living/carbon/spill_organs(no_brain, no_organs, no_bodyparts) @@ -61,7 +60,3 @@ var/obj/item/bodypart/BP = X BP.drop_limb() BP.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5) - -/mob/living/carbon/ghostize(can_reenter_corpse = TRUE, special = FALSE, penalize = FALSE, voluntary = FALSE) - disable_intentional_combat_mode(TRUE, FALSE) - return ..() diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm index 1ee3369701..b07aab30d1 100644 --- a/code/modules/mob/living/carbon/examine.dm +++ b/code/modules/mob/living/carbon/examine.dm @@ -31,14 +31,35 @@ else if(get_bodypart(BODY_ZONE_HEAD)) . += "It appears that [t_his] brain is missing..." - var/list/missing = get_missing_limbs() + var/list/msg = list("") + var/list/missing = list(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG) + var/list/disabled = list() + for(var/X in bodyparts) + var/obj/item/bodypart/BP = X + if(BP.disabled) + disabled += BP + missing -= BP.body_zone + for(var/obj/item/I in BP.embedded_objects) + if(I.isEmbedHarmless()) + msg += "[t_He] [t_has] \a [icon2html(I, user)] [I] stuck to [t_his] [BP.name]!\n" + else + msg += "[t_He] [t_has] \a [icon2html(I, user)] [I] embedded in [t_his] [BP.name]!\n" + + for(var/X in disabled) + var/obj/item/bodypart/BP = X + var/damage_text + if(!(BP.get_damage(include_stamina = FALSE) >= BP.max_damage)) //Stamina is disabling the limb + damage_text = "limp and lifeless" + else + damage_text = (BP.brute_dam >= BP.burn_dam) ? BP.heavy_brute_msg : BP.heavy_burn_msg + msg += "[capitalize(t_his)] [BP.name] is [damage_text]!\n" + for(var/t in missing) if(t==BODY_ZONE_HEAD) - . += "[t_His] [parse_zone(t)] is missing!" + msg += "[t_His] [parse_zone(t)] is missing!\n" continue - . += "[t_His] [parse_zone(t)] is missing!" + msg += "[t_His] [parse_zone(t)] is missing!\n" - var/list/msg = list() var/temp = getBruteLoss() if(!(user == src && src.hal_screwyhud == SCREWYHUD_HEALTHY)) //fake healthy if(temp) @@ -90,7 +111,7 @@ if(digitalcamo) . += "[t_He] [t_is] moving [t_his] body in an unnatural and blatantly unsimian manner." - if(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) + if(SEND_SIGNAL(src, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_ACTIVE)) . += "[t_He] [t_is] visibly tense[CHECK_MOBILITY(src, MOBILITY_STAND) ? "." : ", and [t_is] standing in combative stance."]" var/trait_exam = common_trait_examine() diff --git a/code/modules/mob/living/carbon/give.dm b/code/modules/mob/living/carbon/give.dm deleted file mode 100644 index a712240622..0000000000 --- a/code/modules/mob/living/carbon/give.dm +++ /dev/null @@ -1,58 +0,0 @@ -/mob/living/verb/give() - set category = "IC" - set name = "Give" - set src in oview(1) //Cannot handle giving shit to mobs on your own tile, but it's a small, small loss - - give_item(usr) - -/mob/living/proc/give_item(mob/living/carbon/user) - - -/mob/living/carbon/give_item(mob/living/carbon/user) - if(!istype(user)) - return - if(src.stat == 2 || user.stat == 2 || src.client == null) - return - if(src.handcuffed) - user << "Those hands are cuffed right now." - return //Can't receive items while cuffed - var/obj/item/I - if(user.get_active_held_item() == null) - user << "You don't have anything in your [get_held_index_name(get_held_index_of_item(I))] to give to [src]." - return - I = user.get_active_held_item() - if(!I) - return - if(src == user) //Shouldn't happen - user << "You tried to give yourself \the [I], but you didn't want it." - return - if(get_empty_held_index_for_side()) - switch(alert(src, "[user] wants to give you \a [I]?", , "Yes", "No")) - if("Yes") - if(!I) - return - if(!Adjacent(user)) - user <<"You need to stay still while giving an object." - src << "[user] moved away."//What an asshole - - return - if(user.get_active_held_item() != I) - user << "You need to keep the item in your hand." - src << "[user] has put \the [I] away!" - return - if(!get_empty_held_index_for_side()) - user << "Your hands are full." - user << "Their hands are full." - return - if(!user.dropItemToGround(I)) - src << "[user] can't let go of \the [I]!" - user << "You can't seem to let go of \the [I]." - return - - src.put_in_hands(I) - update_inv_hands() - src.visible_message("[user] handed \the [I] to [src].") - if("No") - src.visible_message("[user] tried to hand \the [I] to [src] but \he didn't want it.") - else - user << "[src]'s hands are full." diff --git a/code/modules/mob/living/carbon/human/damage_procs.dm b/code/modules/mob/living/carbon/human/damage_procs.dm index 9f6a572fc8..651fec8415 100644 --- a/code/modules/mob/living/carbon/human/damage_procs.dm +++ b/code/modules/mob/living/carbon/human/damage_procs.dm @@ -1,5 +1,5 @@ -/mob/living/carbon/human/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE) +/mob/living/carbon/human/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage) // depending on the species, it will run the corresponding apply_damage code there - return dna.species.apply_damage(damage, damagetype, def_zone, blocked, src, forced) + return dna.species.apply_damage(damage, damagetype, def_zone, blocked, src, forced, spread_damage) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index cb21534d25..d32184edb5 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -159,7 +159,10 @@ disabled += BP missing -= BP.body_zone for(var/obj/item/I in BP.embedded_objects) - msg += "[t_He] [t_has] \a [icon2html(I, user)] [I] embedded in [t_his] [BP.name]!\n" + if(I.isEmbedHarmless()) + msg += "[t_He] [t_has] \a [icon2html(I, user)] [I] stuck to [t_his] [BP.name]!\n" + else + msg += "[t_He] [t_has] \a [icon2html(I, user)] [I] embedded in [t_his] [BP.name]!\n" for(var/X in disabled) var/obj/item/bodypart/BP = X diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index ea91a90ee9..a2d53f6f0a 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -26,6 +26,7 @@ physiology = new() AddComponent(/datum/component/personal_crafting) + AddComponent(/datum/component/footstep, FOOTSTEP_MOB_HUMAN, 1, 2) . = ..() if(CONFIG_GET(flag/disable_stambuffer)) @@ -38,6 +39,7 @@ . = ..() if(!CONFIG_GET(flag/disable_human_mood)) AddComponent(/datum/component/mood) + AddComponent(/datum/component/combat_mode) AddElement(/datum/element/flavor_text/carbon, _name = "Flavor Text", _save_key = "flavor_text") AddElement(/datum/element/flavor_text, "", "Temporary Flavor Text", "This should be used only for things pertaining to the current round!") AddElement(/datum/element/flavor_text, _name = "OOC Notes", _addendum = "Put information on ERP/vore/lewd-related preferences here. THIS SHOULD NOT CONTAIN REGULAR FLAVORTEXT!!", _always_show = TRUE, _save_key = "ooc_notes", _examine_no_preview = TRUE) @@ -150,8 +152,12 @@ dat += " " - dat += "Exosuit:[(wear_suit && !(wear_suit.item_flags & ABSTRACT)) ? wear_suit : "Empty"]" + dat += "Exosuit:[(wear_suit && !(wear_suit.item_flags & ABSTRACT)) ? wear_suit : "Empty"]" if(wear_suit) + if(istype(wear_suit, /obj/item/clothing/suit/space/hardsuit)) + var/hardsuit_head = head && istype(head, /obj/item/clothing/head/helmet/space/hardsuit) + dat += " [hardsuit_head ? "Retract Helmet" : "Extend Helmet"]" + dat += "" dat += " ↳Suit Storage:[(s_store && !(s_store.item_flags & ABSTRACT)) ? s_store : "Empty"]" if(has_breathable_mask && istype(s_store, /obj/item/tank)) dat += " [internal ? "Disable Internals" : "Set Internals"]" @@ -218,30 +224,30 @@ var/obj/item/I = locate(href_list["embedded_object"]) in L.embedded_objects if(!I || I.loc != src) //no item, no limb, or item is not in limb or in the person anymore return - var/time_taken = I.embedding.embedded_unsafe_removal_time/I.w_class //Citadel Change from * to / - usr.visible_message("[usr] attempts to remove [I] from [usr.p_their()] [L.name].","You attempt to remove [I] from your [L.name]... (It will take [DisplayTimeText(time_taken)].)") - if(do_after(usr, time_taken, needhand = 1, target = src)) - remove_embedded_unsafe(L, I, usr) - /* CITADEL EDIT: remove_embedded_unsafe replaces this code - if(!I || !L || I.loc != src || !(I in L.embedded_objects)) - return - L.embedded_objects -= I - L.receive_damage(I.embedding.embedded_unsafe_removal_pain_multiplier*I.w_class)//It hurts to rip it out, get surgery you dingus. - I.forceMove(get_turf(src)) - usr.put_in_hands(I) - usr.emote("scream") - usr.visible_message("[usr] successfully rips [I] out of [usr.p_their()] [L.name]!","You successfully remove [I] from your [L.name].") - if(!has_embedded_objects()) - clear_alert("embeddedobject") - SEND_SIGNAL(usr, COMSIG_CLEAR_MOOD_EVENT, "embedded") */ + SEND_SIGNAL(src, COMSIG_CARBON_EMBED_RIP, I, L) + return + if(href_list["toggle_helmet"]) + if(!istype(head, /obj/item/clothing/head/helmet/space/hardsuit)) + return + var/obj/item/clothing/head/helmet/space/hardsuit/hardsuit_head = head + visible_message("[usr] tries to [hardsuit_head ? "retract" : "extend"] [src]'s helmet.", \ + "[usr] tries to [hardsuit_head ? "retract" : "extend"] [src]'s helmet.", \ + target = usr, target_message = "You try to [hardsuit_head ? "retract" : "extend"] [src]'s helmet.") + if(!do_mob(usr, src, hardsuit_head ? head.strip_delay : POCKET_STRIP_DELAY)) + return + if(!istype(wear_suit, /obj/item/clothing/suit/space/hardsuit) || (hardsuit_head ? (!head || head != hardsuit_head) : head)) + return + var/obj/item/clothing/suit/space/hardsuit/hardsuit = wear_suit //This should be an hardsuit given all our checks + if(hardsuit.ToggleHelmet(FALSE)) + visible_message("[usr] [hardsuit_head ? "retract" : "extend"] [src]'s helmet", \ + "[usr] [hardsuit_head ? "retract" : "extend"] [src]'s helmet", \ + target = usr, target_message = "You [hardsuit_head ? "retract" : "extend"] [src]'s helmet.") return - if(href_list["item"]) var/slot = text2num(href_list["item"]) if(slot in check_obscured_slots()) to_chat(usr, "You can't reach that! Something is covering it.") return - if(href_list["pockets"]) var/strip_mod = 1 var/strip_silence = FALSE @@ -524,33 +530,15 @@ // Might need re-wording. to_chat(user, "There is no exposed flesh or thin material [above_neck(target_zone) ? "on [p_their()] head" : "on [p_their()] body"].") -/mob/living/carbon/human/proc/check_obscured_slots() - var/list/obscured = list() - +/mob/living/carbon/human/check_obscured_slots() + . = ..() if(wear_suit) if(wear_suit.flags_inv & HIDEGLOVES) - obscured |= SLOT_GLOVES + LAZYOR(., SLOT_GLOVES) if(wear_suit.flags_inv & HIDEJUMPSUIT) - obscured |= SLOT_W_UNIFORM + LAZYOR(., SLOT_W_UNIFORM) if(wear_suit.flags_inv & HIDESHOES) - obscured |= SLOT_SHOES - - if(head) - if(head.flags_inv & HIDEMASK) - obscured |= SLOT_WEAR_MASK - if(head.flags_inv & HIDEEYES) - obscured |= SLOT_GLASSES - if(head.flags_inv & HIDEEARS) - obscured |= SLOT_EARS - - if(wear_mask) - if(wear_mask.flags_inv & HIDEEYES) - obscured |= SLOT_GLASSES - - if(obscured.len) - return obscured - else - return null + LAZYOR(., SLOT_SHOES) /mob/living/carbon/human/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) if(judgement_criteria & JUDGE_EMAGGED) @@ -995,7 +983,7 @@ if(target.incapacitated(FALSE, TRUE) || incapacitated(FALSE, TRUE)) target.visible_message("[target] can't hang onto [src]!") return - buckle_mob(target, TRUE, TRUE, FALSE, 0, 2, FALSE) + buckle_mob(target, TRUE, TRUE, FALSE, 1, 2, FALSE) else visible_message("[target] fails to climb onto [src]!") else diff --git a/code/modules/mob/living/carbon/human/human_block.dm b/code/modules/mob/living/carbon/human/human_block.dm index 8fe0376a08..4ba7e95564 100644 --- a/code/modules/mob/living/carbon/human/human_block.dm +++ b/code/modules/mob/living/carbon/human/human_block.dm @@ -1,8 +1,11 @@ /mob/living/carbon/human/get_blocking_items() . = ..() if(wear_suit) - . |= wear_suit + if(!.[wear_suit]) + .[wear_suit] = wear_suit.block_priority if(w_uniform) - . |= w_uniform + if(!.[w_uniform]) + .[w_uniform] = w_uniform.block_priority if(wear_neck) - . |= wear_neck + if(!.[wear_neck]) + .[wear_neck] = wear_neck.block_priority diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 856c57687f..63296021ff 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -52,11 +52,6 @@ return martial_art_result return ..() -/mob/living/carbon/human/can_embed(obj/item/I) - if(I.get_sharpness() || is_pointed(I) || is_type_in_typecache(I, GLOB.can_embed_types)) - return TRUE - return FALSE - /mob/living/carbon/human/proc/check_martial_melee_block() if(mind) if(mind.martial_art && prob(mind.martial_art.block_chance) && mind.martial_art.can_use(src) && in_throw_mode && !incapacitated(FALSE, TRUE)) @@ -78,7 +73,7 @@ ..() -/mob/living/carbon/human/attacked_by(obj/item/I, mob/living/user) +/mob/living/carbon/human/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1) if(!I || !user) return 0 @@ -95,18 +90,22 @@ SSblackbox.record_feedback("tally", "zone_targeted", 1, target_area) // the attacked_by code varies among species - return dna.species.spec_attacked_by(I, user, affecting, a_intent, src) + return dna.species.spec_attacked_by(I, user, affecting, a_intent, src, attackchain_flags, damage_multiplier) /mob/living/carbon/human/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE) if(user.a_intent == INTENT_HARM) . = ..(user, TRUE) if(.) return - var/hulk_verb = pick("smash","pummel") + var/hulk_verb_continous = "smashes" + var/hulk_verb_simple = "smash" + if(prob(50)) + hulk_verb_continous = "pummels" + hulk_verb_simple = "pummel" playsound(loc, user.dna.species.attack_sound, 25, 1, -1) - var/message = "[user] has [hulk_verb]ed [src]!" - visible_message("[message]", \ - "[message]") + visible_message("[user] [hulk_verb_continous] [src]!", \ + "[user] [hulk_verb_continous] you!", null, COMBAT_MESSAGE_RANGE, null, user, + "You [hulk_verb_simple] [src]!") adjustBruteLoss(15) return 1 @@ -130,14 +129,16 @@ var/obj/item/I = get_active_held_item() if(I && dropItemToGround(I)) playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) - visible_message("[M] disarmed [src]!", \ - "[M] disarmed [src]!") + visible_message("[M] has disarmed [src]!", \ + "[M] has disarmed you!", null, COMBAT_MESSAGE_RANGE, null, M, + "You have disarmed [src]!") else if(!M.client || prob(5)) // only natural monkeys get to stun reliably, (they only do it occasionaly) playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) DefaultCombatKnockdown(100) log_combat(M, src, "tackled") visible_message("[M] has tackled down [src]!", \ - "[M] has tackled down [src]!") + "[M] has tackled you down!", null, COMBAT_MESSAGE_RANGE, null, M, + "You have tackled [src] down!") if(M.limb_destroyer) dismembering_strike(M, affecting.body_zone) @@ -159,7 +160,8 @@ if(!damage) playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1, -1) visible_message("[M] has lunged at [src]!", \ - "[M] has lunged at [src]!") + "[M] has lunged at you!", target = M, \ + target_message = "You have lunged at [src]!") return 0 var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected)) if(!affecting) @@ -168,7 +170,8 @@ playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) visible_message("[M] has slashed at [src]!", \ - "[M] has slashed at [src]!") + "[M] has slashed at you!", target = M, \ + target_message = "You have slashed at [src]!") log_combat(M, src, "attacked") if(!dismembering_strike(M, M.zone_selected)) //Dismemberment successful return 1 @@ -178,14 +181,16 @@ var/obj/item/I = get_active_held_item() if(I && dropItemToGround(I)) playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) - visible_message("[M] disarmed [src]!", \ - "[M] disarmed [src]!") + visible_message("[M] has disarmed [src]!", \ + "[M] has disarmed you!", target = M, \ + target_message = "You have disarmed [src]!") else playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) DefaultCombatKnockdown(M.meleeKnockdownPower) log_combat(M, src, "tackled") visible_message("[M] has tackled down [src]!", \ - "[M] has tackled down [src]!") + "[M] has tackled you down!", target = M, \ + target_message = "You have tackled down [src]!") /mob/living/carbon/human/attack_larva(mob/living/carbon/alien/larva/L) . = ..() @@ -204,7 +209,7 @@ /mob/living/carbon/human/attack_animal(mob/living/simple_animal/M) . = ..() if(.) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + var/damage = . var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)) if(!dam_zone) //Dismemberment successful return TRUE @@ -268,7 +273,8 @@ updatehealth() visible_message("[M.name] has hit [src]!", \ - "[M.name] has hit [src]!", null, COMBAT_MESSAGE_RANGE) + "[M.name] has hit you!", null, COMBAT_MESSAGE_RANGE, target = M, + target_message = "You have hit [src]!") log_combat(M.occupant, src, "attacked", M, "(INTENT: [uppertext(M.occupant.a_intent)]) (DAMTYPE: [uppertext(M.damtype)])") else @@ -348,40 +354,34 @@ apply_damage(5, BRUTE, affecting, run_armor_check(affecting, "melee")) -//Added a safety check in case you want to shock a human mob directly through electrocute_act. +///Calculates the siemens coeff based on clothing and species, can also restart hearts. /mob/living/carbon/human/electrocute_act(shock_damage, source, siemens_coeff = 1, flags = NONE) - if(flags & SHOCK_TESLA) - var/total_coeff = 1 - if(gloves) - var/obj/item/clothing/gloves/G = gloves - if(G.siemens_coefficient <= 0) - total_coeff -= 0.5 + //Calculates the siemens coeff based on clothing. Completely ignores the arguments + if(flags & SHOCK_TESLA) //I hate this entire block. This gets the siemens_coeff for tesla shocks + if(gloves && gloves.siemens_coefficient <= 0) + siemens_coeff -= 0.5 if(wear_suit) - var/obj/item/clothing/suit/S = wear_suit - if(S.siemens_coefficient <= 0) - total_coeff -= 0.95 - else if(S.siemens_coefficient == (-1)) - total_coeff -= 1 - siemens_coeff = total_coeff - if(flags_1 & TESLA_IGNORE_1) - siemens_coeff = 0 - else if(!(flags & SHOCK_NOGLOVES)) - var/gloves_siemens_coeff = 1 + if(wear_suit.siemens_coefficient == -1) + siemens_coeff -= 1 + else if(wear_suit.siemens_coefficient <= 0) + siemens_coeff -= 0.95 + siemens_coeff = max(siemens_coeff, 0) + else if(!(flags & SHOCK_NOGLOVES)) //This gets the siemens_coeff for all non tesla shocks if(gloves) - var/obj/item/clothing/gloves/G = gloves - gloves_siemens_coeff = G.siemens_coefficient - siemens_coeff = gloves_siemens_coeff - if(undergoing_cardiac_arrest() && !(flags & SHOCK_ILLUSION)) - if(shock_damage * siemens_coeff >= 1 && prob(25)) - var/obj/item/organ/heart/heart = getorganslot(ORGAN_SLOT_HEART) - heart.beating = TRUE - if(stat == CONSCIOUS) - to_chat(src, "You feel your heart beating again!") + siemens_coeff *= gloves.siemens_coefficient siemens_coeff *= physiology.siemens_coeff . = ..() - if(.) - electrocution_animation(40) - + //Don't go further if the shock was blocked/too weak. + if(!.) + return + //Note we both check that the user is in cardiac arrest and can actually heartattack + //If they can't, they're missing their heart and this would runtime + if(undergoing_cardiac_arrest() && can_heartattack() && !(flags & SHOCK_ILLUSION)) + if(shock_damage * siemens_coeff >= 1 && prob(25)) + var/obj/item/organ/heart/heart = getorganslot(ORGAN_SLOT_HEART) + if(heart.Restart() && stat == CONSCIOUS) + to_chat(src, "You feel your heart beating again!") + electrocution_animation(40) /mob/living/carbon/human/emp_act(severity) . = ..() @@ -615,7 +615,10 @@ to_send += "\t Your [LB.name] [HAS_TRAIT(src, TRAIT_SELF_AWARE) ? "has" : "is"] [status].\n" for(var/obj/item/I in LB.embedded_objects) - to_send += "\t There is \a [I] embedded in your [LB.name]!\n" + if(I.isEmbedHarmless()) + to_chat(src, "\t There is \a [I] stuck to your [LB.name]!") + else + to_chat(src, "\t There is \a [I] embedded in your [LB.name]!") for(var/t in missing) to_send += "Your [parse_zone(t)] is missing!\n" diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index e0eec0e599..e7be540eb9 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -9,6 +9,7 @@ /// Enable stamina combat combat_flags = COMBAT_FLAGS_DEFAULT status_flags = CANSTUN|CANKNOCKDOWN|CANUNCONSCIOUS|CANPUSH|CANSTAGGER + has_field_of_vision = FALSE //Handled by species. blocks_emissive = EMISSIVE_BLOCK_UNIQUE diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 733f792109..0579c23120 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -16,8 +16,6 @@ if(!SSI) SSI = CONFIG_GET_ENTRY(number/movedelay/sprint_speed_increase) . -= SSI.config_entry_value - if(wrongdirmovedelay) - . += 1 if (m_intent == MOVE_INTENT_WALK && HAS_TRAIT(src, TRAIT_SPEEDY_STEP)) . -= 1.5 @@ -79,7 +77,7 @@ var/turf/T = get_turf(src) if(S.bloody_shoes && S.bloody_shoes[S.blood_state]) var/obj/effect/decal/cleanable/blood/footprints/oldFP = locate(/obj/effect/decal/cleanable/blood/footprints) in T - if(oldFP && (oldFP.blood_state == S.blood_state && oldFP.color == bloodtype_to_color(S.last_bloodtype))) + if(oldFP && (oldFP.blood_state == S.blood_state && oldFP.color == S.last_blood_color)) return S.bloody_shoes[S.blood_state] = max(0, S.bloody_shoes[S.blood_state] - BLOOD_LOSS_PER_STEP) var/obj/effect/decal/cleanable/blood/footprints/FP = new /obj/effect/decal/cleanable/blood/footprints(T) @@ -87,7 +85,11 @@ FP.entered_dirs |= dir FP.bloodiness = S.bloody_shoes[S.blood_state] if(S.last_bloodtype) - FP.blood_DNA += list(S.last_blood_DNA = S.last_bloodtype) + FP.blood_DNA[S.last_blood_DNA] = S.last_bloodtype + if(!FP.blood_DNA["color"]) + FP.blood_DNA["color"] = S.last_blood_color + else + FP.blood_DNA["color"] = BlendRGB(FP.blood_DNA["color"], S.last_blood_color) FP.update_icon() update_inv_shoes() //End bloody footprints diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 580b0aaaf0..a7593ca0cb 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -1,5 +1,32 @@ -/mob/living/carbon/human/can_equip(obj/item/I, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE) - return dna.species.can_equip(I, slot, disable_warning, src, bypass_equip_delay_self) +/mob/living/carbon/human/can_equip(obj/item/I, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE, clothing_check = FALSE, list/return_warning) + return dna.species.can_equip(I, slot, disable_warning, src, bypass_equip_delay_self, clothing_check, return_warning) + +/mob/living/carbon/human/get_equipped_items(include_pockets = FALSE) + var/list/items = ..() + if(belt) + items += belt + if(ears) + items += ears + if(glasses) + items += glasses + if(gloves) + items += gloves + if(shoes) + items += shoes + if(wear_id) + items += wear_id + if(wear_suit) + items += wear_suit + if(w_uniform) + items += w_uniform + if(include_pockets) + if(l_store) + items += l_store + if(r_store) + items += r_store + if(s_store) + items += s_store + return items // Return the item currently in the slot ID /mob/living/carbon/human/get_item_by_slot(slot_id) @@ -277,3 +304,65 @@ qdel(slot) for(var/obj/item/I in held_items) qdel(I) + +/mob/living/carbon/human/proc/smart_equipbag() // take most recent item out of bag or place held item in bag + if(incapacitated()) + return + var/obj/item/thing = get_active_held_item() + var/obj/item/equipped_back = get_item_by_slot(SLOT_BACK) + if(!equipped_back) // We also let you equip a backpack like this + if(!thing) + to_chat(src, "You have no backpack to take something out of!") + return + if(equip_to_slot_if_possible(thing, ITEM_SLOT_BACK)) + update_inv_hands() + return + if(!SEND_SIGNAL(equipped_back, COMSIG_CONTAINS_STORAGE)) // not a storage item + if(!thing) + equipped_back.attack_hand(src) + else + to_chat(src, "You can't fit anything in!") + return + if(thing) // put thing in backpack + if(!SEND_SIGNAL(equipped_back, COMSIG_TRY_STORAGE_INSERT, thing, src)) + to_chat(src, "You can't fit anything in!") + return + if(!equipped_back.contents.len) // nothing to take out + to_chat(src, "There's nothing in your backpack to take out!") + return + var/obj/item/stored = equipped_back.contents[equipped_back.contents.len] + if(!stored || stored.on_found(src)) + return + stored.attack_hand(src) // take out thing from backpack + return + +/mob/living/carbon/human/proc/smart_equipbelt() // put held thing in belt or take most recent item out of belt + if(incapacitated()) + return + var/obj/item/thing = get_active_held_item() + var/obj/item/equipped_belt = get_item_by_slot(SLOT_BELT) + if(!equipped_belt) // We also let you equip a belt like this + if(!thing) + to_chat(src, "You have no belt to take something out of!") + return + if(equip_to_slot_if_possible(thing, ITEM_SLOT_BELT)) + update_inv_hands() + return + if(!SEND_SIGNAL(equipped_belt, COMSIG_CONTAINS_STORAGE)) // not a storage item + if(!thing) + equipped_belt.attack_hand(src) + else + to_chat(src, "You can't fit anything in!") + return + if(thing) // put thing in belt + if(!SEND_SIGNAL(equipped_belt, COMSIG_TRY_STORAGE_INSERT, thing, src)) + to_chat(src, "You can't fit anything in!") + return + if(!equipped_belt.contents.len) // nothing to take out + to_chat(src, "There's nothing in your belt to take out!") + return + var/obj/item/stored = equipped_belt.contents[equipped_belt.contents.len] + if(!stored || stored.on_found(src)) + return + stored.attack_hand(src) // take out thing from belt + return diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index eb22934a2b..56ab1f1b10 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -18,36 +18,21 @@ #define THERMAL_PROTECTION_HAND_LEFT 0.025 #define THERMAL_PROTECTION_HAND_RIGHT 0.025 -/mob/living/carbon/human/Life(seconds, times_fired) - set invisibility = 0 - if (notransform) +/mob/living/carbon/human/BiologicalLife(seconds, times_fired) + if(!(. = ..())) return + handle_active_genes() + //heart attack stuff + handle_heart() + dna.species.spec_life(src) // for mutantraces + return (stat != DEAD) && !QDELETED(src) - . = ..() - - if (QDELETED(src)) - return 0 - - if(.) //not dead - handle_active_genes() - - if(stat != DEAD) - //heart attack stuff - handle_heart() - - if(stat != DEAD) - //Stuff jammed in your limbs hurts - handle_embedded_objects() - +/mob/living/carbon/human/PhysicalLife(seconds, times_fired) + if(!(. = ..())) + return //Update our name based on whether our face is obscured/disfigured name = get_visible_name() - dna.species.spec_life(src) // for mutantraces - - if(stat != DEAD) - return 1 - - /mob/living/carbon/human/calculate_affecting_pressure(pressure) var/headless = !get_bodypart(BODY_ZONE_HEAD) //should the mob be perennially headless (see dullahans), we only take the suit into account, so they can into space. if (wear_suit && istype(wear_suit, /obj/item/clothing) && (headless || (head && istype(head, /obj/item/clothing)))) @@ -303,25 +288,6 @@ return TRUE return ..() - -/mob/living/carbon/human/proc/handle_embedded_objects() - for(var/X in bodyparts) - var/obj/item/bodypart/BP = X - for(var/obj/item/I in BP.embedded_objects) - if(prob(I.embedding.embedded_pain_chance)) - BP.receive_damage(I.w_class*I.embedding.embedded_pain_multiplier) - to_chat(src, "[I] embedded in your [BP.name] hurts!") - - if(prob(I.embedding.embedded_fall_chance)) - BP.receive_damage(I.w_class*I.embedding.embedded_fall_pain_multiplier) - BP.embedded_objects -= I - I.forceMove(drop_location()) - I.unembedded() - visible_message("[I] falls out of [name]'s [BP.name]!","[I] falls out of your [BP.name]!") - if(!has_embedded_objects()) - clear_alert("embeddedobject") - SEND_SIGNAL(src, COMSIG_CLEAR_MOOD_EVENT, "embedded") - /mob/living/carbon/human/proc/handle_active_genes() if(HAS_TRAIT(src, TRAIT_MUTATION_STASIS)) return diff --git a/code/modules/mob/living/carbon/human/login.dm b/code/modules/mob/living/carbon/human/login.dm new file mode 100644 index 0000000000..a89921143a --- /dev/null +++ b/code/modules/mob/living/carbon/human/login.dm @@ -0,0 +1,4 @@ +/mob/living/carbon/human/Login() + ..() + if(dna?.species?.has_field_of_vision && CONFIG_GET(flag/use_field_of_vision)) + LoadComponent(/datum/component/field_of_vision, field_of_vision_type) diff --git a/code/modules/mob/living/carbon/human/physiology.dm b/code/modules/mob/living/carbon/human/physiology.dm index 4d411deb53..fd0df0bde9 100644 --- a/code/modules/mob/living/carbon/human/physiology.dm +++ b/code/modules/mob/living/carbon/human/physiology.dm @@ -25,5 +25,8 @@ var/do_after_speed = 1 //Speed mod for do_after. Lower is better. If temporarily adjusting, please only modify using *= and /=, so you don't interrupt other calculations. + /// footstep type override for both shoeless and not footstep sounds. + var/footstep_type + /datum/physiology/New() armor = new diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 7444216f4b..efff888c41 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -10,6 +10,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/default_color = "#FFF" // if alien colors are disabled, this is the color that will be used by that race var/sexes = 1 // whether or not the race has sexual characteristics. at the moment this is only 0 for skeletons and shadows + var/has_field_of_vision = TRUE //Species Icon Drawing Offsets - Pixel X, Pixel Y, Aka X = Horizontal and Y = Vertical, from bottom left corner var/list/offset_features = list( @@ -38,6 +39,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/use_skintones = NO_SKINTONES // does it use skintones or not? (spoiler alert this is only used by humans) var/exotic_blood = "" // If your race wants to bleed something other than bog standard blood, change this to reagent id. var/exotic_bloodtype = "" //If your race uses a non standard bloodtype (A+, O-, AB-, etc) + var/exotic_blood_color = BLOOD_COLOR_HUMAN //assume human as the default blood colour, override this default by species subtypes var/meat = /obj/item/reagent_containers/food/snacks/meat/slab/human //What the species drops on gibbing var/list/gib_types = list(/obj/effect/gibspawner/human, /obj/effect/gibspawner/human/bodypartless) var/skinned_type @@ -104,6 +106,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/whitelist = list() //List the ckeys that can use this species, if it's whitelisted.: list("John Doe", "poopface666", "SeeALiggerPullTheTrigger") Spaces & capitalization can be included or ignored entirely for each key as it checks for both. var/icon_limbs //Overrides the icon used for the limbs of this species. Mainly for downstream, and also because hardcoded icons disgust me. Implemented and maintained as a favor in return for a downstream's implementation of synths. + /// Our default override for typing indicator state + var/typing_indicator_state + /////////// // PROCS // /////////// @@ -328,6 +333,24 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(mutant_bodyparts["meat_type"]) //I can't believe it's come to the meat H.type_of_meat = GLOB.meat_types[H.dna.features["meat_type"]] + if(H.physiology) + if(mutant_bodyparts["taur"]) + var/datum/sprite_accessory/taur/T = GLOB.taur_list[H.dna.features["taur"]] + switch(T?.taur_mode) + if(STYLE_HOOF_TAURIC) + H.physiology.footstep_type = FOOTSTEP_MOB_SHOE + if(STYLE_PAW_TAURIC) + H.physiology.footstep_type = FOOTSTEP_MOB_CLAW + if(STYLE_SNEK_TAURIC) + H.physiology.footstep_type = FOOTSTEP_MOB_CRAWL + else + H.physiology.footstep_type = null + else + H.physiology.footstep_type = null + + if(H.client && has_field_of_vision && CONFIG_GET(flag/use_field_of_vision)) + H.LoadComponent(/datum/component/field_of_vision, H.field_of_vision_type) + C.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/species, TRUE, multiplicative_slowdown = speedmod) SEND_SIGNAL(C, COMSIG_SPECIES_GAIN, src, old_species) @@ -361,6 +384,11 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) C.dna.mutation_index[location] = new_species.inert_mutation C.dna.mutation_index[new_species.inert_mutation] = create_sequence(new_species.inert_mutation) + if(!new_species.has_field_of_vision && has_field_of_vision && ishuman(C) && CONFIG_GET(flag/use_field_of_vision)) + var/datum/component/field_of_vision/F = C.GetComponent(/datum/component/field_of_vision) + if(F) + qdel(F) + SEND_SIGNAL(C, COMSIG_SPECIES_LOSS, src) /datum/species/proc/handle_hair(mob/living/carbon/human/H, forced_colour) @@ -601,6 +629,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) H.remove_overlay(BODY_ADJ_LAYER) H.remove_overlay(BODY_ADJ_UPPER_LAYER) H.remove_overlay(BODY_FRONT_LAYER) + H.remove_overlay(HORNS_LAYER) if(!mutant_bodyparts) return @@ -812,8 +841,13 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(!S.mutant_part_string) dna_feature_as_text_string[S] = bodypart - var/static/list/layer_text = list("[BODY_BEHIND_LAYER]" = "BEHIND", "[BODY_ADJ_LAYER]" = "ADJ", \ - "[BODY_ADJ_UPPER_LAYER]" = "ADJUP", "[BODY_FRONT_LAYER]" = "FRONT") + var/static/list/layer_text = list( + "[BODY_BEHIND_LAYER]" = "BEHIND", + "[BODY_ADJ_LAYER]" = "ADJ", + "[BODY_ADJ_UPPER_LAYER]" = "ADJUP", + "[BODY_FRONT_LAYER]" = "FRONT", + "[HORNS_LAYER]" = "HORNS", + ) var/g = (H.dna.features["body_model"] == FEMALE) ? "f" : "m" var/list/colorlist = list() @@ -993,6 +1027,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) H.apply_overlay(BODY_ADJ_LAYER) H.apply_overlay(BODY_ADJ_UPPER_LAYER) H.apply_overlay(BODY_FRONT_LAYER) + H.apply_overlay(HORNS_LAYER) /* @@ -1031,11 +1066,16 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) // handles the equipping of species-specific gear return -/datum/species/proc/can_equip(obj/item/I, slot, disable_warning, mob/living/carbon/human/H, bypass_equip_delay_self = FALSE) +/datum/species/proc/can_equip(obj/item/I, slot, disable_warning, mob/living/carbon/human/H, bypass_equip_delay_self = FALSE, clothing_check = FALSE, list/return_warning) if(slot in no_equip) if(!I.species_exception || !is_type_in_list(src, I.species_exception)) return FALSE + if(clothing_check && (slot in H.check_obscured_slots())) + if(return_warning) + return_warning[1] = "You are unable to equip that with your current garments in the way!" + return FALSE + var/num_arms = H.get_num_arms(FALSE) var/num_legs = H.get_num_legs(FALSE) @@ -1097,8 +1137,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(!CHECK_BITFIELD(I.item_flags, NO_UNIFORM_REQUIRED)) var/obj/item/bodypart/O = H.get_bodypart(BODY_ZONE_CHEST) if(!H.w_uniform && !nojumpsuit && (!O || O.status != BODYPART_ROBOTIC)) - if(!disable_warning) - to_chat(H, "You need a jumpsuit before you can attach this [I.name]!") + if(return_warning) + return_warning[1] = "You need a jumpsuit before you can attach this [I.name]!" return FALSE if(!(I.slot_flags & ITEM_SLOT_BELT)) return @@ -1139,8 +1179,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(!CHECK_BITFIELD(I.item_flags, NO_UNIFORM_REQUIRED)) var/obj/item/bodypart/O = H.get_bodypart(BODY_ZONE_CHEST) if(!H.w_uniform && !nojumpsuit && (!O || O.status != BODYPART_ROBOTIC)) - if(!disable_warning) - to_chat(H, "You need a jumpsuit before you can attach this [I.name]!") + if(return_warning) + return_warning[1] = "You need a jumpsuit before you can attach this [I.name]!" return FALSE if( !(I.slot_flags & ITEM_SLOT_ID) ) return FALSE @@ -1154,8 +1194,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/obj/item/bodypart/O = H.get_bodypart(BODY_ZONE_L_LEG) if(!H.w_uniform && !nojumpsuit && (!O || O.status != BODYPART_ROBOTIC)) - if(!disable_warning) - to_chat(H, "You need a jumpsuit before you can attach this [I.name]!") + if(return_warning) + return_warning[1] = "You need a jumpsuit before you can attach this [I.name]!" return FALSE if(I.slot_flags & ITEM_SLOT_DENYPOCKET) return FALSE @@ -1170,8 +1210,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/obj/item/bodypart/O = H.get_bodypart(BODY_ZONE_R_LEG) if(!H.w_uniform && !nojumpsuit && (!O || O.status != BODYPART_ROBOTIC)) - if(!disable_warning) - to_chat(H, "You need a jumpsuit before you can attach this [I.name]!") + if(return_warning) + return_warning[1] = "You need a jumpsuit before you can attach this [I.name]!" return FALSE if(I.slot_flags & ITEM_SLOT_DENYPOCKET) return FALSE @@ -1184,16 +1224,16 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(H.s_store) return FALSE if(!H.wear_suit) - if(!disable_warning) - to_chat(H, "You need a suit before you can attach this [I.name]!") + if(return_warning) + return_warning[1] = "You need a suit before you can attach this [I.name]!" return FALSE if(!H.wear_suit.allowed) - if(!disable_warning) - to_chat(H, "You somehow have a suit with no defined allowed items for suit storage, stop that.") + if(return_warning) + return_warning[1] = "You somehow have a suit with no defined allowed items for suit storage, stop that." return FALSE if(I.w_class > WEIGHT_CLASS_BULKY) - if(!disable_warning) - to_chat(H, "The [I.name] is too big to attach.") //should be src? + if(return_warning) + return_warning[1] = "The [I.name] is too big to attach." return FALSE if( istype(I, /obj/item/pda) || istype(I, /obj/item/pen) || is_type_in_list(I, H.wear_suit.allowed) ) return TRUE @@ -1395,7 +1435,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) /datum/species/proc/grab(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style) if(target.check_martial_melee_block()) - target.visible_message("[target] blocks [user]'s grab attempt!") + target.visible_message("[target] blocks [user]'s grab attempt!", target = user, \ + target_message = "[target] blocks your grab attempt!") return 0 if(attacker_style && attacker_style.grab_act(user,target)) return 1 @@ -1411,7 +1452,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) to_chat(user, "You're too exhausted.") //CITADEL CHANGE - ditto return FALSE //CITADEL CHANGE - ditto if(target.check_martial_melee_block()) - target.visible_message("[target] blocks [user]'s attack!") + target.visible_message("[target] blocks [user]'s attack!", target = user, \ + target_message = "[target] blocks your attack!") return FALSE if(HAS_TRAIT(user, TRAIT_PUGILIST))//CITADEL CHANGE - makes punching cause staminaloss but funny martial artist types get a discount @@ -1444,11 +1486,11 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/punchedbrute = target.getBruteLoss() //CITADEL CHANGES - makes resting and disabled combat mode reduce punch damage, makes being out of combat mode result in you taking more damage - if(!(target.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + if(!SEND_SIGNAL(target, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_INACTIVE)) damage *= 1.5 if(!CHECK_MOBILITY(user, MOBILITY_STAND)) damage *= 0.5 - if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + if(SEND_SIGNAL(user, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_INACTIVE)) damage *= 0.25 //END OF CITADEL CHANGES @@ -1456,18 +1498,18 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/miss_chance = 100//calculate the odds that a punch misses entirely. considers stamina and brute damage of the puncher. punches miss by default to prevent weird cases if(user.dna.species.punchdamagelow) - if(HAS_TRAIT(user, TRAIT_PUGILIST)) //pugilists have a flat 10% miss chance - miss_chance = 10 if(atk_verb == ATTACK_EFFECT_KICK) //kicks never miss (provided your species deals more than 0 damage) miss_chance = 0 + else if(HAS_TRAIT(user, TRAIT_PUGILIST)) //pugilists have a flat 10% miss chance + miss_chance = 10 else - miss_chance = min(10 + ((puncherstam + puncherbrute)*0.5), 100) //probability of miss has a base of 10, and modified based on half brute total. Capped at max 100 to prevent weirdness in prob() + miss_chance = min(10 + max(puncherstam * 0.5, puncherbrute * 0.5), 100) //probability of miss has a base of 10, and modified based on half brute total. Capped at max 100 to prevent weirdness in prob() if(!damage || !affecting || prob(miss_chance))//future-proofing for species that have 0 damage/weird cases where no zone is targeted playsound(target.loc, user.dna.species.miss_sound, 25, TRUE, -1) target.visible_message("[user]'s [atk_verb] misses [target]!", \ - "You avoid [user]'s [atk_verb]!", "You hear a swoosh!", COMBAT_MESSAGE_RANGE, user) - to_chat(user, "Your [atk_verb] misses [target]!") + "You avoid [user]'s [atk_verb]!", "You hear a swoosh!", null, COMBAT_MESSAGE_RANGE, null, \ + user, "Your [atk_verb] misses [target]!") log_combat(user, target, "attempted to punch") return FALSE @@ -1476,8 +1518,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) playsound(target.loc, user.dna.species.attack_sound, 25, 1, -1) - target.visible_message("[user] has [atk_verb]ed [target]!", \ - "[user] has [atk_verb]ed [target]!", null, COMBAT_MESSAGE_RANGE) + target.visible_message("[user] [atk_verb]s [target]!", \ + "[user] [atk_verb]s you!", null, COMBAT_MESSAGE_RANGE, null, \ + user, "You [atk_verb] [target]!") target.lastattacker = user.real_name target.lastattackerckey = user.ckey @@ -1499,8 +1542,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if((punchedstam > 50) && prob(punchedstam*0.5)) //If our punch victim has been hit above the threshold, and they have more than 50 stamina damage, roll for stun, probability of 1% per 2 stamina damage target.visible_message("[user] knocks [target] down!", \ - "You're knocked down by [user]!", "You hear aggressive shuffling followed by a loud thud!", COMBAT_MESSAGE_RANGE, user) - to_chat(user, "You knock [target] down!") + "You're knocked down by [user]!", + "You hear aggressive shuffling followed by a loud thud!", COMBAT_MESSAGE_RANGE, null, + user, "You knock [target] down!") var/knockdown_duration = 40 + (punchedstam + (punchedbrute*0.5))*0.8 - armor_block target.DefaultCombatKnockdown(knockdown_duration) @@ -1532,7 +1576,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/target_aiming_for_groin = target.zone_selected == "groin" if(target.check_martial_melee_block()) //END EDIT - target.visible_message("[target] blocks [user]'s disarm attempt!") + target.visible_message("[target] blocks [user]'s disarm attempt!", target = user, \ + target_message = "[target] blocks your disarm attempt!") return FALSE if(IS_STAMCRIT(user)) to_chat(user, "You're too exhausted!") @@ -1541,11 +1586,10 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) else if(aim_for_mouth && ( target_on_help || target_restrained || target_aiming_for_mouth)) playsound(target.loc, 'sound/weapons/slap.ogg', 50, 1, -1) - user.visible_message(\ - "\The [user] slaps \the [target] in the face!",\ - "You slap [user == target ? "yourself" : "\the [target]"] in the face! ",\ - "You hear a slap." - ) + target.visible_message(\ + "\The [user] slaps [user == target ? "[user.p_them()]self" : "\the [target]"] in the face!",\ + "[user] slaps you in the face! ",\ + "You hear a slap.", target = user, target_message = "You slap [user == target ? "yourself" : "\the [target]"] in the face! ") user.do_attack_animation(target, ATTACK_EFFECT_FACE_SLAP) user.adjustStaminaLossBuffered(3) if (!HAS_TRAIT(target, TRAIT_PERMABONER)) @@ -1563,11 +1607,11 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if (!HAS_TRAIT(target, TRAIT_PERMABONER)) stop_wagging_tail(target) playsound(target.loc, 'sound/weapons/slap.ogg', 50, 1, -1) - user.visible_message(\ - "\The [user] slaps \the [target]'s ass!",\ - "You slap [user == target ? "your" : "\the [target]'s"] ass!",\ - "You hear a slap." - ) + target.visible_message(\ + "\The [user] slaps [user == target ? "[user.p_their()] own" : "\the [target]'s"] ass!",\ + "[user] slaps your ass! ",\ + "You hear a slap.", target = user, target_message = "You slap [user == target ? "your own" : "\the [target]'s"] ass! ") + return FALSE else @@ -1586,26 +1630,19 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) //var/randomized_zone = ran_zone(user.zone_selected) CIT CHANGE - comments out to prevent compiling errors SEND_SIGNAL(target, COMSIG_HUMAN_DISARM_HIT, user, user.zone_selected) if(target.pulling == user) - target.visible_message("[user] wrestles out of [target]'s grip!") + target.visible_message("[user] wrestles out of [target]'s grip!", \ + "[user] wrestles out of your grip!", target = user, \ + target_message = "You wrestle out of [target]'s grip!") target.stop_pulling() playsound(target, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) log_combat(user, target, "disarmed out of grab from") return - //var/obj/item/bodypart/affecting = target.get_bodypart(randomized_zone) CIT CHANGE - comments this out to prevent compile errors due to the below commented out bit var/randn = rand(1, 100) - /*if(randn <= 25) CITADEL CHANGE - moves disarm push attempts to right click - playsound(target, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - target.visible_message("[user] has pushed [target]!", - "[user] has pushed [target]!", null, COMBAT_MESSAGE_RANGE) - target.apply_effect(40, EFFECT_KNOCKDOWN, target.run_armor_check(affecting, "melee", "Your armor prevents your fall!", "Your armor softens your fall!")) - target.forcesay(GLOB.hit_appends) - log_combat(user, target, "pushed over") - return*/ - if(!(target.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) // CITADEL CHANGE + if(SEND_SIGNAL(target, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_INACTIVE)) // CITADEL CHANGE randn += -10 //CITADEL CHANGE - being out of combat mode makes it easier for you to get disarmed if(!CHECK_MOBILITY(user, MOBILITY_STAND)) //CITADEL CHANGE randn += 100 //CITADEL CHANGE - No kosher disarming if you're resting - if(!(target.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) //CITADEL CHANGE + if(SEND_SIGNAL(user, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_INACTIVE)) //CITADEL CHANGE randn += 25 //CITADEL CHANGE - Makes it harder to disarm outside of combat mode if(user.pulling == target) randn -= 20 //If you have the time to get someone in a grab, you should have a greater chance at snatching the thing in their hand. Will be made completely obsolete by the grab rework but i've got a poor track record for releasing big projects on time so w/e i guess @@ -1617,13 +1654,16 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(randn <= 35)//CIT CHANGE - changes this back to a 35% chance to accomodate for the above being commented out in favor of right-click pushing var/obj/item/I = null if(target.pulling) - target.visible_message("[user] has broken [target]'s grip on [target.pulling]!") + target.visible_message("[user] has broken [target]'s grip on [target.pulling]!", \ + "[user] has broken your grip on [target.pulling]!", target = user, \ + target_message = "You have broken [target]'s grip on [target.pulling]!") target.stop_pulling() else I = target.get_active_held_item() if(target.dropItemToGround(I)) target.visible_message("[user] has disarmed [target]!", \ - "[user] has disarmed [target]!", null, COMBAT_MESSAGE_RANGE) + "[user] has disarmed you!", null, COMBAT_MESSAGE_RANGE, null, \ + user, "You have disarmed [target]!") else I = null playsound(target, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) @@ -1633,7 +1673,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) playsound(target, 'sound/weapons/punchmiss.ogg', 25, 1, -1) target.visible_message("[user] attempted to disarm [target]!", \ - "[user] attemped to disarm [target]!", null, COMBAT_MESSAGE_RANGE) + "[user] attemped to disarm [target]!", null, COMBAT_MESSAGE_RANGE, null, \ + user, "You attempted to disarm [target]!") log_combat(user, target, "attempted to disarm") @@ -1665,12 +1706,14 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if("disarm") disarm(M, H, attacker_style) -/datum/species/proc/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) - var/totitemdamage = H.pre_attacked_by(I, user) +/datum/species/proc/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H, attackchain_flags = NONE, damage_multiplier = 1) + var/totitemdamage = H.pre_attacked_by(I, user) * damage_multiplier // Allows you to put in item-specific reactions based on species if(user != H) - if(H.mob_run_block(I, totitemdamage, "the [I.name]", ATTACK_TYPE_MELEE, I.armour_penetration, user, affecting.body_zone, null) & BLOCK_SUCCESS) + var/list/block_return = list() + if(H.mob_run_block(I, totitemdamage, "the [I.name]", ((attackchain_flags & ATTACKCHAIN_PARRY_COUNTERATTACK)? ATTACK_TYPE_PARRY_COUNTERATTACK : NONE) | ATTACK_TYPE_MELEE, I.armour_penetration, user, affecting.body_zone, block_return) & BLOCK_SUCCESS) return 0 + totitemdamage = block_calculate_resultant_damage(totitemdamage, block_return) if(H.check_martial_melee_block()) H.visible_message("[H] blocks [I]!") return 0 @@ -1685,10 +1728,11 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/armor_block = H.run_armor_check(affecting, "melee", "Your armor has protected your [hit_area].", "Your armor has softened a hit to your [hit_area].",I.armour_penetration) armor_block = min(90,armor_block) //cap damage reduction at 90% var/Iforce = I.force //to avoid runtimes on the forcesay checks at the bottom. Some items might delete themselves if you drop them. (stunning yourself, ninja swords) + var/weakness = H.check_weakness(I, user) apply_damage(totitemdamage * weakness, I.damtype, def_zone, armor_block, H) //CIT CHANGE - replaces I.force with totitemdamage - H.send_item_attack_message(I, user, hit_area) + H.send_item_attack_message(I, user, hit_area, totitemdamage) I.do_stagger_action(H, user, totitemdamage) @@ -1721,7 +1765,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) H.adjustOrganLoss(ORGAN_SLOT_BRAIN, 20) if(H.stat == CONSCIOUS) H.visible_message("[H] has been knocked senseless!", \ - "[H] has been knocked senseless!") + "You have been knocked senseless!") H.confused = max(H.confused, 20) H.adjust_blurriness(10) if(prob(10)) @@ -1779,7 +1823,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) attacker_style = M.mind.martial_art if((M != H) && M.a_intent != INTENT_HELP && (H.mob_run_block(M, 0, "[M]", ATTACK_TYPE_UNARMED, 0, M, M.zone_selected, null) & BLOCK_SUCCESS)) log_combat(M, H, "attempted to touch") - H.visible_message("[M] attempted to touch [H]!") + H.visible_message("[M] attempted to touch [H]!", \ + "[M] attempted to touch you!", target = M, \ + target_message = "You attempted to touch [H]!") return TRUE switch(M.a_intent) if(INTENT_HELP) @@ -1797,7 +1843,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(IS_STAMCRIT(user)) to_chat(user, "You're too exhausted for that.") return - if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + if(SEND_SIGNAL(user, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_INACTIVE)) to_chat(user, "You need combat mode to be active to that!") return if(user.IsKnockdown() || user.IsParalyzed() || user.IsStun()) @@ -1816,7 +1862,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) to_chat(user, "You're too exhausted.") return FALSE if(target.check_martial_melee_block()) - target.visible_message("[target] blocks [user]'s shoving attempt!") + target.visible_message("[target] blocks [user]'s shoving attempt!", \ + "You block [user]'s shoving attempt!", target = user, \ + target_message = "[target] blocks your shoving attempt!") return FALSE if(attacker_style && attacker_style.disarm_act(user,target)) return TRUE @@ -1861,19 +1909,22 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/targetatrest = !CHECK_MOBILITY(target, MOBILITY_STAND) if((directional_blocked || !(target_collateral_human || target_shove_turf.shove_act(target, user))) && !targetatrest) target.DefaultCombatKnockdown(SHOVE_KNOCKDOWN_SOLID) - user.visible_message("[user.name] shoves [target.name], knocking them down!", - "You shove [target.name], knocking them down!", null, COMBAT_MESSAGE_RANGE) + target.visible_message("[user.name] shoves [target.name], knocking them down!", + "[user.name] shoves you, knocking you down!", null, COMBAT_MESSAGE_RANGE, null, + user, "You shove [target.name], knocking them down!") log_combat(user, target, "shoved", "knocking them down") else if(target_collateral_human && !targetatrest) target.DefaultCombatKnockdown(SHOVE_KNOCKDOWN_HUMAN) target_collateral_human.DefaultCombatKnockdown(SHOVE_KNOCKDOWN_COLLATERAL) - user.visible_message("[user.name] shoves [target.name] into [target_collateral_human.name]!", - "You shove [target.name] into [target_collateral_human.name]!", null, COMBAT_MESSAGE_RANGE) + target.visible_message("[user.name] shoves [target.name] into [target_collateral_human.name]!", + "[user.name] shoves you into [target_collateral_human.name]!", null, COMBAT_MESSAGE_RANGE, null, + user, "You shove [target.name] into [target_collateral_human.name]!") append_message += ", into [target_collateral_human.name]" else - user.visible_message("[user.name] shoves [target.name]!", - "You shove [target.name]!", null, COMBAT_MESSAGE_RANGE) + target.visible_message("[user.name] shoves [target.name]!", + "[user.name] shoves you!", null, COMBAT_MESSAGE_RANGE, null, + user, "You shove [target.name]!") var/obj/item/target_held_item = target.get_active_held_item() if(!is_type_in_typecache(target_held_item, GLOB.shove_disarming_types)) target_held_item = null @@ -1894,7 +1945,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) append_message += ", causing them to drop [target_held_item]" log_combat(user, target, "shoved", append_message) -/datum/species/proc/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked, mob/living/carbon/human/H, forced = FALSE) +/datum/species/proc/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked, mob/living/carbon/human/H, forced = FALSE, spread_damage = FALSE) SEND_SIGNAL(src, COMSIG_MOB_APPLY_DAMGE, damage, damagetype, def_zone) var/hit_percent = (100-(blocked+armor))/100 hit_percent = (hit_percent * (100-H.physiology.damage_resistance))/100 @@ -1902,20 +1953,20 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) return 0 var/obj/item/bodypart/BP = null - if(isbodypart(def_zone)) - if(damagetype == STAMINA && istype(def_zone, /obj/item/bodypart/head)) - BP = H.get_bodypart(check_zone(BODY_ZONE_CHEST)) + if(!spread_damage) + if(isbodypart(def_zone)) + if(damagetype == STAMINA && istype(def_zone, /obj/item/bodypart/head)) + BP = H.get_bodypart(check_zone(BODY_ZONE_CHEST)) + else + BP = def_zone else - BP = def_zone - else - if(!def_zone) - def_zone = ran_zone(def_zone) - if(damagetype == STAMINA && def_zone == BODY_ZONE_HEAD) - def_zone = BODY_ZONE_CHEST - BP = H.get_bodypart(check_zone(def_zone)) - - if(!BP) - BP = H.bodyparts[1] + if(!def_zone) + def_zone = ran_zone(def_zone) + if(damagetype == STAMINA && def_zone == BODY_ZONE_HEAD) + def_zone = BODY_ZONE_CHEST + BP = H.get_bodypart(check_zone(def_zone)) + if(!BP) + BP = H.bodyparts[1] switch(damagetype) if(BRUTE) diff --git a/code/modules/mob/living/carbon/human/species_types/bugmen.dm b/code/modules/mob/living/carbon/human/species_types/bugmen.dm index da53adece3..a79f9e2392 100644 --- a/code/modules/mob/living/carbon/human/species_types/bugmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/bugmen.dm @@ -1,6 +1,7 @@ /datum/species/insect name = "Anthromorphic Insect" id = "insect" + say_mod = "chitters" default_color = "00FF00" species_traits = list(LIPS,EYECOLOR,HAIR,FACEHAIR,MUTCOLORS,HORNCOLOR,WINGCOLOR) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_BUG @@ -13,6 +14,8 @@ liked_food = MEAT | FRUIT disliked_food = TOXIC icon_limbs = DEFAULT_BODYPART_ICON_CITADEL + exotic_bloodtype = "BUG" + exotic_blood_color = BLOOD_COLOR_BUG /datum/species/insect/spec_death(gibbed, mob/living/carbon/human/H) if(H) @@ -42,4 +45,4 @@ H.update_body() /datum/species/insect/qualifies_for_rank(rank, list/features) - return TRUE \ No newline at end of file + return TRUE diff --git a/code/modules/mob/living/carbon/human/species_types/dullahan.dm b/code/modules/mob/living/carbon/human/species_types/dullahan.dm index ef730da219..1d19f28aa8 100644 --- a/code/modules/mob/living/carbon/human/species_types/dullahan.dm +++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm @@ -13,6 +13,7 @@ blacklisted = TRUE limbs_id = "human" skinned_type = /obj/item/stack/sheet/animalhide/human + has_field_of_vision = FALSE //Too much of a trouble, their vision is already bound to their severed head. var/pumpkin = FALSE var/obj/item/dullahan_relay/myhead @@ -132,13 +133,13 @@ return INITIALIZE_HINT_QDEL owner = new_owner START_PROCESSING(SSobj, src) - RegisterSignal(owner, COMSIG_CLICK_SHIFT, .proc/examinate_check) + RegisterSignal(owner, COMSIG_MOB_CLICKED_SHIFT_ON, .proc/examinate_check) RegisterSignal(src, COMSIG_ATOM_HEARER_IN_VIEW, .proc/include_owner) RegisterSignal(owner, COMSIG_LIVING_REGENERATE_LIMBS, .proc/unlist_head) RegisterSignal(owner, COMSIG_LIVING_REVIVE, .proc/retrieve_head) -/obj/item/dullahan_relay/proc/examinate_check(atom/source, mob/user) - if(user.client.eye == src) +/obj/item/dullahan_relay/proc/examinate_check(mob/source, atom/target) + if(source.client.eye == src) return COMPONENT_ALLOW_EXAMINATE /obj/item/dullahan_relay/proc/include_owner(datum/source, list/processing_list, list/hearers) diff --git a/code/modules/mob/living/carbon/human/species_types/dwarves.dm b/code/modules/mob/living/carbon/human/species_types/dwarves.dm index 5d9269b2f0..7ca057711e 100644 --- a/code/modules/mob/living/carbon/human/species_types/dwarves.dm +++ b/code/modules/mob/living/carbon/human/species_types/dwarves.dm @@ -6,8 +6,8 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // name = "Dwarf" id = "dwarf" //Also called Homo sapiens pumilionis default_color = "FFFFFF" - species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,NO_UNDERWEAR,TRAIT_DWARF) - inherent_traits = list() + species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS) + inherent_traits = list(TRAIT_DWARF,TRAIT_SNOB) limbs_id = "human" use_skintones = USE_SKINTONES_GRAYSCALE_CUSTOM say_mod = "bellows" //high energy, EXTRA BIOLOGICAL FUEL @@ -33,12 +33,11 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // var/mob/living/carbon/human/H = C H.facial_hair_style = dwarf_hair H.update_hair() - H.transform = H.transform.Scale(1, 0.8) //We use scale, and yeah. Dwarves can become gnomes with DWARFISM. + H.AddElement(/datum/element/dwarfism, COMSIG_SPECIES_LOSS, src) RegisterSignal(C, COMSIG_MOB_SAY, .proc/handle_speech) //We register handle_speech is being used. /datum/species/dwarf/on_species_loss(mob/living/carbon/H, datum/species/new_species) . = ..() - H.transform = H.transform.Scale(1, 1.25) //And we undo it. UnregisterSignal(H, COMSIG_MOB_SAY) //We register handle_speech is not being used. //Dwarf Name stuff @@ -88,77 +87,17 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // var/heal_rate = 0.5 //The rate they heal damages over 400 alcohol stored. Default is 0.5 so we times 3 since 3 seconds. var/alcohol_rate = 0.25 //The rate the alcohol ticks down per each iteration of dwarf_eth_ticker completing. //These count in on_life ticks which should be 2 seconds per every increment of 1 in a perfect world. - var/dwarf_filth_ticker = 0 //Currently set =< 4, that means this will fire the proc around every 4-8 seconds. var/dwarf_eth_ticker = 0 //Currently set =< 1, that means this will fire the proc around every 2 seconds - var/last_filth_spam var/last_alcohol_spam - -/obj/item/organ/dwarfgland/prepare_eat() - var/obj/S = ..() - S.reagents.add_reagent(/datum/reagent/consumable/ethanol, stored_alcohol/10) - return S + food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/ethanol = 10) /obj/item/organ/dwarfgland/on_life() //Primary loop to hook into to start delayed loops for other loops.. . = ..() if(owner && owner.stat != DEAD) - dwarf_cycle_ticker() - -//Handles the delayed tick cycle by just adding on increments per each on_life() tick -/obj/item/organ/dwarfgland/proc/dwarf_cycle_ticker() - dwarf_eth_ticker++ - dwarf_filth_ticker++ - - if(dwarf_filth_ticker >= 4) //Should be around 4-8 seconds since a tick is around 2 seconds. - dwarf_filth_cycle() //On_life will adjust regarding other factors, so we are along for the ride. - dwarf_filth_ticker = 0 //We set the ticker back to 0 to go again. - if(dwarf_eth_ticker >= 1) //Alcohol reagent check should be around 2 seconds, since a tick is around 2 seconds. - dwarf_eth_cycle() - dwarf_eth_ticker = 0 - -//If this still friggin uses too much CPU, I'll make a for view subsystem If I have to. -/obj/item/organ/dwarfgland/proc/dwarf_filth_cycle() - if(!owner?.client || !owner?.mind) - return - //Filth Reactions - Since miasma now exists - var/filth_counter = 0 //Holder for the filth check cycle, basically contains how much filth dwarf sees numerically. - for(var/fuck in view(owner,7)) //hello byond for view loop. - if(istype(fuck, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = fuck - if(H.stat == DEAD || (HAS_TRAIT(H, TRAIT_FAKEDEATH))) - filth_counter += 10 - if(istype(fuck, /obj/effect/decal/cleanable/blood)) - if(istype(fuck, /obj/effect/decal/cleanable/blood/gibs)) - filth_counter += 1 - else - filth_counter += 0.1 - if(istype(fuck,/obj/effect/decal/cleanable/vomit)) //They are disgusted by their own vomit too. - filth_counter += 10 //Dwarves could technically chainstun each other in a vomit tantrum spiral. - switch(filth_counter) - if(11 to 25) - if(last_filth_spam + 40 SECONDS < world.time) - to_chat(owner, "Someone should really clean up in here!") - last_filth_spam = world.time - if(26 to 50) - if(prob(6)) //And then the probability they vomit along with it. - to_chat(owner, "The stench makes you queasy.") - owner.vomit(10) //I think vomit should stay over a disgust adjustment. - if(51 to 75) - if(prob(9)) - to_chat(owner, "By Armok! You won't be able to keep alcohol down at all!") - owner.vomit(20) //Its more funny - if(76 to 100) - if(prob(11)) - to_chat(owner, "You can't live in such FILTH!") - owner.adjustToxLoss(10) //Now they start dying. - owner.vomit(20) - if(101 to INFINITY) //Now they will really start dying - if(last_filth_spam + 12 SECONDS < world.time) - to_chat(owner, " THERES TOO MUCH FILTH, OH GODS THE FILTH!") - last_filth_spam = world.time - if(prob(40)) - owner.adjustToxLoss(15) - owner.vomit(30) - CHECK_TICK //Check_tick right here, its motherfuckin magic. (To me at least) + dwarf_eth_ticker++ + if(dwarf_eth_ticker >= 1) //Alcohol reagent check should be around 2 seconds, since a tick is around 2 seconds. + dwarf_eth_cycle() + dwarf_eth_ticker = 0 //Handles the dwarf alcohol cycle tied to on_life, it ticks in dwarf_cycle_ticker. /obj/item/organ/dwarfgland/proc/dwarf_eth_cycle() diff --git a/code/modules/mob/living/carbon/human/species_types/flypeople.dm b/code/modules/mob/living/carbon/human/species_types/flypeople.dm index ee4ef83a44..dbf097196d 100644 --- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm @@ -11,6 +11,7 @@ disliked_food = null liked_food = GROSS exotic_bloodtype = "BUG" + exotic_blood_color = BLOOD_COLOR_BUG /datum/species/fly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) if(istype(chem, /datum/reagent/toxin/pestkiller)) diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index 81132080ab..958e58a8ad 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -280,25 +280,15 @@ . = ..() C.faction |= "plants" C.faction |= "vines" + C.AddElement(/datum/element/photosynthesis) /datum/species/golem/wood/on_species_loss(mob/living/carbon/C) . = ..() C.faction -= "plants" C.faction -= "vines" + C.RemoveElement(/datum/element/photosynthesis) /datum/species/golem/wood/spec_life(mob/living/carbon/human/H) - if(H.stat == DEAD) - return - var/light_amount = 0 //how much light there is in the place, affects receiving nutrition and healing - if(isturf(H.loc)) //else, there's considered to be no light - var/turf/T = H.loc - light_amount = min(1,T.get_lumcount()) - 0.5 - H.adjust_nutrition(light_amount * 10, NUTRITION_LEVEL_FULL) - if(light_amount > 0.2) //if there's enough light, heal - H.heal_overall_damage(1,1) - H.adjustToxLoss(-1) - H.adjustOxyLoss(-1) - if(H.nutrition < NUTRITION_LEVEL_STARVING + 50) H.take_overall_damage(2,0) diff --git a/code/modules/mob/living/carbon/human/species_types/ipc.dm b/code/modules/mob/living/carbon/human/species_types/ipc.dm index 94d5456c3d..96efaebd74 100644 --- a/code/modules/mob/living/carbon/human/species_types/ipc.dm +++ b/code/modules/mob/living/carbon/human/species_types/ipc.dm @@ -20,6 +20,7 @@ mutanteyes = /obj/item/organ/eyes/ipc exotic_bloodtype = "HF" + exotic_blood_color = BLOOD_COLOR_OIL var/datum/action/innate/monitor_change/screen diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index db6a1e9560..8eca716a6a 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -13,6 +13,7 @@ gib_types = list(/obj/effect/gibspawner/slime, /obj/effect/gibspawner/slime/bodypartless) exotic_blood = /datum/reagent/blood/jellyblood exotic_bloodtype = "GEL" + exotic_blood_color = "BLOOD_COLOR_SLIME" damage_overlay_type = "" var/datum/action/innate/regenerate_limbs/regenerate_limbs var/datum/action/innate/slime_change/slime_change //CIT CHANGE @@ -41,6 +42,11 @@ slime_change.Grant(C) //CIT CHANGE C.faction |= "slime" +/datum/species/jelly/handle_body(mob/living/carbon/human/H) + . = ..() + //update blood color to body color + exotic_blood_color = "#" + H.dna.features["mcolor"] + /datum/species/jelly/spec_life(mob/living/carbon/human/H) if(H.stat == DEAD || HAS_TRAIT(H, TRAIT_NOMARROW)) //can't farm slime jelly from a dead slime/jelly person indefinitely, and no regeneration for blooduskers return @@ -239,7 +245,7 @@ "You focus intently on moving your body while \ standing perfectly still...") - H.notransform = TRUE + H.mob_transforming = TRUE if(do_after(owner, delay=60, needhand=FALSE, target=owner, progress=TRUE)) if(H.blood_volume >= BLOOD_VOLUME_SLIME_SPLIT) @@ -249,7 +255,7 @@ else to_chat(H, "...but fail to stand perfectly still!") - H.notransform = FALSE + H.mob_transforming = FALSE /datum/action/innate/split_body/proc/make_dupe() var/mob/living/carbon/human/H = owner @@ -267,7 +273,7 @@ spare.Move(get_step(H.loc, pick(NORTH,SOUTH,EAST,WEST))) H.blood_volume *= 0.45 - H.notransform = 0 + H.mob_transforming = 0 var/datum/species/jelly/slime/origin_datum = H.dna.species origin_datum.bodies |= spare @@ -459,8 +465,19 @@ /datum/action/innate/slime_change/proc/change_form() var/mob/living/carbon/human/H = owner - var/select_alteration = input(owner, "Select what part of your form to alter", "Form Alteration", "cancel") in list("Hair Style", "Genitals", "Tail", "Snout", "Markings", "Ears", "Taur body", "Penis", "Vagina", "Penis Length", "Breast Size", "Breast Shape", "Cancel") - if(select_alteration == "Hair Style") + var/select_alteration = input(owner, "Select what part of your form to alter", "Form Alteration", "cancel") in list("Body Color","Hair Style", "Genitals", "Tail", "Snout", "Markings", "Ears", "Taur body", "Penis", "Vagina", "Penis Length", "Breast Size", "Breast Shape", "Cancel") + + if(select_alteration == "Body Color") + var/new_color = input(owner, "Choose your skin color:", "Race change","#"+H.dna.features["mcolor"]) as color|null + if(new_color) + var/temp_hsv = RGBtoHSV(new_color) + if(ReadHSV(temp_hsv)[3] >= ReadHSV("#7F7F7F")[3]) // mutantcolors must be bright + H.dna.features["mcolor"] = sanitize_hexcolor(new_color, 6) + H.update_body() + H.update_hair() + else + to_chat(H, "Invalid color. Your color is not bright enough.") + else if(select_alteration == "Hair Style") if(H.gender == MALE) var/new_style = input(owner, "Select a facial hair style", "Hair Alterations") as null|anything in GLOB.facial_hair_styles_list if(new_style) @@ -523,7 +540,7 @@ H.update_body() else if (select_alteration == "Markings") - var/list/snowflake_markings_list = list() + var/list/snowflake_markings_list = list("None") for(var/path in GLOB.mam_body_markings_list) var/datum/sprite_accessory/mam_body_markings/instance = GLOB.mam_body_markings_list[path] if(istype(instance, /datum/sprite_accessory)) @@ -534,8 +551,6 @@ new_mam_body_markings = input(H, "Choose your character's body markings:", "Marking Alteration") as null|anything in snowflake_markings_list if(new_mam_body_markings) H.dna.features["mam_body_markings"] = new_mam_body_markings - if(new_mam_body_markings == "None") - H.dna.features["mam_body_markings"] = "Plain" for(var/X in H.bodyparts) //propagates the markings changes var/obj/item/bodypart/BP = X BP.update_limb(FALSE, H) diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index 196073773b..c42e0bf175 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -21,6 +21,7 @@ gib_types = list(/obj/effect/gibspawner/lizard, /obj/effect/gibspawner/lizard/bodypartless) skinned_type = /obj/item/stack/sheet/animalhide/lizard exotic_bloodtype = "L" + exotic_blood_color = BLOOD_COLOR_LIZARD disliked_food = GRAIN | DAIRY liked_food = GROSS | MEAT inert_mutation = FIREBREATH diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index fd958ccc13..e79160da06 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -13,35 +13,25 @@ disliked_food = MEAT | DAIRY liked_food = VEGETABLES | FRUIT | GRAIN species_language_holder = /datum/language_holder/sylvan - var/light_nutrition_gain_factor = 10 - var/light_toxheal = 1 - var/light_oxyheal = 1 - var/light_burnheal = 1 - var/light_bruteheal = 1 + var/light_nutrition_gain_factor = 4 + var/light_toxheal = -1 + var/light_oxyheal = -1 + var/light_burnheal = -1 + var/light_bruteheal = -1 /datum/species/pod/on_species_gain(mob/living/carbon/C, datum/species/old_species) . = ..() C.faction |= "plants" C.faction |= "vines" + C.AddElement(/datum/element/photosynthesis, light_bruteheal, light_burnheal, light_toxheal, light_oxyheal, light_nutrition_gain_factor) /datum/species/pod/on_species_loss(mob/living/carbon/C) . = ..() C.faction -= "plants" C.faction -= "vines" + C.RemoveElement(/datum/element/photosynthesis, light_bruteheal, light_burnheal, light_toxheal, light_oxyheal, light_nutrition_gain_factor) /datum/species/pod/spec_life(mob/living/carbon/human/H) - if(H.stat == DEAD) - return - var/light_amount = 0 //how much light there is in the place, affects receiving nutrition and healing - if(isturf(H.loc)) //else, there's considered to be no light - var/turf/T = H.loc - light_amount = min(1,T.get_lumcount()) - 0.5 - H.adjust_nutrition(light_amount * light_nutrition_gain_factor, NUTRITION_LEVEL_FULL) - if(light_amount > 0.2) //if there's enough light, heal - H.heal_overall_damage(light_bruteheal, light_burnheal) - H.adjustToxLoss(-light_toxheal) - H.adjustOxyLoss(-light_oxyheal) - if(H.nutrition < NUTRITION_LEVEL_STARVING + 50) H.take_overall_damage(2,0) @@ -76,10 +66,10 @@ species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,MUTCOLORS) mutant_bodyparts = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_snouts" = "Husky", "mam_tail" = "Husky", "mam_ears" = "Husky", "mam_body_markings" = "Husky", "taur" = "None", "legs" = "Normal Legs") limbs_id = "pod" - light_nutrition_gain_factor = 7.5 - light_bruteheal = 0.2 - light_burnheal = 0.2 - light_toxheal = 0.7 + light_nutrition_gain_factor = 3 + light_bruteheal = -0.2 + light_burnheal = -0.2 + light_toxheal = -0.7 /datum/species/pod/pseudo_weak/spec_death(gibbed, mob/living/carbon/human/H) if(H) diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm index e229860cf7..fede67b47a 100644 --- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm @@ -15,16 +15,13 @@ dangerous_existence = 1 mutanteyes = /obj/item/organ/eyes/night_vision +/datum/species/shadow/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + C.AddElement(/datum/element/photosynthesis, 1, 1, 0, 0, 0, 0, SHADOW_SPECIES_LIGHT_THRESHOLD, SHADOW_SPECIES_LIGHT_THRESHOLD) -/datum/species/shadow/spec_life(mob/living/carbon/human/H) - var/turf/T = H.loc - if(istype(T)) - var/light_amount = T.get_lumcount() - - if(light_amount > SHADOW_SPECIES_LIGHT_THRESHOLD) //if there's enough light, start dying - H.take_overall_damage(1,1) - else if (light_amount < SHADOW_SPECIES_LIGHT_THRESHOLD) //heal in the dark - H.heal_overall_damage(1,1) +/datum/species/shadow/on_species_loss(mob/living/carbon/C) + . = ..() + C.RemoveElement(/datum/element/photosynthesis, 1, 1, 0, 0, 0, 0, SHADOW_SPECIES_LIGHT_THRESHOLD, SHADOW_SPECIES_LIGHT_THRESHOLD) /datum/species/shadow/check_roundstart_eligible() if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) diff --git a/code/modules/mob/living/carbon/human/species_types/skeletons.dm b/code/modules/mob/living/carbon/human/species_types/skeletons.dm index 8257238e9c..78efddf70d 100644 --- a/code/modules/mob/living/carbon/human/species_types/skeletons.dm +++ b/code/modules/mob/living/carbon/human/species_types/skeletons.dm @@ -1,20 +1,28 @@ /datum/species/skeleton - // 2spooky - name = "Spooky Scary Skeleton" + name = "Skeleton" id = "skeleton" say_mod = "rattles" blacklisted = 0 sexes = 0 meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton species_traits = list(NOBLOOD,NOGENITALS,NOAROUSAL) - inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RADIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NOHUNGER,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_FAKEDEATH, TRAIT_CALCIUM_HEALER) + inherent_traits = list(TRAIT_NOBREATH,TRAIT_RADIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NOHUNGER,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_FAKEDEATH, TRAIT_CALCIUM_HEALER) inherent_biotypes = MOB_UNDEAD|MOB_HUMANOID mutanttongue = /obj/item/organ/tongue/bone damage_overlay_type = ""//let's not show bloody wounds or burns over bones. disliked_food = NONE liked_food = GROSS | MEAT | RAW | DAIRY + brutemod = 1.25 + burnmod = 1.25 -/datum/species/skeleton/check_roundstart_eligible() +/datum/species/skeleton/New() + if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) //skeletons are stronger during the spooky season! + inherent_traits |= list(TRAIT_RESISTHEAT,TRAIT_RESISTCOLD) + brutemod = 1 + burnmod = 1 + ..() + +/datum/species/skeleton/greater/check_roundstart_eligible() if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) return TRUE return ..() @@ -27,4 +35,4 @@ inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NOHUNGER,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT, TRAIT_FAKEDEATH, TRAIT_CALCIUM_HEALER) /datum/species/skeleton/space/check_roundstart_eligible() - return FALSE \ No newline at end of file + return FALSE diff --git a/code/modules/mob/living/carbon/human/species_types/synthliz.dm b/code/modules/mob/living/carbon/human/species_types/synthliz.dm index 408d264546..af2e83ee0f 100644 --- a/code/modules/mob/living/carbon/human/species_types/synthliz.dm +++ b/code/modules/mob/living/carbon/human/species_types/synthliz.dm @@ -18,7 +18,7 @@ mutanteyes = /obj/item/organ/eyes/ipc exotic_bloodtype = "S" - + exotic_blood_color = BLOOD_COLOR_OIL /datum/species/synthliz/qualifies_for_rank(rank, list/features) return TRUE diff --git a/code/modules/mob/living/carbon/human/typing_indicator.dm b/code/modules/mob/living/carbon/human/typing_indicator.dm new file mode 100644 index 0000000000..16ed95790a --- /dev/null +++ b/code/modules/mob/living/carbon/human/typing_indicator.dm @@ -0,0 +1,2 @@ +/mob/living/carbon/human/get_typing_indicator_icon_state() + return dna?.species?.typing_indicator_state || ..() diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm index 50801e1c0d..cc837a490c 100644 --- a/code/modules/mob/living/carbon/inventory.dm +++ b/code/modules/mob/living/carbon/inventory.dm @@ -117,6 +117,18 @@ if(!QDELETED(src)) update_inv_legcuffed() +/mob/living/carbon/get_equipped_items(include_pockets = FALSE) + var/list/items = list() + if(back) + items += back + if(head) + items += head + if(wear_mask) + items += wear_mask + if(wear_neck) + items += wear_neck + return items + //handle stuff to update when a mob equips/unequips a mask. /mob/living/proc/wear_mask_update(obj/item/clothing/C, toggle_off = 1) update_inv_wear_mask() diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 7d0792244d..b109598973 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -1,29 +1,23 @@ -/mob/living/carbon/Life() - set invisibility = 0 - - if(notransform) - return - - if(damageoverlaytemp) - damageoverlaytemp = 0 - update_damage_hud() - +/mob/living/carbon/BiologicalLife(seconds, times_fired) //Reagent processing needs to come before breathing, to prevent edge cases. handle_organs() - - . = ..() - - if (QDELETED(src)) + . = ..() // if . is false, we are dead. + if(stat == DEAD) + stop_sound_channel(CHANNEL_HEARTBEAT) + handle_death() + rot() + . = FALSE + if(!.) return - - if(.) //not dead - handle_blood() - + handle_blood() + // handle_blood *could* kill us. + // we should probably have a better system for if we need to check for death or something in the future hmw if(stat != DEAD) var/bprv = handle_bodyparts() if(bprv & BODYPART_LIFE_UPDATE_HEALTH) updatehealth() update_stamina() + doSprintBufferRegen() if(stat != DEAD) handle_brain_damage() @@ -31,16 +25,15 @@ if(stat != DEAD) handle_liver() - if(stat == DEAD) - stop_sound_channel(CHANNEL_HEARTBEAT) - handle_death() - rot() - //Updates the number of stored chemicals for powers handle_changeling() - if(stat != DEAD) - return 1 +/mob/living/carbon/PhysicalLife(seconds, times_fired) + if(!(. = ..())) + return + if(damageoverlaytemp) + damageoverlaytemp = 0 + update_damage_hud() //Procs called while dead /mob/living/carbon/proc/handle_death() @@ -517,8 +510,8 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put //this updates all special effects: stun, sleeping, knockdown, druggy, stuttering, etc.. /mob/living/carbon/handle_status_effects() ..() - if(getStaminaLoss() && !(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) //CIT CHANGE - prevents stamina regen while combat mode is active - adjustStaminaLoss(!CHECK_MOBILITY(src, MOBILITY_STAND) ? ((combat_flags & COMBAT_FLAG_HARD_STAMCRIT) ? -7.5 : -6) : -3)//CIT CHANGE - decreases adjuststaminaloss to stop stamina damage from being such a joke + if(getStaminaLoss() && !SEND_SIGNAL(src, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_ACTIVE)) //CIT CHANGE - prevents stamina regen while combat mode is active + adjustStaminaLoss(!CHECK_MOBILITY(src, MOBILITY_STAND) ? ((combat_flags & COMBAT_FLAG_HARD_STAMCRIT) ? STAM_RECOVERY_STAM_CRIT : STAM_RECOVERY_RESTING) : STAM_RECOVERY_NORMAL) if(!(combat_flags & COMBAT_FLAG_HARD_STAMCRIT) && incomingstammult != 1) incomingstammult = max(0.01, incomingstammult) diff --git a/code/modules/mob/living/carbon/monkey/combat.dm b/code/modules/mob/living/carbon/monkey/combat.dm index 1b0856bfcd..149ec5f0e3 100644 --- a/code/modules/mob/living/carbon/monkey/combat.dm +++ b/code/modules/mob/living/carbon/monkey/combat.dm @@ -81,7 +81,7 @@ /mob/living/carbon/monkey/proc/pickup_and_wear(obj/item/I) if(QDELETED(I) || I.loc != src) return - equip_to_appropriate_slot(I) + equip_to_appropriate_slot(I, TRUE) /mob/living/carbon/monkey/resist_restraints() var/obj/item/I = null diff --git a/code/modules/mob/living/carbon/monkey/inventory.dm b/code/modules/mob/living/carbon/monkey/inventory.dm index d5fffc70a2..34599028f7 100644 --- a/code/modules/mob/living/carbon/monkey/inventory.dm +++ b/code/modules/mob/living/carbon/monkey/inventory.dm @@ -1,4 +1,9 @@ -/mob/living/carbon/monkey/can_equip(obj/item/I, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE) +/mob/living/carbon/monkey/can_equip(obj/item/I, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE, clothing_check = FALSE, list/return_warning) + if(clothing_check && (slot in check_obscured_slots())) + if(return_warning) + return_warning[1] = "You are unable to equip that with your current garments in the way!" + return FALSE + switch(slot) if(SLOT_HANDS) if(get_empty_held_indexes()) diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index c770be9629..9e6431985c 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -3,30 +3,26 @@ /mob/living/carbon/monkey -/mob/living/carbon/monkey/Life() - set invisibility = 0 - - if (notransform) +/mob/living/carbon/monkey/BiologicalLife(seconds, times_fired) + if(!(. = ..())) return - - if(..()) - - if(!client) - if(stat == CONSCIOUS) - if(on_fire || buckled || restrained() || (!CHECK_MOBILITY(src, MOBILITY_STAND) && CHECK_MOBILITY(src, MOBILITY_MOVE))) //CIT CHANGE - makes it so monkeys attempt to resist if they're resting) - if(!resisting && prob(MONKEY_RESIST_PROB)) - resisting = TRUE - walk_to(src,0) - resist() - else if(resisting) - resisting = FALSE - else if((mode == MONKEY_IDLE && !pickupTarget && !prob(MONKEY_SHENANIGAN_PROB)) || !handle_combat()) - if(prob(25) && CHECK_MOBILITY(src, MOBILITY_MOVE) && isturf(loc) && !pulledby) - step(src, pick(GLOB.cardinals)) - else if(prob(1)) - emote(pick("scratch","jump","roll","tail")) - else + if(client) + return + if(stat == CONSCIOUS) + if(on_fire || buckled || restrained() || (!CHECK_MOBILITY(src, MOBILITY_STAND) && CHECK_MOBILITY(src, MOBILITY_MOVE))) //CIT CHANGE - makes it so monkeys attempt to resist if they're resting) + if(!resisting && prob(MONKEY_RESIST_PROB)) + resisting = TRUE walk_to(src,0) + resist() + else if(resisting) + resisting = FALSE + else if((mode == MONKEY_IDLE && !pickupTarget && !prob(MONKEY_SHENANIGAN_PROB)) || !handle_combat()) + if(prob(25) && CHECK_MOBILITY(src, MOBILITY_MOVE) && isturf(loc) && !pulledby) + step(src, pick(GLOB.cardinals)) + else if(prob(1)) + emote(pick("scratch","jump","roll","tail")) + else + walk_to(src,0) /mob/living/carbon/monkey/handle_mutations_and_radiation() if(radiation) diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 18c3fde188..5b91119789 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -45,6 +45,7 @@ /mob/living/carbon/monkey/ComponentInitialize() . = ..() AddElement(/datum/element/mob_holder, worn_state = "monkey", inv_slots = ITEM_SLOT_HEAD) + AddComponent(/datum/component/footstep, FOOTSTEP_MOB_BAREFOOT, 1, 2) /mob/living/carbon/monkey/Destroy() diff --git a/code/modules/mob/living/carbon/monkey/monkey_defense.dm b/code/modules/mob/living/carbon/monkey/monkey_defense.dm index 50793eb821..8f862af8fa 100644 --- a/code/modules/mob/living/carbon/monkey/monkey_defense.dm +++ b/code/modules/mob/living/carbon/monkey/monkey_defense.dm @@ -141,7 +141,7 @@ /mob/living/carbon/monkey/attack_animal(mob/living/simple_animal/M) . = ..() if(.) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + var/damage = . var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)) if(!dam_zone) //Dismemberment successful return TRUE diff --git a/code/modules/mob/living/carbon/monkey/punpun.dm b/code/modules/mob/living/carbon/monkey/punpun.dm index fbe4bc9900..c5cb4dc713 100644 --- a/code/modules/mob/living/carbon/monkey/punpun.dm +++ b/code/modules/mob/living/carbon/monkey/punpun.dm @@ -31,11 +31,12 @@ if(relic_mask) equip_to_slot_or_del(new relic_mask, SLOT_WEAR_MASK) -/mob/living/carbon/monkey/punpun/Life() +/mob/living/carbon/monkey/punpun/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(!stat && SSticker.current_state == GAME_STATE_FINISHED && !memory_saved) Write_Memory(FALSE, FALSE) memory_saved = TRUE - ..() /mob/living/carbon/monkey/punpun/death(gibbed) if(!memory_saved) diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index 9a1c6c54b6..1a796fb2bc 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -12,7 +12,7 @@ overlays_standing[cache_index] = null /mob/living/carbon/regenerate_icons() - if(notransform) + if(mob_transforming) return 1 update_inv_hands() update_inv_handcuffed() @@ -68,7 +68,7 @@ var/dam_colors = "#E62525" if(ishuman(src)) var/mob/living/carbon/human/H = src - dam_colors = bloodtype_to_color(H.dna.blood_type) + dam_colors = H.dna.species.exotic_blood_color var/mutable_appearance/damage_overlay = mutable_appearance('icons/mob/dam_mob.dmi', "blank", -DAMAGE_LAYER, color = dam_colors) overlays_standing[DAMAGE_LAYER] = damage_overlay diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 3257b0e3bf..0c049ab5c1 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -1,14 +1,20 @@ -/* - apply_damage(a,b,c) - args - a:damage - How much damage to take - b:damage_type - What type of damage to take, brute, burn - c:def_zone - Where to take the damage if its brute or burn - Returns - standard 0 if fail -*/ -/mob/living/proc/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE) +/** + * Applies damage to this mob + * + * Sends [COMSIG_MOB_APPLY_DAMGE] + * + * Arguuments: + * * damage - amount of damage + * * damagetype - one of [BRUTE], [BURN], [TOX], [OXY], [CLONE], [STAMINA] + * * def_zone - zone that is being hit if any + * * blocked - armor value applied + * * forced - bypass hit percentage + * * spread_damage - used in overrides + * + * Returns TRUE if damage applied + */ +/mob/living/proc/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage = FALSE) var/hit_percent = (100-blocked)/100 if(!damage || (hit_percent <= 0)) return 0 @@ -78,8 +84,6 @@ apply_damage(brain, BRAIN, def_zone, blocked) return 1 - - /mob/living/proc/apply_effect(effect = 0,effecttype = EFFECT_STUN, blocked = FALSE, knockdown_stamoverride, knockdown_stammax) var/hit_percent = (100-blocked)/100 if(!effect || (hit_percent <= 0)) @@ -108,7 +112,7 @@ return 1 -/mob/living/proc/apply_effects(stun = 0, knockdown = 0, unconscious = 0, irradiate = 0, slur = 0, stutter = 0, eyeblur = 0, drowsy = 0, blocked = FALSE, stamina = 0, jitter = 0, kd_stamoverride, kd_stammax) +/mob/living/proc/apply_effects(stun = 0, knockdown = 0, unconscious = 0, irradiate = 0, slur = 0, stutter = 0, eyeblur = 0, drowsy = 0, blocked = 0, stamina = 0, jitter = 0, kd_stamoverride, kd_stammax) if(blocked >= 100) return BULLET_ACT_BLOCK if(stun) diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 111054c383..7d0a701e8f 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -457,6 +457,7 @@ message = params if(type_override) emote_type = type_override + message = user.say_emphasis(message) . = ..() message = null emote_type = EMOTE_VISIBLE diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 76c6bd508f..1993d86b74 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -1,12 +1,20 @@ +/** + * Called by SSmobs at (hopefully) an interval of 1 second. + * Splits off into PhysicalLife() and BiologicalLife(). Override those instead of this. + */ /mob/living/proc/Life(seconds, times_fired) - set waitfor = FALSE - set invisibility = 0 + set waitfor = FALSE // yeah hey we're kind of on a subsystem, no sleeping will be tolerated here! + if(mob_transforming) + return - if(digitalinvis) - handle_diginvis() //AI becomes unable to see mob + . = SEND_SIGNAL(src, COMSIG_LIVING_LIFE, seconds, times_fired) + if(!(. & COMPONENT_INTERRUPT_LIFE_PHYSICAL)) + PhysicalLife(seconds, times_fired) + if(!(. & COMPONENT_INTERRUPT_LIFE_BIOLOGICAL)) + BiologicalLife(seconds, times_fired) - if((movement_type & FLYING) && !(movement_type & FLOATING)) //TODO: Better floating - float(on = TRUE) + // CODE BELOW SHOULD ONLY BE THINGS THAT SHOULD HAPPEN NO MATTER WHAT AND CAN NOT BE SUSPENDED! + // Otherwise, it goes into one of the two split Life procs! if (client) var/turf/T = get_turf(src) @@ -30,28 +38,54 @@ log_game("Z-TRACKING: [src] of type [src.type] has a Z-registration despite not having a client.") update_z(null) - if (notransform) - return - if(!loc) - return - var/datum/gas_mixture/environment = loc.return_air() - - if(stat != DEAD) - //Mutations and radiation - handle_mutations_and_radiation() - - if(stat != DEAD) - //Breathing, if applicable - handle_breathing(times_fired) - +/** + * Handles biological life processes like chemical metabolism, breathing, etc + * Returns TRUE or FALSE based on if we were interrupted. This is used by overridden variants to check if they should stop. + */ +/mob/living/proc/BiologicalLife(seconds, times_fired) handle_diseases()// DEAD check is in the proc itself; we want it to spread even if the mob is dead, but to handle its disease-y properties only if you're not. - if (QDELETED(src)) // diseases can qdel the mob via transformations - return + // Everything after this shouldn't process while dead (as of the time of writing) + if(stat == DEAD) + return FALSE - if(stat != DEAD) - //Random events (vomiting etc) - handle_random_events() + //Mutations and radiation + handle_mutations_and_radiation() + + //Breathing, if applicable + handle_breathing(times_fired) + + if (QDELETED(src)) // diseases can qdel the mob via transformations + return FALSE + + //Random events (vomiting etc) + handle_random_events() + + //stuff in the stomach + handle_stomach() + + handle_block_parry(seconds) + + // These two MIGHT need to be moved to base Life() if we get any in the future that's a "physical" effect that needs to fire even while in stasis. + handle_traits() // eye, ear, brain damages + handle_status_effects() //all special effects, stun, knockdown, jitteryness, hallucination, sleeping, etc + return TRUE + +/** + * Handles physical life processes like being on fire. Don't ask why this is considered "Life". + * Returns TRUE or FALSE based on if we were interrupted. This is used by overridden variants to check if they should stop. + */ +/mob/living/proc/PhysicalLife(seconds, times_fired) + if(digitalinvis) + handle_diginvis() //AI becomes unable to see mob + + if((movement_type & FLYING) && !(movement_type & FLOATING)) //TODO: Better floating + float(on = TRUE) + + if(!loc) + return FALSE + + var/datum/gas_mixture/environment = loc.return_air() //Handle temperature/pressure differences between body and environment if(environment) @@ -59,21 +93,11 @@ handle_fire() - //stuff in the stomach - handle_stomach() - handle_gravity() if(machine) machine.check_eye(src) - - if(stat != DEAD) - handle_traits() // eye, ear, brain damages - if(stat != DEAD) - handle_status_effects() //all special effects, stun, knockdown, jitteryness, hallucination, sleeping, etc - - if(stat != DEAD) - return 1 + return TRUE /mob/living/proc/handle_breathing(times_fired) return diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 7965586fd4..c7ed6e743d 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -9,10 +9,6 @@ diag_hud.add_to_hud(src) faction += "[REF(src)]" GLOB.mob_living_list += src - initialize_footstep() - -/mob/living/proc/initialize_footstep() - AddComponent(/datum/component/footstep) /mob/living/prepare_huds() ..() @@ -23,6 +19,8 @@ med_hud_set_status() /mob/living/Destroy() + end_parry_sequence() + stop_active_blocking() if(LAZYLEN(status_effects)) for(var/s in status_effects) var/datum/status_effect/S = s @@ -46,7 +44,8 @@ return ..() /mob/living/proc/ZImpactDamage(turf/T, levels) - visible_message("[src] crashes into [T] with a sickening noise!") + visible_message("[src] crashes into [T] with a sickening noise!", \ + "You crash into [T] with a sickening noise!") adjustBruteLoss((levels * 5) ** 1.5) DefaultCombatKnockdown(levels * 50) @@ -124,7 +123,9 @@ to_chat(src, "You're too exhausted to crawl under [L].") return TRUE ENABLE_BITFIELD(combat_flags, COMBAT_FLAG_ATTEMPTING_CRAWL) - visible_message("[src] is attempting to crawl under [L].", "You are now attempting to crawl under [L].") + visible_message("[src] is attempting to crawl under [L].", + "You are now attempting to crawl under [L].", + target = L, target_message = "[src] is attempting to crawl under you.") if(!do_after(src, CRAWLUNDER_DELAY, target = src) || CHECK_MOBILITY(src, MOBILITY_STAND)) DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_ATTEMPTING_CRAWL) return TRUE @@ -276,7 +277,9 @@ if(AM.pulledby) if(!supress_message) - visible_message("[src] has pulled [AM] from [AM.pulledby]'s grip.") + AM.pulledby.visible_message("[src] has pulled [AM] from [AM.pulledby]'s grip.", + "[src] has pulled [AM] from your grip.", target = src, + target_message = "You have pulled [AM] from [AM.pulledby]'s grip.") log_combat(AM, AM.pulledby, "pulled from", src) AM.pulledby.stop_pulling() //an object can't be pulled by two mobs at once. @@ -291,7 +294,9 @@ log_combat(src, M, "grabbed", addition="passive grab") if(!supress_message && !(iscarbon(AM) && HAS_TRAIT(src, TRAIT_STRONG_GRABBER))) - visible_message("[src] has grabbed [M][(zone_selected == "l_arm" || zone_selected == "r_arm")? " by their hands":" passively"]!") //Cit change - And they thought ERP was bad. + visible_message("[src] has grabbed [M][(zone_selected == "l_arm" || zone_selected == "r_arm")? " by [M.p_their()] hands":" passively"]!", + "You have grabbed [M][(zone_selected == "l_arm" || zone_selected == "r_arm")? " by [M.p_their()] hands":" passively"]!", target = M, + target_message = "[src] has grabbed you[(zone_selected == "l_arm" || zone_selected == "r_arm")? " by your hands":" passively"]!") if(!iscarbon(src)) M.LAssailant = null else @@ -319,7 +324,7 @@ set_pull_offsets(M, state) /mob/living/proc/set_pull_offsets(mob/living/M, grab_state = GRAB_PASSIVE) - if(M.buckled || M.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) + if(M.buckled || SEND_SIGNAL(M, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_ACTIVE)) return //don't make them change direction or offset them if they're buckled into something or in combat mode. var/offset = 0 switch(grab_state) @@ -379,7 +384,7 @@ stop_pulling() //same as above -/mob/living/pointed(atom/A as mob|obj|turf in view()) +/mob/living/pointed(atom/A as mob|obj|turf in fov_view()) if(incapacitated()) return FALSE if(HAS_TRAIT(src, TRAIT_DEATHCOMA)) @@ -756,12 +761,16 @@ . = ..() if(pulledby.grab_state > GRAB_PASSIVE) if(CHECK_MOBILITY(src, MOBILITY_RESIST) && prob(30/pulledby.grab_state)) - visible_message("[src] has broken free of [pulledby]'s grip!") + pulledby.visible_message("[src] has broken free of [pulledby]'s grip!", + "[src] has broken free of your grip!", target = src, + target_message = "You have broken free of [pulledby]'s grip!") pulledby.stop_pulling() return TRUE else if(moving_resist && client) //we resisted by trying to move // this is a horrible system and whoever thought using client instead of mob is okay is not an okay person client.move_delay = world.time + 20 - visible_message("[src] resists against [pulledby]'s grip!") + pulledby.visible_message("[src] resists against [pulledby]'s grip!", + "[src] resists against your grip!", target = src, + target_message = "You resist against [pulledby]'s grip!") else pulledby.stop_pulling() return TRUE @@ -826,7 +835,8 @@ strip_silence = g.strip_silence if (!strip_silence) who.visible_message("[src] tries to remove [who]'s [what.name].", \ - "[src] tries to remove [who]'s [what.name].") + "[src] tries to remove your [what.name].", target = src, + target_message = "You try to remove [who]'s [what.name].") what.add_fingerprint(src) else to_chat(src,"You try to remove [who]'s [what.name].") @@ -874,7 +884,9 @@ to_chat(src, "\The [what.name] doesn't fit in that place!") return - visible_message("[src] tries to put [what] on [who].") + who.visible_message("[src] tries to put [what] on [who].", + "[src] tries to put [what] on you.", target = src, + target_message = "You try to put [what] on [who].") if(do_mob(src, who, what.equip_delay_other)) if(what && Adjacent(who) && what.mob_can_equip(who, src, final_where, TRUE, TRUE)) if(temporarilyRemoveItemFromInventory(what)) @@ -899,7 +911,7 @@ var/final_pixel_y = get_standard_pixel_y_offset(lying) animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff , time = 2, loop = 6) animate(pixel_x = final_pixel_x , pixel_y = final_pixel_y , time = 2) - setMovetype(movement_type & ~FLOATING) // If we were without gravity, the bouncing animation got stopped, so we make sure to restart it in next life(). + floating_need_update = TRUE /mob/living/proc/get_temperature(datum/gas_mixture/environment) var/loc_temp = environment ? environment.return_temperature() : T0C @@ -1058,7 +1070,7 @@ /mob/living/proc/IgniteMob() if(fire_stacks > 0 && !on_fire) on_fire = 1 - src.visible_message("[src] catches fire!", \ + visible_message("[src] catches fire!", \ "You're set on fire!") new/obj/effect/dummy/lighting_obj/moblight/fire(src) throw_alert("fire", /obj/screen/alert/fire) diff --git a/code/modules/mob/living/living_active_block.dm b/code/modules/mob/living/living_active_block.dm new file mode 100644 index 0000000000..4211b2cfd9 --- /dev/null +++ b/code/modules/mob/living/living_active_block.dm @@ -0,0 +1,282 @@ +// Active directional block system. Shared code is in [living_blocking_parrying.dm] +/mob/living/proc/stop_active_blocking(was_forced = FALSE) + if(!(combat_flags & (COMBAT_FLAG_ACTIVE_BLOCK_STARTING | COMBAT_FLAG_ACTIVE_BLOCKING))) + return FALSE + var/obj/item/I = active_block_item + combat_flags &= ~(COMBAT_FLAG_ACTIVE_BLOCKING | COMBAT_FLAG_ACTIVE_BLOCK_STARTING) + active_block_effect_end() + active_block_item = null + REMOVE_TRAIT(src, TRAIT_MOBILITY_NOUSE, ACTIVE_BLOCK_TRAIT) + REMOVE_TRAIT(src, TRAIT_SPRINT_LOCKED, ACTIVE_BLOCK_TRAIT) + remove_movespeed_modifier(/datum/movespeed_modifier/active_block) + var/datum/block_parry_data/data = I.get_block_parry_data() + if(timeToNextMove() < data.block_end_click_cd_add) + changeNext_move(data.block_end_click_cd_add) + return TRUE + +/mob/living/proc/ACTIVE_BLOCK_START(obj/item/I) + if(combat_flags & (COMBAT_FLAG_ACTIVE_BLOCK_STARTING | COMBAT_FLAG_ACTIVE_BLOCKING)) + return FALSE + if(!(I in held_items)) + return FALSE + var/datum/block_parry_data/data = I.get_block_parry_data() + if(!istype(data)) //Typecheck because if an admin/coder screws up varediting or something we do not want someone being broken forever, the CRASH logs feedback so we know what happened. + CRASH("ACTIVE_BLOCK_START called with an item with no valid data: [I] --> [I.block_parry_data]!") + combat_flags |= COMBAT_FLAG_ACTIVE_BLOCKING + active_block_item = I + if(data.block_lock_attacking) + ADD_TRAIT(src, TRAIT_MOBILITY_NOUSE, ACTIVE_BLOCK_TRAIT) //probably should be something else at some point + if(data.block_lock_sprinting) + ADD_TRAIT(src, TRAIT_SPRINT_LOCKED, ACTIVE_BLOCK_TRAIT) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/active_block, multiplicative_slowdown = data.block_slowdown) + active_block_effect_start() + return TRUE + +/// Visual effect setup for starting a directional block +/mob/living/proc/active_block_effect_start() + visible_message("[src] raises their [active_block_item], dropping into a defensive stance!") + animate(src, pixel_x = get_standard_pixel_x_offset(), pixel_y = get_standard_pixel_y_offset(), time = 2.5, FALSE, SINE_EASING | EASE_OUT) + +/// Visual effect cleanup for starting a directional block +/mob/living/proc/active_block_effect_end() + visible_message("[src] lowers their [active_block_item].") + animate(src, pixel_x = get_standard_pixel_x_offset(), pixel_y = get_standard_pixel_y_offset(), time = 2.5, FALSE, SINE_EASING | EASE_IN) + +/mob/living/proc/continue_starting_active_block() + if(SEND_SIGNAL(src, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_INACTIVE)) + return DO_AFTER_STOP + return (combat_flags & COMBAT_FLAG_ACTIVE_BLOCK_STARTING)? DO_AFTER_CONTINUE : DO_AFTER_STOP + +/mob/living/get_standard_pixel_x_offset() + . = ..() + if(combat_flags & (COMBAT_FLAG_ACTIVE_BLOCK_STARTING | COMBAT_FLAG_ACTIVE_BLOCKING)) + if(dir & EAST) + . += 8 + if(dir & WEST) + . -= 8 + +/mob/living/get_standard_pixel_y_offset() + . = ..() + if(combat_flags & (COMBAT_FLAG_ACTIVE_BLOCK_STARTING | COMBAT_FLAG_ACTIVE_BLOCKING)) + if(dir & NORTH) + . += 8 + if(dir & SOUTH) + . -= 8 + +/** + * Proc called by keybindings to toggle active blocking. + */ +/mob/living/proc/keybind_toggle_active_blocking() + if(combat_flags & (COMBAT_FLAG_ACTIVE_BLOCK_STARTING | COMBAT_FLAG_ACTIVE_BLOCKING)) + return keybind_stop_active_blocking() + else + return keybind_start_active_blocking() + +/** + * Proc called by keybindings to start active blocking. + */ +/mob/living/proc/keybind_start_active_blocking() + if(combat_flags & (COMBAT_FLAG_ACTIVE_BLOCK_STARTING | COMBAT_FLAG_ACTIVE_BLOCKING)) + return FALSE + if(!(combat_flags & COMBAT_FLAG_BLOCK_CAPABLE)) + to_chat(src, "You're not something that can actively block.") + return FALSE + // QOL: Instead of trying to just block with held item, grab first available item. + var/obj/item/I = find_active_block_item() + var/list/other_items = list() + if(SEND_SIGNAL(src, COMSIG_LIVING_ACTIVE_BLOCK_START, I, other_items) & COMPONENT_PREVENT_BLOCK_START) + to_chat(src, "Something is preventing you from blocking!") + return + if(!I) + if(!length(other_items)) + to_chat(src, "You can't block with your bare hands!") + return + I = other_items[1] + if(!I.can_active_block()) + to_chat(src, "[I] is either not capable of being used to actively block, or is not currently in a state that can! (Try wielding it if it's twohanded, for example.)") + return + // QOL: Attempt to toggle on combat mode if it isn't already + SEND_SIGNAL(src, COMSIG_ENABLE_COMBAT_MODE) + if(!SEND_SIGNAL(src, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_ACTIVE)) + to_chat(src, "You must be in combat mode to actively block!") + return FALSE + var/datum/block_parry_data/data = I.get_block_parry_data() + var/delay = data.block_start_delay + combat_flags |= COMBAT_FLAG_ACTIVE_BLOCK_STARTING + animate(src, pixel_x = get_standard_pixel_x_offset(), pixel_y = get_standard_pixel_y_offset(), time = delay, FALSE, SINE_EASING | EASE_IN) + if(!do_after_advanced(src, delay, src, DO_AFTER_REQUIRES_USER_ON_TURF|DO_AFTER_NO_COEFFICIENT, CALLBACK(src, .proc/continue_starting_active_block), MOBILITY_USE, null, null, I)) + to_chat(src, "You fail to raise [I].") + combat_flags &= ~(COMBAT_FLAG_ACTIVE_BLOCK_STARTING) + animate(src, pixel_x = get_standard_pixel_x_offset(), pixel_y = get_standard_pixel_y_offset(), time = 2.5, FALSE, SINE_EASING | EASE_IN, ANIMATION_END_NOW) + return + combat_flags &= ~(COMBAT_FLAG_ACTIVE_BLOCK_STARTING) + ACTIVE_BLOCK_START(I) + +/** + * Gets the first item we can that can block, but if that fails, default to active held item.COMSIG_ENABLE_COMBAT_MODE + */ +/mob/living/proc/find_active_block_item() + var/obj/item/held = get_active_held_item() + if(!held?.can_active_block()) + for(var/obj/item/I in held_items - held) + if(I.can_active_block()) + return I + else + return held + +/** + * Proc called by keybindings to stop active blocking. + */ +/mob/living/proc/keybind_stop_active_blocking() + combat_flags &= ~(COMBAT_FLAG_ACTIVE_BLOCK_STARTING) + if(combat_flags & COMBAT_FLAG_ACTIVE_BLOCKING) + stop_active_blocking(FALSE) + return TRUE + +/** + * Returns if we can actively block. + */ +/obj/item/proc/can_active_block() + return block_parry_data && (item_flags & ITEM_CAN_BLOCK) + +/** + * Calculates FINAL ATTACK DAMAGE after mitigation + */ +/obj/item/proc/active_block_calculate_final_damage(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + var/datum/block_parry_data/data = get_block_parry_data() + var/absorption = data.attack_type_list_scan(data.block_damage_absorption_override, attack_type) + var/efficiency = data.attack_type_list_scan(data.block_damage_multiplier_override, attack_type) + var/limit = data.attack_type_list_scan(data.block_damage_limit_override, attack_type) + // must use isnulls to handle 0's. + if(isnull(absorption)) + absorption = data.block_damage_absorption + if(isnull(efficiency)) + efficiency = data.block_damage_multiplier + if(isnull(limit)) + limit = data.block_damage_limit + // now we calculate damage to reduce. + var/final_damage = 0 + // apply limit + if(damage > limit) //clamp and apply overrun + final_damage += (damage - limit) + damage = limit + // apply absorption + damage -= min(absorption, damage) //this way if damage is less than absorption it 0's properly. + // apply multiplier to remaining + final_damage += (damage * efficiency) + return final_damage + +/// Amount of stamina from damage blocked. Note that the damage argument is damage_blocked. +/obj/item/proc/active_block_stamina_cost(mob/living/owner, atom/object, damage_blocked, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + var/datum/block_parry_data/data = get_block_parry_data() + var/efficiency = data.attack_type_list_scan(data.block_stamina_efficiency_override, attack_type) + if(isnull(efficiency)) + efficiency = data.block_stamina_efficiency + var/multiplier = 1 + if(!CHECK_MOBILITY(owner, MOBILITY_STAND)) + multiplier = data.attack_type_list_scan(data.block_resting_stamina_penalty_multiplier_override, attack_type) + if(isnull(multiplier)) + multiplier = data.block_resting_stamina_penalty_multiplier + return (damage_blocked / efficiency) * multiplier + +/// Apply the stamina damage to our user, notice how damage argument is stamina_amount. +/obj/item/proc/active_block_do_stamina_damage(mob/living/owner, atom/object, stamina_amount, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + var/datum/block_parry_data/data = get_block_parry_data() + if(iscarbon(owner)) + var/mob/living/carbon/C = owner + var/held_index = C.get_held_index_of_item(src) + var/obj/item/bodypart/BP = C.hand_bodyparts[held_index] + if(!BP?.body_zone) + return C.adjustStaminaLossBuffered(stamina_amount) //nah + var/zone = BP.body_zone + var/stamina_to_zone = data.block_stamina_limb_ratio * stamina_amount + var/stamina_to_chest = stamina_amount - stamina_to_zone + var/stamina_buffered = stamina_to_chest * data.block_stamina_buffer_ratio + stamina_to_chest -= stamina_buffered + C.apply_damage(stamina_to_zone, STAMINA, zone) + C.apply_damage(stamina_to_chest, STAMINA, BODY_ZONE_CHEST) + C.adjustStaminaLossBuffered(stamina_buffered) + else + owner.adjustStaminaLossBuffered(stamina_amount) + +/obj/item/proc/on_active_block(mob/living/owner, atom/object, damage, damage_blocked, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return, override_direction) + return + +/obj/item/proc/active_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return, override_direction) + if(!can_active_block()) + return BLOCK_NONE + var/datum/block_parry_data/data = get_block_parry_data() + if(attack_type && !(attack_type & data.can_block_attack_types)) + return BLOCK_NONE + var/incoming_direction + if(isnull(override_direction)) + if(istype(object, /obj/item/projectile)) + var/obj/item/projectile/P = object + incoming_direction = angle2dir(P.Angle) + else + incoming_direction = get_dir(get_turf(attacker) || get_turf(object), src) + if(!CHECK_MOBILITY(owner, MOBILITY_STAND) && !(data.block_resting_attack_types_anydir & attack_type) && (!(data.block_resting_attack_types_directional & attack_type) || !can_block_direction(owner.dir, incoming_direction))) + return BLOCK_NONE + else if(!can_block_direction(owner.dir, incoming_direction)) + return BLOCK_NONE + block_return[BLOCK_RETURN_ACTIVE_BLOCK] = TRUE + var/final_damage = active_block_calculate_final_damage(owner, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return) + var/damage_blocked = damage - final_damage + var/stamina_cost = active_block_stamina_cost(owner, object, damage_blocked, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return) + active_block_do_stamina_damage(owner, object, stamina_cost, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return) + block_return[BLOCK_RETURN_ACTIVE_BLOCK_DAMAGE_MITIGATED] = damage - final_damage + block_return[BLOCK_RETURN_SET_DAMAGE_TO] = final_damage + . = BLOCK_SHOULD_CHANGE_DAMAGE + if((final_damage <= 0) || (damage <= 0)) + . |= BLOCK_SUCCESS //full block + owner.visible_message("[owner] blocks \the [attack_text] with [src]!") + else + owner.visible_message("[owner] dampens \the [attack_text] with [src]!") + block_return[BLOCK_RETURN_PROJECTILE_BLOCK_PERCENTAGE] = data.block_projectile_mitigation + if(length(data.block_sounds)) + playsound(loc, pickweight(data.block_sounds), 75, TRUE) + on_active_block(owner, object, damage, damage_blocked, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return, override_direction) + +/obj/item/proc/check_active_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(!can_active_block()) + return + var/incoming_direction = get_dir(get_turf(attacker) || get_turf(object), src) + if(!can_block_direction(owner.dir, incoming_direction)) + return + block_return[BLOCK_RETURN_ACTIVE_BLOCK] = TRUE + block_return[BLOCK_RETURN_ACTIVE_BLOCK_DAMAGE_MITIGATED] = damage - active_block_calculate_final_damage(owner, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return) + +/** + * Gets the block direction bitflags of what we can block. + */ +/obj/item/proc/blockable_directions() + var/datum/block_parry_data/data = get_block_parry_data() + return data.can_block_directions + +/** + * Checks if we can block from a specific direction from our direction. + * + * @params + * * our_dir - our direction. + * * their_dir - their direction. Must be a single direction, or NONE for an attack from the same tile. This is incoming direction. + */ +/obj/item/proc/can_block_direction(our_dir, their_dir) + their_dir = turn(their_dir, 180) + if(our_dir != NORTH) + var/turn_angle = dir2angle(our_dir) + // dir2angle(), ss13 proc is clockwise so dir2angle(EAST) == 90 + // turn(), byond proc is counterclockwise so turn(NORTH, 90) == WEST + their_dir = turn(their_dir, turn_angle) + return (DIR2BLOCKDIR(their_dir) & blockable_directions()) + +/** + * can_block_direction but for "compound" directions to check all of them and return the number of directions that were blocked. + * + * @params + * * our_dir - our direction. + * * their_dirs - list of their directions as we cannot use bitfields here. + */ +/obj/item/proc/can_block_directions_multiple(our_dir, list/their_dirs) + . = FALSE + for(var/i in their_dirs) + . |= can_block_direction(our_dir, i) diff --git a/code/modules/mob/living/living_active_parry.dm b/code/modules/mob/living/living_active_parry.dm new file mode 100644 index 0000000000..0dab70b045 --- /dev/null +++ b/code/modules/mob/living/living_active_parry.dm @@ -0,0 +1,346 @@ +// Active parry system goes in here. +/** + * Determines if we can actively parry. + */ +/obj/item/proc/can_active_parry() + return block_parry_data && (item_flags & ITEM_CAN_PARRY) + +/** + * Called from keybindings. + */ +/mob/living/proc/keybind_parry() + initiate_parry_sequence() + +/** + * Initiates a parrying sequence. + */ +/mob/living/proc/initiate_parry_sequence() + if(parrying) + return // already parrying + if(!(combat_flags & COMBAT_FLAG_PARRY_CAPABLE)) + to_chat(src, "You are not something that can parry attacks.") + return + // Prioritize item, then martial art, then unarmed. + // yanderedev else if time + var/obj/item/using_item = get_active_held_item() + var/datum/block_parry_data/data + var/datum/tool + var/method + if(using_item?.can_active_parry()) + data = using_item.block_parry_data + method = ITEM_PARRY + tool = using_item + else if(mind?.martial_art?.can_martial_parry) + data = mind.martial_art.block_parry_data + method = MARTIAL_PARRY + tool = mind.martial_art + else if(combat_flags & COMBAT_FLAG_UNARMED_PARRY) + data = block_parry_data + method = UNARMED_PARRY + tool = src + else + // QOL: If none of the above work, try to find another item. + var/obj/item/backup = find_backup_parry_item() + if(backup) + tool = backup + data = backup.block_parry_data + using_item = backup + method = ITEM_PARRY + var/list/other_items = list() + if(SEND_SIGNAL(src, COMSIG_LIVING_ACTIVE_PARRY_START, method, tool, other_items) & COMPONENT_PREVENT_PARRY_START) + to_chat(src, "Something is preventing you from parrying!") + return + if(!using_item && !method && length(other_items)) + using_item = other_items[1] + method = ITEM_PARRY + data = using_item.block_parry_data + if(!method) + to_chat(src, "You have nothing to parry with!") + return FALSE + //QOL: Try to enable combat mode if it isn't already + SEND_SIGNAL(src, COMSIG_ENABLE_COMBAT_MODE) + if(!SEND_SIGNAL(src, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_ACTIVE)) + to_chat(src, "You must be in combat mode to parry!") + return FALSE + data = return_block_parry_datum(data) + var/full_parry_duration = data.parry_time_windup + data.parry_time_active + data.parry_time_spindown + // no system in place to "fallback" if out of the 3 the top priority one can't parry due to constraints but something else can. + // can always implement it later, whatever. + if((data.parry_respect_clickdelay && (next_move > world.time)) || ((parry_end_time_last + data.parry_cooldown) > world.time)) + to_chat(src, "You are not ready to parry (again)!") + return + // Point of no return, make sure everything is set. + parrying = method + if(method == ITEM_PARRY) + active_parry_item = using_item + adjustStaminaLossBuffered(data.parry_stamina_cost) + parry_start_time = world.time + successful_parries = list() + addtimer(CALLBACK(src, .proc/end_parry_sequence), full_parry_duration) + if(data.parry_flags & PARRY_LOCK_ATTACKING) + ADD_TRAIT(src, TRAIT_MOBILITY_NOUSE, ACTIVE_PARRY_TRAIT) + if(data.parry_flags & PARRY_LOCK_SPRINTING) + ADD_TRAIT(src, TRAIT_SPRINT_LOCKED, ACTIVE_PARRY_TRAIT) + handle_parry_starting_effects(data) + return TRUE + +/** + * Tries to find a backup parry item. + * Does not look at active held item. + */ +/mob/living/proc/find_backup_parry_item() + for(var/obj/item/I in held_items - get_active_held_item()) + if(I.can_active_parry()) + return I + +/** + * Called via timer when the parry sequence ends. + */ +/mob/living/proc/end_parry_sequence() + if(!parrying) + return + REMOVE_TRAIT(src, TRAIT_MOBILITY_NOUSE, ACTIVE_PARRY_TRAIT) + REMOVE_TRAIT(src, TRAIT_SPRINT_LOCKED, ACTIVE_PARRY_TRAIT) + if(parry_visual_effect) + QDEL_NULL(parry_visual_effect) + var/datum/block_parry_data/data = get_parry_data() + var/list/effect_text = list() + var/successful = FALSE + for(var/efficiency in successful_parries) + if(efficiency >= data.parry_efficiency_considered_successful) + successful = TRUE + break + if(!successful) // didn't parry anything successfully + if(data.parry_failed_stagger_duration) + Stagger(data.parry_failed_stagger_duration) + effect_text += "staggering themselves" + if(data.parry_failed_clickcd_duration) + changeNext_move(data.parry_failed_clickcd_duration) + effect_text += "throwing themselves off balance" + handle_parry_ending_effects(data, effect_text) + parrying = NOT_PARRYING + parry_start_time = 0 + parry_end_time_last = world.time + successful_parries = null + +/** + * Handles starting effects for parrying. + */ +/mob/living/proc/handle_parry_starting_effects(datum/block_parry_data/data) + playsound(src, data.parry_start_sound, 75, 1) + parry_visual_effect = new /obj/effect/abstract/parry/main(null, TRUE, src, data.parry_effect_icon_state, data.parry_time_windup_visual_override || data.parry_time_windup, data.parry_time_active_visual_override || data.parry_time_active, data.parry_time_spindown_visual_override || data.parry_time_spindown) + switch(parrying) + if(ITEM_PARRY) + visible_message("[src] swings [active_parry_item]!") + else + visible_message("[src] rushes forwards!") + +/** + * Handles ending effects for parrying. + */ +/mob/living/proc/handle_parry_ending_effects(datum/block_parry_data/data, list/failed_effect_text) + if(length(successful_parries)) + return + visible_message("[src] fails to connect their parry[failed_effect_text? ", [english_list(failed_effect_text)]" : ""]!") + +/** + * Gets this item's datum/block_parry_data + */ +/obj/item/proc/get_block_parry_data() + return return_block_parry_datum(block_parry_data) + +//Stubs. + +/** + * Called when an attack is parried using this, whether or not the parry was successful. + */ +/obj/item/proc/on_active_parry(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return, parry_efficiency, parry_time) + +/** + * Called when an attack is parried innately, whether or not the parry was successful. + */ +/mob/living/proc/on_active_parry(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return, parry_efficiency, parry_time) + +/** + * Called when an attack is parried using this, whether or not the parry was successful. + */ +/datum/martial_art/proc/on_active_parry(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return, parry_efficiency, parry_time) + +/** + * Called when an attack is parried and block_parra_data indicates to use a proc to handle counterattack. + */ +/obj/item/proc/active_parry_reflex_counter(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list, parry_efficiency, list/effect_text) + +/** + * Called when an attack is parried and block_parra_data indicates to use a proc to handle counterattack. + */ +/mob/living/proc/active_parry_reflex_counter(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list, parry_efficiency, list/effect_text) + +/** + * Called when an attack is parried and block_parra_data indicates to use a proc to handle counterattack. + */ +/datum/martial_art/proc/active_parry_reflex_counter(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list, parry_efficiency, list/effect_text) + +/** + * Gets the stage of our parry sequence we're currently in. + */ +/mob/living/proc/get_parry_stage() + if(!parrying) + return NOT_PARRYING + var/datum/block_parry_data/data = get_parry_data() + var/windup_end = data.parry_time_windup + var/active_end = windup_end + data.parry_time_active + var/spindown_end = active_end + data.parry_time_spindown + var/current_time = get_parry_time() + // Not a switch statement because byond switch statements don't support floats at time of writing with "to" keyword. + if(current_time < 0) + return NOT_PARRYING + else if(current_time < windup_end) + return PARRY_WINDUP + else if(current_time <= active_end) // this uses <= on purpose, give a slight bit of advantage because time is rounded to world.tick_lag + return PARRY_ACTIVE + else if(current_time <= spindown_end) + return PARRY_SPINDOWN + else + return NOT_PARRYING + +/** + * Gets the current decisecond "frame" of an active parry. + */ +/mob/living/proc/get_parry_time() + return world.time - parry_start_time + +/// same return values as normal blocking, called with absolute highest priority in the block "chain". +/mob/living/proc/run_parry(atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list = list()) + var/stage = get_parry_stage() + if(stage != PARRY_ACTIVE) + return BLOCK_NONE + var/datum/block_parry_data/data = get_parry_data() + if(attack_type && (!(attack_type & data.parry_attack_types) || (attack_type & ATTACK_TYPE_PARRY_COUNTERATTACK))) // if this attack is from a parry do not parry it lest we infinite loop. + return BLOCK_NONE + var/efficiency = data.get_parry_efficiency(attack_type, get_parry_time()) + switch(parrying) + if(ITEM_PARRY) + if(!active_parry_item.can_active_parry()) + return BLOCK_NONE + . = active_parry_item.on_active_parry(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, efficiency, get_parry_time()) + if(UNARMED_PARRY) + . = on_active_parry(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, efficiency, get_parry_time()) + if(MARTIAL_PARRY) + . = mind.martial_art.on_active_parry(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, efficiency, get_parry_time()) + if(!isnull(return_list[BLOCK_RETURN_OVERRIDE_PARRY_EFFICIENCY])) // one of our procs overrode + efficiency = return_list[BLOCK_RETURN_OVERRIDE_PARRY_EFFICIENCY] + if(efficiency <= 0) // Do not allow automatically handled/standardized parries that increase damage for now. + return + . |= BLOCK_SHOULD_PARTIAL_MITIGATE + if(isnull(return_list[BLOCK_RETURN_MITIGATION_PERCENT])) // if one of the on_active_parry procs overrode. We don't have to worry about interference since parries are the first thing checked in the [do_run_block()] sequence. + return_list[BLOCK_RETURN_MITIGATION_PERCENT] = clamp(efficiency, 0, 100) // do not allow > 100% or < 0% for now. + if((return_list[BLOCK_RETURN_MITIGATION_PERCENT] >= 100) || (damage <= 0)) + . |= BLOCK_SUCCESS + var/list/effect_text + if(efficiency >= data.parry_efficiency_to_counterattack) + run_parry_countereffects(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, efficiency) + if(data.parry_flags & PARRY_DEFAULT_HANDLE_FEEDBACK) + handle_parry_feedback(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, efficiency, effect_text) + successful_parries += efficiency + if(length(successful_parries) >= data.parry_max_attacks) + end_parry_sequence() + +/mob/living/proc/handle_parry_feedback(atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list = list(), parry_efficiency, list/effect_text) + var/datum/block_parry_data/data = get_parry_data() + if(data.parry_sounds) + playsound(src, pick(data.parry_sounds), 75) + visible_message("[src] parries \the [attack_text][length(effect_text)? ", [english_list(effect_text)] [attacker]" : ""]!") + +/// Run counterattack if any +/mob/living/proc/run_parry_countereffects(atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list = list(), parry_efficiency) + if(!isliving(attacker)) + return + var/mob/living/L = attacker + var/datum/block_parry_data/data = get_parry_data() + var/list/effect_text = list() + // Always proc so items can override behavior easily + switch(parrying) + if(ITEM_PARRY) + active_parry_item.active_parry_reflex_counter(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, parry_efficiency, effect_text) + if(UNARMED_PARRY) + active_parry_reflex_counter(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, parry_efficiency, effect_text) + if(MARTIAL_PARRY) + mind.martial_art.active_parry_reflex_counter(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, parry_efficiency, effect_text) + if(Adjacent(attacker) || data.parry_data[PARRY_COUNTERATTACK_IGNORE_ADJACENCY]) + if(data.parry_data[PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN]) + switch(parrying) + if(ITEM_PARRY) + active_parry_item.melee_attack_chain(src, attacker, null, ATTACKCHAIN_PARRY_COUNTERATTACK, data.parry_data[PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN]) + effect_text += "reflexively counterattacking with [active_parry_item]" + if(UNARMED_PARRY) // WARNING: If you are using these two, the attackchain parry counterattack flags and damage multipliers are unimplemented. Be careful with how you handle this. + UnarmedAttack(attacker) + effect_text += "reflexively counterattacking in the process" + if(MARTIAL_PARRY) // Not well implemeneted, recommend custom implementation using the martial art datums. + UnarmedAttack(attacker) + effect_text += "reflexively maneuvering to retaliate" + if(data.parry_data[PARRY_DISARM_ATTACKER]) + L.drop_all_held_items() + effect_text += "disarming" + if(data.parry_data[PARRY_KNOCKDOWN_ATTACKER]) + L.DefaultCombatKnockdown(data.parry_data[PARRY_KNOCKDOWN_ATTACKER]) + effect_text += "knocking them to the ground" + if(data.parry_data[PARRY_STAGGER_ATTACKER]) + L.Stagger(data.parry_data[PARRY_STAGGER_ATTACKER]) + effect_text += "staggering" + if(data.parry_data[PARRY_DAZE_ATTACKER]) + L.Daze(data.parry_data[PARRY_DAZE_ATTACKER]) + effect_text += "dazing" + return effect_text + +/// Gets the datum/block_parry_data we're going to use to parry. +/mob/living/proc/get_parry_data() + if(parrying == ITEM_PARRY) + return active_parry_item.get_block_parry_data() + else if(parrying == UNARMED_PARRY) + return return_block_parry_datum(block_parry_data) + else if(parrying == MARTIAL_PARRY) + return return_block_parry_datum(mind.martial_art.block_parry_data) + +/// Effects +/obj/effect/abstract/parry + icon = 'icons/effects/block_parry.dmi' + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + layer = FLOAT_LAYER + plane = FLOAT_PLANE + vis_flags = VIS_INHERIT_LAYER|VIS_INHERIT_PLANE + /// The person we're on + var/mob/living/owner + +/obj/effect/abstract/parry/main + name = null + +/obj/effect/abstract/parry/main/Initialize(mapload, autorun, mob/living/owner, set_icon_state, windup, active, spindown) + . = ..() + icon_state = set_icon_state + if(owner) + attach_to(owner) + if(autorun) + INVOKE_ASYNC(src, .proc/run_animation, windup, active, spindown) + +/obj/effect/abstract/parry/main/Destroy() + detach_from(owner) + return ..() + +/obj/effect/abstract/parry/main/proc/attach_to(mob/living/attaching) + if(owner) + detach_from(owner) + owner = attaching + owner.vis_contents += src + +/obj/effect/abstract/parry/main/proc/detach_from(mob/living/detaching) + if(detaching == owner) + owner = null + detaching.vis_contents -= src + +/obj/effect/abstract/parry/main/proc/run_animation(windup_time = 2, active_time = 5, spindown_time = 3) + var/matrix/current = transform + transform = matrix(0.1, 0, 0, 0, 0.1, 0) + animate(src, transform = current, time = windup_time) + sleep(active_time) + animate(src, alpha = 0, spindown_time) diff --git a/code/modules/mob/living/living_block.dm b/code/modules/mob/living/living_block.dm index 8156f83dbd..d32265e478 100644 --- a/code/modules/mob/living/living_block.dm +++ b/code/modules/mob/living/living_block.dm @@ -1,31 +1,6 @@ // This file has a weird name, but it's for anything related to the checks for shields, blocking, dodging, // and similar "stop this attack before it actually impacts the target" as opposed to "defend once it has hit". -/* -/// You can find the mob_check_block() and mob_run_block() macros in __DEFINES/combat.dm - -/// Bitflags for check_block() and run_block(). Meant to be combined. You can be hit and still reflect, for example, if you do not use BLOCK_SUCCESS. -/// Attack was not blocked -#define BLOCK_NONE NONE -/// Attack was blocked, do not do damage. THIS FLAG MUST BE THERE FOR DAMAGE/EFFECT PREVENTION! -#define BLOCK_SUCCESS (1<<1) - -/// The below are for "metadata" on "how" the attack was blocked. - -/// Attack was and should be reflected (NOTE: the SHOULD here is important, as it says "the thing blocking isn't handling the reflecting for you so do it yourself"!) -#define BLOCK_SHOULD_REFLECT (1<<2) -/// Attack was manually redirected (including reflected) by any means by the defender. For when YOU are handling the reflection, rather than the thing hitting you. (see sleeping carp) -#define BLOCK_REDIRECTED (1<<3) -/// Attack was blocked by something like a shield. -#define BLOCK_PHYSICAL_EXTERNAL (1<<4) -/// Attack was blocked by something worn on you. -#define BLOCK_PHYSICAL_INTERNAL (1<<5) -/// Attack should pass through. Like SHOULD_REFLECT but for.. well, passing through harmlessly. -#define BLOCK_SHOULD_PASSTHROUGH (1<<6) -/// Attack outright missed because the target dodged. Should usually be combined with SHOULD_PASSTHROUGH or something (see martial arts) -#define BLOCK_TARGET_DODGED (1<<7) -*/ - /** The actual proc for block checks. DO NOT USE THIS DIRECTLY UNLESS YOU HAVE VERY GOOD REASON TO. To reduce copypaste for differences between handling for real attacks and virtual checks. * Automatically checks all held items for /obj/item/proc/run_block() with the same parameters. * @params @@ -39,21 +14,31 @@ * attacker - Set to the mob attacking IF KNOWN. Do not expect this to always be set! * def_zone - The zone this'll impact. * return_list - If something wants to grab things from what items/whatever put into list/block_return on obj/item/run_block and the comsig, pass in a list so you can grab anything put in it after block runs. + * attack_direction - Direction of the attack. It is highly recommended to put this in, as the automatic guesswork that's done otherwise is quite inaccurate at times. */ -/mob/living/proc/do_run_block(real_attack = TRUE, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list = list()) +/mob/living/proc/do_run_block(real_attack = TRUE, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list = list(), attack_direction) + if(real_attack) + . = run_parry(object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list) //Parry - Highest priority! + if((. & BLOCK_SUCCESS) && !(. & BLOCK_CONTINUE_CHAIN)) + return // Component signal block runs have highest priority.. for now. - . = SEND_SIGNAL(src, COMSIG_LIVING_RUN_BLOCK, real_attack, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list) + . = SEND_SIGNAL(src, COMSIG_LIVING_RUN_BLOCK, real_attack, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list, attack_direction) if((. & BLOCK_SUCCESS) && !(. & BLOCK_CONTINUE_CHAIN)) + return_list[BLOCK_RETURN_PROJECTILE_BLOCK_PERCENTAGE] = 100 return var/list/obj/item/tocheck = get_blocking_items() - sortTim(tocheck, /proc/cmp_item_block_priority_asc) + sortTim(tocheck, /proc/cmp_numeric_dsc, TRUE) // i don't like this var/block_chance_modifier = round(damage / -3) if(real_attack) for(var/obj/item/I in tocheck) // i don't like this too var/final_block_chance = I.block_chance - (clamp((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example - var/results = I.run_block(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list) + var/results + if(I == active_block_item) + results = I.active_block(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list, attack_direction) + else + results = I.run_block(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list) . |= results if((results & BLOCK_SUCCESS) && !(results & BLOCK_CONTINUE_CHAIN)) break @@ -61,17 +46,29 @@ for(var/obj/item/I in tocheck) // i don't like this too var/final_block_chance = I.block_chance - (clamp((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example - I.check_block(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list) + if(I == active_block_item) //block is long termed enough we give a damn. parry, not so much. + I.check_active_block(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list, attack_direction) + else + I.check_block(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list) + if(. & BLOCK_SUCCESS) + return_list[BLOCK_RETURN_PROJECTILE_BLOCK_PERCENTAGE] = 100 + else if(isnull(return_list[BLOCK_RETURN_PROJECTILE_BLOCK_PERCENTAGE])) + return_list[BLOCK_RETURN_PROJECTILE_BLOCK_PERCENTAGE] = return_list[BLOCK_RETURN_MITIGATION_PERCENT] -/// Gets an unsortedlist of objects to run block checks on. +/// Gets an unsortedlist of objects to run block checks on. List must have associative values for priorities! /mob/living/proc/get_blocking_items() . = list() + if(active_block_item) + var/datum/block_parry_data/data = active_block_item.get_block_parry_data() + .[active_block_item] = data.block_active_priority SEND_SIGNAL(src, COMSIG_LIVING_GET_BLOCKING_ITEMS, .) for(var/obj/item/I in held_items) // this is a bad check but i am not removing it until a better catchall is made if(istype(I, /obj/item/clothing)) continue - . |= I + if(.[I]) //don't override block/parry. + continue + .[I] = I.block_priority /obj/item /// The 0% to 100% chance for the default implementation of random block rolls. @@ -85,7 +82,8 @@ if(. & BLOCK_SUCCESS) return if(prob(final_block_chance)) - owner.visible_message("[owner] blocks [attack_text] with [src]!") + owner.visible_message("[owner] blocks [attack_text] with [src]!", + "You block [attack_text] with [src]!") return . | BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL return . | BLOCK_NONE @@ -94,3 +92,15 @@ SEND_SIGNAL(src, COMSIG_ITEM_CHECK_BLOCK, owner, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return) var/existing = block_return[BLOCK_RETURN_NORMAL_BLOCK_CHANCE] block_return[BLOCK_RETURN_NORMAL_BLOCK_CHANCE] = max(existing || 0, final_block_chance) + +// HELPER PROCS + +/** + * Considers a block return_list and calculates damage to use from that. + */ +/proc/block_calculate_resultant_damage(damage, list/block_return) + if(!isnull(block_return[BLOCK_RETURN_SET_DAMAGE_TO])) // higher priority + return block_return[BLOCK_RETURN_SET_DAMAGE_TO] + else if(!isnull(block_return[BLOCK_RETURN_MITIGATION_PERCENT])) + return damage * ((100 - block_return[BLOCK_RETURN_MITIGATION_PERCENT]) * 0.01) + return damage diff --git a/code/modules/mob/living/living_blocking_parrying.dm b/code/modules/mob/living/living_blocking_parrying.dm new file mode 100644 index 0000000000..9f1ad1c27a --- /dev/null +++ b/code/modules/mob/living/living_blocking_parrying.dm @@ -0,0 +1,310 @@ +// yell at me later for file naming +// This file contains stuff relating to the new directional blocking and parry system. +GLOBAL_LIST_EMPTY(block_parry_data) + +/proc/return_block_parry_datum(datum/block_parry_data/type_id_datum) + if(istype(type_id_datum)) + return type_id_datum + if(ispath(type_id_datum)) + . = GLOB.block_parry_data["[type_id_datum]"] + if(!.) + . = GLOB.block_parry_data["[type_id_datum]"] = new type_id_datum + else //text id + return GLOB.block_parry_data["[type_id_datum]"] + +/proc/set_block_parry_datum(id, datum/block_parry_data/data) + if(ispath(id)) + CRASH("Path-fetching of block parry data is only to grab static data, do not attempt to modify global caches of paths. Use string IDs.") + GLOB.block_parry_data["[id]"] = data + +/// Carries data like list data that would be a waste of memory if we initialized the list on every /item as we can cache datums easier. +/datum/block_parry_data + /////////// BLOCKING //////////// + + /// NOTE: FOR ATTACK_TYPE_DEFINE, you MUST wrap it in "[DEFINE_HERE]"! The defines are bitflags, and therefore, NUMBERS! + + /// See defines. Point of reference is someone facing north. + var/can_block_directions = BLOCK_DIR_NORTH | BLOCK_DIR_NORTHEAST | BLOCK_DIR_NORTHWEST + /// Attacks we can block + var/can_block_attack_types = ALL + /// Our slowdown added while blocking + var/block_slowdown = 1 + /// Clickdelay added to user after block ends + var/block_end_click_cd_add = 0 + /// Disallow attacking during block + var/block_lock_attacking = TRUE + /// Disallow sprinting during block + var/block_lock_sprinting = FALSE + /// The priority we get in [mob/do_run_block()] while we're being used to parry. + var/block_active_priority = BLOCK_PRIORITY_ACTIVE_BLOCK + /// Windup before we have our blocking active. + var/block_start_delay = 5 + + /// Amount of "free" damage blocking absorbs + var/block_damage_absorption = 10 + /// Override absorption, list("[ATTACK_TYPE_DEFINE]" = absorption), see [block_damage_absorption] + var/list/block_damage_absorption_override + + /// Ratio of damage to allow through above absorption and below limit. Multiplied by damage to determine how much to let through. Lower is better. + var/block_damage_multiplier = 0.5 + /// Override damage overrun efficiency, list("[ATTACK_TYPE_DEFINE]" = absorption), see [block_damage_efficiency] + var/list/block_damage_multiplier_override + + /// Upper bound of damage block, anything above this will go right through. + var/block_damage_limit = 80 + /// Override upper bound of damage block, list("[ATTACK_TYPE_DEFINE]" = absorption), see [block_damage_limit] + var/list/block_damage_limit_override + + /// The blocked variable of on_hit() on projectiles is impacted by this. Higher is better, 0 to 100, percentage. + var/block_projectile_mitigation = 50 + + /* + * NOTE: Overrides for attack types for most the block_stamina variables were removed, + * because at the time of writing nothing needed to use it. Add them if you need it, + * it should be pretty easy, just copy [active_block_damage_mitigation] + * for how to override with list. + */ + + /// Default damage-to-stamina coefficient, higher is better. This is based on amount of damage BLOCKED, not initial damage, to prevent damage from "double dipping". + var/block_stamina_efficiency = 2 + /// Override damage-to-stamina coefficient, see [block_efficiency], this should be list("[ATTACK_TYPE_DEFINE]" = coefficient_number) + var/list/block_stamina_efficiency_override + /// Ratio of stamina incurred by blocking that goes to the arm holding the object instead of the chest. Has no effect if this is not held in hand. + var/block_stamina_limb_ratio = 0.5 + /// Ratio of stamina incurred by chest (so after [block_stamina_limb_ratio] runs) that is buffered. + var/block_stamina_buffer_ratio = 1 + + /// Stamina dealt directly via adjustStaminaLossBuffered() per SECOND of block. + var/block_stamina_cost_per_second = 1.5 + + /// Bitfield for attack types that we can block while down. This will work in any direction. + var/block_resting_attack_types_anydir = ATTACK_TYPE_MELEE | ATTACK_TYPE_UNARMED | ATTACK_TYPE_TACKLE + /// Bitfield for attack types that we can block while down but only in our normal directions. + var/block_resting_attack_types_directional = ATTACK_TYPE_PROJECTILE | ATTACK_TYPE_THROWN + /// Multiplier to stamina damage taken for attacks blocked while downed. + var/block_resting_stamina_penalty_multiplier = 1.5 + /// Override list for multiplier to stamina damage taken for attacks blocked while down. list("[ATTACK_TYPE_DEFINE]" = multiplier_number) + var/list/block_resting_stamina_penalty_multiplier_override + + /// Sounds for blocking + var/list/block_sounds = list('sound/block_parry/block_metal1.ogg' = 1, 'sound/block_parry/block_metal1.ogg' = 1) + + /////////// PARRYING //////////// + /// Prioriry for [mob/do_run_block()] while we're being used to parry. + // None - Parry is always highest priority! + /// Parry doesn't work if you aren't able to otherwise attack due to clickdelay + var/parry_respect_clickdelay = TRUE + /// Parry stamina cost + var/parry_stamina_cost = 5 + /// Attack types we can block + var/parry_attack_types = ALL + /// Parry flags + var/parry_flags = PARRY_DEFAULT_HANDLE_FEEDBACK | PARRY_LOCK_ATTACKING + + /// Parry windup duration in deciseconds. 0 to this is windup, afterwards is main stage. + var/parry_time_windup = 2 + /// Parry spindown duration in deciseconds. main stage end to this is the spindown stage, afterwards the parry fully ends. + var/parry_time_spindown = 3 + /// Main parry window in deciseconds. This is between [parry_time_windup] and [parry_time_spindown] + var/parry_time_active = 5 + // Visual overrides + /// If set, overrides visual duration of windup + var/parry_time_windup_visual_override + /// If set, overrides visual duration of active period + var/parry_time_active_visual_override + /// If set, overrides visual duration of spindown + var/parry_time_spindown_visual_override + /// Perfect parry window in deciseconds from the start of the main window. 3 with main 5 = perfect on third decisecond of main window. + var/parry_time_perfect = 2.5 + /// Time on both sides of perfect parry that still counts as part of the perfect window. + var/parry_time_perfect_leeway = 1 + /// [parry_time_perfect_leeway] override for attack types, list("[ATTACK_TYPE_DEFINE]" = deciseconds) + var/list/parry_time_perfect_leeway_override + /// Parry "efficiency" falloff in percent per decisecond once perfect window is over. + var/parry_imperfect_falloff_percent = 20 + /// [parry_imperfect_falloff_percent] override for attack types, list("[ATTACK_TYPE_DEFINE]" = deciseconds) + var/list/parry_imperfect_falloff_percent_override + /// Efficiency in percent on perfect parry. + var/parry_efficiency_perfect = 120 + /// Parry effect data. + var/list/parry_data = list( + PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 1 + ) + /// Efficiency must be at least this to be considered successful + var/parry_efficiency_considered_successful = 0.1 + /// Efficiency must be at least this to run automatic counterattack + var/parry_efficiency_to_counterattack = 0.1 + /// Maximum attacks to parry successfully or unsuccessfully (but not efficiency < 0) during active period, hitting this immediately ends the sequence. + var/parry_max_attacks = INFINITY + /// Visual icon state override for parrying + var/parry_effect_icon_state = "parry_bm_hold" + /// Parrying cooldown, separate of clickdelay. It must be this much deciseconds since their last parry for them to parry with this object. + var/parry_cooldown = 0 + /// Parry start sound + var/parry_start_sound = 'sound/block_parry/sfx-parry.ogg' + /// Sounds for parrying + var/list/parry_sounds = list('sound/block_parry/block_metal1.ogg' = 1, 'sound/block_parry/block_metal1.ogg' = 1) + /// Stagger duration post-parry if you fail to parry an attack + var/parry_failed_stagger_duration = 3.5 SECONDS + /// Clickdelay duration post-parry if you fail to parry an attack + var/parry_failed_clickcd_duration = 2 SECONDS + +/** + * Quirky proc to get average of flags in list that are in attack_type because why is attack_type a flag. + */ +/datum/block_parry_data/proc/attack_type_list_scan(list/L, attack_type) + var/total = 0 + var/div = 0 + for(var/flagtext in L) + if(attack_type & text2num(flagtext)) + total += L[flagtext] + div++ + // if none, return null. + if(!div) + return + return total/div //groan + + +/** + * Gets the percentage efficiency of our parry. + * + * Returns a percentage in normal 0 to 100 scale, but not clamped to just 0 to 100. + * This is a proc to allow for overriding. + * @params + * * attack_type - int, bitfield of the attack type(s) + * * parry_time - deciseconds since start of the parry. + */ +/datum/block_parry_data/proc/get_parry_efficiency(attack_type, parry_time) + var/difference = abs(parry_time - (parry_time_perfect + parry_time_windup)) + var/leeway = attack_type_list_scan(parry_time_perfect_leeway_override, attack_type) + if(isnull(leeway)) + leeway = parry_time_perfect_leeway + difference -= leeway + . = parry_efficiency_perfect + if(difference <= 0) + return + var/falloff = attack_type_list_scan(parry_imperfect_falloff_percent_override, attack_type) + if(isnull(falloff)) + falloff = parry_imperfect_falloff_percent + . -= falloff * difference + +#define RENDER_VARIABLE_SIMPLE(varname, desc) dat += "[#varname]
    [desc][varname]" +#define RENDER_OVERRIDE_LIST(varname, desc) \ + dat += "[#varname]
    [desc]"; \ + var/list/assembled__##varname = list(); \ + for(var/textbit in varname){ \ + assembled__##varname += "[GLOB.attack_type_names[textbit]] = [varname[textbit]]"; \ + } \ + dat += "[english_list(assembled__##varname)]"; +#define RENDER_ATTACK_TYPES(varname, desc) dat += "[#varname]
    [desc]"; \ + var/list/assembled__##varname = list(); \ + for(var/bit in bitfield2list(varname)){ \ + var/name = GLOB.attack_type_names[num2text(bit)]; \ + if(name){ \ + assembled__##varname += "[name]"; \ + } \ + } \ + dat += "[english_list(assembled__##varname)]"; +#define RENDER_BLOCK_DIRECTIONS(varname, desc) \ + dat += "[#varname]
    [desc]"; \ + var/list/assembled__##varname = list(); \ + for(var/bit in bitfield2list(varname)){ \ + var/name = GLOB.block_direction_names[num2text(bit)]; \ + if(name){ \ + assembled__##varname += "[name]"; \ + } \ + } \ + dat += "[english_list(assembled__##varname)]"; + +/datum/block_parry_data/Topic(href, href_list) + . = ..() + if(.) + return + if(href_list["render"]) + var/datum/browser/B = new(usr, REF(src), href_list["name"], 800, 1000) + B.set_content(render_html_readout(href_list["block"], href_list["parry"])) + B.open() + +/** + * Generates a HTML render of this datum for self-documentation + * Maybe make this tgui-next someday haha god this is ugly as sin. + * Does NOT include the popout or title or anything. Just the variables and explanations.. + */ +/datum/block_parry_data/proc/render_html_readout(block_data = FALSE, parry_data = FALSE) + var/list/dat = list() + if(block_data) + dat += "

    Block Stats

    " + RENDER_BLOCK_DIRECTIONS(can_block_directions, "Which directions this can block in.") + RENDER_ATTACK_TYPES(can_block_attack_types, "The kinds of attacks this can block.") + RENDER_VARIABLE_SIMPLE(block_slowdown, "How much slowdown is applied to the user while blocking. Lower is better.") + RENDER_VARIABLE_SIMPLE(block_end_click_cd_add, "How much click delay in deciseconds is applied to the user when blocking ends. Lower is better.") + RENDER_VARIABLE_SIMPLE(block_lock_attacking, "Whether or not (1 or 0) the user is locked from atacking and/or item usage while blocking.") + RENDER_VARIABLE_SIMPLE(block_active_priority, "The priority of this item in the block sequence. This will probably mean nothing to you unless you are a coder.") + RENDER_VARIABLE_SIMPLE(block_start_delay, "The amount of time in deciseconds it takes to start a block with this item. Lower is better.") + RENDER_VARIABLE_SIMPLE(block_damage_absorption, "The amount of damage that is absorbed by default. Higher is better.") + RENDER_OVERRIDE_LIST(block_damage_absorption_override, "Overrides for the above for each attack type") + RENDER_VARIABLE_SIMPLE(block_damage_multiplier, "Damage between absorption and limit is multiplied by this. Lower is better.") + RENDER_OVERRIDE_LIST(block_damage_multiplier_override, "Overrides for the above for each attack type") + RENDER_VARIABLE_SIMPLE(block_damage_limit, "Damage above this passes right through and is not impacted. Higher is better.") + RENDER_OVERRIDE_LIST(block_damage_limit_override, "Overrides for the above for each attack type.") + RENDER_VARIABLE_SIMPLE(block_stamina_efficiency, "Coefficient for stamina damage dealt to user by damage blocked. Higher is better.") + RENDER_OVERRIDE_LIST(block_stamina_efficiency_override, "Overrides for the above for each attack type.") + RENDER_VARIABLE_SIMPLE(block_stamina_limb_ratio, "The ratio of stamina that is applied to the limb holding this object (if applicable) rather than whole body/chest.") + RENDER_VARIABLE_SIMPLE(block_stamina_buffer_ratio, "The ratio of stamina incurred by chest/whole body that is buffered rather than direct (buffer = your stamina buffer, direct = direct stamina damage like from a disabler.)") + RENDER_VARIABLE_SIMPLE(block_stamina_cost_per_second, "The buffered stamina damage the user incurs per second of block. Lower is better.") + RENDER_ATTACK_TYPES(block_resting_attack_types_anydir, "The kinds of attacks you can block while resting/otherwise knocked to the floor from any direction. can_block_attack_types takes precedence.") + RENDER_ATTACK_TYPES(block_resting_attack_types_directional, "The kinds of attacks you can block wihle resting/otherwise knocked to the floor that are directional only. can_block_attack_types takes precedence.") + RENDER_VARIABLE_SIMPLE(block_resting_stamina_penalty_multiplier, "Multiplier to stamina damage incurred from blocking while downed. Lower is better.") + RENDER_OVERRIDE_LIST(block_resting_stamina_penalty_multiplier, "Overrides for the above for each attack type.") + dat += "
    Name/DescriptionValue
    " + if(parry_data) + dat += "

    Parry Stats

    " + RENDER_VARIABLE_SIMPLE(parry_respect_clickdelay, "Whether or not (1 or 0) you can only parry if your attack cooldown isn't in effect.") + RENDER_VARIABLE_SIMPLE(parry_stamina_cost, "Buffered stamina damage incurred by you for parrying with this.") + RENDER_ATTACK_TYPES(parry_attack_types, "Attack types you can parry.") + // parry_flags + dat += "" + RENDER_VARIABLE_SIMPLE(parry_time_windup, "Deciseconds of parry windup.") + RENDER_VARIABLE_SIMPLE(parry_time_spindown, "Deciseconds of parry spindown.") + RENDER_VARIABLE_SIMPLE(parry_time_active, "Deciseconds of active parry window - This is the ONLY time your parry is active.") + RENDER_VARIABLE_SIMPLE(parry_time_windup_visual_override, "Visual effect length override") + RENDER_VARIABLE_SIMPLE(parry_time_spindown_visual_override, "Visual effect length override") + RENDER_VARIABLE_SIMPLE(parry_time_active_visual_override, "Visual effect length override") + RENDER_VARIABLE_SIMPLE(parry_time_perfect, "Deciseconds into the active window considered the 'center' of the perfect period.") + RENDER_VARIABLE_SIMPLE(parry_time_perfect_leeway, "Leeway on both sides of the perfect period's center still considered perfect.") + RENDER_OVERRIDE_LIST(parry_time_perfect_leeway_override, "Override for the above for each attack type") + RENDER_VARIABLE_SIMPLE(parry_imperfect_falloff_percent, "Linear falloff in percent per decisecond for attacks parried outside of perfect window.") + RENDER_OVERRIDE_LIST(parry_imperfect_falloff_percent_override, "Override for the above for each attack type") + RENDER_VARIABLE_SIMPLE(parry_efficiency_perfect, "Efficiency in percentage a parry in the perfect window is considered.") + // parry_data + dat += "" + RENDER_VARIABLE_SIMPLE(parry_efficiency_considered_successful, "Minimum parry efficiency to be considered a successful parry.") + RENDER_VARIABLE_SIMPLE(parry_efficiency_to_counterattack, "Minimum parry efficiency to trigger counterattack effects.") + RENDER_VARIABLE_SIMPLE(parry_max_attacks, "Max attacks parried per parry cycle.") + RENDER_VARIABLE_SIMPLE(parry_effect_icon_state, "Parry effect image name") + RENDER_VARIABLE_SIMPLE(parry_cooldown, "Deciseconds it has to be since the last time a parry sequence ended for you before you can parry again.") + RENDER_VARIABLE_SIMPLE(parry_failed_stagger_duration, "Deciseconds you are staggered for at the of the parry sequence if you do not successfully parry anything.") + RENDER_VARIABLE_SIMPLE(parry_failed_clickcd_duration, "Deciseconds you are put on attack cooldown at the end of the parry sequence if you do not successfully parry anything.") + dat += "
    Name/DescriptionValue
    " + return dat.Join("") +#undef RENDER_VARIABLE_SIMPLE +#undef RENDER_OVERRIDE_LIST +#undef RENDER_ATTACK_TYPES +#undef RENDER_BLOCK_DIRECTIONS + +// MOB PROCS + +/** + * Called every life tick to handle blocking/parrying effects. + */ +/mob/living/proc/handle_block_parry(seconds = 1) + if(combat_flags & COMBAT_FLAG_ACTIVE_BLOCKING) + var/datum/block_parry_data/data = return_block_parry_datum(active_block_item.block_parry_data) + adjustStaminaLossBuffered(data.block_stamina_cost_per_second * seconds) + +/mob/living/on_item_dropped(obj/item/I) + if(I == active_block_item) + stop_active_blocking() + if(I == active_parry_item) + end_parry_sequence() + return ..() diff --git a/code/modules/mob/living/living_combat.dm b/code/modules/mob/living/living_combat.dm deleted file mode 100644 index dbdcd1ea5b..0000000000 --- a/code/modules/mob/living/living_combat.dm +++ /dev/null @@ -1,93 +0,0 @@ -/mob/living/ComponentInitialize() - . = ..() - RegisterSignal(src, SIGNAL_TRAIT(TRAIT_COMBAT_MODE_LOCKED), .proc/update_combat_lock) - -/mob/living/proc/update_combat_lock() - var/locked = HAS_TRAIT(src, TRAIT_COMBAT_MODE_LOCKED) - var/desired = (combat_flags & COMBAT_FLAG_COMBAT_TOGGLED) - var/actual = (combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) - if(actual) - if(locked) - disable_combat_mode(FALSE, TRUE, FALSE, FALSE) - else if(!desired) - disable_combat_mode(TRUE, TRUE, FALSE, FALSE) - else - if(desired && !locked) - enable_combat_mode(FALSE, TRUE, FALSE, FALSE) - update_combat_mode_icon() - -/mob/living/proc/disable_combat_mode(silent = TRUE, was_forced = FALSE, visible = FALSE, update_icon = TRUE) - if(!(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) || (combat_flags & COMBAT_FLAG_COMBAT_FORCED)) - return - DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_COMBAT_ACTIVE) - SEND_SIGNAL(src, COMSIG_LIVING_COMBAT_DISABLED, was_forced) - if(visible) - visible_message("[src] goes limp.", "Your muscles are forcibly relaxed!") - else if(!silent) - to_chat(src, was_forced? "Your muscles are forcibly relaxed!" : "You relax your muscles.") - if(update_icon) - update_combat_mode_icon() - -/mob/living/proc/enable_combat_mode(silent = TRUE, was_forced = FALSE, visible = FALSE, update_icon = TRUE) - if(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) - return - ENABLE_BITFIELD(combat_flags, COMBAT_FLAG_COMBAT_ACTIVE) - SEND_SIGNAL(src, COMSIG_LIVING_COMBAT_ENABLED, was_forced) - if(visible) - visible_message("[src] drops into a combative stance!", "You drop into a combative stance!") - else if(!silent) - to_chat(src, was_forced? "Your muscles reflexively tighten!" : "You tighten your muscles.") - if(update_icon) - update_combat_mode_icon() - -/// Updates the combat mode HUD icon. -/mob/living/proc/update_combat_mode_icon() - var/obj/screen/combattoggle/T = locate() in hud_used?.static_inventory - T?.update_icon() - -/// Enables intentionally being in combat mode. Please try not to use this proc for feedback whenever possible. -/mob/living/proc/enable_intentional_combat_mode(silent = TRUE, visible = FALSE) - if((combat_flags & COMBAT_FLAG_COMBAT_TOGGLED) && (combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) - return - ENABLE_BITFIELD(combat_flags, COMBAT_FLAG_COMBAT_TOGGLED) - if(!HAS_TRAIT(src, TRAIT_COMBAT_MODE_LOCKED) && !(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) - enable_combat_mode(silent, FALSE, visible, FALSE) - update_combat_mode_icon() - client?.show_popup_menus = FALSE - return TRUE - -/// Disables intentionally being in combat mode. Please try not to use this proc for feedback whenever possible. -/mob/living/proc/disable_intentional_combat_mode(silent = TRUE, visible = FALSE) - if(!(combat_flags & COMBAT_FLAG_COMBAT_TOGGLED) && !(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) - return - if(combat_flags & COMBAT_FLAG_COMBAT_FORCED) - return - DISABLE_BITFIELD(combat_flags, COMBAT_FLAG_COMBAT_TOGGLED) - if(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) - disable_combat_mode(silent, FALSE, visible, FALSE) - update_combat_mode_icon() - client?.show_popup_menus = TRUE - return TRUE - -/// Toggles whether the user is intentionally in combat mode. THIS should be the proc you generally use! Has built in visual/to other player feedback, as well as an audible cue to ourselves. -/mob/living/proc/user_toggle_intentional_combat_mode(visible = TRUE) - var/old = (combat_flags & COMBAT_FLAG_COMBAT_TOGGLED) - if(old) - if(combat_flags & COMBAT_FLAG_COMBAT_FORCED) - to_chat(src, "You are unable to relax your muscles.") - return - disable_intentional_combat_mode() - playsound_local(src, 'sound/misc/ui_toggleoff.ogg', 50, FALSE, pressure_affected = FALSE) //Slightly modified version of the above! - else if(CAN_TOGGLE_COMBAT_MODE(src)) - enable_intentional_combat_mode() - var/current = (combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) //because we could be locked - if(current != old) //only sound effect if you succeeded. Could have the feedback system be better but shrug, someone else can do it. - if(current) - playsound_local(src, 'sound/misc/ui_toggle.ogg', 50, FALSE, pressure_affected = FALSE) //Sound from interbay! - if(visible) - if(world.time >= combatmessagecooldown) - combatmessagecooldown = world.time + 10 SECONDS - if(a_intent != INTENT_HELP) - visible_message("[src] [resting ? "tenses up" : (prob(95)? "drops into a combative stance" : (prob(95)? "poses aggressively" : "asserts dominance with their pose"))].") - else - visible_message("[src] [pick("looks","seems","goes")] [pick("alert","attentive","vigilant")].") diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 4cf6fc3694..07252b4c45 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -1,7 +1,10 @@ -/mob/living/proc/run_armor_check(def_zone = null, attack_flag = "melee", absorb_text = "Your armor absorbs the blow!", soften_text = "Your armor softens the blow!", armour_penetration, penetrated_text = "Your armor was penetrated!") +/mob/living/proc/run_armor_check(def_zone = null, attack_flag = "melee", absorb_text = "Your armor absorbs the blow!", soften_text = "Your armor softens the blow!", armour_penetration, penetrated_text = "Your armor was penetrated!", silent=FALSE) var/armor = getarmor(def_zone, attack_flag) + if(silent) + return max(0, armor - armour_penetration) + //the if "armor" check is because this is used for everything on /living, including humans if(armor && armour_penetration) armor = max(0, armor - armour_penetration) @@ -43,21 +46,21 @@ P.setAngle(SIMPLIFY_DEGREES(P.Angle + rand(120, 240))) if(!silent) visible_message("[P] gets deflected by [src]!", \ - "[P] gets deflected by [src]!") + "You deflect [P]!") if(REDIRECT_METHOD_REFLECT) P.setAngle(SIMPLIFY_DEGREES(P.Angle + 180)) if(!silent) visible_message("[P] gets reflected by [src]!", \ - "[P] gets reflected by [src]!") + "You reflect [P]!") if(REDIRECT_METHOD_PASSTHROUGH) if(!silent) visible_message("[P] passes through [src]!", \ - "[P] passes through [src]!") + "[P] passes through you!") return if(REDIRECT_METHOD_RETURN_TO_SENDER) if(!silent) visible_message("[src] deflects [P] back at their attacker!", \ - "[src] deflects [P] back at their attacker!") + "You deflect [P] back at your attacker!") if(P.firer) P.setAngle(Get_Angle(src, P.firer)) else @@ -66,22 +69,30 @@ CRASH("Invalid rediretion mode [redirection_mode]") /mob/living/bullet_act(obj/item/projectile/P, def_zone) + var/totaldamage = P.damage + var/final_percent = 0 if(P.original != src || P.firer != src) //try to block or reflect the bullet, can't do so when shooting oneself var/list/returnlist = list() var/returned = mob_run_block(P, P.damage, "the [P.name]", ATTACK_TYPE_PROJECTILE, P.armour_penetration, P.firer, def_zone, returnlist) + final_percent = returnlist[BLOCK_RETURN_PROJECTILE_BLOCK_PERCENTAGE] if(returned & BLOCK_SHOULD_REDIRECT) handle_projectile_attack_redirection(P, returnlist[BLOCK_RETURN_REDIRECT_METHOD]) if(returned & BLOCK_REDIRECTED) return BULLET_ACT_FORCE_PIERCE if(returned & BLOCK_SUCCESS) - P.on_hit(src, 100, def_zone) + P.on_hit(src, final_percent, def_zone) return BULLET_ACT_BLOCK + totaldamage = block_calculate_resultant_damage(totaldamage, returnlist) var/armor = run_armor_check(def_zone, P.flag, null, null, P.armour_penetration, null) if(!P.nodamage) - apply_damage(P.damage, P.damage_type, def_zone, armor) + apply_damage(totaldamage, P.damage_type, def_zone, armor) if(P.dismemberment) check_projectile_dismemberment(P, def_zone) - return P.on_hit(src, armor) ? BULLET_ACT_HIT : BULLET_ACT_BLOCK + var/missing = 100 - final_percent + var/armor_ratio = armor * 0.01 + if(missing > 0) + final_percent += missing * armor_ratio + return P.on_hit(src, final_percent, def_zone) ? BULLET_ACT_HIT : BULLET_ACT_BLOCK /mob/living/proc/check_projectile_dismemberment(obj/item/projectile/P, def_zone) return 0 @@ -97,12 +108,6 @@ /mob/living/proc/catch_item(obj/item/I, skip_throw_mode_check = FALSE) return FALSE -/mob/living/proc/embed_item(obj/item/I) - return - -/mob/living/proc/can_embed(obj/item/I) - return FALSE - /mob/living/hitby(atom/movable/AM, skipcatch, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum) // Throwingdatum can be null if someone had an accident() while slipping with an item in hand. var/obj/item/I @@ -111,39 +116,29 @@ I = AM throwpower = I.throwforce var/impacting_zone = ran_zone(BODY_ZONE_CHEST, 65)//Hits a random part of the body, geared towards the chest - if(mob_run_block(AM, throwpower, "\the [AM.name]", ATTACK_TYPE_THROWN, 0, throwingdatum?.thrower, impacting_zone, null) & BLOCK_SUCCESS) + var/list/block_return = list() + var/total_damage = I.throwforce + if(mob_run_block(AM, throwpower, "\the [AM.name]", ATTACK_TYPE_THROWN, 0, throwingdatum?.thrower, impacting_zone, block_return) & BLOCK_SUCCESS) hitpush = FALSE skipcatch = TRUE blocked = TRUE - else if(I && I.throw_speed >= EMBED_THROWSPEED_THRESHOLD && can_embed(I, src) && prob(I.embedding.embed_chance) && !HAS_TRAIT(src, TRAIT_PIERCEIMMUNE) && (!HAS_TRAIT(src, TRAIT_AUTO_CATCH_ITEM) || incapacitated() || get_active_held_item())) - embed_item(I) - hitpush = FALSE - skipcatch = TRUE //can't catch the now embedded item + total_damage = block_calculate_resultant_damage(total_damage, block_return) if(I) + var/nosell_hit = SEND_SIGNAL(I, COMSIG_MOVABLE_IMPACT_ZONE, src, impacting_zone, throwingdatum, FALSE, blocked) + if(nosell_hit) + skipcatch = TRUE + hitpush = FALSE if(!skipcatch && isturf(I.loc) && catch_item(I)) return TRUE var/dtype = BRUTE - var/volume = I.get_volume_by_throwforce_and_or_w_class() - SEND_SIGNAL(I, COMSIG_MOVABLE_IMPACT_ZONE, src, impacting_zone) + dtype = I.damtype - if (I.throwforce > 0) //If the weapon's throwforce is greater than zero... - if (I.throwhitsound) //...and throwhitsound is defined... - playsound(loc, I.throwhitsound, volume, 1, -1) //...play the weapon's throwhitsound. - else if(I.hitsound) //Otherwise, if the weapon's hitsound is defined... - playsound(loc, I.hitsound, volume, 1, -1) //...play the weapon's hitsound. - else if(!I.throwhitsound) //Otherwise, if throwhitsound isn't defined... - playsound(loc, 'sound/weapons/genhit.ogg',volume, 1, -1) //...play genhit.ogg. - - else if(!I.throwhitsound && I.throwforce > 0) //Otherwise, if the item doesn't have a throwhitsound and has a throwforce greater than zero... - playsound(loc, 'sound/weapons/genhit.ogg', volume, 1, -1)//...play genhit.ogg - if(!I.throwforce)// Otherwise, if the item's throwforce is 0... - playsound(loc, 'sound/weapons/throwtap.ogg', 1, volume, -1)//...play throwtap.ogg. if(!blocked) visible_message("[src] has been hit by [I].", \ - "[src] has been hit by [I].") + "You have been hit by [I].") var/armor = run_armor_check(impacting_zone, "melee", "Your armor has protected your [parse_zone(impacting_zone)].", "Your armor has softened hit to your [parse_zone(impacting_zone)].",I.armour_penetration) - apply_damage(I.throwforce, dtype, impacting_zone, armor) + apply_damage(total_damage, dtype, impacting_zone, armor) if(I.thrownby) log_combat(I.thrownby, src, "threw and hit", I) else @@ -175,12 +170,15 @@ return updatehealth() visible_message("[M.name] has hit [src]!", \ - "[M.name] has hit [src]!", null, COMBAT_MESSAGE_RANGE) + "[M.name] has hit you!", null, COMBAT_MESSAGE_RANGE, null, + M.occupant, "You hit [src] with your [M.name]!") log_combat(M.occupant, src, "attacked", M, "(INTENT: [uppertext(M.occupant.a_intent)]) (DAMTYPE: [uppertext(M.damtype)])") else step_away(src,M) log_combat(M.occupant, src, "pushed", M) - visible_message("[M] pushes [src] out of the way.", null, null, 5) + visible_message("[M] pushes [src] out of the way.", \ + "[M] pushes you out of the way.", null, COMBAT_MESSAGE_RANGE, null, + M.occupant, "You push [src] out of the way with your [M.name].") /mob/living/fire_act() adjust_fire_stacks(3) @@ -224,7 +222,8 @@ var/old_grab_state = user.grab_state var/grab_upgrade_time = instant ? 0 : 30 visible_message("[user] starts to tighten [user.p_their()] grip on [src]!", \ - "[user] starts to tighten [user.p_their()] grip on you!") + "[user] starts to tighten [user.p_their()] grip on you!", target = user, + target_message = "You start to tighten your grip on [src]!") switch(user.grab_state) if(GRAB_AGGRESSIVE) log_combat(user, src, "attempted to neck grab", addition="neck grab") @@ -242,25 +241,29 @@ var/add_log = "" if(HAS_TRAIT(user, TRAIT_PACIFISM)) visible_message("[user] has firmly gripped [src]!", - "[user] has firmly gripped you!") + "[user] has firmly gripped you!", target = user, + target_message = "You have firmly gripped [src]!") add_log = " (pacifist)" else visible_message("[user] has grabbed [src] aggressively!", \ - "[user] has grabbed you aggressively!") + "[user] has grabbed you aggressively!", target = user, \ + target_message = "You have grabbed [src] aggressively!") update_mobility() stop_pulling() log_combat(user, src, "grabbed", addition="aggressive grab[add_log]") if(GRAB_NECK) log_combat(user, src, "grabbed", addition="neck grab") visible_message("[user] has grabbed [src] by the neck!",\ - "[user] has grabbed you by the neck!") + "[user] has grabbed you by the neck!", target = user, \ + target_message = "You have grabbed [src] by the neck!") update_mobility() //we fall down if(!buckled && !density) Move(user.loc) if(GRAB_KILL) log_combat(user, src, "strangled", addition="kill grab") visible_message("[user] is strangling [src]!", \ - "[user] is strangling you!") + "[user] is strangling you!", target = user, \ + target_message = "You are strangling [src]!") update_mobility() //we fall down if(!buckled && !density) Move(user.loc) @@ -272,7 +275,9 @@ SEND_SIGNAL(src, COMSIG_MOB_ATTACK_HAND, user) if((user != src) && user.a_intent != INTENT_HELP && (mob_run_block(user, 0, user.name, ATTACK_TYPE_UNARMED | ATTACK_TYPE_MELEE, null, user, check_zone(user.zone_selected), null) & BLOCK_SUCCESS)) log_combat(user, src, "attempted to touch") - visible_message("[user] attempted to touch [src]!") + visible_message("[user] attempted to touch [src]!", + "[user] attempted to touch you!", target = user, + target_message = "You attempted to touch [src]!") return TRUE /mob/living/attack_hulk(mob/living/carbon/human/user, does_attack_animation = FALSE) @@ -303,34 +308,43 @@ var/damage = rand(5, 35) if(M.is_adult) damage = rand(20, 40) - if(mob_run_block(M, damage, "the [M.name]", ATTACK_TYPE_MELEE, null, M, check_zone(M.zone_selected), null) & BLOCK_SUCCESS) + var/list/block_return = list() + if(mob_run_block(M, damage, "the [M.name]", ATTACK_TYPE_MELEE, null, M, check_zone(M.zone_selected), block_return) & BLOCK_SUCCESS) return FALSE + damage = block_calculate_resultant_damage(damage, block_return) if (stat != DEAD) log_combat(M, src, "attacked") M.do_attack_animation(src) visible_message("The [M.name] glomps [src]!", \ - "The [M.name] glomps [src]!", null, COMBAT_MESSAGE_RANGE) + "The [M.name] glomps [src]!", null, COMBAT_MESSAGE_RANGE, null, + M, "You glomp [src]!") return TRUE /mob/living/attack_animal(mob/living/simple_animal/M) M.face_atom(src) if(M.melee_damage_upper == 0) - M.visible_message("\The [M] [M.friendly] [src]!") - return FALSE + M.visible_message("\The [M] [M.friendly_verb_continuous] [src]!", + "You [M.friendly_verb_simple] [src]!", target = src, + target_message = "\The [M] [M.friendly_verb_continuous] you!") + return 0 else if(HAS_TRAIT(M, TRAIT_PACIFISM)) to_chat(M, "You don't want to hurt anyone!") return FALSE - if(mob_run_block(M, rand(M.melee_damage_lower, M.melee_damage_upper), "the [M.name]", ATTACK_TYPE_MELEE, M.armour_penetration, M, check_zone(M.zone_selected), null) & BLOCK_SUCCESS) - return FALSE + var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + var/list/return_list = list() + if(mob_run_block(M, damage, "the [M.name]", ATTACK_TYPE_MELEE, M.armour_penetration, M, check_zone(M.zone_selected), return_list) & BLOCK_SUCCESS) + return 0 + damage = block_calculate_resultant_damage(damage, return_list) if(M.attack_sound) playsound(loc, M.attack_sound, 50, 1, 1) M.do_attack_animation(src) - visible_message("\The [M] [M.attacktext] [src]!", \ - "\The [M] [M.attacktext] [src]!", null, COMBAT_MESSAGE_RANGE) + visible_message("\The [M] [M.attack_verb_continuous] [src]!", \ + "\The [M] [M.attack_verb_continuous] you!", null, COMBAT_MESSAGE_RANGE, null, + M, "You [M.attack_verb_simple] [src]!") log_combat(M, src, "attacked") - return TRUE + return damage /mob/living/attack_paw(mob/living/carbon/monkey/M) if (M.a_intent == INTENT_HARM) @@ -347,17 +361,21 @@ log_combat(M, src, "attacked") playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) visible_message("[M.name] bites [src]!", \ - "[M.name] bites [src]!", null, COMBAT_MESSAGE_RANGE) + "[M.name] bites you!", null, COMBAT_MESSAGE_RANGE, null, + M, "You bite [src]!") return TRUE else visible_message("[M.name] has attempted to bite [src]!", \ - "[M.name] has attempted to bite [src]!", null, COMBAT_MESSAGE_RANGE) + "[M.name] has attempted to bite [src]!", null, COMBAT_MESSAGE_RANGE, null, + M, "You have attempted to bite [src]!") return FALSE /mob/living/attack_larva(mob/living/carbon/alien/larva/L) switch(L.a_intent) if(INTENT_HELP) - visible_message("[L.name] rubs its head against [src].") + visible_message("[L.name] rubs its head against [src].", + "[L.name] rubs its head against you.", target = L, \ + target_message = "You rub your head against [src].") return FALSE else @@ -370,21 +388,26 @@ if(prob(90)) log_combat(L, src, "attacked") visible_message("[L.name] bites [src]!", \ - "[L.name] bites [src]!", null, COMBAT_MESSAGE_RANGE) + "[L.name] bites you!", null, COMBAT_MESSAGE_RANGE, null, L, \ + "You bite [src]!") playsound(loc, 'sound/weapons/bite.ogg', 50, 1, -1) return TRUE else visible_message("[L.name] has attempted to bite [src]!", \ - "[L.name] has attempted to bite [src]!", null, COMBAT_MESSAGE_RANGE) + "[L.name] has attempted to bite you!", null, COMBAT_MESSAGE_RANGE, null, L, \ + "You have attempted to bite [src]!") /mob/living/attack_alien(mob/living/carbon/alien/humanoid/M) if((M != src) && M.a_intent != INTENT_HELP && (mob_run_block(M, 0, "the [M.name]", ATTACK_TYPE_MELEE | ATTACK_TYPE_UNARMED, 0, M, check_zone(M.zone_selected), null) & BLOCK_SUCCESS)) - visible_message("[M] attempted to touch [src]!") + visible_message("[M] attempted to touch [src]!", + "[M] attempted to touch you!") return FALSE switch(M.a_intent) if (INTENT_HELP) if(!isalien(src)) //I know it's ugly, but the alien vs alien attack_alien behaviour is a bit different. - visible_message("[M] caresses [src] with its scythe like arm.") + visible_message("[M] caresses [src] with its scythe like arm.", + "[M] caresses you with its scythe like arm.", target = M, + target_message = "You caress [src] with your scythe like arm.") return FALSE if (INTENT_GRAB) grabbedby(M) @@ -412,21 +435,26 @@ take_bodypart_damage(acidpwr * min(1, acid_volume * 0.1)) return 1 +///As the name suggests, this should be called to apply electric shocks. /mob/living/proc/electrocute_act(shock_damage, source, siemens_coeff = 1, flags = NONE) SEND_SIGNAL(src, COMSIG_LIVING_ELECTROCUTE_ACT, shock_damage, source, siemens_coeff, flags) - if((flags & SHOCK_TESLA) && (flags_1 & TESLA_IGNORE_1)) + shock_damage *= siemens_coeff + if((flags & SHOCK_TESLA) && HAS_TRAIT(src, TRAIT_TESLA_SHOCKIMMUNE)) return FALSE if(HAS_TRAIT(src, TRAIT_SHOCKIMMUNE)) return FALSE - if(shock_damage > 0) - if(!(flags & SHOCK_ILLUSION)) - adjustFireLoss(shock_damage) - visible_message( - "[src] was shocked by \the [source]!", \ - "You feel a powerful shock coursing through your body!", \ - "You hear a heavy electrical crack." \ - ) - return shock_damage + if(shock_damage < 1) + return FALSE + if(!(flags & SHOCK_ILLUSION)) + adjustFireLoss(shock_damage) + else + adjustStaminaLoss(shock_damage) + visible_message( + "[src] was shocked by \the [source]!", \ + "You feel a powerful shock coursing through your body!", \ + "You hear a heavy electrical crack." \ + ) + return shock_damage /mob/living/emp_act(severity) . = ..() @@ -505,4 +533,11 @@ if(!used_item) used_item = get_active_held_item() ..() - setMovetype(movement_type & ~FLOATING) // If we were without gravity, the bouncing animation got stopped, so we make sure we restart the bouncing after the next movement. + floating_need_update = TRUE + + +/mob/living/proc/getBruteLoss_nonProsthetic() + return getBruteLoss() + +/mob/living/proc/getFireLoss_nonProsthetic() + return getFireLoss() diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 228028eb9b..b037221e2c 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -4,6 +4,11 @@ see_in_dark = 2 hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD,NANITE_HUD,DIAG_NANITE_FULL_HUD,RAD_HUD) pressure_resistance = 10 + has_field_of_vision = TRUE + + typing_indicator_enabled = TRUE + + var/last_click_move = 0 // Stores the previous next_move value. var/resize = 1 //Badminnery resize var/lastattacker = null @@ -24,6 +29,26 @@ var/mobility_flags = MOBILITY_FLAGS_DEFAULT + // Combat - Blocking/Parrying system + /// Our block_parry_data for unarmed blocks/parries. Currently only used for parrying, as unarmed block isn't implemented yet. YOU MUST RUN [get_block_parry_data(this)] INSTEAD OF DIRECTLY ACCESSING! + var/datum/block_parry_data/block_parry_data = /datum/block_parry_data // defaults to *something* because [combat_flags] dictates whether or not we can unarmed block/parry. + // Blocking + /// The item the user is actively blocking with if any. + var/obj/item/active_block_item + // Parrying + /// Whether or not the user is in the middle of an active parry. Set to [UNARMED_PARRY], [ITEM_PARRY], [MARTIAL_PARRY] if parrying. + var/parrying = FALSE + /// The itme the user is currently parrying with, if any. + var/obj/item/active_parry_item + /// world.time of parry action start + var/parry_start_time = 0 + /// Current parry effect. + var/obj/effect/abstract/parry/parry_visual_effect + /// world.time of last parry end + var/parry_end_time_last = 0 + /// Successful parries within the current parry cycle. It's a list of efficiency percentages. + var/list/successful_parries + var/confused = 0 //Makes the mob move in random directions. var/hallucination = 0 //Directly affects how long a mob will hallucinate for @@ -119,7 +144,7 @@ //// CITADEL STATION COMBAT //// /// See __DEFINES/combat.dm - var/combat_flags = COMBAT_FLAGS_STAMSYSTEM_EXEMPT + var/combat_flags = COMBAT_FLAGS_SPRINT_EXEMPT /// Next world.time when we will show a visible message on entering combat mode voluntarily again. var/combatmessagecooldown = 0 diff --git a/code/modules/mob/living/living_mobility.dm b/code/modules/mob/living/living_mobility.dm index 32038a6102..654a979445 100644 --- a/code/modules/mob/living/living_mobility.dm +++ b/code/modules/mob/living/living_mobility.dm @@ -96,7 +96,13 @@ mobility_flags &= ~MOBILITY_STAND setMovetype(movement_type | CRAWLING) if(!lying) //force them on the ground - lying = pick(90, 270) + switch(dir) + if(NORTH, SOUTH) + lying = pick(90, 270) + if(EAST) + lying = 90 + else //West + lying = 270 if(has_gravity() && !buckled) playsound(src, "bodyfall", 20, 1) else diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index 6a84162ea8..71bcef9aca 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -1,10 +1,23 @@ /mob/living/Moved() . = ..() update_turf_movespeed(loc) - if(is_shifted) - is_shifted = FALSE - pixel_x = get_standard_pixel_x_offset(lying) - pixel_y = get_standard_pixel_y_offset(lying) + //Hide typing indicator if we move. + clear_typing_indicator() + update_pixel_shifting(TRUE) + +/mob/living/setDir(newdir, ismousemovement) + . = ..() + if(ismousemovement) + update_pixel_shifting() + +/mob/living/proc/update_pixel_shifting(moved = FALSE) + if(combat_flags & COMBAT_FLAG_ACTIVE_BLOCKING) + animate(src, pixel_x = get_standard_pixel_x_offset(), pixel_y = get_standard_pixel_y_offset(), time = 2.5, flags = ANIMATION_END_NOW) + else if(moved) + if(is_shifted) + is_shifted = FALSE + pixel_x = get_standard_pixel_x_offset(lying) + pixel_y = get_standard_pixel_y_offset(lying) /mob/living/CanPass(atom/movable/mover, turf/target) if((mover.pass_flags & PASSMOB)) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index dff5584617..aab741edd6 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -28,6 +28,7 @@ sec_hud = DATA_HUD_SECURITY_BASIC d_hud = DATA_HUD_DIAGNOSTIC_ADVANCED mob_size = MOB_SIZE_LARGE + has_field_of_vision = FALSE //Vision through cameras. var/list/network = list("ss13") var/obj/machinery/camera/current var/list/connected_robots = list() @@ -284,8 +285,6 @@ . = ..() var/turf/ai = get_turf(src) var/turf/target = get_turf(A) - if (.) - return if(!target) return @@ -868,30 +867,33 @@ light_cameras() if(istype(A, /obj/machinery/camera)) current = A - if(client) - if(ismovable(A)) - if(A != GLOB.ai_camera_room_landmark) - end_multicam() - client.perspective = EYE_PERSPECTIVE - client.eye = A - else + if(!client) + return + if(ismovable(A)) + if(A != GLOB.ai_camera_room_landmark) end_multicam() - if(isturf(loc)) - if(eyeobj) - client.eye = eyeobj - client.perspective = EYE_PERSPECTIVE - else - client.eye = client.mob - client.perspective = MOB_PERSPECTIVE - else + client.perspective = EYE_PERSPECTIVE + client.eye = A + else + end_multicam() + if(isturf(loc)) + if(eyeobj) + client.eye = eyeobj client.perspective = EYE_PERSPECTIVE - client.eye = loc - update_sight() - if(client.eye != src) - var/atom/AT = client.eye - AT.get_remote_view_fullscreens(src) + else + client.eye = client.mob + client.perspective = MOB_PERSPECTIVE else - clear_fullscreen("remote_view", 0) + client.perspective = EYE_PERSPECTIVE + client.eye = loc + update_sight() + if(client.eye != src) + var/atom/AT = client.eye + AT.get_remote_view_fullscreens(src) + else + clear_fullscreen("remote_view", 0) + SEND_SIGNAL(src, COMSIG_MOB_RESET_PERSPECTIVE, A) + return TRUE /mob/living/silicon/ai/revive(full_heal = 0, admin_revive = 0) . = ..() diff --git a/code/modules/mob/living/silicon/ai/ai_defense.dm b/code/modules/mob/living/silicon/ai/ai_defense.dm index 2bcb3c9b5a..9cefa7a12f 100644 --- a/code/modules/mob/living/silicon/ai/ai_defense.dm +++ b/code/modules/mob/living/silicon/ai/ai_defense.dm @@ -1,4 +1,4 @@ -/mob/living/silicon/ai/attacked_by(obj/item/I, mob/living/user, def_zone) +/mob/living/silicon/ai/attacked_by(obj/item/I, mob/living/user, def_zone, attackchain_flags = NONE, damage_multiplier = 1) . = ..() if(!.) return FALSE diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index 1147042c8c..4f2332e99d 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -3,48 +3,48 @@ #define POWER_RESTORATION_SEARCH_APC 2 #define POWER_RESTORATION_APC_FOUND 3 -/mob/living/silicon/ai/Life() - if (stat == DEAD) +/mob/living/silicon/ai/BiologicalLife(seconds, times_fired) + if(!(. = ..())) return - else //I'm not removing that shitton of tabs, unneeded as they are. -- Urist + //I'm not removing that shitton of tabs, unneeded as they are. -- Urist //Being dead doesn't mean your temperature never changes - update_gravity(mob_has_gravity()) + update_gravity(mob_has_gravity()) - handle_status_effects() + handle_status_effects() - if(malfhack && malfhack.aidisabled) - deltimer(malfhacking) - // This proc handles cleanup of screen notifications and - // messenging the client - malfhacked(malfhack) + if(malfhack && malfhack.aidisabled) + deltimer(malfhacking) + // This proc handles cleanup of screen notifications and + // messenging the client + malfhacked(malfhack) - if(isturf(loc) && (QDELETED(eyeobj) || !eyeobj.loc)) - view_core() + if(isturf(loc) && (QDELETED(eyeobj) || !eyeobj.loc)) + view_core() - if(machine) - machine.check_eye(src) + if(machine) + machine.check_eye(src) - // Handle power damage (oxy) - if(aiRestorePowerRoutine) - // Lost power - adjustOxyLoss(1) - else - // Gain Power - if(getOxyLoss()) - adjustOxyLoss(-1) + // Handle power damage (oxy) + if(aiRestorePowerRoutine) + // Lost power + adjustOxyLoss(1) + else + // Gain Power + if(getOxyLoss()) + adjustOxyLoss(-1) - if(!lacks_power()) - var/area/home = get_area(src) - if(home.powered(EQUIP)) - home.use_power(1000, EQUIP) + if(!lacks_power()) + var/area/home = get_area(src) + if(home.powered(EQUIP)) + home.use_power(1000, EQUIP) - if(aiRestorePowerRoutine >= POWER_RESTORATION_SEARCH_APC) - ai_restore_power() - return + if(aiRestorePowerRoutine >= POWER_RESTORATION_SEARCH_APC) + ai_restore_power() + return - else if(!aiRestorePowerRoutine) - ai_lose_power() + else if(!aiRestorePowerRoutine) + ai_lose_power() /mob/living/silicon/ai/proc/lacks_power() var/turf/T = get_turf(src) diff --git a/code/modules/mob/living/silicon/damage_procs.dm b/code/modules/mob/living/silicon/damage_procs.dm index 91a6709bc9..2a03afb61a 100644 --- a/code/modules/mob/living/silicon/damage_procs.dm +++ b/code/modules/mob/living/silicon/damage_procs.dm @@ -1,5 +1,5 @@ -/mob/living/silicon/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE) +/mob/living/silicon/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage = FALSE) var/hit_percent = (100-blocked)/100 if(!damage || (!forced && hit_percent <= 0)) return 0 diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 4b1b108b0e..704a23b8db 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -146,10 +146,11 @@ if(possible_chassis[chassis]) AddElement(/datum/element/mob_holder, chassis, 'icons/mob/pai_item_head.dmi', 'icons/mob/pai_item_rh.dmi', 'icons/mob/pai_item_lh.dmi', ITEM_SLOT_HEAD) -/mob/living/silicon/pai/Life() +/mob/living/silicon/pai/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(hacking) process_hack() - return ..() /mob/living/silicon/pai/proc/process_hack() @@ -282,17 +283,19 @@ . = ..() . += "A personal AI in holochassis mode. Its master ID string seems to be [master]." -/mob/living/silicon/pai/Life() - if(stat == DEAD) - return +/mob/living/silicon/pai/PhysicalLife() + . = ..() if(cable) if(get_dist(src, cable) > 1) var/turf/T = get_turf(src.loc) T.visible_message("[src.cable] rapidly retracts back into its spool.", "You hear a click and the sound of wire spooling rapidly.") qdel(src.cable) cable = null + +/mob/living/silicon/pai/BiologicalLife() + if(!(. = ..())) + return silent = max(silent - 1, 0) - . = ..() /mob/living/silicon/pai/updatehealth() if(status_flags & GODMODE) diff --git a/code/modules/mob/living/silicon/pai/pai_defense.dm b/code/modules/mob/living/silicon/pai/pai_defense.dm index ba162ecf2c..dcb7ac66c9 100644 --- a/code/modules/mob/living/silicon/pai/pai_defense.dm +++ b/code/modules/mob/living/silicon/pai/pai_defense.dm @@ -32,22 +32,28 @@ /mob/living/silicon/pai/attack_hand(mob/living/carbon/human/user) switch(user.a_intent) if(INTENT_HELP) - visible_message("[user] gently pats [src] on the head, eliciting an off-putting buzzing from its holographic field.") + visible_message("[user] gently pats [src] on the head, eliciting an off-putting buzzing from its holographic field.", + "[user] gently pats you on the head, eliciting an off-putting buzzing from your holographic field.", target = user, + target_message = "You gently pat [src] on the head, eliciting an off-putting buzzing from its holographic field.") if(INTENT_DISARM) - visible_message("[user] boops [src] on the head!") + visible_message("[user] boops [src] on the head!", + "[user] boops you on the head!", target = user, + target_message = "You boop [src] on the head!") if(INTENT_HARM) user.do_attack_animation(src) if (user.name == master) visible_message("Responding to its master's touch, [src] disengages its holochassis emitter, rapidly losing coherence.") - spawn(10) - fold_in() - if(user.put_in_hands(card)) - user.visible_message("[user] promptly scoops up [user.p_their()] pAI's card.") + fold_in() + if(user.put_in_hands(card)) + user.visible_message("[user] promptly scoops up [user.p_their()] pAI's card.", + "You promptly scoops up your pAI's card.") else if(HAS_TRAIT(user, TRAIT_PACIFISM)) to_chat(user, "You don't want to hurt [src]!") return - visible_message("[user] stomps on [src]!.") + visible_message("[user] stomps on [src]!.", + "[user] stomps on you!.", target = user, + target_message = "You stomp on [src]!.") take_holo_damage(2) else grabbedby(user) diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index e04943a8c5..0feb8b98b7 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -1,9 +1,6 @@ -/mob/living/silicon/robot/Life() - set invisibility = 0 - if (src.notransform) +/mob/living/silicon/robot/BiologicalLife(seconds, times_fired) + if(!(. = ..())) return - - ..() adjustOxyLoss(-10) //we're a robot! handle_robot_hud_updates() handle_robot_cell() diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 98a5f0f234..51cff93ceb 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -14,7 +14,7 @@ spark_system.attach(src) wires = new /datum/wires/robot(src) - AddComponent(/datum/component/empprotection, EMP_PROTECT_WIRES) + AddElement(/datum/element/empprotection, EMP_PROTECT_WIRES) robot_modules_background = new() robot_modules_background.icon_state = "block" @@ -315,7 +315,7 @@ if (getFireLoss() > 0 || getToxLoss() > 0) if(src == user) to_chat(user, "You start fixing yourself...") - if(!W.use_tool(src, user, 50, 1, max_level = JOB_SKILL_TRAINED)) + if(!W.use_tool(src, user, 50, 1, skill_gain_mult = TRIVIAL_USE_TOOL_MULT)) to_chat(user, "You need more cable to repair [src]!") return adjustFireLoss(-10) diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index 5750543a92..e337618e4b 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -32,15 +32,17 @@ var/obj/item/I = get_active_held_item() if(I) uneq_active() - visible_message("[M] disarmed [src]!", \ - "[M] has disabled [src]'s active module!", null, COMBAT_MESSAGE_RANGE) + visible_message("[M] has disarmed [src]!", \ + "[M] has disabled your active module!", null, COMBAT_MESSAGE_RANGE, null, M, + "You have disarmed [src]!") log_combat(M, src, "disarmed", "[I ? " removing \the [I]" : ""]") else Paralyze(40) step(src,get_dir(M,src)) log_combat(M, src, "pushed") visible_message("[M] has forced back [src]!", \ - "[M] has forced back [src]!", null, COMBAT_MESSAGE_RANGE) + "[M] has forced you back!", null, COMBAT_MESSAGE_RANGE, null, M, + "You have forced back [src]!") playsound(loc, 'sound/weapons/pierce.ogg', 50, 1, -1) /mob/living/silicon/robot/attack_slime(mob/living/simple_animal/slime/M) diff --git a/code/modules/mob/living/silicon/robot/robot_defines.dm b/code/modules/mob/living/silicon/robot/robot_defines.dm index 860d531608..b3be01e1b0 100644 --- a/code/modules/mob/living/silicon/robot/robot_defines.dm +++ b/code/modules/mob/living/silicon/robot/robot_defines.dm @@ -9,6 +9,8 @@ maxHealth = 100 health = 100 + combat_flags = COMBAT_FLAGS_DEFAULT + var/custom_name = "" var/braintype = "Cyborg" var/obj/item/robot_suit/robot_suit = null //Used for deconstruction to remember what the borg was constructed out of.. diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index bf693d70b6..8f103c496e 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -93,6 +93,7 @@ return new storage_type(src) /obj/item/robot_module/proc/add_module(obj/item/I, nonstandard, requires_rebuild) + rad_flags |= RAD_NO_CONTAMINATE if(istype(I, /obj/item/stack)) var/obj/item/stack/S = I @@ -127,7 +128,7 @@ S.source = get_or_create_estorage(/datum/robot_energy_storage/wrapping_paper) if(S && S.source) - S.custom_materials = null + S.set_custom_materials(null) S.is_cyborg = 1 if(I.loc != src) @@ -258,7 +259,7 @@ var/prev_locked_down = R.locked_down sleep(1) flick("[cyborg_base_icon]_transform", R) - R.notransform = TRUE + R.mob_transforming = TRUE R.SetLockdown(1) R.anchored = TRUE sleep(1) @@ -269,7 +270,7 @@ R.SetLockdown(0) R.setDir(SOUTH) R.anchored = FALSE - R.notransform = FALSE + R.mob_transforming = FALSE R.update_headlamp() R.notify_ai(NEW_MODULE) if(R.hud_used) @@ -339,7 +340,7 @@ /obj/item/organ_storage, /obj/item/borg/lollipop, /obj/item/sensor_device, - /obj/item/twohanded/shockpaddles/cyborg) + /obj/item/shockpaddles/cyborg) emag_modules = list(/obj/item/reagent_containers/borghypo/hacked) ratvar_modules = list( /obj/item/clockwork/slab/cyborg/medical, @@ -358,7 +359,8 @@ "Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekmed"), "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinamed"), "Eyebot" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "eyebotmed"), - "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymed") + "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymed"), + "Zoomba" = image(icon = 'icons/mob/robots.dmi', icon_state = "zoomba_med") ) var/list/L = list("Medihound" = "medihound", "Medihound Dark" = "medihounddark", "Vale" = "valemed") for(var/a in L) @@ -374,6 +376,8 @@ switch(med_borg_icon) if("Default") cyborg_base_icon = "medical" + if("Zoomba") + cyborg_base_icon = "zoomba_med" if("Droid") cyborg_base_icon = "medical" cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi' @@ -475,7 +479,8 @@ "Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "caneng"), "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinaeng"), "Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "spidereng"), - "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyeng") + "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyeng"), + "Zoomba" = image(icon = 'icons/mob/robots.dmi', icon_state = "zoomba_engi") ) var/list/L = list("Pup Dozer" = "pupdozer", "Vale" = "valeeng") for(var/a in L) @@ -491,6 +496,8 @@ switch(engi_borg_icon) if("Default") cyborg_base_icon = "engineer" + if("Zoomba") + cyborg_base_icon = "zoomba_engi" if("Default - Treads") cyborg_base_icon = "engi-tread" special_light_key = "engineer" @@ -571,7 +578,8 @@ "Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "cansec"), "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinasec"), "Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "spidersec"), - "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavysec") + "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavysec"), + "Zoomba" = image(icon = 'icons/mob/robots.dmi', icon_state = "zoomba_sec") ) var/list/L = list("K9" = "k9", "Vale" = "valesec", "K9 Dark" = "k9dark") for(var/a in L) @@ -587,6 +595,8 @@ switch(sec_borg_icon) if("Default") cyborg_base_icon = "sec" + if("Zoomba") + cyborg_base_icon = "zoomba_sec" if("Default - Treads") cyborg_base_icon = "sec-tread" special_light_key = "sec" @@ -826,6 +836,7 @@ "(Janitor) Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekjan"), "(Janitor) Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "canjan"), "(Janitor) Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyjan"), + "Zoomba" = image(icon = 'icons/mob/robots.dmi', icon_state = "zoomba_jani") ) var/list/L = list("(Service) DarkK9" = "k50", "(Service) Vale" = "valeserv", "(Service) ValeDark" = "valeservdark", "(Janitor) Scrubpuppy" = "scrubpup") @@ -840,6 +851,8 @@ service_icons = sortList(service_icons) var/service_robot_icon = show_radial_menu(R, R , service_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE) switch(service_robot_icon) + if("Zoomba") + cyborg_base_icon = "zoomba_jani" if("(Service) Waitress") cyborg_base_icon = "service_f" special_light_key = "service" @@ -910,7 +923,7 @@ /obj/item/borg/sight/meson, /obj/item/storage/bag/ore/cyborg, /obj/item/pickaxe/drill/cyborg, - /obj/item/twohanded/kinetic_crusher/cyborg, + /obj/item/kinetic_crusher/cyborg, /obj/item/weldingtool/mini, /obj/item/storage/bag/sheetsnatcher/borg, /obj/item/t_scanner/adv_mining_scanner, @@ -943,6 +956,7 @@ "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinamin"), "Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "canmin"), "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymin"), + "Zoomba" = image(icon = 'icons/mob/robots.dmi', icon_state = "zoomba_miner") ) var/list/L = list("Blade" = "blade", "Vale" = "valemine") for(var/a in L) @@ -986,6 +1000,8 @@ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi' sleeper_overlay = "valeminesleeper" dogborg = TRUE + if("Zoomba") + cyborg_base_icon = "zoomba_miner" else return FALSE return ..() @@ -1027,7 +1043,7 @@ /obj/item/extinguisher/mini, /obj/item/crowbar/cyborg, /obj/item/reagent_containers/borghypo/syndicate, - /obj/item/twohanded/shockpaddles/syndicate, + /obj/item/shockpaddles/syndicate, /obj/item/healthanalyzer/advanced, /obj/item/surgical_drapes/advanced, /obj/item/retractor, diff --git a/code/modules/mob/living/silicon/robot/update_icons.dm b/code/modules/mob/living/silicon/robot/update_icons.dm index 72ad21c51e..a567446e9e 100644 --- a/code/modules/mob/living/silicon/robot/update_icons.dm +++ b/code/modules/mob/living/silicon/robot/update_icons.dm @@ -57,3 +57,5 @@ cut_overlays() else icon_state = "[module.cyborg_base_icon]" + + SEND_SIGNAL(src, COMSIG_ROBOT_UPDATE_ICONS) diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index a4aeeb2ffc..7a9610fb53 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -15,8 +15,6 @@ speech_span = SPAN_ROBOT flags_1 = PREVENT_CONTENTS_EXPLOSION_1 | HEAR_1 vore_flags = NO_VORE - /// Enable sprint system but not stamina - combat_flags = COMBAT_FLAGS_STAMEXEMPT_YESSPRINT var/datum/ai_laws/laws = null//Now... THEY ALL CAN ALL HAVE LAWS var/last_lawchange_announce = 0 @@ -58,6 +56,12 @@ diag_hud_set_status() diag_hud_set_health() +/mob/living/silicon/ComponentInitialize() + . = ..() + AddElement(/datum/element/flavor_text, _name = "Silicon Flavor Text", _save_key = "silicon_flavor_text") + AddElement(/datum/element/flavor_text, "", "Temporary Flavor Text", "This should be used only for things pertaining to the current round!") + AddElement(/datum/element/flavor_text, _name = "OOC Notes", _addendum = "Put information on ERP/vore/lewd-related preferences here. THIS SHOULD NOT CONTAIN REGULAR FLAVORTEXT!!", _always_show = TRUE, _save_key = "ooc_notes", _examine_no_preview = TRUE) + /mob/living/silicon/med_hud_set_health() return //we use a different hud @@ -392,6 +396,12 @@ return aicamera.selectpicture(user) /mob/living/silicon/proc/ai_roster() + if(!client) + return + if(world.time < client.crew_manifest_delay) + return + client.crew_manifest_delay = world.time + (1 SECONDS) + var/dat = "Crew RosterCrew Roster:

    " dat += GLOB.data_core.get_manifest() diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm index 94ce1e42fc..0850f0f886 100644 --- a/code/modules/mob/living/silicon/silicon_defense.dm +++ b/code/modules/mob/living/silicon/silicon_defense.dm @@ -17,7 +17,8 @@ log_combat(M, src, "attacked") playsound(loc, 'sound/weapons/slash.ogg', 25, 1, -1) visible_message("[M] has slashed at [src]!", \ - "[M] has slashed at [src]!") + "[M] has slashed at you!", target = M, \ + target_message = "You have slashed at [src]!") if(prob(8)) flash_act(affect_silicon = 1) log_combat(M, src, "attacked") @@ -25,18 +26,20 @@ updatehealth() else playsound(loc, 'sound/weapons/slashmiss.ogg', 25, 1, -1) - visible_message("[M] took a swipe at [src]!", \ - "[M] took a swipe at [src]!") + visible_message("[M] take a swipe at [src]!", \ + "[M] take a swipe at you!", target = M, \ + target_message = "You take a swipe at [src]!") /mob/living/silicon/attack_animal(mob/living/simple_animal/M) . = ..() if(.) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + var/damage = . if(prob(damage)) for(var/mob/living/N in buckled_mobs) N.DefaultCombatKnockdown(20) unbuckle_mob(N) - N.visible_message("[N] is knocked off of [src] by [M]!") + N.visible_message("[N] is knocked off of [src] by [M]!", + "You are knocked off of [src] by [M]!") switch(M.melee_damage_type) if(BRUTE) adjustBruteLoss(damage) @@ -62,7 +65,8 @@ adjustBruteLoss(rand(10, 15)) playsound(loc, "punch", 25, 1, -1) visible_message("[user] has punched [src]!", \ - "[user] has punched [src]!") + "[user] has punched you!", target = user, \ + target_message = "You have punched [src]!") return TRUE return FALSE @@ -73,14 +77,16 @@ switch(M.a_intent) if (INTENT_HELP) M.visible_message("[M] pets [src].", \ - "You pet [src].") + "You pet [src].", target = src, + target_message = "[M] pets you.") if(INTENT_GRAB) grabbedby(M) else M.do_attack_animation(src, ATTACK_EFFECT_PUNCH) playsound(src.loc, 'sound/effects/bang.ogg', 10, 1) visible_message("[M] punches [src], but doesn't leave a dent.", \ - "[M] punches [src], but doesn't leave a dent.", null, COMBAT_MESSAGE_RANGE) + "[M] punches you, but doesn't leave a dent.", null, COMBAT_MESSAGE_RANGE, null, M, + "You punch [src], but don't leave a dent.") /mob/living/silicon/attack_drone(mob/living/simple_animal/drone/M) if(M.a_intent == INTENT_HARM) @@ -109,10 +115,12 @@ if(prob(severity*50)) unbuckle_mob(M) M.DefaultCombatKnockdown(40) - M.visible_message("[M] is thrown off of [src]!") + M.visible_message("[M] is thrown off of [src]!", + "You are thrown off of [src]!") flash_act(affect_silicon = 1) /mob/living/silicon/bullet_act(obj/item/projectile/P, def_zone) + var/totaldamage = P.damage if(P.original != src || P.firer != src) //try to block or reflect the bullet, can't do so when shooting oneself var/list/returnlist = list() var/returned = mob_run_block(P, P.damage, "the [P.name]", ATTACK_TYPE_PROJECTILE, P.armour_penetration, P.firer, def_zone, returnlist) @@ -121,20 +129,18 @@ if(returned & BLOCK_REDIRECTED) return BULLET_ACT_FORCE_PIERCE if(returned & BLOCK_SUCCESS) - P.on_hit(src, 100, def_zone) + P.on_hit(src, returnlist[BLOCK_RETURN_PROJECTILE_BLOCK_PERCENTAGE], def_zone) return BULLET_ACT_BLOCK + totaldamage = block_calculate_resultant_damage(totaldamage, returnlist) if((P.damage_type == BRUTE || P.damage_type == BURN)) - adjustBruteLoss(P.damage) - if(prob(P.damage*1.5)) - for(var/mob/living/M in buckled_mobs) - M.visible_message("[M] is knocked off of [src]!") - unbuckle_mob(M) - M.DefaultCombatKnockdown(40) - if(P.stun || P.knockdown) + adjustBruteLoss(totaldamage) + if((P.damage >= 10) || P.stun || P.knockdown || (P.stamina >= 20)) for(var/mob/living/M in buckled_mobs) + M.visible_message("[M] is knocked off of [src] by the [P]!", + "You are knocked off of [src] by the [P]!") unbuckle_mob(M) - M.visible_message("[M] is knocked off of [src] by the [P]!") - P.on_hit(src) + M.DefaultCombatKnockdown(40) + P.on_hit(src, 0, def_zone) return BULLET_ACT_HIT /mob/living/silicon/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0, type = /obj/screen/fullscreen/flash/static) diff --git a/code/modules/mob/living/simple_animal/animal_defense.dm b/code/modules/mob/living/simple_animal/animal_defense.dm index fe18d48718..278bb37d0d 100644 --- a/code/modules/mob/living/simple_animal/animal_defense.dm +++ b/code/modules/mob/living/simple_animal/animal_defense.dm @@ -7,7 +7,9 @@ switch(M.a_intent) if(INTENT_HELP) if (health > 0) - visible_message("[M] [response_help] [src].") + visible_message("[M] [response_help_continuous] [src].", \ + "[M] [response_help_continuous] you.", null, null, null, + M, "You [response_help_simple] [src].") playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) if(INTENT_GRAB) @@ -16,13 +18,22 @@ else grabbedby(M) - if(INTENT_HARM, INTENT_DISARM) + if(INTENT_DISARM) + M.do_attack_animation(src, ATTACK_EFFECT_DISARM) + visible_message("[M] [response_disarm_continuous] [src]!",\ + "[M] [response_disarm_continuous] you!", null, COMBAT_MESSAGE_RANGE, null, \ + M, "You [response_disarm_simple] [src]!") + playsound(src, 'sound/weapons/thudswoosh.ogg', 25, 1) + log_combat(M, src, "disarmed") + + if(INTENT_HARM) if(HAS_TRAIT(M, TRAIT_PACIFISM)) to_chat(M, "You don't want to hurt [src]!") return M.do_attack_animation(src, ATTACK_EFFECT_PUNCH) - visible_message("[M] [response_harm] [src]!",\ - "[M] [response_harm] [src]!", null, COMBAT_MESSAGE_RANGE) + visible_message("[M] [response_harm_continuous] [src]!",\ + "[M] [response_harm_continuous] you!", null, COMBAT_MESSAGE_RANGE, null, \ + M, "You [response_harm_simple] [src]!") playsound(loc, attacked_sound, 25, 1, -1) attack_threshold_check(harm_intent_damage) log_combat(M, src, "attacked") @@ -35,8 +46,9 @@ if(.) return playsound(loc, "punch", 25, 1, -1) - visible_message("[user] has punched [src]!", \ - "[user] has punched [src]!", null, COMBAT_MESSAGE_RANGE) + visible_message("[user] punches [src]!", \ + "[user] punches you!", null, COMBAT_MESSAGE_RANGE, null, \ + user, "You punch [src]!") adjustBruteLoss(15) return TRUE @@ -48,7 +60,9 @@ return 1 if (M.a_intent == INTENT_HELP) if (health > 0) - visible_message("[M.name] [response_help] [src].") + visible_message("[M.name] [response_help_continuous] [src].", \ + "[M.name] [response_help_continuous] you.", \ + target = M, target_message = "You [response_help_simple] [src].") playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) /mob/living/simple_animal/attack_alien(mob/living/carbon/alien/humanoid/M) @@ -57,12 +71,14 @@ return if(M.a_intent == INTENT_DISARM) playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) - visible_message("[M] [response_disarm] [name]!", \ - "[M] [response_disarm] [name]!", null, COMBAT_MESSAGE_RANGE) + visible_message("[M] [response_disarm_continuous] [name]!", \ + "[M] [response_disarm_continuous] [name]!", null, COMBAT_MESSAGE_RANGE, null, \ + M, "You [response_disarm_simple] [name]!") log_combat(M, src, "disarmed") else visible_message("[M] has slashed at [src]!", \ - "[M] has slashed at [src]!", null, COMBAT_MESSAGE_RANGE) + "[M] has slashed at [src]!", null, COMBAT_MESSAGE_RANGE, null, \ + M, "[M] has slashed at [src]!") playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1) attack_threshold_check(M.meleeSlashSAPower) log_combat(M, src, "attacked") @@ -78,7 +94,7 @@ /mob/living/simple_animal/attack_animal(mob/living/simple_animal/M) . = ..() if(.) - var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) + var/damage = . return attack_threshold_check(damage, M.melee_damage_type) /mob/living/simple_animal/attack_slime(mob/living/simple_animal/slime/M) @@ -102,7 +118,7 @@ temp_damage *= damage_coeff[damagetype] if(temp_damage >= 0 && temp_damage <= force_threshold) - visible_message("[src] looks unharmed.") + visible_message("[src] looks unharmed!") return FALSE else apply_damage(damage, damagetype, null, getarmor(null, armorcheck)) diff --git a/code/modules/mob/living/simple_animal/astral.dm b/code/modules/mob/living/simple_animal/astral.dm index ebc89e2577..eee42c214f 100644 --- a/code/modules/mob/living/simple_animal/astral.dm +++ b/code/modules/mob/living/simple_animal/astral.dm @@ -5,10 +5,15 @@ icon_state = "ghost" icon_living = "ghost" mob_biotypes = MOB_SPIRIT - attacktext = "raises the hairs on the neck of" - response_harm = "disrupts the concentration of" - response_disarm = "wafts" - friendly = "communes with" + has_field_of_vision = FALSE //we are a spoopy ghost + attack_verb_continuous = "raises the hair on the neck of" + attack_verb_simple = "raise the hair on the neck of" + response_harm_continuous = "disrupts the concentration of" + response_harm_simple = "disrupt the concentration of" + response_disarm_continuous = "wafts" + response_disarm_simple = "waft" + friendly_verb_continuous = "communes with" + friendly_verb_simple = "commute with" loot = null maxHealth = 10 health = 10 @@ -18,7 +23,6 @@ deathmessage = "disappears as if it was never really there to begin with" incorporeal_move = 1 alpha = 50 - attacktext = "touches the mind of" speak_emote = list("echos") movement_type = FLYING var/pseudo_death = FALSE @@ -32,7 +36,6 @@ /mob/living/simple_animal/astral/death() icon_state = "shade_dead" Stun(1000) - friendly = "deads at" pseudo_death = TRUE incorporeal_move = 0 to_chat(src, "Your astral projection is interrupted and your mind is sent back to your body with a shock!") @@ -49,17 +52,17 @@ to_chat(src, "The intensity of the astrogen in your body is too much allow you to return to yourself yet!") return to_chat(src, "You astrally possess [H]!") - log_game("FERMICHEM: [src] has astrally possessed [A]!") + log_reagent("FERMICHEM: [src] has astrally possessed [A]!") src.mind.transfer_to(H) qdel(src) var/message = html_decode(stripped_input(src, "Enter a message to send to [A]", MAX_MESSAGE_LEN)) if(!message) return to_chat(A, "[src] projects into your mind, \"[message]\"") - log_game("FERMICHEM: [src] has astrally transmitted [message] into [A]") + log_reagent("FERMICHEM: [src] has astrally transmitted [message] into [A]") //Delete the mob if there's no mind! Pay that mob no mind. -/mob/living/simple_animal/astral/Life() - if(!mind) - qdel(src) +/mob/living/simple_animal/astral/PhysicalLife(seconds, times_fired) . = ..() + if(!mind && !QDELETED(src)) + qdel(src) diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index 97f3dad3f0..39eccf9ad4 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -98,6 +98,10 @@ hud_possible = list(DIAG_STAT_HUD, DIAG_BOT_HUD, DIAG_HUD, DIAG_PATH_HUD = HUD_LIST_LIST) //Diagnostic HUD views + var/commissioned = FALSE // Will other (noncommissioned) bots salute this bot? + var/can_salute = TRUE + var/salute_delay = 60 SECONDS + /mob/living/simple_animal/bot/proc/get_mode() if(client) //Player bots do not have modes, thus the override. Also an easy way for PDA users/AI to know when a bot is a player. if(paicard) @@ -251,6 +255,14 @@ if(!on || client) return + if(!commissioned && can_salute) + for(var/mob/living/simple_animal/bot/B in get_hearers_in_view(5, get_turf(src))) + if(B.commissioned) + visible_message("[src] performs an elaborate salute for [B]!") + can_salute = FALSE + addtimer(VARSET_CALLBACK(src, can_salute, TRUE), salute_delay) + break + switch(mode) //High-priority overrides are processed first. Bots can do nothing else while under direct command. if(BOT_RESPONDING) //Called by the AI. call_mode() diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm index adb49938e1..174ac869fa 100644 --- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm +++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm @@ -14,15 +14,13 @@ model = "Cleanbot" bot_core_type = /obj/machinery/bot_core/cleanbot window_id = "autoclean" - window_name = "Automatic Station Cleaner v1.2" + window_name = "Automatic Station Cleaner v1.3" pass_flags = PASSMOB path_image_color = "#993299" weather_immunities = list("lava","ash") var/clean_time = 50 //How long do we take to clean? - var/broom = FALSE //Do we have an speed buff from a broom? - var/adv_mop = FALSE //Do we have a cleaning buff from a better mop? - + var/upgrades = 0 var/blood = 1 var/trash = 0 @@ -38,8 +36,62 @@ var/next_dest var/next_dest_loc + var/obj/item/weapon + var/weapon_orig_force = 0 + var/chosen_name + + var/list/stolen_valor + + var/static/list/officers = list("Captain", "Head of Personnel", "Head of Security") + var/static/list/command = list("Captain" = "Cpt.","Head of Personnel" = "Lt.") + var/static/list/security = list("Head of Security" = "Maj.", "Warden" = "Sgt.", "Detective" = "Det.", "Security Officer" = "Officer") + var/static/list/engineering = list("Chief Engineer" = "Chief Engineer", "Station Engineer" = "Engineer", "Atmospherics Technician" = "Technician") + var/static/list/medical = list("Chief Medical Officer" = "C.M.O.", "Medical Doctor" = "M.D.", "Chemist" = "Pharm.D.") + var/static/list/research = list("Research Director" = "Ph.D.", "Roboticist" = "M.S.", "Scientist" = "B.S.") + var/static/list/legal = list("Lawyer" = "Esq.") + + var/list/prefixes + var/list/suffixes + +/mob/living/simple_animal/bot/cleanbot/proc/deputize(obj/item/W, mob/user) + if(in_range(src, user)) + to_chat(user, "You attach \the [W] to \the [src].") + user.transferItemToLoc(W, src) + weapon = W + weapon_orig_force = weapon.force + if(!emagged) + weapon.force = weapon.force / 2 + add_overlay(image(icon=weapon.lefthand_file,icon_state=weapon.item_state)) + +/mob/living/simple_animal/bot/cleanbot/proc/update_titles() + var/working_title = "" + + for(var/pref in prefixes) + for(var/title in pref) + if(title in stolen_valor) + working_title += pref[title] + " " + if(title in officers) + commissioned = TRUE + break + + working_title += chosen_name + + for(var/suf in suffixes) + for(var/title in suf) + if(title in stolen_valor) + working_title += " " + suf[title] + break + + name = working_title + +/mob/living/simple_animal/bot/cleanbot/examine(mob/user) + . = ..() + if(weapon) + . += " Is that \a [weapon] taped to it...?" + /mob/living/simple_animal/bot/cleanbot/Initialize() . = ..() + chosen_name = name get_targets() icon_state = "cleanbot[on]" @@ -47,6 +99,18 @@ access_card.access += J.get_access() prev_access = access_card.access + stolen_valor = list() + + prefixes = list(command, security, engineering) + suffixes = list(research, medical, legal) + +/mob/living/simple_animal/bot/cleanbot/Destroy() + if(weapon) + var/atom/Tsec = drop_location() + weapon.force = weapon_orig_force + drop_part(weapon, Tsec) + return ..() + /mob/living/simple_animal/bot/cleanbot/turn_on() ..() icon_state = "cleanbot[on]" @@ -59,6 +123,8 @@ /mob/living/simple_animal/bot/cleanbot/bot_reset() ..() + if(weapon && (emagged == 2)) + weapon.force = weapon_orig_force ignore_list = list() //Allows the bot to clean targets it previously ignored due to being unreachable. target = null oldloc = null @@ -68,6 +134,22 @@ text_dehack = "[name]'s software has been reset!" text_dehack_fail = "[name] does not seem to respond to your repair code!" +/mob/living/simple_animal/bot/cleanbot/Crossed(atom/movable/AM) + . = ..() + + zone_selected = pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) + if(weapon && has_gravity() && ismob(AM)) + var/mob/living/carbon/C = AM + if(!istype(C)) + return + + if(!(C.job in stolen_valor)) + stolen_valor += C.job + update_titles() + + weapon.attack(C, src) + C.Knockdown(20) + /mob/living/simple_animal/bot/cleanbot/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/card/id)||istype(W, /obj/item/pda)) if(bot_core.allowed(user) && !open && !emagged) @@ -79,26 +161,43 @@ if(open) to_chat(user, "Please close the access panel before locking it.") else - to_chat(user, "\The [src] doesn't seem to respect your authority.") + to_chat(user, "The [src] doesn't seem to respect your authority.") - if(istype(W, /obj/item/mop/advanced)) - if(bot_core.allowed(user) && open && adv_mop == TRUE) + else if(istype(W, /obj/item/kitchen/knife) && user.a_intent != INTENT_HARM) + to_chat(user, "You start attaching \the [W] to \the [src]...") + if(do_after(user, 25, target = src)) + deputize(W, user) + + else if(istype(W, /obj/item/mop/advanced)) + if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_CLEANER_ADVANCED_MOP)) to_chat(user, "You replace \the [src] old mop with a new better one!") - adv_mop = TRUE + upgrades |= UPGRADE_CLEANER_ADVANCED_MOP clean_time = 20 //2.5 the speed! window_name = "Automatic Station Cleaner v2.1 BETA" //New! qdel(W) + if(!open) + to_chat(user, "The [src] access panel is not open!") + return + if(!bot_core.allowed(user)) + to_chat(user, "The [src] access panel locked off to you!") + return else - to_chat(user, "\the [src] already has this mop!") + to_chat(user, "The [src] already has this mop!") - if(istype(W, /obj/item/twohanded/broom)) - if(bot_core.allowed(user) && open && broom == TRUE) + else if(istype(W, /obj/item/broom)) + if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_CLEANER_BROOM)) to_chat(user, "You add to \the [src] a broom speeding it up!") - broom = TRUE + upgrades |= UPGRADE_CLEANER_BROOM base_speed = 1 //2x faster! qdel(W) + if(!open) + to_chat(user, "The [src] access pannel is not open!") + return + if(!bot_core.allowed(user)) + to_chat(user, "The [src] access pannel locked off to you!") + return else - to_chat(user, "\the [src] already has a broom!") + to_chat(user, "The [src] already has a broom!") else return ..() @@ -106,6 +205,8 @@ /mob/living/simple_animal/bot/cleanbot/emag_act(mob/user) . = ..() if(emagged == 2) + if(weapon) + weapon.force = weapon_orig_force if(user) to_chat(user, "[src] buzzes and beeps.") diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm index 469a395169..6febb942a1 100644 --- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm +++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm @@ -44,8 +44,6 @@ var/cell_type = /obj/item/stock_parts/cell var/vest_type = /obj/item/clothing/suit/armor/vest - do_footstep = TRUE - /mob/living/simple_animal/bot/ed209/Initialize(mapload,created_name,created_lasercolor) . = ..() diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm index 1bf3883ea7..0f4608f48c 100644 --- a/code/modules/mob/living/simple_animal/bot/floorbot.dm +++ b/code/modules/mob/living/simple_animal/bot/floorbot.dm @@ -33,6 +33,8 @@ var/oldloc = null var/toolbox = /obj/item/storage/toolbox/mechanical + var/upgrades = 0 + #define HULL_BREACH 1 #define LINE_SPACE_MODE 2 #define FIX_TILE 3 @@ -120,6 +122,36 @@ to_chat(user, "You load [loaded] tiles into the floorbot. It now contains [specialtiles] tiles.") else to_chat(user, "You need at least one floor tile to put into [src]!") + + else if(istype(W, /obj/item/storage/toolbox/artistic)) + if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_FLOOR_ARTBOX)) + to_chat(user, "You upgrade \the [src] case to hold more!") + upgrades |= UPGRADE_FLOOR_ARTBOX + maxtiles += 100 //Double the storage! + qdel(W) + if(!open) + to_chat(user, "The [src] access pannle is not open!") + return + if(!bot_core.allowed(user)) + to_chat(user, "The [src] access pannel locked off to you!") + return + else + to_chat(user, "The [src] already has a upgraded case!") + + else if(istype(W, /obj/item/storage/toolbox/syndicate)) + if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_FLOOR_SYNDIBOX)) + to_chat(user, "You upgrade \the [src] case to hold more!") + upgrades |= UPGRADE_FLOOR_SYNDIBOX + maxtiles += 200 //Double bse storage + base_speed = 1 //2x faster! + qdel(W) + if(!bot_core.allowed(user)) + to_chat(user, "The [src] access pannel locked off to you!") + return + else + to_chat(user, "The [src] already has a upgraded case!") + + else ..() diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm index e4e81bb5db..cbb495bf9c 100644 --- a/code/modules/mob/living/simple_animal/bot/medbot.dm +++ b/code/modules/mob/living/simple_animal/bot/medbot.dm @@ -1,7 +1,13 @@ //MEDBOT //MEDBOT PATHFINDING //MEDBOT ASSEMBLY - +#define MEDBOT_PANIC_NONE 0 +#define MEDBOT_PANIC_LOW 15 +#define MEDBOT_PANIC_MED 35 +#define MEDBOT_PANIC_HIGH 55 +#define MEDBOT_PANIC_FUCK 70 +#define MEDBOT_PANIC_ENDING 90 +#define MEDBOT_PANIC_END 100 /mob/living/simple_animal/bot/medbot name = "\improper Medibot" @@ -42,6 +48,7 @@ var/declare_crit = 1 //If active, the bot will transmit a critical patient alert to MedHUD users. var/declare_cooldown = 0 //Prevents spam of critical patient alerts. var/stationary_mode = 0 //If enabled, the Medibot will not move automatically. + var/injection_time = 30 //How long we take to inject someone //Setting which reagents to use to treat what by default. By id. var/treatment_brute_avoid = /datum/reagent/medicine/tricordrazine var/treatment_brute = /datum/reagent/medicine/bicaridine @@ -51,19 +58,32 @@ var/treatment_fire = /datum/reagent/medicine/kelotane var/treatment_tox_avoid = /datum/reagent/medicine/tricordrazine var/treatment_tox = /datum/reagent/medicine/charcoal - var/treatment_tox_toxlover = /datum/reagent/toxin + var/treatment_tox_toxlover = /datum/reagent/toxin //Injects toxins into people that heal via toxins var/treatment_virus_avoid = null var/treatment_virus = /datum/reagent/medicine/spaceacillin var/treat_virus = 1 //If on, the bot will attempt to treat viral infections, curing them if possible. var/shut_up = 0 //self explanatory :) + var/upgrades = 0 + var/upgraded_dispenser_1 //Do we have the nicer chemicals? - replaces dex with salbutamol + var/upgraded_dispenser_2 //Do we have the nicer chemicals? - replaces kep with oxandrolone + var/upgraded_dispenser_3 //Do we have the nicer chemicals? - replaces bic with sal acid + var/upgraded_dispenser_4 //Do we have the nicer chemicals? - replaces charcoal/toxin with pentetic acid / pentetic jelly + + //How panicked we are about being tipped over (why would you do this?) + var/tipped_status = MEDBOT_PANIC_NONE + //The name we got when we were tipped + var/tipper_name + //The last time we were tipped/righted and said a voice line, to avoid spam + var/last_tipping_action_voice = 0 + /mob/living/simple_animal/bot/medbot/mysterious name = "\improper Mysterious Medibot" desc = "International Medibot of mystery." skin = "bezerk" - treatment_brute = /datum/reagent/medicine/tricordrazine - treatment_fire = /datum/reagent/medicine/tricordrazine - treatment_tox = /datum/reagent/medicine/tricordrazine + treatment_brute = /datum/reagent/medicine/regen_jelly + treatment_fire = /datum/reagent/medicine/regen_jelly + treatment_tox = /datum/reagent/medicine/regen_jelly /mob/living/simple_animal/bot/medbot/derelict name = "\improper Old Medibot" @@ -220,7 +240,6 @@ /mob/living/simple_animal/bot/medbot/attackby(obj/item/W as obj, mob/user as mob, params) if(istype(W, /obj/item/reagent_containers/glass)) - . = 1 //no afterattack if(locked) to_chat(user, "You cannot insert a beaker because the panel is locked!") return @@ -234,6 +253,97 @@ to_chat(user, "You insert [W].") show_controls(user) + else if(istype(W, /obj/item/reagent_containers/syringe/piercing)) + if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_MEDICAL_PIERERCING)) + to_chat(user, "You replace \the [src] syringe with a diamond-tipped one!") + upgrades |= UPGRADE_MEDICAL_PIERERCING + qdel(W) + if(!open) + to_chat(user, "The [src] access pannel is not open!") + return + if(!bot_core.allowed(user)) + to_chat(user, "The [src] access pannel locked off to you!") + return + else + to_chat(user, "The [src] already has a diamond-tipped syringe!") + + else if(istype(W, /obj/item/hypospray/mkii)) + if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_MEDICAL_HYPOSPRAY)) + to_chat(user, "You replace \the [src] syringe base with a DeForest Medical MK.II Hypospray!") + upgrades |= UPGRADE_MEDICAL_HYPOSPRAY + injection_time = 15 //Half the time half the death! + window_name = "Automatic Medical Unit v2.4 ALPHA" + qdel(W) + if(!open) + to_chat(user, "The [src] access pannel is not open!") + return + if(!bot_core.allowed(user)) + to_chat(user, "The [src] access pannel locked off to you!") + return + else + to_chat(user, "The [src] already has a DeForest Medical Hypospray base!") + + else if(istype(W, /obj/item/circuitboard/machine/chem_dispenser)) + if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_MEDICAL_CHEM_BOARD)) + to_chat(user, "You add in the board upgrading \the [src] reagent banks!") + upgrades |= UPGRADE_MEDICAL_CHEM_BOARD + treatment_oxy = /datum/reagent/medicine/salbutamol //Replaces Dex with salbutamol "better" healing of o2 + qdel(W) + if(!open) + to_chat(user, "The [src] access pannel is not open!") + return + if(!bot_core.allowed(user)) + to_chat(user, "The [src] access pannel locked off to you!") + return + else + to_chat(user, "The [src] already has this upgrade!") + + else if(istype(W, /obj/item/circuitboard/machine/cryo_tube)) + if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_MEDICAL_CRYO_BOARD)) + to_chat(user, "You add in the board upgrading \the [src] reagent banks!") + upgrades |= UPGRADE_MEDICAL_CRYO_BOARD + treatment_fire = /datum/reagent/medicine/oxandrolone //Replaces Kep with oxandrolone "better" healing of burns + qdel(W) + if(!open) + to_chat(user, "The [src] access pannel is not open!") + return + if(!bot_core.allowed(user)) + to_chat(user, "The [src] access pannel locked off to you!") + return + else + to_chat(user, "The [src] already has this upgrade!") + + else if(istype(W, /obj/item/circuitboard/machine/chem_master)) + if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_MEDICAL_CHEM_MASTER)) + to_chat(user, "You add in the board upgrading \the [src] reagent banks!") + upgrades |= UPGRADE_MEDICAL_CHEM_MASTER + treatment_brute = /datum/reagent/medicine/sal_acid //Replaces Bic with Sal Acid "better" healing of brute + qdel(W) + if(!open) + to_chat(user, "the [src] access pannel is not open!") + return + if(!bot_core.allowed(user)) + to_chat(user, "the [src] access pannel locked off to you!") + return + else + to_chat(user, "the [src] already has this upgrade!") + + else if(istype(W, /obj/item/circuitboard/machine/sleeper)) + if(bot_core.allowed(user) && open && !CHECK_BITFIELD(upgrades,UPGRADE_MEDICAL_SLEEP_BOARD)) + to_chat(user, "You add in the board upgrading \the [src] reagent banks!") + upgrades |= UPGRADE_MEDICAL_SLEEP_BOARD + treatment_tox = /datum/reagent/medicine/pen_acid //replaces charcoal with pen acid a "better" healing of toxins + treatment_tox_toxlover = /datum/reagent/medicine/pen_acid/pen_jelly //Injects pen jelly into people that heal via toxins + qdel(W) + if(!open) + to_chat(user, "The [src] access pannle is not open!") + return + if(!bot_core.allowed(user)) + to_chat(user, "The [src] access pannel locked off to you!") + return + else + to_chat(user, "The [src] already has this upgrade!") + else var/current_health = health ..() @@ -249,6 +359,8 @@ audible_message("[src] buzzes oddly!") flick("medibot_spark", src) playsound(src, "sparks", 75, 1) + if(!CHECK_BITFIELD(upgrades,UPGRADE_MEDICAL_PIERERCING)) + upgrades |= UPGRADE_MEDICAL_PIERERCING //Jabs even harder through the clothing! if(user) oldpatient = user @@ -274,10 +386,91 @@ else return +/mob/living/simple_animal/bot/medbot/proc/tip_over(mob/user) + mobility_flags &= ~MOBILITY_MOVE + playsound(src, 'sound/machines/warning-buzzer.ogg', 50) + user.visible_message("[user] tips over [src]!", "You tip [src] over!") + mode = BOT_TIPPED + var/matrix/mat = transform + transform = mat.Turn(180) + +/mob/living/simple_animal/bot/medbot/proc/set_right(mob/user) + mobility_flags &= MOBILITY_MOVE + var/list/messagevoice + if(user) + user.visible_message("[user] sets [src] right-side up!", "You set [src] right-side up!") + if(user.name == tipper_name) + messagevoice = list("I forgive you." = 'sound/voice/medbot/forgive.ogg') + else + messagevoice = list("Thank you!" = 'sound/voice/medbot/thank_you.ogg', "You are a good person." = 'sound/voice/medbot/youre_good.ogg') + else + visible_message("[src] manages to writhe wiggle enough to right itself.") + messagevoice = list("Fuck you." = 'sound/voice/medbot/fuck_you.ogg', "Your behavior has been reported, have a nice day." = 'sound/voice/medbot/reported.ogg') + + tipper_name = null + if(world.time > last_tipping_action_voice + 15 SECONDS) + last_tipping_action_voice = world.time + var/message = pick(messagevoice) + speak(message) + playsound(src, messagevoice[message], 70) + tipped_status = MEDBOT_PANIC_NONE + mode = BOT_IDLE + transform = matrix() + +// if someone tipped us over, check whether we should ask for help or just right ourselves eventually +/mob/living/simple_animal/bot/medbot/proc/handle_panic() + tipped_status++ + var/list/messagevoice + switch(tipped_status) + if(MEDBOT_PANIC_LOW) + messagevoice = list("I require assistance." = 'sound/voice/medbot/i_require_asst.ogg') + if(MEDBOT_PANIC_MED) + messagevoice = list("Please put me back." = 'sound/voice/medbot/please_put_me_back.ogg') + if(MEDBOT_PANIC_HIGH) + messagevoice = list("Please, I am scared!" = 'sound/voice/medbot/please_im_scared.ogg') + if(MEDBOT_PANIC_FUCK) + messagevoice = list("I don't like this, I need help!" = 'sound/voice/medbot/dont_like.ogg', "This hurts, my pain is real!" = 'sound/voice/medbot/pain_is_real.ogg') + if(MEDBOT_PANIC_ENDING) + messagevoice = list("Is this the end?" = 'sound/voice/medbot/is_this_the_end.ogg', "Nooo!" = 'sound/voice/medbot/nooo.ogg') + if(MEDBOT_PANIC_END) + speak("PSYCH ALERT: Crewmember [tipper_name] recorded displaying antisocial tendencies torturing bots in [get_area(src)]. Please schedule psych evaluation.", radio_channel) + set_right() // strong independent medbot + + if(prob(tipped_status)) + do_jitter_animation(tipped_status * 0.1) + + if(messagevoice) + var/message = pick(messagevoice) + speak(message) + playsound(src, messagevoice[message], 70) + else if(prob(tipped_status * 0.2)) + playsound(src, 'sound/machines/warning-buzzer.ogg', 30, extrarange=-2) + +/mob/living/simple_animal/bot/medbot/examine(mob/user) + . = ..() + if(tipped_status == MEDBOT_PANIC_NONE) + return + + switch(tipped_status) + if(MEDBOT_PANIC_NONE to MEDBOT_PANIC_LOW) + . += "It appears to be tipped over, and is quietly waiting for someone to set it right." + if(MEDBOT_PANIC_LOW to MEDBOT_PANIC_MED) + . += "It is tipped over and requesting help." + if(MEDBOT_PANIC_MED to MEDBOT_PANIC_HIGH) + . += "They are tipped over and appear visibly distressed." // now we humanize the medbot as a they, not an it + if(MEDBOT_PANIC_HIGH to MEDBOT_PANIC_FUCK) + . += "They are tipped over and visibly panicking!" + if(MEDBOT_PANIC_FUCK to INFINITY) + . += "They are freaking out from being tipped over!" + /mob/living/simple_animal/bot/medbot/handle_automated_action() if(!..()) return + if(mode == BOT_TIPPED) + handle_panic() + return + if(mode == BOT_HEALING) return @@ -293,10 +486,14 @@ if(QDELETED(patient)) if(!shut_up && prob(1)) - var/list/messagevoice = list("Radar, put a mask on!" = 'sound/voice/medbot/radar.ogg',"There's always a catch, and I'm the best there is." = 'sound/voice/medbot/catch.ogg',"I knew it, I should've been a plastic surgeon." = 'sound/voice/medbot/surgeon.ogg',"What kind of medbay is this? Everyone's dropping like flies." = 'sound/voice/medbot/flies.ogg',"Delicious!" = 'sound/voice/medbot/delicious.ogg') - var/message = pick(messagevoice) - speak(message) - playsound(loc, messagevoice[message], 50, 0) + if(emagged && prob(30)) + var/list/i_need_scissors = list('sound/voice/medbot/fuck_you.ogg', 'sound/voice/medbot/turn_off.ogg', 'sound/voice/medbot/im_different.ogg', 'sound/voice/medbot/close.ogg', 'sound/voice/medbot/shindemashou.ogg') + playsound(src, pick(i_need_scissors), 70) + else + var/list/messagevoice = list("Radar, put a mask on!" = 'sound/voice/medbot/radar.ogg',"There's always a catch, and I'm the best there is." = 'sound/voice/medbot/catch.ogg',"I knew it, I should've been a plastic surgeon." = 'sound/voice/medbot/surgeon.ogg',"What kind of medbay is this? Everyone's dropping like flies." = 'sound/voice/medbot/flies.ogg',"Delicious!" = 'sound/voice/medbot/delicious.ogg', "Why are we still here? Just to suffer?" = 'sound/voice/medbot/why.ogg') + var/message = pick(messagevoice) + speak(message) + playsound(src, messagevoice[message], 50) var/scan_range = (stationary_mode ? 1 : DEFAULT_SCAN_RANGE) //If in stationary mode, scan range is limited to adjacent patients. patient = scan(/mob/living/carbon/human, oldpatient, scan_range) oldpatient = patient @@ -361,7 +558,7 @@ if(ishuman(C)) var/mob/living/carbon/human/H = C - if (H.wear_suit && H.head && istype(H.wear_suit, /obj/item/clothing) && istype(H.head, /obj/item/clothing)) + if (H.wear_suit && H.head && istype(H.wear_suit, /obj/item/clothing) && istype(H.head, /obj/item/clothing) && !CHECK_BITFIELD(upgrades,UPGRADE_MEDICAL_PIERERCING)) var/obj/item/clothing/CS = H.wear_suit var/obj/item/clothing/CH = H.head if (CS.clothing_flags & CH.clothing_flags & THICKMATERIAL) @@ -407,6 +604,27 @@ /mob/living/simple_animal/bot/medbot/proc/get_healchem_toxin(mob/M) return HAS_TRAIT(M, TRAIT_TOXINLOVER)? treatment_tox_toxlover : treatment_tox +/mob/living/simple_animal/bot/medbot/attack_hand(mob/living/carbon/human/H) + if(H.a_intent == INTENT_DISARM && mode != BOT_TIPPED) + H.visible_message("[H] begins tipping over [src].", "You begin tipping over [src]...") + + if(world.time > last_tipping_action_voice + 15 SECONDS) + last_tipping_action_voice = world.time // message for tipping happens when we start interacting, message for righting comes after finishing + var/list/messagevoice = list("Hey, wait..." = 'sound/voice/medbot/hey_wait.ogg',"Please don't..." = 'sound/voice/medbot/please_dont.ogg',"I trusted you..." = 'sound/voice/medbot/i_trusted_you.ogg', "Nooo..." = 'sound/voice/medbot/nooo.ogg', "Oh fuck-" = 'sound/voice/medbot/oh_fuck.ogg') + var/message = pick(messagevoice) + speak(message) + playsound(src, messagevoice[message], 70, FALSE) + + if(do_after(H, 3 SECONDS, target=src)) + tip_over(H) + + else if(H.a_intent == INTENT_HELP && mode == BOT_TIPPED) + H.visible_message("[H] begins righting [src].", "You begin righting [src]...") + if(do_after(H, 3 SECONDS, target=src)) + set_right(H) + else + ..() + /mob/living/simple_animal/bot/medbot/UnarmedAttack(atom/A) if(iscarbon(A)) var/mob/living/carbon/C = A @@ -418,7 +636,7 @@ else ..() -/mob/living/simple_animal/bot/medbot/examinate(atom/A as mob|obj|turf in view()) +/mob/living/simple_animal/bot/medbot/examinate(atom/A as mob|obj|turf in fov_view()) ..() if(!is_blind(src)) chemscan(src, A) @@ -504,7 +722,7 @@ "[src] is trying to inject you!") var/failed = FALSE - if(do_mob(src, patient, 30)) //Is C == patient? This is so confusing + if(do_mob(src, patient, injection_time)) //Is C == patient? This is so confusing if((get_dist(src, patient) <= 1) && (on) && assess_patient(patient)) if(reagent_id == "internal_beaker") if(use_beaker && reagent_glass && reagent_glass.reagents.total_volume) @@ -565,3 +783,11 @@ /obj/machinery/bot_core/medbot req_one_access = list(ACCESS_MEDICAL, ACCESS_ROBOTICS) + +#undef MEDBOT_PANIC_NONE +#undef MEDBOT_PANIC_LOW +#undef MEDBOT_PANIC_MED +#undef MEDBOT_PANIC_HIGH +#undef MEDBOT_PANIC_FUCK +#undef MEDBOT_PANIC_ENDING +#undef MEDBOT_PANIC_END \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index 674cc722d8..354bc9ed0f 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -5,9 +5,12 @@ gender = NEUTER mob_biotypes = NONE speak_emote = list("hisses") - response_help = "thinks better of touching" - response_disarm = "flails at" - response_harm = "punches" + response_help_continuous = "thinks better of touching" + response_help_simple = "think better of touching" + response_disarm_continuous = "flails at" + response_disarm_simple = "flail at" + response_harm_continuous = "punches" + response_harm_simple = "punch" threat = 1 speak_chance = 1 icon = 'icons/mob/mob.dmi' @@ -122,12 +125,14 @@ threat = 3 maxHealth = 150 health = 150 - response_harm = "harmlessly punches" + response_harm_continuous = "harmlessly punches" + response_harm_simple = "harmlessly punch" harm_intent_damage = 0 obj_damage = 90 melee_damage_lower = 25 melee_damage_upper = 25 - attacktext = "smashes their armored gauntlet into" + attack_verb_continuous = "smashes their armored gauntlet into" + attack_verb_simple = "smash your armored gauntlet into" speed = 2.5 environment_smash = ENVIRONMENT_SMASH_WALLS attack_sound = 'sound/weapons/punch3.ogg' @@ -188,7 +193,8 @@ melee_damage_lower = 20 melee_damage_upper = 20 retreat_distance = 2 //AI wraiths will move in and out of combat - attacktext = "slashes" + attack_verb_continuous = "slashes" + attack_verb_simple = "slash" attack_sound = 'sound/weapons/bladeslice.ogg' construct_spells = list(/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift) runetype = /datum/action/innate/cult/create_rune/tele @@ -232,14 +238,16 @@ icon_living = "artificer" maxHealth = 50 health = 50 - response_harm = "viciously beats" + response_harm_continuous = "viciously beats" + response_harm_simple = "viciously beat" harm_intent_damage = 5 obj_damage = 60 melee_damage_lower = 5 melee_damage_upper = 5 retreat_distance = 10 minimum_distance = 10 //AI artificers will flee like fuck - attacktext = "rams" + attack_verb_continuous = "rams" + attack_verb_simple = "ram" environment_smash = ENVIRONMENT_SMASH_WALLS attack_sound = 'sound/weapons/punch2.ogg' construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/wall, @@ -319,7 +327,8 @@ sight = SEE_MOBS melee_damage_lower = 15 melee_damage_upper = 20 - attacktext = "butchers" + attack_verb_continuous = "butchers" + attack_verb_simple = "butcher" attack_sound = 'sound/weapons/bladeslice.ogg' construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/area_conversion, /obj/effect/proc_holder/spell/targeted/forcewall/cult) diff --git a/code/modules/mob/living/simple_animal/friendly/bumbles.dm b/code/modules/mob/living/simple_animal/friendly/bumbles.dm index 1a78a47031..2d236a4327 100644 --- a/code/modules/mob/living/simple_animal/friendly/bumbles.dm +++ b/code/modules/mob/living/simple_animal/friendly/bumbles.dm @@ -5,14 +5,18 @@ icon_living = "bumbles" icon_dead = "bumbles_dead" turns_per_move = 1 - response_help = "pets" - response_disarm = "brushes aside" - response_harm = "squashes" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "brushes aside" + response_help_simple = "brush aside" + response_harm_continuous = "squashes" + response_harm_simple = "squash" speak_emote = list("buzzes") maxHealth = 100 health = 100 harm_intent_damage = 1 - friendly = "bzzs" + friendly_verb_continuous = "bzzs" + friendly_verb_simple = "bzz" density = FALSE movement_type = FLYING pass_flags = PASSTABLE | PASSGRILLE | PASSMOB diff --git a/code/modules/mob/living/simple_animal/friendly/butterfly.dm b/code/modules/mob/living/simple_animal/friendly/butterfly.dm index 80fba5a9a4..bf4f45e283 100644 --- a/code/modules/mob/living/simple_animal/friendly/butterfly.dm +++ b/code/modules/mob/living/simple_animal/friendly/butterfly.dm @@ -5,14 +5,18 @@ icon_living = "butterfly" icon_dead = "butterfly_dead" turns_per_move = 1 - response_help = "shoos" - response_disarm = "brushes aside" - response_harm = "squashes" + response_help_continuous = "shoos" + response_help_simple = "shoo" + response_disarm_continuous = "brushes aside" + response_disarm_simple = "brush aside" + response_harm_continuous = "squashes" + response_harm_simple = "squash" speak_emote = list("flutters") maxHealth = 2 health = 2 harm_intent_damage = 1 - friendly = "nudges" + friendly_verb_continuous = "nudges" + friendly_verb_simple = "nudge" density = FALSE movement_type = FLYING pass_flags = PASSTABLE | PASSGRILLE | PASSMOB diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 7d41068020..d30fa1b49f 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -24,15 +24,18 @@ animal_species = /mob/living/simple_animal/pet/cat childtype = list(/mob/living/simple_animal/pet/cat/kitten) butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2, /obj/item/organ/ears/cat = 1, /obj/item/organ/tail/cat = 1) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "kicks" + response_harm_simple = "kick" var/turns_since_scan = 0 var/mob/living/simple_animal/mouse/movement_target gold_core_spawnable = FRIENDLY_SPAWN collar_type = "cat" var/held_icon = "cat2" - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_CLAW /mob/living/simple_animal/pet/cat/Initialize() . = ..() @@ -112,13 +115,14 @@ Read_Memory() . = ..() -/mob/living/simple_animal/pet/cat/Runtime/Life() +/mob/living/simple_animal/pet/cat/Runtime/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(!cats_deployed && SSticker.current_state >= GAME_STATE_SETTING_UP) Deploy_The_Cats() if(!stat && SSticker.current_state == GAME_STATE_FINISHED && !memory_saved) Write_Memory() memory_saved = TRUE - ..() /mob/living/simple_animal/pet/cat/Runtime/make_babies() var/mob/baby = ..() @@ -174,7 +178,9 @@ gold_core_spawnable = NO_SPAWN unique_pet = TRUE -/mob/living/simple_animal/pet/cat/Life() +/mob/living/simple_animal/pet/cat/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(!stat && !buckled && !client) if(prob(1)) emote("me", EMOTE_VISIBLE, pick("stretches out for a belly rub.", "wags its tail.", "lies down.")) @@ -245,7 +251,8 @@ harm_intent_damage = 10 butcher_results = list(/obj/item/organ/brain = 1, /obj/item/organ/heart = 1, /obj/item/reagent_containers/food/snacks/cakeslice/birthday = 3, \ /obj/item/reagent_containers/food/snacks/meat/slab = 2) - response_harm = "takes a bite out of" + response_harm_continuous = "takes a bite out of" + response_harm_simple = "take a bite out of" attacked_sound = 'sound/items/eatfood.ogg' deathmessage = "loses its false life and collapses!" death_sound = "bodyfall" @@ -265,8 +272,9 @@ to_chat(src, "Your name is now \"new_name\"!") name = new_name -/mob/living/simple_animal/pet/cat/cak/Life() - ..() +/mob/living/simple_animal/pet/cat/cak/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(stat) return if(health < maxHealth) @@ -306,7 +314,6 @@ if (pseudo_death == TRUE) //secret cat chem icon_state = "custom_cat_dead" Stun(1000) - friendly = "deads at" return else ..() diff --git a/code/modules/mob/living/simple_animal/friendly/cockroach.dm b/code/modules/mob/living/simple_animal/friendly/cockroach.dm index 95aa86aaab..384fa8146f 100644 --- a/code/modules/mob/living/simple_animal/friendly/cockroach.dm +++ b/code/modules/mob/living/simple_animal/friendly/cockroach.dm @@ -14,12 +14,16 @@ pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY mob_biotypes = MOB_ORGANIC|MOB_BUG - response_help = "pokes" - response_disarm = "shoos" - response_harm = "splats" + response_help_continuous = "pokes" + response_help_simple = "poke" + response_disarm_continuous = "shoos" + response_disarm_simple = "shoo" + response_harm_continuous = "splats" + response_harm_simple = "splat" speak_emote = list("chitters") density = FALSE ventcrawler = VENTCRAWLER_ALWAYS + mob_size = MOB_SIZE_TINY gold_core_spawnable = FRIENDLY_SPAWN verb_say = "chitters" verb_ask = "chitters inquisitively" diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm index cce5edc513..7f3693f622 100644 --- a/code/modules/mob/living/simple_animal/friendly/crab.dm +++ b/code/modules/mob/living/simple_animal/friendly/crab.dm @@ -12,18 +12,24 @@ speak_chance = 1 turns_per_move = 5 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/rawcrab = 4) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "stomps" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "stomps" + response_harm_continuous = "stomp" stop_automated_movement = 1 - friendly = "pinches" + friendly_verb_continuous = "pinches" + friendly_verb_simple = "pinch" ventcrawler = VENTCRAWLER_ALWAYS + mob_size = MOB_SIZE_TINY var/obj/item/inventory_head var/obj/item/inventory_mask gold_core_spawnable = FRIENDLY_SPAWN -/mob/living/simple_animal/crab/Life() - ..() +/mob/living/simple_animal/crab/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return //CRAB movement if(!ckey && !stat) if(isturf(loc) && !resting && !buckled) //This is so it only moves if it's not inside a closet, gentics machine, etc. @@ -41,9 +47,6 @@ real_name = "Coffee" desc = "It's Coffee, the other pet!" gender = FEMALE - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "stomps" gold_core_spawnable = NO_SPAWN /mob/living/simple_animal/crab/evil @@ -53,9 +56,10 @@ icon_state = "evilcrab" icon_living = "evilcrab" icon_dead = "evilcrab_dead" - response_help = "pokes" - response_disarm = "shoves" - response_harm = "stomps" + response_help_continuous = "pokes" + response_help_simple = "poke" + response_disarm_continuous = "shoves" + response_disarm_simple = "shove" gold_core_spawnable = HOSTILE_SPAWN /mob/living/simple_animal/crab/kreb @@ -65,9 +69,6 @@ icon_state = "kreb" icon_living = "kreb" icon_dead = "kreb_dead" - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "stomps" gold_core_spawnable = NO_SPAWN /mob/living/simple_animal/crab/evil/kreb diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index 485cece8b7..0584995583 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -2,9 +2,12 @@ /mob/living/simple_animal/pet/dog mob_biotypes = MOB_ORGANIC|MOB_BEAST - response_help = "pets" - response_disarm = "bops" - response_harm = "kicks" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "bops" + response_disarm_simple = "bop" + response_harm_continuous = "kicks" + response_harm_simple = "kick" speak = list("YAP", "Woof!", "Bark!", "AUUUUUU") speak_emote = list("barks", "woofs") emote_hear = list("barks!", "woofs!", "yaps.","pants.") @@ -15,7 +18,7 @@ turns_per_move = 10 var/held_icon = "corgi" - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_CLAW /mob/living/simple_animal/pet/dog/ComponentInitialize() . = ..() @@ -332,9 +335,6 @@ desc = "It's the HoP's beloved corgi." var/turns_since_scan = 0 var/obj/movement_target - response_help = "pets" - response_disarm = "bops" - response_harm = "kicks" gold_core_spawnable = NO_SPAWN unique_pet = TRUE var/age = 0 @@ -366,11 +366,12 @@ RemoveElement(/datum/element/mob_holder, held_icon) AddElement(/datum/element/mob_holder, "old_corgi") -/mob/living/simple_animal/pet/dog/corgi/Ian/Life() +/mob/living/simple_animal/pet/dog/corgi/Ian/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(!stat && SSticker.current_state == GAME_STATE_FINISHED && !memory_saved) Write_Memory(FALSE) memory_saved = TRUE - ..() /mob/living/simple_animal/pet/dog/corgi/Ian/death() if(!memory_saved) @@ -419,8 +420,9 @@ fdel(json_file) WRITE_FILE(json_file, json_encode(file_data)) -/mob/living/simple_animal/pet/dog/corgi/Ian/Life() - ..() +/mob/living/simple_animal/pet/dog/corgi/Ian/BiologicalLife() + if(!(. = ..())) + return //Feeding, chasing food, FOOOOODDDD if(!stat && CHECK_MULTIPLE_BITFIELDS(mobility_flags, MOBILITY_STAND|MOBILITY_MOVE) && !buckled) @@ -490,8 +492,9 @@ nofur = TRUE unique_pet = TRUE -/mob/living/simple_animal/pet/dog/corgi/narsie/Life() - ..() +/mob/living/simple_animal/pet/dog/corgi/narsie/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return for(var/mob/living/simple_animal/pet/P in range(1, src)) if(P != src && prob(5)) visible_message("[src] devours [P]!", \ @@ -604,9 +607,6 @@ icon_state = "lisa" icon_living = "lisa" icon_dead = "lisa_dead" - response_help = "pets" - response_disarm = "bops" - response_harm = "kicks" var/turns_since_scan = 0 var/puppies = 0 held_icon = "lisa" @@ -618,8 +618,9 @@ return ..() -/mob/living/simple_animal/pet/dog/corgi/Lisa/Life() - ..() +/mob/living/simple_animal/pet/dog/corgi/Lisa/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return make_babies() @@ -631,8 +632,9 @@ setDir(i) sleep(1) -/mob/living/simple_animal/pet/dog/pug/Life() - ..() +/mob/living/simple_animal/pet/dog/pug/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(!stat && CHECK_MULTIPLE_BITFIELDS(mobility_flags, MOBILITY_STAND|MOBILITY_MOVE) && !buckled) if(prob(1)) emote("me", EMOTE_VISIBLE, pick("chases its tail.")) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm b/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm index 6e89f045da..8034e3c5e5 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm @@ -19,7 +19,7 @@ return 0 -/mob/living/simple_animal/drone/can_equip(obj/item/I, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE) +/mob/living/simple_animal/drone/can_equip(obj/item/I, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE, clothing_check = FALSE, list/return_warning) switch(slot) if(SLOT_HEAD) if(head) diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index e67e649ac6..ba9cdfda64 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -13,13 +13,17 @@ turns_per_move = 5 see_in_dark = 6 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 4) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "kicks" + response_harm_simple = "kick" faction = list("neutral") mob_biotypes = MOB_ORGANIC|MOB_BEAST attack_same = 1 - attacktext = "kicks" + attack_verb_continuous = "kicks" + attack_verb_simple = "kick" attack_sound = 'sound/weapons/punch1.ogg' health = 40 maxHealth = 40 @@ -29,11 +33,12 @@ stop_automated_movement_when_pulled = 1 blood_volume = BLOOD_VOLUME_NORMAL var/obj/item/udder/udder = null + var/datum/reagent/milk_reagent = /datum/reagent/consumable/milk - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_SHOE -/mob/living/simple_animal/hostile/retaliate/goat/Initialize() - udder = new() +/mob/living/simple_animal/hostile/retaliate/goat/Initialize(/datum/reagent/milk_reagent) + udder = new (null, milk_reagent) . = ..() /mob/living/simple_animal/hostile/retaliate/goat/Destroy() @@ -41,9 +46,10 @@ udder = null return ..() -/mob/living/simple_animal/hostile/retaliate/goat/Life() - . = ..() - if(.) +/mob/living/simple_animal/hostile/retaliate/goat/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return + if(stat == CONSCIOUS) //chance to go crazy and start wacking stuff if(!enemies.len && prob(1)) Retaliate() @@ -52,8 +58,7 @@ enemies = list() LoseTarget() src.visible_message("[src] calms down.") - if(stat == CONSCIOUS) - udder.generateMilk() + udder.generateMilk(milk_reagent) eat_plants() if(!pulledby) for(var/direction in shuffle(list(1,2,4,8,5,6,9,10))) @@ -121,21 +126,26 @@ turns_per_move = 5 see_in_dark = 6 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 6) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" - attacktext = "kicks" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "kicks" + response_harm_simple = "kick" + attack_verb_continuous = "kicks" + attack_verb_simple = "kick" attack_sound = 'sound/weapons/punch1.ogg' health = 50 maxHealth = 50 var/obj/item/udder/udder = null + var/datum/reagent/milk_reagent = /datum/reagent/consumable/milk gold_core_spawnable = FRIENDLY_SPAWN blood_volume = BLOOD_VOLUME_NORMAL - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_SHOE /mob/living/simple_animal/cow/Initialize() - udder = new() + udder = new(null, milk_reagent) . = ..() /mob/living/simple_animal/cow/Destroy() @@ -150,10 +160,11 @@ else return ..() -/mob/living/simple_animal/cow/Life() - . = ..() +/mob/living/simple_animal/cow/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(stat == CONSCIOUS) - udder.generateMilk() + udder.generateMilk(milk_reagent) /mob/living/simple_animal/cow/attack_hand(mob/living/carbon/M) if(!stat && M.a_intent == INTENT_DISARM && icon_state != icon_dead) @@ -181,6 +192,19 @@ else ..() +//Wisdom cow, speaks and bestows great wisdoms +/mob/living/simple_animal/cow/wisdom + name = "wisdom cow" + desc = "Known for its wisdom, shares it with all" + butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/wisdomcow = 1) //truly the best meat + gold_core_spawnable = FALSE + speak_chance = 30 //the cow is eager to share its wisdom! + milk_reagent = /datum/reagent/medicine/liquid_wisdom + +/mob/living/simple_animal/cow/wisdom/Initialize() + . = ..() + speak = GLOB.wisdoms //Done here so it's setup properly + /mob/living/simple_animal/chick name = "\improper chick" desc = "Adorable! They make such a racket though." @@ -198,10 +222,14 @@ speak_chance = 2 turns_per_move = 2 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/chicken = 1) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" - attacktext = "kicks" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "kicks" + response_harm_simple = "kick" + attack_verb_continuous = "kicks" + attack_verb_simple = "kick" health = 3 maxHealth = 3 ventcrawler = VENTCRAWLER_ALWAYS @@ -210,16 +238,15 @@ mob_size = MOB_SIZE_TINY gold_core_spawnable = FRIENDLY_SPAWN - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_CLAW /mob/living/simple_animal/chick/Initialize() . = ..() pixel_x = rand(-6, 6) pixel_y = rand(0, 10) -/mob/living/simple_animal/chick/Life() - . =..() - if(!.) +/mob/living/simple_animal/chick/BiologicalLife(seconds, times_fired) + if(!(. = ..())) return if(!stat && !ckey) amount_grown += rand(1,2) @@ -227,8 +254,9 @@ new /mob/living/simple_animal/chicken(src.loc) qdel(src) -/mob/living/simple_animal/chick/holo/Life() - ..() +/mob/living/simple_animal/chick/holo/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return amount_grown = 0 /mob/living/simple_animal/chicken @@ -249,10 +277,14 @@ butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/chicken = 2) var/egg_type = /obj/item/reagent_containers/food/snacks/egg var/food_type = /obj/item/reagent_containers/food/snacks/grown/wheat - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" - attacktext = "kicks" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "kicks" + response_harm_simple = "kick" + attack_verb_continuous = "kicks" + attack_verb_simple = "kick" health = 15 maxHealth = 15 ventcrawler = VENTCRAWLER_ALWAYS @@ -268,7 +300,7 @@ gold_core_spawnable = FRIENDLY_SPAWN var/static/chicken_count = 0 - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_CLAW /mob/living/simple_animal/chicken/Initialize() . = ..() @@ -297,9 +329,8 @@ else ..() -/mob/living/simple_animal/chicken/Life() - . =..() - if(!.) +/mob/living/simple_animal/chicken/BiologicalLife(seconds, times_fired) + if(!(. = ..())) return if((!stat && prob(3) && eggsleft > 0) && egg_type) visible_message("[src] [pick(layMessage)]") @@ -342,10 +373,14 @@ butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 3) var/egg_type = /obj/item/reagent_containers/food/snacks/egg/kiwiEgg var/food_type = /obj/item/reagent_containers/food/snacks/grown/wheat - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" - attacktext = "kicks" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "kicks" + response_harm_simple = "kick" + attack_verb_continuous = "kicks" + attack_verb_simple = "kick" health = 25 maxHealth = 25 ventcrawler = VENTCRAWLER_ALWAYS @@ -358,6 +393,8 @@ gold_core_spawnable = FRIENDLY_SPAWN var/static/kiwi_count = 0 + footstep_type = FOOTSTEP_MOB_CLAW + /mob/living/simple_animal/kiwi/Destroy() --kiwi_count return ..() @@ -366,9 +403,8 @@ . = ..() ++kiwi_count -/mob/living/simple_animal/kiwi/Life() - . =..() - if(!.) +/mob/living/simple_animal/kiwi/BiologicalLife(seconds, times_fired) + if(!(. = ..())) return if((!stat && prob(3) && eggsleft > 0) && egg_type) visible_message("[src] [pick(layMessage)]") @@ -418,10 +454,14 @@ speak_chance = 2 turns_per_move = 2 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" - attacktext = "kicks" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "kicks" + response_harm_simple = "kick" + attack_verb_continuous = "kicks" + attack_verb_simple = "kick" health = 10 maxHealth = 10 ventcrawler = VENTCRAWLER_ALWAYS @@ -430,14 +470,15 @@ mob_size = MOB_SIZE_TINY gold_core_spawnable = FRIENDLY_SPAWN + footstep_type = FOOTSTEP_MOB_CLAW + /mob/living/simple_animal/babyKiwi/Initialize() . = ..() pixel_x = rand(-6, 6) pixel_y = rand(0, 10) -/mob/living/simple_animal/babyKiwi/Life() - . =..() - if(!.) +/mob/living/simple_animal/babyKiwi/BiologicalLife(seconds, times_fired) + if(!(. = ..())) return if(!stat && !ckey) amount_grown += rand(1,2) @@ -453,14 +494,16 @@ /obj/item/udder name = "udder" -/obj/item/udder/Initialize() +/obj/item/udder/Initialize(loc, milk_reagent) + if(!milk_reagent) + milk_reagent = /datum/reagent/consumable/milk create_reagents(50, NONE, NO_REAGENTS_VALUE) - reagents.add_reagent(/datum/reagent/consumable/milk, 20) + reagents.add_reagent(milk_reagent, 20) . = ..() -/obj/item/udder/proc/generateMilk() +/obj/item/udder/proc/generateMilk(datum/reagent/milk_reagent) if(prob(5)) - reagents.add_reagent(/datum/reagent/consumable/milk, rand(5, 10)) + reagents.add_reagent(milk_reagent, rand(5, 10)) /obj/item/udder/proc/milkAnimal(obj/O, mob/user) var/obj/item/reagent_containers/glass/G = O @@ -472,3 +515,33 @@ user.visible_message("[user] milks [src] using \the [O].", "You milk [src] using \the [O].") else to_chat(user, "The udder is dry. Wait a bit longer...") + +/mob/living/simple_animal/deer + name = "doe" + desc = "A gentle, peaceful forest animal. How did this get into space?" + icon_state = "deer-doe" + icon_living = "deer-doe" + icon_dead = "deer-doe-dead" + gender = FEMALE + mob_biotypes = MOB_ORGANIC|MOB_BEAST + speak = list("Weeeeeeee?","Weeee","WEOOOOOOOOOO") + speak_emote = list("grunts","grunts lowly") + emote_hear = list("brays.") + emote_see = list("shakes its head.") + speak_chance = 1 + turns_per_move = 5 + see_in_dark = 6 + butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 3) + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently nudges" + response_disarm_simple = "gently nudge" + response_harm_continuous = "kicks" + response_harm_simple = "kick" + attack_verb_continuous = "bucks" + attack_verb_simple = "buck" + attack_sound = 'sound/weapons/punch1.ogg' + health = 75 + maxHealth = 75 + blood_volume = BLOOD_VOLUME_NORMAL + footstep_type = FOOTSTEP_MOB_SHOE diff --git a/code/modules/mob/living/simple_animal/friendly/fox.dm b/code/modules/mob/living/simple_animal/friendly/fox.dm index 95b082b733..4e4fd7ccfc 100644 --- a/code/modules/mob/living/simple_animal/friendly/fox.dm +++ b/code/modules/mob/living/simple_animal/friendly/fox.dm @@ -14,11 +14,14 @@ turns_per_move = 5 see_in_dark = 6 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 3) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "kicks" + response_harm_simple = "kick" gold_core_spawnable = FRIENDLY_SPAWN - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_CLAW /mob/living/simple_animal/pet/fox/ComponentInitialize() . = ..() diff --git a/code/modules/mob/living/simple_animal/friendly/gondola.dm b/code/modules/mob/living/simple_animal/friendly/gondola.dm index 04d53e7d05..0cfea3548b 100644 --- a/code/modules/mob/living/simple_animal/friendly/gondola.dm +++ b/code/modules/mob/living/simple_animal/friendly/gondola.dm @@ -9,9 +9,12 @@ name = "gondola" real_name = "gondola" desc = "Gondola is the silent walker. Having no hands he embodies the Taoist principle of wu-wei (non-action) while his smiling facial expression shows his utter and complete acceptance of the world as it is. Its hide is extremely valuable." - response_help = "pets" - response_disarm = "bops" - response_harm = "kicks" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "bops" + response_disarm_simple = "bop" + response_harm_continuous = "kicks" + response_harm_simple = "kick" faction = list("gondola") turns_per_move = 10 icon = 'icons/mob/gondolas.dmi' diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm index 9ae46f29e5..b9ff99b677 100644 --- a/code/modules/mob/living/simple_animal/friendly/lizard.dm +++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm @@ -8,12 +8,16 @@ health = 5 maxHealth = 5 faction = list("Lizard") - attacktext = "bites" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" melee_damage_lower = 1 melee_damage_upper = 2 - response_help = "pets" - response_disarm = "shoos" - response_harm = "stomps on" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "shoos" + response_disarm_simple = "shoo" + response_harm_continuous = "stomps on" + response_harm_simple = "stomp on" ventcrawler = VENTCRAWLER_ALWAYS density = FALSE pass_flags = PASSTABLE | PASSMOB diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 7f83bb9f9b..51c903ee16 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -15,9 +15,12 @@ maxHealth = 5 health = 5 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 1) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "splats" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "splats" + response_harm_simple = "splat" density = FALSE ventcrawler = VENTCRAWLER_ALWAYS pass_flags = PASSTABLE | PASSGRILLE | PASSMOB @@ -26,6 +29,7 @@ var/body_color //brown, gray and white, leave blank for random gold_core_spawnable = FRIENDLY_SPAWN var/chew_probability = 1 + faction = list("rat") /mob/living/simple_animal/mouse/Initialize() . = ..() @@ -56,11 +60,15 @@ else ..(gibbed) + /mob/living/simple_animal/mouse/Crossed(AM as mob|obj) if( ishuman(AM) ) if(!stat) var/mob/M = AM to_chat(M, "[icon2html(src, M)] Squeak!") + if(istype(AM, /obj/item/reagent_containers/food/snacks/royalcheese)) + evolve() + qdel(AM) ..() /mob/living/simple_animal/mouse/handle_automated_action() @@ -81,6 +89,40 @@ C.deconstruct() visible_message("[src] chews through the [C].") + for(var/obj/item/reagent_containers/food/snacks/cheesewedge/cheese in range(1, src)) + if(prob(10)) + be_fruitful() + qdel(cheese) + return + for(var/obj/item/reagent_containers/food/snacks/royalcheese/bigcheese in range(1, src)) + qdel(bigcheese) + evolve() + return + +/** + *Checks the mouse cap, if it's above the cap, doesn't spawn a mouse. If below, spawns a mouse and adds it to cheeserats. + */ + +/mob/living/simple_animal/mouse/proc/be_fruitful() + var/cap = CONFIG_GET(number/ratcap) + if(LAZYLEN(SSmobs.cheeserats) >= cap) + visible_message("[src] carefully eats the cheese, hiding it from the [cap] mice on the station!") + return + var/mob/living/newmouse = new /mob/living/simple_animal/mouse(loc) + SSmobs.cheeserats += newmouse + visible_message("[src] nibbles through the cheese, attracting another mouse!") + +/** + *Spawns a new regal rat, says some good jazz, and if sentient, transfers the relivant mind. + */ +/mob/living/simple_animal/mouse/proc/evolve() + var/mob/living/simple_animal/hostile/regalrat = new /mob/living/simple_animal/hostile/regalrat(loc) + visible_message("[src] devours the cheese! He morphs into something... greater!") + regalrat.say("RISE, MY SUBJECTS! SCREEEEEEE!") + if(mind) + mind.transfer_to(regalrat) + qdel(src) + /* * Mouse types */ @@ -97,15 +139,16 @@ body_color = "brown" icon_state = "mouse_brown" +/mob/living/simple_animal/mouse/Destroy() + SSmobs.cheeserats -= src + return ..() + GLOBAL_VAR(tom_existed) //TOM IS ALIVE! SQUEEEEEEEE~K :) /mob/living/simple_animal/mouse/brown/Tom name = "Tom" desc = "Jerry the cat is not amused." - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "splats" gold_core_spawnable = NO_SPAWN /mob/living/simple_animal/mouse/brown/Tom/Initialize() diff --git a/code/modules/mob/living/simple_animal/friendly/panda.dm b/code/modules/mob/living/simple_animal/friendly/panda.dm index a7b6143ef5..b3e8c1438f 100644 --- a/code/modules/mob/living/simple_animal/friendly/panda.dm +++ b/code/modules/mob/living/simple_animal/friendly/panda.dm @@ -13,8 +13,14 @@ turns_per_move = 5 see_in_dark = 6 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 3) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "kicks" + response_harm_simple = "kick" gold_core_spawnable = FRIENDLY_SPAWN - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_CLAW + +/mob/living/simple_animal/pet/redpanda/stinky + name = "Stinky" diff --git a/code/modules/mob/living/simple_animal/friendly/penguin.dm b/code/modules/mob/living/simple_animal/friendly/penguin.dm index 9835840dbf..f92f4184b7 100644 --- a/code/modules/mob/living/simple_animal/friendly/penguin.dm +++ b/code/modules/mob/living/simple_animal/friendly/penguin.dm @@ -1,9 +1,12 @@ //Penguins /mob/living/simple_animal/pet/penguin - response_help = "pets" - response_disarm = "bops" - response_harm = "kicks" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "bops" + response_disarm_simple = "bop" + response_harm_continuous = "kicks" + response_harm_simple = "kick" speak = list("Gah Gah!", "NOOT NOOT!", "NOOT!", "Noot", "noot", "Prah!", "Grah!") speak_emote = list("squawks", "gakkers") emote_hear = list("squawk!", "gakkers!", "noots.","NOOTS!") @@ -15,7 +18,7 @@ turns_per_move = 10 icon = 'icons/mob/penguins.dmi' - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_BAREFOOT /mob/living/simple_animal/pet/penguin/emperor name = "Emperor penguin" diff --git a/code/modules/mob/living/simple_animal/friendly/plushie.dm b/code/modules/mob/living/simple_animal/friendly/plushie.dm new file mode 100644 index 0000000000..ff95e8fe86 --- /dev/null +++ b/code/modules/mob/living/simple_animal/friendly/plushie.dm @@ -0,0 +1,79 @@ +//simplemob plushie that can be controlled by players +/mob/living/simple_animal/pet/plushie + name = "Plushie" + desc = "A living plushie!" + icon = 'icons/obj/plushes.dmi' + icon_state = "debug" + icon_living = "debug" + icon_dead = "debug" + speak_emote = list("squeaks") + maxHealth = 50 + health = 50 + density = FALSE + pass_flags = PASSTABLE | PASSGRILLE | PASSMOB + mob_size = MOB_SIZE_TINY + mob_biotypes = MOB_ORGANIC + verb_say = "squeaks" + verb_ask = "squeaks inquisitively" + verb_exclaim = "squeaks intensely" + verb_yell = "squeaks intensely" + attack_sound = 'sound/items/toysqueak1.ogg' + attacked_sound = 'sound/items/toysqueak1.ogg' + melee_damage_type = STAMINA + melee_damage_lower = 0 + melee_damage_upper = 1 + attack_verb_continuous = "squeaks" + attack_verb_simple = "squeak" + deathmessage = "lets out a faint squeak as the glint in its eyes disappears" + footstep_type = FOOTSTEP_MOB_BAREFOOT + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 0 + pressure_resistance = 200 + +/mob/living/simple_animal/pet/plushie/ComponentInitialize() + . = ..() + AddElement(/datum/element/mob_holder, "plushie") + +//shell that lets people turn into the plush or poll for ghosts +/obj/item/toy/plushie_shell + name = "Plushie Shell" + desc = "A plushie. Its eyes seem to be staring right back at you. Something isn't quite right." + icon = 'icons/obj/plushes.dmi' + icon_state = "debug" + var/obj/item/toy/plush/stored_plush = null + +//attacking yourself transfers your mind into the plush! +/obj/item/toy/plushie_shell/attack_self(mob/user) + if(user.mind) + var/safety = alert(user, "The plushie is staring back at you intensely, it seems cursed! (Permanently become a plushie)", "Hugging this is a bad idea.", "Hug it!", "Cancel") + if(safety == "Cancel" || !in_range(src, user)) + return + to_chat(user, "You hug the strange plushie. You fool.") + + //setup the mob + var/mob/living/simple_animal/pet/plushie/new_plushie = new /mob/living/simple_animal/pet/plushie/(user.loc) + new_plushie.icon = src.icon + new_plushie.icon_living = src.icon_state + new_plushie.icon_dead = src.icon_state + new_plushie.icon_state = src.icon_state + new_plushie.name = src.name + + //make the mob sentient + user.mind.transfer_to(new_plushie) + + //add sounds to mob + new_plushie.AddComponent(/datum/component/squeak, stored_plush.squeak_override) + if(length(stored_plush.squeak_override) > 0) + new_plushie.attack_sound = stored_plush.squeak_override[1] + new_plushie.attacked_sound = stored_plush.squeak_override[1] + + //take care of the user's old body and the old shell + user.dust(drop_items = TRUE) + qdel(src) + +//low regen over time +/mob/living/simple_animal/pet/plushie/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return + if(health < maxHealth) + heal_overall_damage(5) //Decent life regen, they're not able to hurt anyone so this shouldn't be an issue (butterbear for reference has 10 regen) diff --git a/code/modules/mob/living/simple_animal/friendly/sloth.dm b/code/modules/mob/living/simple_animal/friendly/sloth.dm index 28063d6e52..bb93f95ee4 100644 --- a/code/modules/mob/living/simple_animal/friendly/sloth.dm +++ b/code/modules/mob/living/simple_animal/friendly/sloth.dm @@ -11,9 +11,13 @@ speak_chance = 1 turns_per_move = 5 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 3) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "kicks" + response_harm_simple = "kick" + mob_size = MOB_SIZE_SMALL mob_biotypes = MOB_ORGANIC|MOB_BEAST gold_core_spawnable = FRIENDLY_SPAWN melee_damage_lower = 18 @@ -22,9 +26,9 @@ maxHealth = 50 speed = 10 glide_size = 2 - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_CLAW -/mob/living/simple_animal/pet/fox/ComponentInitialize() +/mob/living/simple_animal/pet/sloth/ComponentInitialize() . = ..() AddElement(/datum/element/mob_holder, "sloth") //finally oranges can be held diff --git a/code/modules/mob/living/simple_animal/friendly/snake.dm b/code/modules/mob/living/simple_animal/friendly/snake.dm index 7f75888649..4d20b927a6 100644 --- a/code/modules/mob/living/simple_animal/friendly/snake.dm +++ b/code/modules/mob/living/simple_animal/friendly/snake.dm @@ -19,12 +19,16 @@ speak_emote = list("hisses") health = 20 maxHealth = 20 - attacktext = "bites" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" melee_damage_lower = 5 melee_damage_upper = 6 - response_help = "pets" - response_disarm = "shoos" - response_harm = "steps on" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "shoos" + response_disarm_simple = "shoo" + response_harm_continuous = "steps on" + response_harm_simple = "step on" faction = list("hostile") ventcrawler = VENTCRAWLER_ALWAYS density = FALSE diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index d2794a3a78..73ebfa7c77 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -13,9 +13,12 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians gender = NEUTER mob_biotypes = NONE bubble_icon = "guardian" - response_help = "passes through" - response_disarm = "flails at" - response_harm = "punches" + response_help_continuous = "passes through" + response_help_simple = "pass through" + response_disarm_continuous = "flails at" + response_disarm_simple = "flail at" + response_harm_continuous = "punches" + response_harm_simple = "punch" icon = 'icons/mob/guardian.dmi' icon_state = "magicbase" icon_living = "magicbase" @@ -29,7 +32,8 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 maxbodytemp = INFINITY - attacktext = "punches" + attack_verb_continuous = "punches" + attack_verb_simple = "punch" maxHealth = INFINITY //The spirit itself is invincible health = INFINITY healable = FALSE //don't brusepack the guardian @@ -109,7 +113,8 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians icon_dead = "holocarp" speak_emote = list("gnashes") desc = "A mysterious fish that stands by its charge, ever vigilant." - attacktext = "bites" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" attack_sound = 'sound/weapons/bite.ogg' recolorentiresprite = TRUE if(!recolorentiresprite) //we want this to proc before stand logs in, so the overlay isnt gone for some reason @@ -155,7 +160,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians to_chat(src, "Your new name [new_name] anchors itself in your mind.") fully_replace_character_name(null, new_name) -/mob/living/simple_animal/hostile/guardian/Life() //Dies if the summoner dies +/mob/living/simple_animal/hostile/guardian/PhysicalLife() //Dies if the summoner dies . = ..() update_health_hud() //we need to update all of our health displays to match our summoner and we can't practically give the summoner a hook to do it med_hud_set_health() diff --git a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm index e507a4c831..885f907997 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm @@ -1,6 +1,7 @@ //Assassin /mob/living/simple_animal/hostile/guardian/assassin - attacktext = "slashes" + attack_verb_continuous = "slashes" + attack_verb_simple = "slash" attack_sound = 'sound/weapons/bladeslice.ogg' damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) playstyle_string = "As an assassin type you do medium damage and have no damage resistance, but can enter stealth, massively increasing the damage of your next attack and causing it to ignore armor. Stealth is broken when you attack or take damage." @@ -18,8 +19,9 @@ . = ..() stealthcooldown = 0 -/mob/living/simple_animal/hostile/guardian/assassin/Life() - . = ..() +/mob/living/simple_animal/hostile/guardian/assassin/PhysicalLife() + if(!(. = ..())) + return updatestealthalert() if(loc == summoner && toggle) ToggleMode(0) diff --git a/code/modules/mob/living/simple_animal/guardian/types/charger.dm b/code/modules/mob/living/simple_animal/guardian/types/charger.dm index c60e43ff01..0b4952aa9e 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/charger.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/charger.dm @@ -11,8 +11,9 @@ var/charging = 0 var/obj/screen/alert/chargealert -/mob/living/simple_animal/hostile/guardian/charger/Life() - . = ..() +/mob/living/simple_animal/hostile/guardian/charger/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(ranged_cooldown <= world.time) if(!chargealert) chargealert = throw_alert("charge", /obj/screen/alert/cancharge) diff --git a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm index b4865c4337..a1850fabca 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm @@ -50,7 +50,7 @@ return 1 return 0 -/mob/living/simple_animal/hostile/guardian/dextrous/can_equip(obj/item/I, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE) +/mob/living/simple_animal/hostile/guardian/dextrous/can_equip(obj/item/I, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE, clothing_check = FALSE, list/return_warning) switch(slot) if(SLOT_GENERC_DEXTROUS_STORAGE) if(internal_storage) diff --git a/code/modules/mob/living/simple_animal/guardian/types/fire.dm b/code/modules/mob/living/simple_animal/guardian/types/fire.dm index 718bfd71af..a05cd517fb 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/fire.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/fire.dm @@ -4,7 +4,8 @@ melee_damage_lower = 10 melee_damage_upper = 10 attack_sound = 'sound/items/welder.ogg' - attacktext = "ignites" + attack_verb_continuous = "ignites" + attack_verb_simple = "ignite" melee_damage_type = BURN damage_coeff = list(BRUTE = 0.7, BURN = 0.1, TOX = 0.7, CLONE = 0.7, STAMINA = 0, OXY = 0.7) playstyle_string = "As a chaos type, you take 30% damage reduction to all but burn, which you are almost immune to. You will ignite any enemy you bump into. in addition, your melee attacks will cause human targets to see everyone as you." @@ -12,8 +13,9 @@ tech_fluff_string = "Boot sequence complete. Crowd control modules activated. Holoparasite swarm online." carp_fluff_string = "CARP CARP CARP! You caught one! OH GOD, EVERYTHING'S ON FIRE. Except you and the fish." -/mob/living/simple_animal/hostile/guardian/fire/Life() - . = ..() +/mob/living/simple_animal/hostile/guardian/fire/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(summoner) summoner.ExtinguishMob() summoner.adjust_fire_stacks(-20) diff --git a/code/modules/mob/living/simple_animal/guardian/types/lightning.dm b/code/modules/mob/living/simple_animal/guardian/types/lightning.dm index 7b7651822a..a1552f6648 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/lightning.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/lightning.dm @@ -6,7 +6,8 @@ /mob/living/simple_animal/hostile/guardian/beam melee_damage_lower = 10 melee_damage_upper = 10 - attacktext = "shocks" + attack_verb_continuous = "shocks" + attack_verb_simple = "shock" melee_damage_type = BURN attack_sound = 'sound/machines/defib_zap.ogg' damage_coeff = list(BRUTE = 0.7, BURN = 0.7, TOX = 0.7, CLONE = 0.7, STAMINA = 0, OXY = 0.7) diff --git a/code/modules/mob/living/simple_animal/guardian/types/ranged.dm b/code/modules/mob/living/simple_animal/guardian/types/ranged.dm index 539ee9081b..1746936ba3 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/ranged.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/ranged.dm @@ -8,7 +8,8 @@ /mob/living/simple_animal/hostile/guardian/ranged a_intent = INTENT_HELP - friendly = "quietly assesses" + friendly_verb_continuous = "quietly assesses" + friendly_verb_simple = "quietly assess" melee_damage_lower = 10 melee_damage_upper = 10 damage_coeff = list(BRUTE = 0.9, BURN = 0.9, TOX = 0.9, CLONE = 0.9, STAMINA = 0, OXY = 0.9) diff --git a/code/modules/mob/living/simple_animal/guardian/types/support.dm b/code/modules/mob/living/simple_animal/guardian/types/support.dm index 7b519e1ca1..21460b5c6b 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/support.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/support.dm @@ -1,7 +1,8 @@ //Healer /mob/living/simple_animal/hostile/guardian/healer a_intent = INTENT_HARM - friendly = "heals" + friendly_verb_continuous = "heals" + friendly_verb_simple = "heal" damage_coeff = list(BRUTE = 0.7, BURN = 0.7, TOX = 0.7, CLONE = 0.7, STAMINA = 0, OXY = 0.7) playstyle_string = "As a support type, you have 30% damage reduction and may toggle your basic attacks to a healing mode. In addition, Alt-Clicking on an adjacent object or mob will warp them to your bluespace beacon after a short delay." magic_fluff_string = "..And draw the CMO, a potent force of life... and death." diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm index 2045e194d2..7120ab6d0a 100644 --- a/code/modules/mob/living/simple_animal/hostile/alien.dm +++ b/code/modules/mob/living/simple_animal/hostile/alien.dm @@ -8,9 +8,12 @@ icon_gib = "syndicate_gib" gender = FEMALE threat = 1 - response_help = "pokes" - response_disarm = "shoves" - response_harm = "hits" + response_help_continuous = "pokes" + response_help_simple = "poke" + response_disarm_continuous = "shoves" + response_disarm_simple = "shove" + response_harm_continuous = "hits" + response_harm_simple = "hit" speed = 0 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/xeno = 4, /obj/item/stack/sheet/animalhide/xeno = 1) @@ -20,7 +23,8 @@ obj_damage = 60 melee_damage_lower = 25 melee_damage_upper = 25 - attacktext = "slashes" + attack_verb_continuous = "slashes" + attack_verb_simple = "slash" speak_emote = list("hisses") bubble_icon = "alien" a_intent = INTENT_HARM @@ -37,7 +41,9 @@ death_sound = 'sound/voice/hiss6.ogg' deathmessage = "lets out a waning guttural screech, green blood bubbling from its maw..." - do_footstep = TRUE +/mob/living/simple_animal/hostile/alien/Initialize() + . = ..() + AddComponent(/datum/component/footstep, FOOTSTEP_MOB_CLAW) /mob/living/simple_animal/hostile/alien/drone name = "alien drone" @@ -80,6 +86,7 @@ icon_state = "alienq" icon_living = "alienq" icon_dead = "alienq_dead" + pixel_x = -16 threat = 8 health = 250 maxHealth = 250 @@ -162,7 +169,8 @@ melee_damage_upper = 0 threat = -1 a_intent = INTENT_HELP - friendly = "caresses" + friendly_verb_continuous = "caresses" + friendly_verb_simple = "caress" obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE gold_core_spawnable = HOSTILE_SPAWN diff --git a/code/modules/mob/living/simple_animal/hostile/banana_spider.dm b/code/modules/mob/living/simple_animal/hostile/banana_spider.dm index f3ce343bfd..259c0bc721 100644 --- a/code/modules/mob/living/simple_animal/hostile/banana_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/banana_spider.dm @@ -13,14 +13,16 @@ maxbodytemp = INFINITY pass_flags = PASSTABLE | PASSGRILLE | PASSMOB mob_size = MOB_SIZE_TINY - response_help = "pokes" - response_disarm = "shoos" - response_harm = "splats" + response_help_continuous = "pokes" + response_help_simple = "poke" + response_disarm_continuous = "shoos" + response_disarm_simple = "shoo" + response_harm_continuous = "splats" + response_harm_simple = "plat" speak_emote = list("chitters") mouse_opacity = 2 density = TRUE ventcrawler = VENTCRAWLER_ALWAYS - gold_core_spawnable = FRIENDLY_SPAWN verb_say = "chitters" verb_ask = "chitters inquisitively" verb_exclaim = "chitters loudly" diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index a77098cb80..5dbf3e8e3b 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -17,9 +17,12 @@ turns_per_move = 5 see_in_dark = 6 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/bear = 5, /obj/item/clothing/head/bearpelt = 1) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "hits" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "kicks" + response_harm_simple = "kick" maxHealth = 60 health = 60 spacewalk = TRUE @@ -28,9 +31,11 @@ obj_damage = 60 melee_damage_lower = 20 melee_damage_upper = 30 - attacktext = "claws" + attack_verb_continuous = "claws" + attack_verb_simple = "claw" attack_sound = 'sound/weapons/bladeslice.ogg' - friendly = "bear hugs" + friendly_verb_continuous = "bear hugs" + friendly_verb_simple = "bear hug" //Space bears aren't affected by cold. atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) @@ -40,7 +45,7 @@ faction = list("russian") gold_core_spawnable = HOSTILE_SPAWN - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_CLAW //SPACE BEARS! SQUEEEEEEEE~ OW! FUCK! IT BIT MY HAND OFF!! /mob/living/simple_animal/hostile/bear/Hudson @@ -111,14 +116,16 @@ mob/living/simple_animal/hostile/bear/butter //The mighty companion to Cak. Seve melee_damage_lower = 1 melee_damage_upper = 1 armour_penetration = 0 - response_harm = "takes a bite out of" + response_harm_continuous = "takes a bite out of" + response_harm_simple = "take a bite out of" attacked_sound = 'sound/items/eatfood.ogg' deathmessage = "loses its false life and collapses!" butcher_results = list(/obj/item/reagent_containers/food/snacks/butter = 6, /obj/item/reagent_containers/food/snacks/meat/slab = 3, /obj/item/organ/brain = 1, /obj/item/organ/heart = 1) attack_sound = 'sound/weapons/slap.ogg' - attacktext = "slaps" + attack_verb_continuous = "slaps" + attack_verb_simple = "slap" -/mob/living/simple_animal/hostile/bear/butter/Life() //Heals butter bear really fast when he takes damage. +/mob/living/simple_animal/hostile/bear/butter/BiologicalLife(seconds, times_fired) //Heals butter bear really fast when he takes damage. if(stat) return if(health < maxHealth) diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index f5454933c8..5f3d4f11c1 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -23,10 +23,14 @@ turns_per_move = 0 melee_damage_lower = 1 melee_damage_upper = 1 - attacktext = "stings" - response_help = "shoos" - response_disarm = "swats away" - response_harm = "squashes" + attack_verb_continuous = "stings" + attack_verb_simple = "sting" + response_help_continuous = "shoos" + response_help_simple = "shoo" + response_disarm_continuous = "swats away" + response_disarm_simple = "swat away" + response_harm_continuous = "squashes" + response_harm_simple = "squash" maxHealth = 10 health = 10 spacewalk = TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm b/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm index dbb957a96b..cde63adffd 100644 --- a/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm +++ b/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm @@ -2,14 +2,16 @@ name = "A Perfectly Generic Boss Placeholder" desc = "" threat = 10 - robust_searching = 1 + robust_searching = TRUE stat_attack = UNCONSCIOUS - status_flags = 0 + status_flags = NONE a_intent = INTENT_HARM gender = NEUTER + has_field_of_vision = FALSE //You are a frikkin boss var/list/boss_abilities = list() //list of /datum/action/boss var/datum/boss_active_timed_battle/atb - var/point_regen_delay = 1 + var/point_regen_delay = 20 + var/point_regen_amount = 1 /mob/living/simple_animal/hostile/boss/Initialize() @@ -17,58 +19,68 @@ atb = new() atb.point_regen_delay = point_regen_delay + atb.point_regen_amount = point_regen_amount atb.boss = src for(var/ab in boss_abilities) boss_abilities -= ab var/datum/action/boss/AB = new ab() - AB.boss = src AB.Grant(src) boss_abilities += AB atb.assign_abilities(boss_abilities) - /mob/living/simple_animal/hostile/boss/Destroy() - qdel(atb) - atb = null - for(var/ab in boss_abilities) - var/datum/action/boss/AB = ab - AB.boss = null - AB.Remove(src) - qdel(AB) - boss_abilities.Cut() + QDEL_NULL(atb) + QDEL_LIST(boss_abilities) return ..() - //Action datum for bosses //Override Trigger() as shown below to do things /datum/action/boss check_flags = AB_CHECK_CONSCIOUS //Incase the boss is given a player + required_mobility_flags = NONE var/boss_cost = 100 //Cost of usage for the boss' AI 1-100 var/usage_probability = 100 + var/list/req_statuses //If set, will only trigger if the mob AI status is present in this list. var/mob/living/simple_animal/hostile/boss/boss var/boss_type = /mob/living/simple_animal/hostile/boss var/needs_target = TRUE //Does the boss need to have a target? (Only matters for the AI) var/say_when_triggered = "" //What does the boss Say() when the ability triggers? +/datum/action/boss/Destroy() + boss = null + return ..() + +/datum/action/boss/Grant(mob/M) + . = ..() + boss = owner + +/datum/action/boss/Remove(mob/M) + . = ..() + boss = null + +/datum/action/boss/IsAvailable(silent = FALSE) + . = ..() + if(!.) + return + if(!istype(boss, boss_type)) + return FALSE + if(!boss.atb) + return FALSE + if(boss.atb.points < boss_cost) + return FALSE + if(!boss.client && needs_target && !boss.target) + return FALSE + /datum/action/boss/Trigger() . = ..() - if(.) - if(!istype(boss, boss_type)) - return 0 - if(!boss.atb) - return 0 - if(boss.atb.points < boss_cost) - return 0 - if(!boss.client) - if(needs_target && !boss.target) - return 0 - if(boss) - if(say_when_triggered) - boss.say(say_when_triggered, forced = "boss action") - if(!boss.atb.spend(boss_cost)) - return 0 + if(!.) + return + if(!boss.atb.spend(boss_cost)) + return FALSE + if(say_when_triggered) + boss.say(say_when_triggered, forced = "boss action") //Example: /* @@ -81,58 +93,57 @@ //Designed for boss mobs only /datum/boss_active_timed_battle var/list/abilities //a list of /datum/action/boss owned by a boss mob - var/point_regen_delay = 5 - var/points = 50 //1-100, start with 50 so we can use some abilities but not insta-buttfug somebody + var/point_regen_delay = 20 + var/point_regen_amount = 1 + var/max_points = 100 + var/points = 50 //start with 50 so we can use some abilities but not insta-buttfug somebody var/next_point_time = 0 var/chance_to_hold_onto_points = 50 var/highest_cost = 0 var/mob/living/simple_animal/hostile/boss/boss - /datum/boss_active_timed_battle/New() ..() START_PROCESSING(SSobj, src) - /datum/boss_active_timed_battle/proc/assign_abilities(list/L) if(!L) - return 0 + return FALSE abilities = L for(var/ab in abilities) var/datum/action/boss/AB = ab if(AB.boss_cost > highest_cost) highest_cost = AB.boss_cost - /datum/boss_active_timed_battle/proc/spend(cost) if(cost <= points) - points = max(0,points-cost) - return 1 - return 0 - + points -= cost + return TRUE + return FALSE /datum/boss_active_timed_battle/proc/refund(cost) - points = min(points+cost, 100) - + points = min(points+cost, max_points) /datum/boss_active_timed_battle/process() - if(world.time >= next_point_time) + if(world.time >= next_point_time && points < max_points) next_point_time = world.time + point_regen_delay - points = min(100, ++points) //has to be out of 100 + points = min(max_points, points + point_regen_amount) - if(abilities) - chance_to_hold_onto_points = highest_cost*0.5 - if(points != 100 && prob(chance_to_hold_onto_points)) - return //Let's save our points for a better ability (unless we're at max points, in which case we can't save anymore!) - if(!boss.client) - abilities = shuffle(abilities) - for(var/ab in abilities) - var/datum/action/boss/AB = ab - if(prob(AB.usage_probability) && AB.Trigger()) - break + if(!abilities) + return + chance_to_hold_onto_points = highest_cost*0.5 + if(points != max_points && prob(chance_to_hold_onto_points)) + return //Let's save our points for a better ability (unless we're at max points, in which case we can't save anymore!) + if(!boss.client) + abilities = shuffle(abilities) + for(var/ab in abilities) + var/datum/action/boss/AB = ab + if(!boss.client && (!AB.req_statuses || (boss.AIStatus in AB.req_statuses)) && prob(AB.usage_probability) && AB.Trigger()) + break + AB.UpdateButtonIcon(TRUE) /datum/boss_active_timed_battle/Destroy() abilities = null - SSobj.processing.Remove(src) + STOP_PROCESSING(SSobj, src) return ..() diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm index 07572fff83..fe00af9384 100644 --- a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm +++ b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm @@ -23,7 +23,7 @@ attack_sound = 'sound/hallucinations/growl1.ogg' var/list/copies = list() - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_SHOE //Summon Ability @@ -32,25 +32,48 @@ name = "Summon Minions" icon_icon = 'icons/mob/actions/actions_minor_antag.dmi' button_icon_state = "art_summon" - usage_probability = 40 + usage_probability = 20 boss_cost = 30 boss_type = /mob/living/simple_animal/hostile/boss/paper_wizard needs_target = FALSE + req_statuses = list(AI_ON) say_when_triggered = "Rise, my creations! Jump off your pages and into this realm!" - var/static/summoned_minions = 0 + var/list/summoned_minions = list() + var/maximum_stickmen = 6 + var/stickmen_to_summon = 3 /datum/action/boss/wizard_summon_minions/Trigger() - if(summoned_minions <= 6 && ..()) - var/list/minions = list( - /mob/living/simple_animal/hostile/stickman, - /mob/living/simple_animal/hostile/stickman/ranged, - /mob/living/simple_animal/hostile/stickman/dog) - var/list/directions = GLOB.cardinals.Copy() - for(var/i in 1 to 3) - var/minions_chosen = pick_n_take(minions) - new minions_chosen (get_step(boss,pick_n_take(directions)), 1) - summoned_minions += 3; + . =..() + if(!.) + return + var/to_summon = stickmen_to_summon + var/current_len = length(summoned_minions) + if(current_len > maximum_stickmen - stickmen_to_summon) + for(var/a in (maximum_stickmen - stickmen_to_summon) to current_len) + var/mob/living/simple_animal/hostile/stickman/S = popleft(summoned_minions) + if(!S.client) + qdel(S) + else + S.forceMove(boss.drop_location()) + S.revive(TRUE) + summoned_minions += S + to_summon-- + var/static/list/minions = list( + /mob/living/simple_animal/hostile/stickman, + /mob/living/simple_animal/hostile/stickman/ranged, + /mob/living/simple_animal/hostile/stickman/dog) + + var/list/directions = GLOB.cardinals.Copy() + for(var/i in 1 to to_summon) + var/minions_chosen = pick(minions) + var/mob/living/simple_animal/hostile/stickman/S = new minions_chosen (get_step(boss,pick_n_take(directions)), 1) + S.faction = boss.faction + RegisterSignal(S, COMSIG_PARENT_QDELETING, .proc/remove_from_list) + summoned_minions += S + +/datum/action/boss/wizard_summon_minions/proc/remove_from_list(datum/source, forced) + summoned_minions -= source //Mimic Ability //Summons mimics of himself with magical papercraft @@ -63,31 +86,36 @@ usage_probability = 30 boss_cost = 40 boss_type = /mob/living/simple_animal/hostile/boss/paper_wizard + req_statuses = list(AI_ON) say_when_triggered = "" /datum/action/boss/wizard_mimic/Trigger() - if(..()) - var/mob/living/target - if(!boss.client) //AI's target - target = boss.target - else //random mob - var/list/threats = boss.PossibleThreats() - if(threats.len) - target = pick(threats) - if(target) - var/mob/living/simple_animal/hostile/boss/paper_wizard/wiz = boss - var/directions = GLOB.cardinals.Copy() - for(var/i in 1 to 3) - var/mob/living/simple_animal/hostile/boss/paper_wizard/copy/C = new (get_step(target,pick_n_take(directions))) - wiz.copies += C - C.original = wiz - C.say("My craft defines me, you could even say it IS me!") - wiz.say("My craft defines me, you could even say it IS me!") - wiz.forceMove(get_step(target,pick_n_take(directions))) - wiz.minimum_distance = 1 //so he doesn't run away and ruin everything - wiz.retreat_distance = 0 + . = ..() + if(!.) + return + var/mob/living/target + if(!boss.client) //AI's target + target = boss.target + else //random mob + var/list/threats = boss.PossibleThreats() + if(threats.len) + target = pick(threats) else - boss.atb.refund(boss_cost) + to_chat(owner, "There is no potential foe of different faction around to attack") + if(target) + var/mob/living/simple_animal/hostile/boss/paper_wizard/wiz = boss + var/directions = GLOB.cardinals.Copy() + for(var/i in 1 to 3) + var/mob/living/simple_animal/hostile/boss/paper_wizard/copy/C = new (get_step(target,pick_n_take(directions))) + wiz.copies += C + C.original = wiz + C.say("My craft defines me, you could even say it IS me!") + wiz.say("My craft defines me, you could even say it IS me!") + wiz.forceMove(get_step(target,pick_n_take(directions))) + wiz.minimum_distance = 1 //so he doesn't run away and ruin everything + wiz.retreat_distance = 0 + else + boss.atb.refund(boss_cost) /mob/living/simple_animal/hostile/boss/paper_wizard/copy desc = "'Tis a ruse!" diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index ced56f0705..f775d6600c 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -12,9 +12,10 @@ speak_chance = 0 turns_per_move = 5 butcher_results = list(/obj/item/reagent_containers/food/snacks/carpmeat = 2) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "hits" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" emote_taunt = list("gnashes") taunt_chance = 30 speed = 0 @@ -25,7 +26,8 @@ obj_damage = 50 melee_damage_lower = 15 melee_damage_upper = 15 - attacktext = "bites" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" attack_sound = 'sound/weapons/bite.ogg' speak_emote = list("gnashes") //Space carp aren't affected by cold. @@ -45,8 +47,9 @@ if(regen_amount) regen_cooldown = world.time + REGENERATION_DELAY -/mob/living/simple_animal/hostile/carp/Life() - . = ..() +/mob/living/simple_animal/hostile/carp/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(regen_amount && regen_cooldown < world.time) heal_overall_damage(regen_amount) diff --git a/code/modules/mob/living/simple_animal/hostile/cat_butcher.dm b/code/modules/mob/living/simple_animal/hostile/cat_butcher.dm index 4e3375caf7..d85f75cbbd 100644 --- a/code/modules/mob/living/simple_animal/hostile/cat_butcher.dm +++ b/code/modules/mob/living/simple_animal/hostile/cat_butcher.dm @@ -8,9 +8,6 @@ icon_gib = "syndicate_gib" speak_chance = 0 turns_per_move = 5 - response_help = "pokes" - response_disarm = "shoves" - response_harm = "hits" speed = 0 stat_attack = UNCONSCIOUS robust_searching = 1 @@ -19,7 +16,8 @@ harm_intent_damage = 5 melee_damage_lower = 15 melee_damage_upper = 15 - attacktext = "slashes at" + attack_verb_continuous = "slashes at" + attack_verb_simple = "slash at" attack_sound = 'sound/weapons/circsawhit.ogg' a_intent = INTENT_HARM mob_biotypes = MOB_ORGANIC|MOB_HUMANOID diff --git a/code/modules/mob/living/simple_animal/hostile/creature.dm b/code/modules/mob/living/simple_animal/hostile/creature.dm deleted file mode 100644 index bba37f94af..0000000000 --- a/code/modules/mob/living/simple_animal/hostile/creature.dm +++ /dev/null @@ -1,18 +0,0 @@ -/mob/living/simple_animal/hostile/creature - name = "creature" - desc = "A sanity-destroying otherthing." - icon_state = "otherthing" - icon_living = "otherthing" - icon_dead = "otherthing-dead" - health = 80 - maxHealth = 80 - obj_damage = 100 - melee_damage_lower = 25 - melee_damage_upper = 50 - attacktext = "chomps" - attack_sound = 'sound/weapons/bite.ogg' - faction = list("creature") - speak_emote = list("screams") - gold_core_spawnable = HOSTILE_SPAWN - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - minbodytemp = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm b/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm index 6ca6eac0cc..48266e3e76 100644 --- a/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm +++ b/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm @@ -17,7 +17,8 @@ obj_damage = 20 melee_damage_lower = 5 melee_damage_upper = 5 - attacktext = "staves" + attack_verb_continuous = "staves" + attack_verb_simple = "stave" a_intent = INTENT_HARM speak_emote = list("chants") attack_sound = 'sound/weapons/bladeslice.ogg' @@ -25,7 +26,7 @@ turns_per_move = 5 gold_core_spawnable = HOSTILE_SPAWN faction = list(ROLE_WIZARD) - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_SHOE weather_immunities = list("lava","ash") minbodytemp = 0 maxbodytemp = INFINITY diff --git a/code/modules/mob/living/simple_animal/hostile/eyeballs.dm b/code/modules/mob/living/simple_animal/hostile/eyeballs.dm index dbb9048ca4..75e8c55236 100644 --- a/code/modules/mob/living/simple_animal/hostile/eyeballs.dm +++ b/code/modules/mob/living/simple_animal/hostile/eyeballs.dm @@ -8,9 +8,10 @@ icon_gib = "" gender = NEUTER mob_biotypes = MOB_ORGANIC - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "hits" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" emote_taunt = list("glares") taunt_chance = 25 maxHealth = 45 @@ -21,9 +22,11 @@ obj_damage = 60 melee_damage_lower = 20 melee_damage_upper = 25 - attacktext = "blinks at" + attack_verb_continuous = "blinks at" + attack_verb_simple = "blink at" attack_sound = 'sound/weapons/pierce.ogg' movement_type = FLYING faction = list("spooky") del_on_death = 1 + field_of_vision_type = FOV_270_DEGREES //Obviously, it's one eyeball. diff --git a/code/modules/mob/living/simple_animal/hostile/faithless.dm b/code/modules/mob/living/simple_animal/hostile/faithless.dm index 7ac0ea2b44..4f8d2fef6c 100644 --- a/code/modules/mob/living/simple_animal/hostile/faithless.dm +++ b/code/modules/mob/living/simple_animal/hostile/faithless.dm @@ -9,9 +9,12 @@ gender = MALE speak_chance = 0 turns_per_move = 5 - response_help = "passes through" - response_disarm = "shoves" - response_harm = "hits" + response_help_continuous = "passes through" + response_help_simple = "pass through" + response_disarm_continuous = "shoves" + response_disarm_simple = "shove" + response_harm_continuous = "hits" + response_harm_simple = "hit" emote_taunt = list("wails") taunt_chance = 25 speed = 0 @@ -26,7 +29,8 @@ obj_damage = 50 melee_damage_lower = 15 melee_damage_upper = 15 - attacktext = "grips" + attack_verb_continuous = "grips" + attack_verb_simple = "grip" attack_sound = 'sound/hallucinations/growl1.ogg' speak_emote = list("growls") @@ -36,7 +40,7 @@ faction = list("faithless") gold_core_spawnable = HOSTILE_SPAWN - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_SHOE /mob/living/simple_animal/hostile/faithless/AttackingTarget() . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index f19aa0a2a7..a253ecfd96 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -30,9 +30,12 @@ turns_per_move = 5 see_in_dark = 10 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/spider = 2, /obj/item/reagent_containers/food/snacks/spiderleg = 8) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "hits" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "kicks" + response_harm_simple = "kick" maxHealth = 200 health = 200 obj_damage = 60 @@ -43,18 +46,19 @@ pass_flags = PASSTABLE move_to_delay = 6 ventcrawler = VENTCRAWLER_ALWAYS - attacktext = "bites" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" attack_sound = 'sound/weapons/bite.ogg' unique_name = 1 gold_core_spawnable = HOSTILE_SPAWN see_in_dark = 4 lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE + footstep_type = FOOTSTEP_MOB_CLAW + has_field_of_vision = FALSE // 360° vision. var/playable_spider = FALSE var/datum/action/innate/spider/lay_web/lay_web var/directive = "" //Message passed down to children, to relay the creator's orders - do_footstep = TRUE - /mob/living/simple_animal/hostile/poison/giant_spider/Initialize() . = ..() lay_web = new diff --git a/code/modules/mob/living/simple_animal/hostile/goose.dm b/code/modules/mob/living/simple_animal/hostile/goose.dm index db232c20c4..1dcb13aa9b 100644 --- a/code/modules/mob/living/simple_animal/hostile/goose.dm +++ b/code/modules/mob/living/simple_animal/hostile/goose.dm @@ -10,9 +10,12 @@ speak_chance = 0 turns_per_move = 5 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "kicks" + response_harm_simple = "kick" emote_taunt = list("hisses") taunt_chance = 30 speed = 0 @@ -21,7 +24,8 @@ harm_intent_damage = 5 melee_damage_lower = 5 melee_damage_upper = 5 - attacktext = "pecks" + attack_verb_continuous = "pecks" + attack_verb_simple = "peck" attack_sound = "goose" speak_emote = list("honks") faction = list("neutral") diff --git a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm index 7c6f9e9c7b..f48eef083b 100644 --- a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm +++ b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm @@ -16,16 +16,20 @@ health = 220 loot = list(/obj/effect/gibspawner/generic) butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/gorilla = 4) - response_help = "prods" - response_disarm = "challenges" - response_harm = "thumps" + response_help_continuous = "prods" + response_help_simple = "prod" + response_disarm_continuous = "challenges" + response_disarm_simple = "challenge" + response_harm_continuous = "thumps" + response_harm_simple = "thump" speed = 1 melee_damage_lower = 15 melee_damage_upper = 18 damage_coeff = list(BRUTE = 1, BURN = 1.5, TOX = 1.5, CLONE = 0, STAMINA = 0, OXY = 1.5) obj_damage = 20 environment_smash = ENVIRONMENT_SMASH_WALLS - attacktext = "pummels" + attack_verb_continuous = "pummels" + attack_verb_simple = "pummel" attack_sound = 'sound/weapons/punch1.ogg' dextrous = TRUE held_items = list(null, null) @@ -39,7 +43,7 @@ var/list/gorilla_overlays[GORILLA_TOTAL_LAYERS] var/oogas = 0 - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_BAREFOOT // Gorillas like to dismember limbs from unconcious mobs. // Returns null when the target is not an unconcious carbon mob; a list of limbs (possibly empty) otherwise. diff --git a/code/modules/mob/living/simple_animal/hostile/headcrab.dm b/code/modules/mob/living/simple_animal/hostile/headcrab.dm index 9d64b76198..501534237a 100644 --- a/code/modules/mob/living/simple_animal/hostile/headcrab.dm +++ b/code/modules/mob/living/simple_animal/hostile/headcrab.dm @@ -12,7 +12,8 @@ maxHealth = 50 melee_damage_lower = 5 melee_damage_upper = 5 - attacktext = "chomps" + attack_verb_continuous = "chomps" + attack_verb_simple = "chomp" attack_sound = 'sound/weapons/bite.ogg' faction = list("creature") robust_searching = 1 diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm index 1cc675825f..b627bf67c2 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm @@ -16,7 +16,8 @@ healable = 0 melee_damage_lower = 10 melee_damage_upper = 10 - attacktext = "saw" + attack_verb_continuous = "saw" + attack_verb_simple = "saw" attack_sound = 'sound/weapons/bladeslice.ogg' projectilesound = 'sound/weapons/gunshot.ogg' projectiletype = /obj/item/projectile/hivebotbullet @@ -30,7 +31,7 @@ loot = list(/obj/effect/decal/cleanable/robot_debris) blood_volume = 0 - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_CLAW /mob/living/simple_animal/hostile/hivebot/Initialize() . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index cae8948fdd..945842d5ed 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -20,6 +20,7 @@ var/casingtype //set ONLY it and NULLIFY projectiletype, if we have projectile IN CASING var/move_to_delay = 3 //delay for the automated movement. var/list/friends = list() + var/list/foes = list() var/list/emote_taunt = list() var/taunt_chance = 0 @@ -62,13 +63,14 @@ /mob/living/simple_animal/hostile/Destroy() targets_from = null + friends = null + foes = null return ..() -/mob/living/simple_animal/hostile/Life() - . = ..() - if(!.) //dead +/mob/living/simple_animal/hostile/BiologicalLife(seconds, times_fired) + if(!(. = ..())) walk(src, 0) //stops walking - return 0 + return /mob/living/simple_animal/hostile/handle_automated_action() if(AIStatus == AI_OFF) @@ -114,7 +116,7 @@ Move(get_step(src,chosen_dir)) face_atom(target) //Looks better if they keep looking at you when dodging -/mob/living/simple_animal/hostile/attacked_by(obj/item/I, mob/living/user) +/mob/living/simple_animal/hostile/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1) if(stat == CONSCIOUS && !target && AIStatus != AI_OFF && !client && user) FindTarget(list(user), 1) return ..() @@ -193,7 +195,7 @@ // Please do not add one-off mob AIs here, but override this function for your mob /mob/living/simple_animal/hostile/CanAttack(atom/the_target)//Can we actually attack a possible target? - if(isturf(the_target) || !the_target || the_target.type == /atom/movable/lighting_object) // bail out on invalids + if(!the_target || the_target.type == /atom/movable/lighting_object || isturf(the_target)) // bail out on invalids return FALSE if(ismob(the_target)) //Target is in godmode, ignore it. @@ -208,13 +210,13 @@ if(search_objects < 2) if(isliving(the_target)) var/mob/living/L = the_target - var/faction_check = faction_check_mob(L) + var/faction_check = !foes[L] && faction_check_mob(L) if(robust_searching) if(faction_check && !attack_same) return FALSE - if(L.stat > stat_attack) + if(L.stat > stat_attack || (L.stat == UNCONSCIOUS && stat_attack == UNCONSCIOUS && HAS_TRAIT(L, TRAIT_DEATHCOMA))) return FALSE - if(L in friends) + if(friends[L] > 0 && foes[L] < 1) return FALSE else if((faction_check && !attack_same) || L.stat) diff --git a/code/modules/mob/living/simple_animal/hostile/illusion.dm b/code/modules/mob/living/simple_animal/hostile/illusion.dm index 89303702f3..f561f0d43c 100644 --- a/code/modules/mob/living/simple_animal/hostile/illusion.dm +++ b/code/modules/mob/living/simple_animal/hostile/illusion.dm @@ -10,7 +10,8 @@ melee_damage_lower = 5 melee_damage_upper = 5 a_intent = INTENT_HARM - attacktext = "gores" + attack_verb_continuous = "gores" + attack_verb_simple = "gore" maxHealth = 100 health = 100 speed = 0 @@ -20,14 +21,14 @@ var/multiply_chance = 0 //if we multiply on hit del_on_death = 1 deathmessage = "vanishes into thin air! It was a fake!" + has_field_of_vision = FALSE //not meant to be played anyway. - -/mob/living/simple_animal/hostile/illusion/Life() - ..() +/mob/living/simple_animal/hostile/illusion/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(world.time > life_span) death() - /mob/living/simple_animal/hostile/illusion/proc/Copy_Parent(mob/living/original, life = 50, hp = 100, damage = 0, replicate = 0 ) appearance = original.appearance parent_mob = original diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/_jungle_mobs.dm b/code/modules/mob/living/simple_animal/hostile/jungle/_jungle_mobs.dm index c337344c90..c2b553aad7 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/_jungle_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/_jungle_mobs.dm @@ -7,9 +7,8 @@ environment_smash = ENVIRONMENT_SMASH_WALLS minbodytemp = 0 maxbodytemp = 450 - response_help = "pokes" - response_disarm = "shoves" - response_harm = "strikes" + response_harm_continuous = "strikes" + response_harm_simple = "strike" status_flags = NONE a_intent = INTENT_HARM see_in_dark = 4 diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm index 05c4007b6f..51f61fa158 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm @@ -27,7 +27,7 @@ var/hop_cooldown = 0 //Strictly for player controlled leapers var/projectile_ready = FALSE //Stopping AI leapers from firing whenever they want, and only doing it after a hop has finished instead - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_HEAVY /obj/item/projectile/leaper name = "leaper bubble" @@ -166,8 +166,9 @@ if(!hopping) Hop() -/mob/living/simple_animal/hostile/jungle/leaper/Life() - . = ..() +/mob/living/simple_animal/hostile/jungle/leaper/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return update_icons() /mob/living/simple_animal/hostile/jungle/leaper/adjustHealth(amount, updating_health = TRUE, forced = FALSE) @@ -197,7 +198,7 @@ hopping = TRUE density = FALSE pass_flags |= PASSMOB - notransform = TRUE + mob_transforming = TRUE var/turf/new_turf = locate((target.x + rand(-3,3)),(target.y + rand(-3,3)),target.z) if(player_hop) new_turf = get_turf(target) @@ -209,7 +210,7 @@ /mob/living/simple_animal/hostile/jungle/leaper/proc/FinishHop() density = TRUE - notransform = FALSE + mob_transforming = FALSE pass_flags &= ~PASSMOB hopping = FALSE playsound(src.loc, 'sound/effects/meteorimpact.ogg', 100, 1) @@ -220,7 +221,7 @@ /mob/living/simple_animal/hostile/jungle/leaper/proc/BellyFlop() var/turf/new_turf = get_turf(target) hopping = TRUE - notransform = TRUE + mob_transforming = TRUE new /obj/effect/temp_visual/leaper_crush(new_turf) addtimer(CALLBACK(src, .proc/BellyFlopHop, new_turf), 30) @@ -231,7 +232,7 @@ /mob/living/simple_animal/hostile/jungle/leaper/proc/Crush() hopping = FALSE density = TRUE - notransform = FALSE + mob_transforming = FALSE playsound(src, 'sound/effects/meteorimpact.ogg', 200, 1) for(var/mob/living/L in orange(1, src)) L.adjustBruteLoss(35) diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm b/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm index ae161d596d..99349168f0 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm @@ -25,10 +25,11 @@ projectilesound = 'sound/weapons/pierce.ogg' alpha = 50 - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_CLAW -/mob/living/simple_animal/hostile/jungle/mega_arachnid/Life() - ..() +/mob/living/simple_animal/hostile/jungle/mega_arachnid/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(target && ranged_cooldown > world.time && iscarbon(target)) var/mob/living/carbon/C = target if(!C.legcuffed && C.health < 50) @@ -40,7 +41,6 @@ minimum_distance = 0 alpha = 255 - /mob/living/simple_animal/hostile/jungle/mega_arachnid/Aggro() ..() alpha = 255 diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm b/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm index c05d14965e..6efa0cf468 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/mook.dm @@ -32,7 +32,7 @@ var/attack_state = MOOK_ATTACK_NEUTRAL var/struck_target_leap = FALSE - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_BAREFOOT /mob/living/simple_animal/hostile/jungle/mook/CanPass(atom/movable/O) if(istype(O, /mob/living/simple_animal/hostile/jungle/mook)) diff --git a/code/modules/mob/living/simple_animal/hostile/killertomato.dm b/code/modules/mob/living/simple_animal/hostile/killertomato.dm index e418cc4ab0..9cb65d7c30 100644 --- a/code/modules/mob/living/simple_animal/hostile/killertomato.dm +++ b/code/modules/mob/living/simple_animal/hostile/killertomato.dm @@ -12,12 +12,16 @@ health = 30 see_in_dark = 3 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/killertomato = 2) - response_help = "prods" - response_disarm = "pushes aside" - response_harm = "smacks" + response_help_continuous = "prods" + response_help_simple = "prod" + response_disarm_continuous = "pushes aside" + response_disarm_simple = "push aside" + response_harm_continuous = "smacks" + response_harm_simple = "smack" melee_damage_lower = 8 melee_damage_upper = 12 - attacktext = "slams" + attack_verb_continuous = "slams" + attack_verb_simple = "slam" attack_sound = 'sound/weapons/punch1.ogg' ventcrawler = VENTCRAWLER_ALWAYS faction = list("plants") diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index fd278eb438..3ef4ef9be9 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -54,7 +54,7 @@ Difficulty: Medium deathmessage = "falls to the ground, decaying into glowing particles." death_sound = "bodyfall" - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_HEAVY /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/guidance guidance = TRUE @@ -75,7 +75,7 @@ Difficulty: Medium /obj/item/projectile/kinetic/miner damage = 40 - speed = 0.9 + pixels_per_second = TILES_TO_PIXELS(11.111) icon_state = "ka_tracer" range = MINER_DASH_RANGE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index d2680fbf61..b191eaf3fb 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -29,12 +29,14 @@ Difficulty: Hard threat = 35 health = 2500 maxHealth = 2500 - attacktext = "rends" + attack_verb_continuous = "rends" + attack_verb_simple = "rend" attack_sound = 'sound/magic/demon_attack1.ogg' icon_state = "bubblegum" icon_living = "bubblegum" icon_dead = "" - friendly = "stares down" + friendly_verb_continuous = "stares down" + friendly_verb_simple = "stare down" icon = 'icons/mob/lavaland/96x96megafauna.dmi' speak_emote = list("gurgles") armour_penetration = 40 @@ -55,7 +57,7 @@ Difficulty: Hard deathmessage = "sinks into a pool of blood, fleeing the battle. You've won, for now... " death_sound = 'sound/magic/enter_blood.ogg' - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_HEAVY /obj/item/gps/internal/bubblegum icon_state = null @@ -63,8 +65,9 @@ Difficulty: Hard desc = "You're not quite sure how a signal can be bloody." invisibility = 100 -/mob/living/simple_animal/hostile/megafauna/bubblegum/Life() - ..() +/mob/living/simple_animal/hostile/megafauna/bubblegum/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return move_to_delay = clamp(round((health/maxHealth) * 10), 3, 10) /mob/living/simple_animal/hostile/megafauna/bubblegum/OpenFire() @@ -227,11 +230,13 @@ Difficulty: Hard icon_state = "bloodbrood" icon_living = "bloodbrood" icon_aggro = "bloodbrood" - attacktext = "pierces" + attack_verb_continuous = "pierces" + attack_verb_simple = "pierce" color = "#C80000" density = FALSE faction = list("mining", "boss") weather_immunities = list("lava","ash") + has_field_of_vision = FALSE /mob/living/simple_animal/hostile/asteroid/hivelordbrood/slaughter/CanPass(atom/movable/mover, turf/target) if(istype(mover, /mob/living/simple_animal/hostile/megafauna/bubblegum)) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 73fb9d4e48..5816be2917 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -27,12 +27,14 @@ Difficulty: Very Hard threat = 40 health = 2500 maxHealth = 2500 - attacktext = "judges" + attack_verb_continuous = "judges" + attack_verb_simple = "judge" attack_sound = 'sound/magic/clockwork/ratvar_attack.ogg' icon_state = "eva" icon_living = "eva" icon_dead = "dragon_dead" - friendly = "stares down" + friendly_verb_continuous = "stares down" + friendly_verb_simple = "stare down" icon = 'icons/mob/lavaland/96x96megafauna.dmi' speak_emote = list("roars") armour_penetration = 40 @@ -210,7 +212,7 @@ Difficulty: Very Hard icon_state= "chronobolt" damage = 25 armour_penetration = 100 - speed = 2 + pixels_per_second = TILES_TO_PIXELS(5) eyeblur = 0 damage_type = BRUTE pass_flags = PASSTABLE @@ -606,14 +608,18 @@ Difficulty: Very Hard icon_dead = "butterfly_dead" threat = -0.7 turns_per_move = 1 - response_help = "waves away" - response_disarm = "brushes aside" - response_harm = "disrupts" + response_help_continuous = "waves away" + response_help_simple = "wave away" + response_disarm_continuous = "brushes aside" + response_disarm_simple = "brush aside" + response_harm_continuous = "disrupts" + response_harm_simple = "disrupt" speak_emote = list("oscillates") maxHealth = 2 health = 2 harm_intent_damage = 1 - friendly = "mends" + friendly_verb_continuous = "mends" + friendly_verb_simple = "mend" density = FALSE movement_type = FLYING pass_flags = PASSTABLE | PASSGRILLE | PASSMOB @@ -725,7 +731,7 @@ Difficulty: Very Hard /obj/structure/closet/stasis/Entered(atom/A) if(isliving(A) && holder_animal) var/mob/living/L = A - L.notransform = 1 + L.mob_transforming = 1 ADD_TRAIT(L, TRAIT_MUTE, STASIS_MUTE) L.status_flags |= GODMODE L.mind.transfer_to(holder_animal) @@ -738,7 +744,7 @@ Difficulty: Very Hard for(var/mob/living/L in src) REMOVE_TRAIT(L, TRAIT_MUTE, STASIS_MUTE) L.status_flags &= ~GODMODE - L.notransform = 0 + L.mob_transforming = 0 if(holder_animal) holder_animal.mind.transfer_to(L) L.mind.RemoveSpell(/obj/effect/proc_holder/spell/targeted/exit_possession) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm index 3d106021de..5e866f95f1 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm @@ -10,7 +10,8 @@ Difficulty: Extremely Hard icon_state = "demonic_miner" icon_living = "demonic_miner" icon = 'icons/mob/icemoon/icemoon_monsters.dmi' - attacktext = "pummels" + attack_verb_continuous = "pummels" + attack_verb_simple = "pummel" attack_sound = 'sound/weapons/sonic_jackhammer.ogg' mob_biotypes = MOB_ORGANIC|MOB_HUMANOID light_color = "#E4C7C5" @@ -70,7 +71,10 @@ Difficulty: Extremely Hard /mob/living/simple_animal/hostile/megafauna/demonic_frost_miner/OpenFire() check_enraged() - projectile_speed_multiplier = 1 - enraged * 0.25 + if(enraged) + projectile_speed_multiplier = 1.33 + else + projectile_speed_multiplier = 1 SetRecoveryTime(100, 100) if(client) @@ -108,7 +112,7 @@ Difficulty: Extremely Hard icon_state = "ice_1" damage = 20 armour_penetration = 100 - speed = 10 + pixels_per_second = TILES_TO_PIXELS(1) homing_turn_speed = 30 damage_type = BURN @@ -122,7 +126,7 @@ Difficulty: Extremely Hard icon_state = "nuclear_particle" damage = 5 armour_penetration = 100 - speed = 4 + pixels_per_second = TILES_TO_PIXELS(2.5) damage_type = BRUTE /obj/item/projectile/ice_blast @@ -130,7 +134,7 @@ Difficulty: Extremely Hard icon_state = "ice_2" damage = 15 armour_penetration = 100 - speed = 4 + pixels_per_second = TILES_TO_PIXELS(2.5) damage_type = BRUTE /obj/item/projectile/ice_blast/on_hit(atom/target, blocked = FALSE) @@ -184,7 +188,7 @@ Difficulty: Extremely Hard if(!startloc || !endloc) break var/obj/item/projectile/ice_blast/P = new(startloc) - P.speed *= projectile_speed_multiplier + P.pixels_per_second *= projectile_speed_multiplier P.preparePixelProjectile(endloc, startloc, null, angle + rand(-10, 10)) P.firer = firer if(original) @@ -200,7 +204,7 @@ Difficulty: Extremely Hard if(!endloc) break var/obj/item/projectile/P = new /obj/item/projectile/snowball(startloc) - P.speed *= projectile_speed_multiplier + P.pixels_per_second *= projectile_speed_multiplier P.preparePixelProjectile(endloc, startloc, null, rand(-spread, spread)) P.firer = src if(target) @@ -219,7 +223,7 @@ Difficulty: Extremely Hard if(!endloc) break var/obj/item/projectile/P = new /obj/item/projectile/ice_blast(startloc) - P.speed *= projectile_speed_multiplier + P.pixels_per_second *= projectile_speed_multiplier P.preparePixelProjectile(endloc, startloc, null, spread) P.firer = src if(target) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index c59272214b..062a4c9a43 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -37,13 +37,15 @@ Difficulty: Medium health = 2500 maxHealth = 2500 spacewalk = TRUE - attacktext = "chomps" + attack_verb_continuous = "chomps" + attack_verb_simple = "chomp" attack_sound = 'sound/magic/demon_attack1.ogg' icon = 'icons/mob/lavaland/64x64megafauna.dmi' icon_state = "dragon" icon_living = "dragon" icon_dead = "dragon_dead" - friendly = "stares down" + friendly_verb_continuous = "stares down" + friendly_verb_simple = "stare down" speak_emote = list("roars") armour_penetration = 40 melee_damage_lower = 40 @@ -64,7 +66,7 @@ Difficulty: Medium death_sound = 'sound/magic/demon_dies.ogg' var/datum/action/small_sprite/smallsprite = new/datum/action/small_sprite/drake() - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_HEAVY /mob/living/simple_animal/hostile/megafauna/dragon/Initialize() smallsprite.Grant(src) @@ -81,7 +83,7 @@ Difficulty: Medium return FALSE return ..() -/mob/living/simple_animal/hostile/megafauna/dragon/visible_message(message, self_message, blind_message, vision_distance = DEFAULT_MESSAGE_RANGE, list/ignored_mobs) +/mob/living/simple_animal/hostile/megafauna/dragon/visible_message(message, self_message, blind_message, vision_distance = DEFAULT_MESSAGE_RANGE, list/ignored_mobs, mob/target, target_message) if(swooping & SWOOP_INVULNERABLE) //to suppress attack messages without overriding every single proc that could send a message saying we got hit return return ..() diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 477c2ce3aa..a66ee7b1de 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -40,11 +40,13 @@ Difficulty: Normal threat = 30 health = 2500 maxHealth = 2500 - attacktext = "clubs" + attack_verb_continuous = "clubs" + attack_verb_simple = "club" attack_sound = 'sound/weapons/sonic_jackhammer.ogg' icon_state = "hierophant" icon_living = "hierophant" - friendly = "stares down" + friendly_verb_continuous = "stares down" + friendly_verb_simple = "stare down" icon = 'icons/mob/lavaland/hierophant_new.dmi' faction = list("boss") //asteroid mobs? get that shit out of my beautiful square house speak_emote = list("preaches") @@ -86,9 +88,10 @@ Difficulty: Normal /mob/living/simple_animal/hostile/megafauna/hierophant/spawn_crusher_loot() new /obj/item/crusher_trophy/vortex_talisman(get_turf(spawned_beacon)) -/mob/living/simple_animal/hostile/megafauna/hierophant/Life() - . = ..() - if(. && spawned_beacon && !QDELETED(spawned_beacon) && !client) +/mob/living/simple_animal/hostile/megafauna/hierophant/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return + if(spawned_beacon && !QDELETED(spawned_beacon) && !client) if(target || loc == spawned_beacon.loc) timeout_time = initial(timeout_time) else diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index 62a09dff65..4da8a90b23 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -26,7 +26,8 @@ Difficulty: Medium icon_living = "legion" desc = "One of many." icon = 'icons/mob/lavaland/legion.dmi' - attacktext = "chomps" + attack_verb_continuous = "chomps" + attack_verb_simple = "chomp" attack_sound = 'sound/magic/demon_attack1.ogg' speak_emote = list("echoes") armour_penetration = 50 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index 78987ebaa0..7009f13f36 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -27,6 +27,7 @@ mob_size = MOB_SIZE_LARGE layer = LARGE_MOB_LAYER //Looks weird with them slipping under mineral walls and cameras and shit otherwise flags_1 = PREVENT_CONTENTS_EXPLOSION_1 | HEAR_1 + has_field_of_vision = FALSE //You are a frikkin boss /// Crusher loot dropped when fauna killed with a crusher var/list/crusher_loot var/medal_type @@ -144,6 +145,7 @@ /mob/living/simple_animal/hostile/megafauna/proc/SetRecoveryTime(buffer_time) recovery_time = world.time + buffer_time + ranged_cooldown = max(ranged_cooldown, world.time + buffer_time) // CITADEL BANDAID FIX FOR MEGAFAUNA NOT RESPECTING RECOVERY TIME. /mob/living/simple_animal/hostile/megafauna/proc/grant_achievement(medaltype, scoretype, crusher_kill) if(!medal_type || (flags_1 & ADMIN_SPAWNED_1)) //Don't award medals if the medal type isn't set @@ -157,7 +159,7 @@ var/client/C = L.client SSmedals.UnlockMedal("Boss [BOSS_KILL_MEDAL]", C) SSmedals.UnlockMedal("[medaltype] [BOSS_KILL_MEDAL]", C) - if(crusher_kill && istype(L.get_active_held_item(), /obj/item/twohanded/kinetic_crusher)) + if(crusher_kill && istype(L.get_active_held_item(), /obj/item/kinetic_crusher)) SSmedals.UnlockMedal("[medaltype] [BOSS_KILL_MEDAL_CRUSHER]", C) SSmedals.SetScore(BOSS_SCORE, C, 1) SSmedals.SetScore(score_type, C, 1) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm index 50c6025378..db6468d1b5 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm @@ -73,14 +73,13 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa step(R, ddir) //Step the swarmers, instead of spawning them there, incase the turf is solid -/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon/Life() - . = ..() - if(.) - var/createtype = GetUncappedAISwarmerType() - if(createtype && world.time > swarmer_spawn_cooldown && GLOB.AISwarmers.len < (GetTotalAISwarmerCap()*0.5)) - swarmer_spawn_cooldown = world.time + swarmer_spawn_cooldown_amt - new createtype(loc) - +/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return + var/createtype = GetUncappedAISwarmerType() + if(createtype && world.time > swarmer_spawn_cooldown && GLOB.AISwarmers.len < (GetTotalAISwarmerCap()*0.5)) + swarmer_spawn_cooldown = world.time + swarmer_spawn_cooldown_amt + new createtype(loc) /mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon/adjustHealth(amount, updating_health = TRUE, forced = FALSE) . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm index 5ed163ae7e..ed189f052d 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm @@ -11,7 +11,8 @@ Difficulty: Hard icon_living = "wendigo" icon_dead = "wendigo_dead" icon = 'icons/mob/icemoon/64x64megafauna.dmi' - attacktext = "claws" + attack_verb_continuous = "claws" + attack_verb_simple = "claw" attack_sound = 'sound/magic/demon_attack1.ogg' weather_immunities = list("snow") speak_emote = list("roars") diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index 138d7f155e..c2d05e43d9 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -5,9 +5,12 @@ icon_state = "crate" icon_living = "crate" - response_help = "touches" - response_disarm = "pushes" - response_harm = "hits" + response_help_continuous = "touches" + response_help_simple = "touch" + response_disarm_continuous = "pushes" + response_disarm_simple = "push" + response_harm_continuous = "hits" + response_harm_simple = "hit" speed = 0 maxHealth = 250 health = 250 @@ -18,7 +21,8 @@ harm_intent_damage = 5 melee_damage_lower = 8 melee_damage_upper = 12 - attacktext = "attacks" + attack_verb_continuous = "attacks" + attack_verb_simple = "attack" attack_sound = 'sound/weapons/punch1.ogg' emote_taunt = list("growls") speak_emote = list("creaks") @@ -34,7 +38,8 @@ // Aggro when you try to open them. Will also pickup loot when spawns and drop it when dies. /mob/living/simple_animal/hostile/mimic/crate - attacktext = "bites" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" speak_emote = list("clatters") stop_automated_movement = 1 wander = 0 @@ -113,8 +118,9 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca overlay_googly_eyes = FALSE CopyObject(copy, creator, destroy_original) -/mob/living/simple_animal/hostile/mimic/copy/Life() - ..() +/mob/living/simple_animal/hostile/mimic/copy/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(idledamage && !target && !ckey) //Objects eventually revert to normal if no one is around to terrorize adjustBruteLoss(1) for(var/mob/living/M in contents) //a fix for animated statues from the flesh to stone spell diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index 4d20d4c7fb..13738b20e1 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -25,7 +25,8 @@ obj_damage = 60 melee_damage_lower = 12 melee_damage_upper = 12 - attacktext = "bites into" + attack_verb_continuous = "bites into" + attack_verb_simple = "bite into" a_intent = INTENT_HARM speak_emote = list("chitters") attack_sound = 'sound/weapons/bladeslice.ogg' @@ -72,7 +73,8 @@ throw_message = "bounces harmlessly off of" melee_damage_lower = 15 melee_damage_upper = 15 - attacktext = "impales" + attack_verb_continuous = "impales" + attack_verb_simple = "impale" a_intent = INTENT_HARM speak_emote = list("telepathically cries") attack_sound = 'sound/weapons/bladeslice.ogg' @@ -82,6 +84,33 @@ crusher_loot = /obj/item/crusher_trophy/watcher_wing loot = list() butcher_results = list(/obj/item/stack/ore/diamond = 2, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 1) + search_objects = 1 + wanted_objects = list(/obj/item/pen/survival, /obj/item/stack/ore/diamond) + field_of_vision_type = FOV_270_DEGREES //Obviously, it's one eyeball. + +/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return + if(stat == CONSCIOUS) + consume_bait() + +/mob/living/simple_animal/hostile/asteroid/basilisk/watcher/proc/consume_bait() + var/obj/item/stack/ore/diamond/diamonds = locate(/obj/item/stack/ore/diamond) in oview(src, 9) + var/obj/item/pen/survival/bait = locate(/obj/item/pen/survival) in oview(src, 9) + if(!diamonds && !bait) + return + if(diamonds) + var/distanced = 0 + distanced = get_dist(loc,diamonds.loc) + if(distanced <= 1 && diamonds) + qdel(diamonds) + src.visible_message("[src] consumes [diamonds], and it disappears! ...At least, you think.") + if(bait) + var/distanceb = 0 + distanceb = get_dist(loc,bait.loc) + if(distanceb <= 1 && bait) + qdel(bait) + visible_message("[src] examines [bait] closer, and telekinetically shatters the pen.") /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/random/Initialize() . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm index 652840f7e3..c4f78b6e26 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm @@ -16,7 +16,8 @@ melee_damage_lower = 10 melee_damage_upper = 10 melee_damage_type = BURN - attacktext = "slashes" + attack_verb_continuous = "slashes" + attack_verb_simple = "slash" attack_sound = 'sound/effects/curseattack.ogg' throw_message = "passes through the smokey body of" obj_damage = 0 @@ -102,8 +103,9 @@ IGNORE_PROC_IF_NOT_TARGET(attack_slime) return BULLET_ACT_FORCE_PIERCE return ..() -/mob/living/simple_animal/hostile/asteroid/curseblob/attacked_by(obj/item/I, mob/living/L) +/mob/living/simple_animal/hostile/asteroid/curseblob/attacked_by(obj/item/I, mob/living/L, attackchain_flags = NONE, damage_multiplier = 1) if(L != set_target) + L.changeNext_move(I.click_delay) //pre_attacked_by not called return return ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm index 2114612fce..81b541dc7b 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm @@ -21,6 +21,7 @@ layer = LARGE_MOB_LAYER sentience_type = SENTIENCE_BOSS hud_type = /datum/hud/lavaland_elite + has_field_of_vision = FALSE //You are a frikkin mini-boss var/chosen_attack = 1 var/list/attack_action_types = list() var/can_talk = FALSE diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm index 68a0e81cc7..80489e0e40 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm @@ -31,9 +31,8 @@ melee_damage_lower = 30 melee_damage_upper = 30 armour_penetration = 30 - attacktext = "beats down on" - /*attack_verb_continuous = "beats down on" - attack_verb_simple = "beat down on"*/ + attack_verb_continuous = "beats down on" + attack_verb_simple = "beat down on" attack_sound = 'sound/weapons/punch1.ogg' throw_message = "does nothing to the rocky hide of the" speed = 2 @@ -98,9 +97,8 @@ if(CALL_CHILDREN) call_children() -/mob/living/simple_animal/hostile/asteroid/elite/broodmother/Life() - . = ..() - if(!.) //Checks if they are dead as a rock. +/mob/living/simple_animal/hostile/asteroid/elite/broodmother/BiologicalLife(seconds, times_fired) + if(!(. = ..())) return if(health < maxHealth * 0.5 && rand_tent < world.time) rand_tent = world.time + 30 @@ -172,9 +170,8 @@ health = 30 melee_damage_lower = 5 melee_damage_upper = 5 - attacktext = "bashes against" - /*attack_verb_continuous = "bashes against" - attack_verb_simple = "bash against"*/ + attack_verb_continuous = "bashes against" + attack_verb_simple = "bash against" attack_sound = 'sound/weapons/punch1.ogg' throw_message = "does nothing to the rocky hide of the" speed = 2 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm index 884e3bb989..78b24acfb0 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm @@ -29,9 +29,8 @@ health = 800 melee_damage_lower = 20 melee_damage_upper = 20 - attacktext = "preaches to" - /*attack_verb_continuous = "preaches to" - attack_verb_simple = "preach to"*/ + attack_verb_continuous = "preaches to" + attack_verb_simple = "preach to" attack_sound = 'sound/magic/clockwork/ratvar_attack.ogg' throw_message = "doesn't affect the purity of" speed = 4 @@ -218,7 +217,7 @@ icon_state= "chronobolt" damage = 15 armour_penetration = 60 - speed = 2 + pixels_per_second = TILES_TO_PIXELS(5) eyeblur = 0 damage_type = BRUTE pass_flags = PASSTABLE diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm index c9011c5f5f..31f925fb2b 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm @@ -29,9 +29,8 @@ health = 800 melee_damage_lower = 30 melee_damage_upper = 30 - attacktext = "slashes its arms at" - /*attack_verb_continuous = "slashes its arms at" - attack_verb_simple = "slash your arms at"*/ + attack_verb_continuous = "slashes its arms at" + attack_verb_simple = "slash your arms at" attack_sound = 'sound/weapons/bladeslice.ogg' throw_message = "doesn't affect the sturdiness of" speed = 1 @@ -227,9 +226,8 @@ health = 80 melee_damage_lower = 10 melee_damage_upper = 10 - attacktext = "bites at" - /*attack_verb_continuous = "bites at" - attack_verb_simple = "bite at"*/ + attack_verb_continuous = "bites at" + attack_verb_simple = "bite at" attack_sound = 'sound/effects/curse1.ogg' throw_message = "simply misses" speed = 0 @@ -300,5 +298,5 @@ var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/A = new /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion(user.loc) A.flags_1 |= (flags_1 & ADMIN_SPAWNED_1) A.GiveTarget(target) - A.friends = user + A.friends[user]++ A.faction = user.faction.Copy() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm index 3276965fa2..cdef0c50d3 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm @@ -29,9 +29,8 @@ health = 800 melee_damage_lower = 15 melee_damage_upper = 15 - attacktext = "smashes into the side of" - /*attack_verb_continuous = "smashes into the side of" - attack_verb_simple = "smash into the side of"*/ + attack_verb_continuous = "smashes into the side of" + attack_verb_simple = "smash into the side of" attack_sound = 'sound/weapons/sonic_jackhammer.ogg' throw_message = "merely dinks off of the" speed = 4 @@ -96,8 +95,9 @@ if(AOE_SQUARES) aoe_squares(target) -/mob/living/simple_animal/hostile/asteroid/elite/pandora/Life() - . = ..() +/mob/living/simple_animal/hostile/asteroid/elite/pandora/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(health >= maxHealth * 0.5) cooldown_time = 20 return diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm index c43e9a7461..4a3497055a 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm @@ -13,14 +13,16 @@ vision_range = 2 aggro_vision_range = 9 move_to_delay = 5 - friendly = "harmlessly rolls into" + friendly_verb_continuous = "harmlessly rolls into" + friendly_verb_simple = "harmlessly roll into" maxHealth = 45 health = 45 gold_core_spawnable = HOSTILE_SPAWN harm_intent_damage = 5 melee_damage_lower = 0 melee_damage_upper = 0 - attacktext = "barrels into" + attack_verb_continuous = "barrels into" + attack_verb_simple = "barrel into" attack_sound = 'sound/weapons/punch1.ogg' a_intent = INTENT_HELP speak_emote = list("screeches") diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm index 3c8cf9025f..5f6c21bbbd 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -14,7 +14,8 @@ move_to_delay = 10 ranged = 1 ranged_cooldown_time = 60 - friendly = "wails at" + friendly_verb_continuous = "wails at" + friendly_verb_simple = "wail at" speak_emote = list("bellows") speed = 3 maxHealth = 300 @@ -23,7 +24,8 @@ obj_damage = 100 melee_damage_lower = 18 melee_damage_upper = 18 - attacktext = "pulverizes" + attack_verb_continuous = "pulverizes" + attack_verb_simple = "pulverize" attack_sound = 'sound/weapons/punch1.ogg' throw_message = "does nothing to the rocky hide of the" vision_range = 4 @@ -35,10 +37,11 @@ var/pre_attack_icon = "Goliath_preattack" loot = list(/obj/item/stack/sheet/animalhide/goliath_hide) - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_HEAVY -/mob/living/simple_animal/hostile/asteroid/goliath/Life() - . = ..() +/mob/living/simple_animal/hostile/asteroid/goliath/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return handle_preattack() /mob/living/simple_animal/hostile/asteroid/goliath/proc/handle_preattack() @@ -127,9 +130,8 @@ var/turf/last_location var/tentacle_recheck_cooldown = 100 -/mob/living/simple_animal/hostile/asteroid/goliath/beast/ancient/Life() - . = ..() - if(!.) // dead +/mob/living/simple_animal/hostile/asteroid/goliath/beast/ancient/BiologicalLife(seconds, times_fired) + if(!(. = ..())) return if(isturf(loc)) if(!LAZYLEN(cached_tentacle_turfs) || loc != last_location || tentacle_recheck_cooldown <= world.time) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm index 39b66fbdc2..0ccc4525c7 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm @@ -18,10 +18,14 @@ obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE move_to_delay = 15 - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "squishes" - friendly = "pinches" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "squishes" + response_harm_simple = "squish" + friendly_verb_continuous = "pinches" + friendly_verb_simple = "pinch" a_intent = INTENT_HELP ventcrawler = VENTCRAWLER_ALWAYS gold_core_spawnable = FRIENDLY_SPAWN @@ -40,7 +44,7 @@ childtype = list(/mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck = 45, /mob/living/simple_animal/hostile/asteroid/gutlunch/guthen = 55) wanted_objects = list(/obj/effect/decal/cleanable/blood/gibs/xeno, /obj/effect/decal/cleanable/blood/gibs/, /obj/item/bodypart, /obj/item/organ/appendix, /obj/item/organ/ears, /obj/item/organ/eyes, /obj/item/organ/heart, /obj/item/organ/liver, \ - /obj/item/organ/lungs, /obj/item/organ/stomach, /obj/item/organ/tongue) // So we dont eat implants or brains. Still can eat robotic stuff thats subtyped of base line but thats a issue for a nother day. + /obj/item/organ/lungs, /obj/item/organ/stomach, /obj/item/organ/tongue) // So we dont eat implants or brains. Still can eat robotic stuff thats subtyped of base line but thats a issue for another day. var/obj/item/udder/gutlunch/udder = null /mob/living/simple_animal/hostile/asteroid/gutlunch/Initialize() @@ -110,8 +114,9 @@ name = "guthen" gender = FEMALE -/mob/living/simple_animal/hostile/asteroid/gutlunch/guthen/Life() - ..() +/mob/living/simple_animal/hostile/asteroid/gutlunch/guthen/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(udder.reagents.total_volume == udder.reagents.maximum_volume) //Only breed when we're full. make_babies() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index a7ce559d35..16f892bbff 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -20,7 +20,8 @@ harm_intent_damage = 5 melee_damage_lower = 0 melee_damage_upper = 0 - attacktext = "lashes out at" + attack_verb_continuous = "lashes out at" + attack_verb_simple = "lash out at" speak_emote = list("telepathically cries") attack_sound = 'sound/weapons/pierce.ogg' throw_message = "falls right through the strange body of the" @@ -67,7 +68,8 @@ icon_gib = "syndicate_gib" mouse_opacity = MOUSE_OPACITY_OPAQUE move_to_delay = 1 - friendly = "buzzes near" + friendly_verb_continuous = "buzzes near" + friendly_verb_simple = "buzz near" vision_range = 10 speed = 3 maxHealth = 1 @@ -76,7 +78,8 @@ harm_intent_damage = 5 melee_damage_lower = 2 melee_damage_upper = 2 - attacktext = "slashes" + attack_verb_continuous = "slashes" + attack_verb_simple = "slash" speak_emote = list("telepathically cries") attack_sound = 'sound/weapons/pierce.ogg' throw_message = "falls right through the strange body of the" @@ -107,7 +110,8 @@ obj_damage = 60 melee_damage_lower = 15 melee_damage_upper = 15 - attacktext = "lashes out at" + attack_verb_continuous = "lashes out at" + attack_verb_simple = "lash out at" speak_emote = list("echoes") attack_sound = 'sound/weapons/pierce.ogg' throw_message = "bounces harmlessly off of" @@ -173,14 +177,16 @@ icon_aggro = "legion_head" icon_dead = "legion_head" icon_gib = "syndicate_gib" - friendly = "buzzes near" + friendly_verb_continuous = "buzzes near" + friendly_verb_simple = "buzz near" vision_range = 10 maxHealth = 1 health = 5 harm_intent_damage = 5 melee_damage_lower = 12 melee_damage_upper = 12 - attacktext = "bites" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" speak_emote = list("echoes") attack_sound = 'sound/weapons/pierce.ogg' throw_message = "is shrugged off by" @@ -190,12 +196,13 @@ swarming = TRUE var/can_infest_dead = FALSE -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/Life() +/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(isturf(loc)) for(var/mob/living/carbon/human/H in view(src,1)) //Only for corpse right next to/on same tile if(H.stat == UNCONSCIOUS || (can_infest_dead && H.stat == DEAD)) infest(H) - ..() /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/proc/infest(mob/living/carbon/human/H) visible_message("[name] burrows into the flesh of [H]!") @@ -317,7 +324,7 @@ suit = /obj/item/clothing/suit/armor/bone gloves = /obj/item/clothing/gloves/bracer if(prob(5)) - back = pickweight(list(/obj/item/twohanded/bonespear = 3, /obj/item/twohanded/fireaxe/boneaxe = 2)) + back = pickweight(list(/obj/item/spear/bonespear = 3, /obj/item/fireaxe/boneaxe = 2)) if(prob(10)) belt = /obj/item/storage/belt/mining/primitive if(prob(30)) @@ -396,8 +403,6 @@ ears = /obj/item/radio/headset gloves = /obj/item/clothing/gloves/color/fyellow id = /obj/item/card/id/silver/reaper //looks cool and has a fancy name but only a 1% chance - back = /obj/item/storage/backpack - backpack_contents = list(/obj/item/stack/cable_coil = 12, /obj/item/assembly/flash = 1, /obj/item/storage/fancy/donut_box = 1, /obj/item/storage/fancy/cigarettes/cigpack_shadyjims = 1, /obj/item/lighter = 1) if(prob(99)) id = /obj/item/card/id id_job = "Assisant" @@ -406,12 +411,15 @@ if(prob(5)) gloves = /obj/item/clothing/gloves/color/yellow if(prob(10)) - back = /obj/item/twohanded/spear - backpack_contents = null + back = /obj/item/spear + else if(prob(80)) //Now they dont always have a backpack + back = /obj/item/storage/backpack + backpack_contents = list(/obj/item/stack/cable_coil = 1, /obj/item/assembly/flash = 1, /obj/item/storage/fancy/donut_box = 1, /obj/item/storage/fancy/cigarettes/cigpack_shadyjims = 1, /obj/item/lighter = 1) if(prob(90)) r_pocket = /obj/item/kitchen/knife if(prob(60)) l_pocket = /obj/item/soap/homemade + if("Beelegion") uniform = /obj/item/clothing/under/color/yellow suit = /obj/item/clothing/suit/hooded/bee_costume diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm index 88ee27fcc9..d40cd8636c 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm @@ -23,7 +23,8 @@ obj_damage = 40 melee_damage_lower = 15 melee_damage_upper = 15 - attacktext = "slices" + attack_verb_continuous = "slices" + attack_verb_simple = "slice" attack_sound = 'sound/weapons/bladeslice.ogg' vision_range = 7 aggro_vision_range = 7 @@ -61,9 +62,10 @@ SLEEP_CHECK_DEATH(8) return ..() -/mob/living/simple_animal/hostile/asteroid/ice_demon/Life() - . = ..() - if(!. || target) +/mob/living/simple_animal/hostile/asteroid/ice_demon/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return + if(target) return adjustHealth(-maxHealth*0.025) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm index c8d5cf4b73..7214fd71e0 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm @@ -7,7 +7,8 @@ icon_dead = "ice_whelp_dead" mob_biotypes = MOB_ORGANIC|MOB_BEAST mouse_opacity = MOUSE_OPACITY_ICON - friendly = "stares down" + friendly_verb_continuous = "stares down" + friendly_verb_simple = "stare down" speak_emote = list("roars") speed = 30 move_to_delay = 30 @@ -19,7 +20,8 @@ armour_penetration = 20 melee_damage_lower = 20 melee_damage_upper = 20 - attacktext = "chomps" + attack_verb_continuous = "chomps" + attack_verb_simple = "chomp" attack_sound = 'sound/magic/demon_attack1.ogg' vision_range = 9 aggro_vision_range = 9 @@ -41,9 +43,10 @@ var/list/burn_turfs = getline(src, T) - get_turf(src) dragon_fire_line(src, burn_turfs) -/mob/living/simple_animal/hostile/asteroid/ice_whelp/Life() - . = ..() - if(!. || target) +/mob/living/simple_animal/hostile/asteroid/ice_whelp/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return + if(target) return adjustHealth(-maxHealth*0.025) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm index 6ad869afe6..c3e4f24c43 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm @@ -8,9 +8,8 @@ environment_smash = ENVIRONMENT_SMASH_WALLS minbodytemp = 0 maxbodytemp = INFINITY - response_help = "pokes" - response_disarm = "shoves" - response_harm = "strikes" + response_harm_continuous = "strikes" + response_harm_simple = "strike" status_flags = 0 a_intent = INTENT_HARM var/crusher_loot diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm index 0576d0ecfe..de9464cc16 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm @@ -7,7 +7,8 @@ icon_dead = "polarbear_dead" mob_biotypes = MOB_ORGANIC|MOB_BEAST mouse_opacity = MOUSE_OPACITY_ICON - friendly = "growls at" + friendly_verb_continuous = "growls at" + friendly_verb_simple = "growl at" speak_emote = list("growls") speed = 12 move_to_delay = 12 @@ -16,7 +17,8 @@ obj_damage = 40 melee_damage_lower = 25 melee_damage_upper = 25 - attacktext = "claws" + attack_verb_continuous = "claws" + attack_verb_simple = "claw" attack_sound = 'sound/weapons/bladeslice.ogg' vision_range = 2 // don't aggro unless you basically antagonize it, though they will kill you worse than a goliath will aggro_vision_range = 9 @@ -42,9 +44,10 @@ aggressive_message_said = TRUE rapid_melee = 2 -/mob/living/simple_animal/hostile/asteroid/polarbear/Life() - . = ..() - if(!. || target) +/mob/living/simple_animal/hostile/asteroid/polarbear/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return + if(target) return adjustHealth(-maxHealth*0.025) aggressive_message_said = FALSE diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm index 9f17421691..8c4db48434 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm @@ -7,7 +7,8 @@ icon_dead = "whitewolf_dead" mob_biotypes = MOB_ORGANIC|MOB_BEAST mouse_opacity = MOUSE_OPACITY_ICON - friendly = "howls at" + friendly_verb_continuous = "howls at" + friendly_verb_simple = "howl at" speak_emote = list("howls") speed = 5 move_to_delay = 5 @@ -19,7 +20,8 @@ rapid_melee = 2 // every second attack dodging = TRUE dodge_prob = 50 - attacktext = "bites" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" attack_sound = 'sound/weapons/bite.ogg' vision_range = 7 aggro_vision_range = 7 @@ -49,9 +51,10 @@ retreat_message_said = TRUE retreat_distance = 30 -/mob/living/simple_animal/hostile/asteroid/wolf/Life() - . = ..() - if(!. || target) +/mob/living/simple_animal/hostile/asteroid/wolf/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return + if(target) return adjustHealth(-maxHealth*0.025) retreat_message_said = FALSE diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm index d023cf0dd8..4c9afd3784 100644 --- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm +++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm @@ -9,15 +9,19 @@ maxHealth = 10 health = 10 butcher_results = list(/obj/item/reagent_containers/food/snacks/hugemushroomslice = 1) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "whacks" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "whacks" + response_harm_simple = "whack" harm_intent_damage = 5 obj_damage = 0 melee_damage_lower = 1 melee_damage_upper = 1 attack_same = 2 - attacktext = "chomps" + attack_verb_continuous = "chomps" + attack_verb_simple = "chomp" attack_sound = 'sound/weapons/bite.ogg' faction = list("mushroom") environment_smash = ENVIRONMENT_SMASH_NONE @@ -44,8 +48,9 @@ else . += "It looks like it's been roughed up." -/mob/living/simple_animal/hostile/mushroom/Life() - ..() +/mob/living/simple_animal/hostile/mushroom/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(!stat)//Mushrooms slowly regenerate if conscious, for people who want to save them from being eaten adjustBruteLoss(-2) diff --git a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm b/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm index ed2a407b8e..8653c40cea 100644 --- a/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm +++ b/code/modules/mob/living/simple_animal/hostile/nanotrasen.dm @@ -9,9 +9,6 @@ mob_biotypes = MOB_ORGANIC|MOB_HUMANOID speak_chance = 12 turns_per_move = 5 - response_help = "pokes" - response_disarm = "shoves" - response_harm = "hits" speed = 0 stat_attack = UNCONSCIOUS robust_searching = 1 @@ -20,7 +17,8 @@ harm_intent_damage = 5 melee_damage_lower = 10 melee_damage_upper = 15 - attacktext = "punches" + attack_verb_continuous = "punches" + attack_verb_simple = "punch" attack_sound = 'sound/weapons/punch1.ogg' a_intent = INTENT_HARM loot = list(/obj/effect/mob_spawn/human/corpse/nanotrasensoldier) @@ -31,7 +29,7 @@ speak = list("Stop resisting!", "I AM THE LAW!", "Face the wrath of the golden bolt!", "Stop breaking the law, asshole!") search_objects = 1 - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_SHOE /mob/living/simple_animal/hostile/nanotrasen/Aggro() diff --git a/code/modules/mob/living/simple_animal/hostile/netherworld.dm b/code/modules/mob/living/simple_animal/hostile/netherworld.dm index 1c8b171738..1db6854f96 100644 --- a/code/modules/mob/living/simple_animal/hostile/netherworld.dm +++ b/code/modules/mob/living/simple_animal/hostile/netherworld.dm @@ -11,7 +11,8 @@ melee_damage_lower = 25 melee_damage_upper = 50 threat = 2 - attacktext = "slashes" + attack_verb_continuous = "slashes" + attack_verb_simple = "slash" attack_sound = 'sound/weapons/bladeslice.ogg' faction = list("creature") speak_emote = list("screams") @@ -27,7 +28,8 @@ icon_state = "mi-go" icon_living = "mi-go" icon_dead = "mi-go-dead" - attacktext = "lacerates" + attack_verb_continuous = "lacerates" + attack_verb_simple = "lacerate" speed = -0.5 var/static/list/migo_sounds deathmessage = "wails as its form turns into a pulpy mush." @@ -44,8 +46,9 @@ var/chosen_sound = pick(migo_sounds) playsound(src, chosen_sound, 100, TRUE) -/mob/living/simple_animal/hostile/netherworld/migo/Life() - ..() +/mob/living/simple_animal/hostile/netherworld/migo/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(stat) return if(prob(10)) @@ -63,7 +66,8 @@ maxHealth = 100 melee_damage_lower = 5 melee_damage_upper = 10 - attacktext = "punches" + attack_verb_continuous = "punches" + attack_verb_simple = "punch" deathmessage = "falls apart into a fine dust." /obj/structure/spawner/nether diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/pirate.dm index d8737d1edc..0544ddc676 100644 --- a/code/modules/mob/living/simple_animal/hostile/pirate.dm +++ b/code/modules/mob/living/simple_animal/hostile/pirate.dm @@ -8,9 +8,8 @@ mob_biotypes = MOB_ORGANIC|MOB_HUMANOID speak_chance = 0 turns_per_move = 5 - response_help = "pushes" - response_disarm = "shoves" - response_harm = "hits" + response_help_continuous = "pushes" + response_help_simple = "push" threat = 3 speed = 0 maxHealth = 115 @@ -19,7 +18,8 @@ harm_intent_damage = 5 melee_damage_lower = 10 melee_damage_upper = 10 - attacktext = "punches" + attack_verb_continuous = "punches" + attack_verb_simple = "punch" attack_sound = 'sound/weapons/punch1.ogg' a_intent = INTENT_HARM atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) @@ -39,11 +39,12 @@ melee_damage_lower = 30 melee_damage_upper = 30 armour_penetration = 35 - attacktext = "slashes" + attack_verb_continuous = "slashes" + attack_verb_simple = "slash" attack_sound = 'sound/weapons/blade1.ogg' var/obj/effect/light_emitter/red_energy_sword/sord - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_SHOE /mob/living/simple_animal/hostile/pirate/melee/space name = "Space Pirate Swashbuckler" diff --git a/code/modules/mob/living/simple_animal/hostile/regalrat.dm b/code/modules/mob/living/simple_animal/hostile/regalrat.dm new file mode 100644 index 0000000000..e21514b37e --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/regalrat.dm @@ -0,0 +1,239 @@ +/mob/living/simple_animal/hostile/regalrat + name = "regal rat" + desc = "An evolved rat, created through some strange science. It leads nearby rats with deadly efficiency to protect its kingdom. Not technically a king." + icon_state = "regalrat" + icon_living = "regalrat" + icon_dead = "regalrat_dead" + gender = NEUTER + speak_chance = 0 + turns_per_move = 5 + maxHealth = 70 + health = 70 + see_in_dark = 5 + obj_damage = 10 + butcher_results = list(/obj/item/clothing/head/crown = 1,) + response_help_continuous = "glares at" + response_help_simple = "glare at" + response_disarm_continuous = "skoffs at" + response_disarm_simple = "skoff at" + response_harm_continuous = "slashes" + response_harm_simple = "slash" + melee_damage_lower = 10 + melee_damage_upper = 12 + attack_verb_continuous = "slashes" + attack_verb_simple = "slash" + attack_sound = 'sound/weapons/punch1.ogg' + ventcrawler = VENTCRAWLER_ALWAYS + unique_name = TRUE + faction = list("rat") + var/datum/action/cooldown/coffer + var/datum/action/cooldown/riot + ///Number assigned to rats and mice, checked when determining infighting. + +/mob/living/simple_animal/hostile/regalrat/Initialize() + . = ..() + coffer = new /datum/action/cooldown/coffer + coffer.Grant(src) + riot = new /datum/action/cooldown/riot + riot.Grant(src) + var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you want to play as the Royal Rat, cheesey be his crown?", ROLE_SENTIENCE, null, FALSE, 100, POLL_IGNORE_SENTIENCE_POTION) + if(LAZYLEN(candidates) && !mind) + var/mob/dead/observer/C = pick(candidates) + key = C.key + notify_ghosts("All rise for the rat king, ascendant to the throne in \the [get_area(src)].", source = src, action = NOTIFY_ORBIT, flashwindow = FALSE) + +/mob/living/simple_animal/hostile/regalrat/handle_automated_action() + if(prob(20)) + riot.Trigger() + else if(prob(50)) + coffer.Trigger() + return ..() + +/mob/living/simple_animal/hostile/regalrat/CanAttack(atom/the_target) + if(istype(the_target,/mob/living/simple_animal)) + var/mob/living/A = the_target + if(istype(the_target, /mob/living/simple_animal/hostile/regalrat) && A.stat == CONSCIOUS) + return TRUE + if(istype(the_target, /mob/living/simple_animal/hostile/rat) && A.stat == CONSCIOUS) + var/mob/living/simple_animal/hostile/rat/R = the_target + if(R.faction_check_mob(src, TRUE)) + return FALSE + else + return TRUE + return ..() + +/mob/living/simple_animal/hostile/regalrat/examine(mob/user) + . = ..() + if(istype(user,/mob/living/simple_animal/hostile/rat)) + var/mob/living/simple_animal/hostile/rat/ratself = user + if(ratself.faction_check_mob(src, TRUE)) + . += "This is your king. Long live his majesty!" + else + . += "This is a false king! Strike him down!" + else if(istype(user,/mob/living/simple_animal/hostile/regalrat)) + . += "Who is this foolish false king? This will not stand!" + +/** + *This action creates trash, money, dirt, and cheese. + */ + +/datum/action/cooldown/coffer + name = "Fill Coffers" + desc = "Your newly granted regality and poise let you scavenge for lost junk, but more importantly, cheese." + icon_icon = 'icons/mob/actions/actions_animal.dmi' + background_icon_state = "bg_clock" + button_icon_state = "coffer" + cooldown_time = 50 + +/datum/action/cooldown/coffer/Trigger() + . = ..() + if(!.) + return + var/turf/T = get_turf(owner) + var/loot = rand(1,100) + switch(loot) + if(1 to 5) + to_chat(owner, "Score! You find some cheese!") + new /obj/item/reagent_containers/food/snacks/cheesewedge(T) + if(6 to 10) + var/pickedcoin = pick(GLOB.ratking_coins) + to_chat(owner, "You find some leftover coins. More for the royal treasury!") + for(var/i = 1 to rand(1,3)) + new pickedcoin(T) + if(11) + to_chat(owner, "You find a... Hunh. This coin doesn't look right.") + var/rarecoin = rand(1,2) + if (rarecoin == 1) + new /obj/item/coin/twoheaded(T) + else + new /obj/item/coin/antagtoken(T) + if(12 to 40) + var/pickedtrash = pick(GLOB.ratking_trash) + to_chat(owner, "You just find more garbage and dirt. Lovely, but beneath you now.") + new /obj/effect/decal/cleanable/dirt(T) + new pickedtrash(T) + if(41 to 100) + to_chat(owner, "Drat. Nothing.") + new /obj/effect/decal/cleanable/dirt(T) + StartCooldown() + +/** + *This action checks all nearby mice, and converts them into hostile rats. If no mice are nearby, creates a new one. + */ + +/datum/action/cooldown/riot + name = "Raise Army" + desc = "Raise an army out of the hordes of mice and pests crawling around the maintenance shafts." + icon_icon = 'icons/mob/actions/actions_animal.dmi' + button_icon_state = "riot" + background_icon_state = "bg_clock" + cooldown_time = 80 + ///Checks to see if there are any nearby mice. Does not count Rats. + +/datum/action/cooldown/riot/Trigger() + . = ..() + if(!.) + return + var/cap = CONFIG_GET(number/ratcap) + var/something_from_nothing = FALSE + for(var/mob/living/simple_animal/mouse/M in oview(owner, 5)) + var/mob/living/simple_animal/hostile/rat/new_rat = new(get_turf(M)) + something_from_nothing = TRUE + if(M.mind && M.stat == CONSCIOUS) + M.mind.transfer_to(new_rat) + if(istype(owner,/mob/living/simple_animal/hostile/regalrat)) + var/mob/living/simple_animal/hostile/regalrat/giantrat = owner + new_rat.faction = giantrat.faction + qdel(M) + if(!something_from_nothing) + if(LAZYLEN(SSmobs.cheeserats) >= cap) + to_chat(owner,"There's too many mice on this station to beckon a new one! Find them first!") + return + new /mob/living/simple_animal/mouse(owner.loc) + owner.visible_message("[owner] commands a mouse to its side!") + else + owner.visible_message("[owner] commands its army to action, mutating them into rats!") + StartCooldown() + +/mob/living/simple_animal/hostile/rat + name = "rat" + desc = "It's a nasty, ugly, evil, disease-ridden rodent with anger issues." + icon_state = "mouse_gray" + icon_living = "mouse_gray" + icon_dead = "mouse_gray_dead" + speak = list("Skree!","SKREEE!","Squeak?") + speak_emote = list("squeaks") + emote_hear = list("Hisses.") + emote_see = list("runs in a circle.", "stands on its hind legs.") + melee_damage_lower = 3 + melee_damage_upper = 5 + obj_damage = 5 + speak_chance = 1 + turns_per_move = 5 + see_in_dark = 6 + maxHealth = 15 + health = 15 + butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 1) + density = FALSE + ventcrawler = VENTCRAWLER_ALWAYS + pass_flags = PASSTABLE | PASSGRILLE | PASSMOB + mob_size = MOB_SIZE_TINY + mob_biotypes = MOB_ORGANIC|MOB_BEAST + faction = list("rat") + +/mob/living/simple_animal/hostile/rat/Initialize() + . = ..() + SSmobs.cheeserats += src + +/mob/living/simple_animal/hostile/rat/Destroy() + SSmobs.cheeserats -= src + return ..() + +/mob/living/simple_animal/hostile/rat/examine(mob/user) + . = ..() + if(istype(user,/mob/living/simple_animal/hostile/rat)) + var/mob/living/simple_animal/hostile/rat/ratself = user + if(ratself.faction_check_mob(src, TRUE)) + . += "You both serve the same king." + else + . += "This fool serves a different king!" + else if(istype(user,/mob/living/simple_animal/hostile/regalrat)) + var/mob/living/simple_animal/hostile/regalrat/ratking = user + if(ratking.faction_check_mob(src, TRUE)) + . += "This rat serves under you." + else + . += "This peasant serves a different king! Strike him down!" + +/mob/living/simple_animal/hostile/rat/CanAttack(atom/the_target) + if(istype(the_target,/mob/living/simple_animal)) + var/mob/living/A = the_target + if(istype(the_target, /mob/living/simple_animal/hostile/regalrat) && A.stat == CONSCIOUS) + var/mob/living/simple_animal/hostile/regalrat/ratking = the_target + if(ratking.faction_check_mob(src, TRUE)) + return FALSE + else + return TRUE + if(istype(the_target, /mob/living/simple_animal/hostile/rat) && A.stat == CONSCIOUS) + var/mob/living/simple_animal/hostile/rat/R = the_target + if(R.faction_check_mob(src, TRUE)) + return FALSE + else + return TRUE + return ..() + +/mob/living/simple_animal/hostile/rat/handle_automated_action() + . = ..() + if(prob(40)) + var/turf/open/floor/F = get_turf(src) + if(istype(F) && !F.intact) + var/obj/structure/cable/C = locate() in F + if(C && prob(15)) + if(C.avail()) + visible_message("[src] chews through the [C]. It's toast!") + playsound(src, 'sound/effects/sparks2.ogg', 100, TRUE) + C.deconstruct() + death() + else if(C && C.avail()) + visible_message("[src] chews through the [C]. It looks unharmed!") + playsound(src, 'sound/effects/sparks2.ogg', 100, TRUE) + C.deconstruct() diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm index cc17759cc6..9045ccef51 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm @@ -7,9 +7,12 @@ icon_gib = "bat_dead" turns_per_move = 1 blood_volume = 250 - response_help = "brushes aside" - response_disarm = "flails at" - response_harm = "hits" + response_help_continuous = "brushes aside" + response_help_simple = "brush aside" + response_disarm_continuous = "flails at" + response_disarm_simple = "flail at" + response_harm_continuous = "hits" + response_harm_simple = "hit" mob_biotypes = MOB_ORGANIC|MOB_BEAST speak_chance = 0 maxHealth = 15 @@ -19,7 +22,8 @@ harm_intent_damage = 6 melee_damage_lower = 6 melee_damage_upper = 5 - attacktext = "bites" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 1) pass_flags = PASSTABLE faction = list("hostile") @@ -47,5 +51,6 @@ icon_gib = "secbat_dead" desc = "A fruit bat with a tiny little security hat who is ready to inject cuteness into any security operation." emote_see = list("is ready to law down the law.", "flaps about with an air of authority.") - response_help = "respects the authority of" + response_help_continuous = "respects the authority of" + response_help_simple = "respect the authority of" gold_core_spawnable = FRIENDLY_SPAWN diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm index c94046329b..03aac4037a 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm @@ -8,8 +8,10 @@ icon_gib = "clown_gib" mob_biotypes = MOB_ORGANIC|MOB_HUMANOID turns_per_move = 5 - response_disarm = "gently pushes aside" - response_harm = "robusts" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "robusts" + response_harm_simple = "robust" speak = list("HONK", "Honk!", "Welcome to clown planet!") emote_see = list("honks", "squeaks") speak_chance = 1 @@ -30,6 +32,7 @@ minbodytemp = 270 maxbodytemp = 370 unsuitable_atmos_damage = 10 + footstep_type = FOOTSTEP_MOB_SHOE var/banana_time = 0 // If there's no time set it won't spawn. var/banana_type = /obj/item/grown/bananapeel var/attack_reagent @@ -48,8 +51,9 @@ ..() playsound(src.loc, 'sound/items/bikehorn.ogg', 50, TRUE) -/mob/living/simple_animal/hostile/retaliate/clown/Life() - . = ..() +/mob/living/simple_animal/hostile/retaliate/clown/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(banana_time && banana_time < world.time) var/turf/T = get_turf(src) var/list/adjacent = T.GetAtmosAdjacentTurfs(1) @@ -69,8 +73,10 @@ icon_state = "lube" icon_living = "lube" turns_per_move = 1 - response_help = "dips a finger into" - response_disarm = "gently scoops and pours aside" + response_help_continuous = "dips a finger into" + response_help_simple = "dip a finger into" + response_disarm_continuous = "gently scoops and pours aside" + response_disarm_simple = "gently scoop and pour aside" emote_see = list("bubbles", "oozes") loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/particle_effect/foam) @@ -83,8 +89,10 @@ desc = "A fusion of clown and banana DNA birthed from a botany experiment gone wrong." icon_state = "banana tree" icon_living = "banana tree" - response_disarm = "peels" - response_harm = "peels" + response_disarm_continuous = "peels" + response_disarm_simple = "peel" + response_harm_continuous = "peels" + response_harm_simple = "peel" turns_per_move = 1 speak = list("HONK", "Honk!", "YA-HONK!!!") emote_see = list("honks", "bites into the banana", "plucks a banana off its head", "photosynthesizes") @@ -104,7 +112,8 @@ harm_intent_damage = 1 melee_damage_lower = 1 melee_damage_upper = 1 - attacktext = "cheers up" + attack_verb_continuous = "cheers up" + attack_verb_simple = "cheer up" loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/item/soap, /obj/item/seeds/banana/bluespace) banana_type = /obj/item/grown/bananapeel attack_reagent = /datum/reagent/consumable/laughter @@ -114,9 +123,12 @@ desc = "A being forged out of the pure essence of pranking, cursed into existence by a cruel maker." icon_state = "fleshclown" icon_living = "fleshclown" - response_help = "reluctantly pokes" - response_disarm = "sinks his hands into the spongy flesh of" - response_harm = "cleanses the world of" + response_help_continuous = "reluctantly pokes" + response_help_simple = "reluctantly poke" + response_disarm_continuous = "sinks his hands into the spongy flesh of" + response_disarm_simple = "sink your hands into the spongy flesh of" + response_harm_continuous = "cleanses the world of" + response_harm_simple = "cleanse the world of" speak = list("HONK", "Honk!", "I didn't ask for this", "I feel constant and horrible pain", "YA-HONK!!!", "this body is a merciless and unforgiving prison", "I was born out of mirthful pranking but I live in suffering") emote_see = list("honks", "sweats", "jiggles", "contemplates its existence") speak_chance = 5 @@ -126,7 +138,8 @@ health = 140 speed = -5 melee_damage_upper = 15 - attacktext = "limply slaps" + attack_verb_continuous = "limply slaps" + attack_verb_simple = "limply slap" obj_damage = 5 loot = list(/obj/item/clothing/suit/hooded/bloated_human, /obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/item/soap) @@ -137,9 +150,12 @@ icon_living = "long face" move_resist = INFINITY turns_per_move = 10 - response_help = "tries to awkwardly hug" - response_disarm = "pushes the unwieldy frame of" - response_harm = "tries to shut up" + response_help_continuous = "tries to awkwardly hug" + response_help_simple = "try to awkwardly hug" + response_disarm_continuous = "pushes the unwieldy frame of" + response_disarm_simple = "push the unwieldy frame of" + response_harm_continuous = "tries to shut up" + response_harm_simple = "try to shut up" speak = list("YA-HONK!!!") emote_see = list("honks", "squeaks") speak_chance = 60 @@ -149,7 +165,8 @@ speed = 10 harm_intent_damage = 5 melee_damage_lower = 5 - attacktext = "YA-HONKs" + attack_verb_continuous = "YA-HONKs" + attack_verb_simple = "YA-HONK" loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/item/soap) /mob/living/simple_animal/hostile/retaliate/clown/clownhulk @@ -158,9 +175,12 @@ icon_state = "honkhulk" icon_living = "honkhulk" move_resist = INFINITY - response_help = "tries desperately to appease" - response_disarm = "foolishly pushes" - response_harm = "angers" + response_help_continuous = "tries desperately to appease" + response_help_simple = "tries desperately to appease" + response_disarm_continuous = "foolishly pushes" + response_disarm_simple = "foolishly push" + response_harm_continuous = "angers" + response_harm_simple = "anger" speak = list("HONK", "Honk!", "HAUAUANK!!!", "GUUURRRRAAAHHH!!!") emote_see = list("honks", "sweats", "grunts") speak_chance = 5 @@ -171,7 +191,8 @@ harm_intent_damage = 15 melee_damage_lower = 15 melee_damage_upper = 20 - attacktext = "pummels" + attack_verb_continuous = "pummels" + attack_verb_simple = "pummel" obj_damage = 30 environment_smash = ENVIRONMENT_SMASH_WALLS loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/item/soap) @@ -181,16 +202,20 @@ desc = "A real lunkhead who somehow gets all the girls." icon_state = "chlown" icon_living = "chlown" - response_help = "submits to" - response_disarm = "tries to assert dominance over" - response_harm = "makes a weak beta attack at" + response_help_continuous = "submits to" + response_help_simple = "submit to" + response_disarm_continuous = "tries to assert dominance over" + response_disarm_simple = "try to assert dominance over" + response_harm_continuous = "makes a weak beta attack at" + response_harm_simple = "make a weak beta attack at" speak = list("HONK", "Honk!", "Bruh", "cheeaaaahhh?") emote_see = list("asserts his dominance", "emasculates everyone implicitly") maxHealth = 500 health = 500 speed = -2 armour_penetration = 20 - attacktext = "steals the girlfriend of" + attack_verb_continuous = "steals the girlfriend of" + attack_verb_simple = "steal the girlfriend of" attack_sound = 'sound/items/airhorn2.ogg' loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/effect/particle_effect/foam, /obj/item/soap) @@ -199,8 +224,10 @@ desc = "A slender wiry figure of alchemical origin." icon_state = "honkmunculus" icon_living = "honkmunculus" - response_help = "skeptically pokes" - response_disarm = "pushes the unwieldy frame of" + response_help_continuous = "skeptically pokes" + response_help_simple = "skeptically poke" + response_disarm_continuous = "pushes the unwieldy frame of" + response_disarm_simple = "push the unwieldy frame of" speak = list("honk") emote_see = list("squirms", "writhes") speak_chance = 1 @@ -210,7 +237,8 @@ harm_intent_damage = 5 melee_damage_lower = 5 melee_damage_upper = 10 - attacktext = "ferociously mauls" + attack_verb_continuous = "ferociously mauls" + attack_verb_simple = "ferociously maul" environment_smash = ENVIRONMENT_SMASH_NONE loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/xeno/bodypartless, /obj/effect/particle_effect/foam, /obj/item/soap) attack_reagent = /datum/reagent/peaceborg_confuse @@ -220,8 +248,10 @@ desc = "An ancient being born of arcane honking." icon_state = "destroyer" icon_living = "destroyer" - response_disarm = "bounces off of" - response_harm = "bounces off of" + response_disarm_continuous = "bounces off of" + response_disarm_simple = "bounce off of" + response_harm_continuous = "bounces off of" + response_harm_simple = "bounce off ot" speak = list("HONK!!!", "The Honkmother is merciful, so I must act out her wrath.", "parce mihi ad beatus honkmother placet mihi ut peccata committere,", "DIE!!!") maxHealth = 400 health = 400 @@ -231,7 +261,8 @@ melee_damage_upper = 40 armour_penetration = 30 stat_attack = UNCONSCIOUS - attacktext = "acts out divine vengeance on" + attack_verb_continuous = "acts out divine vengeance on" + attack_verb_simple = "act out divine vengeance on" obj_damage = 50 environment_smash = ENVIRONMENT_SMASH_RWALLS loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/human, /obj/effect/particle_effect/foam, /obj/item/soap) @@ -243,9 +274,12 @@ icon_living = "mutant" move_resist = INFINITY turns_per_move = 10 - response_help = "reluctantly sinks a finger into" - response_disarm = "squishes into" - response_harm = "squishes into" + response_help_continuous = "reluctantly sinks a finger into" + response_help_simple = "reluctantly sink a finger into" + response_disarm_continuous = "squishes into" + response_disarm_simple = "squish into" + response_harm_continuous = "squishes into" + response_harm_simple = "squish into" speak = list("aaaaaahhhhuuhhhuhhhaaaaa", "AAAaaauuuaaAAAaauuhhh", "huuuuuh... hhhhuuuooooonnnnkk", "HuaUAAAnKKKK") emote_see = list("squirms", "writhes", "pulsates", "froths", "oozes") speak_chance = 10 @@ -256,7 +290,8 @@ harm_intent_damage = 10 melee_damage_lower = 10 melee_damage_upper = 20 - attacktext = "awkwardly flails at" + attack_verb_continuous = "awkwardly flails at" + attack_verb_simple = "awkwardly flail at" loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/xeno/bodypartless, /obj/item/soap, /obj/effect/gibspawner/generic, /obj/effect/gibspawner/generic/animal, /obj/effect/gibspawner/human/bodypartless, /obj/effect/gibspawner/human) /mob/living/simple_animal/hostile/retaliate/clown/mutant/blob @@ -269,6 +304,7 @@ health = 130 mob_size = MOB_SIZE_LARGE speed = 20 - attacktext = "bounces off of" + attack_verb_continuous = "bounces off of" + attack_verb_simple = "bounce off of" loot = list(/obj/item/clothing/mask/gas/clown_hat, /obj/effect/gibspawner/xeno/bodypartless, /obj/effect/particle_effect/foam, /obj/item/soap, /obj/effect/gibspawner/generic, /obj/effect/gibspawner/generic/animal, /obj/effect/gibspawner/human/bodypartless, /obj/effect/gibspawner/human) attack_reagent = /datum/reagent/toxin/mindbreaker diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm index ef51d8621b..8424a0a576 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm @@ -13,10 +13,14 @@ health = 15 melee_damage_lower = 5 melee_damage_upper = 5 - attacktext = "bites" - response_help = "pets" - response_disarm = "pokes" - response_harm = "splats" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "pokes" + response_disarm_simple = "poke" + response_harm_continuous = "splats" + response_harm_simple = "splat" density = FALSE ventcrawler = VENTCRAWLER_ALWAYS faction = list("hostile") diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm index 48d16f63f3..2c94739180 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm @@ -7,9 +7,12 @@ mob_biotypes = MOB_SPIRIT speak_chance = 0 turns_per_move = 5 - response_help = "passes through" - response_disarm = "shoves" - response_harm = "hits" + response_help_continuous = "passes through" + response_help_simple = "pass through" + response_disarm_continuous = "shoves" + response_disarm_simple = "shove" + response_harm_continuous = "hits" + response_harm_simple = "hit" a_intent = INTENT_HARM healable = 0 speed = 0 @@ -20,7 +23,8 @@ melee_damage_upper = 15 del_on_death = 1 emote_see = list("weeps silently", "groans", "mumbles") - attacktext = "grips" + attack_verb_continuous = "grips" + attack_verb_simple = "grip" attack_sound = 'sound/hallucinations/growl1.ogg' speak_emote = list("weeps") deathmessage = "wails, disintegrating into a pile of ectoplasm!" @@ -32,6 +36,7 @@ pressure_resistance = 300 gold_core_spawnable = NO_SPAWN //too spooky for science blood_volume = 0 + has_field_of_vision = FALSE var/ghost_hair_style var/ghost_hair_color var/mutable_appearance/ghost_hair diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm index 29b0c0b701..ebeb2d28ec 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm @@ -8,9 +8,12 @@ mob_biotypes = MOB_ORGANIC|MOB_HUMANOID gender = MALE turns_per_move = 5 - response_help = "pokes" - response_disarm = "gently pushes aside" - response_harm = "punches" + response_help_continuous = "pokes" + response_help_simple = "poke" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "punches" + response_harm_simple = "punch" a_intent = INTENT_HARM maxHealth = 100 health = 100 @@ -18,13 +21,14 @@ harm_intent_damage = 8 melee_damage_lower = 10 melee_damage_upper = 10 - attacktext = "hits" + attack_verb_continuous = "hits" + attack_verb_simple = "hit" attack_sound = 'sound/weapons/punch1.ogg' obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE del_on_death = 0 - - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_SHOE + has_field_of_vision = FALSE //Legacy gameplay experience. Also they only have one dir visually. /mob/living/simple_animal/hostile/retaliate/nanotrasenpeace //this should be in a different file name = "Nanotrasen Private Security Officer" @@ -35,9 +39,12 @@ icon_dead = null icon_gib = "syndicate_gib" turns_per_move = 5 - response_help = "pokes" - response_disarm = "shoves" - response_harm = "hits" + response_help_continuous = "pokes" + response_help_simple = "poke" + response_disarm_continuous = "shoves" + response_disarm_simple = "shove" + response_harm_continuous = "hits" + response_harm_simple = "hit" speed = 0 stat_attack = UNCONSCIOUS robust_searching = 1 @@ -47,7 +54,8 @@ harm_intent_damage = 5 melee_damage_lower = 10 melee_damage_upper = 15 - attacktext = "punches" + attack_verb_continuous = "punches" + attack_verb_simple = "punch" attack_sound = 'sound/weapons/punch1.ogg' faction = list("nanotrasenprivate") a_intent = INTENT_HARM diff --git a/code/modules/mob/living/simple_animal/hostile/russian.dm b/code/modules/mob/living/simple_animal/hostile/russian.dm index 9c3e3e0b92..f7a46658c4 100644 --- a/code/modules/mob/living/simple_animal/hostile/russian.dm +++ b/code/modules/mob/living/simple_animal/hostile/russian.dm @@ -9,9 +9,6 @@ mob_biotypes = MOB_ORGANIC|MOB_HUMANOID speak_chance = 0 turns_per_move = 5 - response_help = "pokes" - response_disarm = "shoves" - response_harm = "hits" speed = 0 threat = 1 maxHealth = 100 @@ -19,7 +16,8 @@ harm_intent_damage = 5 melee_damage_lower = 15 melee_damage_upper = 15 - attacktext = "punches" + attack_verb_continuous = "punches" + attack_verb_simple = "punch" attack_sound = 'sound/weapons/punch1.ogg' a_intent = INTENT_HARM loot = list(/obj/effect/mob_spawn/human/corpse/russian, @@ -30,7 +28,7 @@ status_flags = CANPUSH del_on_death = 1 - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_SHOE /mob/living/simple_animal/hostile/russian/ranged diff --git a/code/modules/mob/living/simple_animal/hostile/sharks.dm b/code/modules/mob/living/simple_animal/hostile/sharks.dm index 4008334a57..1263a23d26 100644 --- a/code/modules/mob/living/simple_animal/hostile/sharks.dm +++ b/code/modules/mob/living/simple_animal/hostile/sharks.dm @@ -12,9 +12,12 @@ speak_chance = 0 turns_per_move = 3 butcher_results = list(/obj/item/reagent_containers/food/snacks/carpmeat = 3) - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "hits" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + response_harm_continuous = "kicks" + response_harm_simple = "kick" speed = 0 threat = 1 maxHealth = 75 @@ -22,7 +25,8 @@ harm_intent_damage = 18 melee_damage_lower = 18 melee_damage_upper = 18 - attacktext = "maims" + attack_verb_continuous = "maims" + attack_verb_simple = "maim" attack_sound = 'sound/weapons/bite.ogg' gold_core_spawnable = 1 //Space shark aren't affected by cold. @@ -82,7 +86,8 @@ harm_intent_damage = 0 melee_damage_lower = 0 melee_damage_upper = 0 - attacktext = "violently hugs" + attack_verb_continuous = "violently hugs" + attack_verb_simple = "violently hug" vision_range = 0 /mob/living/simple_animal/hostile/shark/kawaii/death() diff --git a/code/modules/mob/living/simple_animal/hostile/skeleton.dm b/code/modules/mob/living/simple_animal/hostile/skeleton.dm index df71701bb7..3091949552 100644 --- a/code/modules/mob/living/simple_animal/hostile/skeleton.dm +++ b/code/modules/mob/living/simple_animal/hostile/skeleton.dm @@ -22,7 +22,8 @@ minbodytemp = 0 maxbodytemp = 1500 healable = 0 //they're skeletons how would bruise packs help them?? - attacktext = "slashes" + attack_verb_continuous = "slashes" + attack_verb_simple = "slash" attack_sound = 'sound/hallucinations/growl1.ogg' atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) unsuitable_atmos_damage = 10 @@ -36,7 +37,7 @@ del_on_death = 1 loot = list(/obj/effect/decal/remains/human) - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_SHOE /mob/living/simple_animal/hostile/skeleton/eskimo name = "undead eskimo" @@ -52,7 +53,7 @@ melee_damage_upper = 20 deathmessage = "collapses into a pile of bones, its gear falling to the floor!" loot = list(/obj/effect/decal/remains/human, - /obj/item/twohanded/spear, + /obj/item/spear, /obj/item/clothing/shoes/winterboots, /obj/item/clothing/suit/hooded/wintercoat) @@ -104,7 +105,8 @@ melee_damage_lower = 15 melee_damage_upper = 20 light_color = LIGHT_COLOR_PURPLE - attacktext = "slashes" + attack_verb_continuous = "slashes" + attack_verb_simple = "slash" attack_sound = 'sound/hallucinations/growl1.ogg' deathmessage = "collapses into a pile of bones, their suit dissolving among the plasma!" loot = list(/obj/effect/decal/remains/plasma) @@ -120,7 +122,8 @@ harm_intent_damage = 15 melee_damage_lower = 20 melee_damage_upper = 25 - attacktext = "blasts" + attack_verb_continuous = "blasts" + attack_verb_simple = "blast" attack_sound = 'sound/weapons/sonic_jackhammer.ogg' loot = list(/obj/effect/decal/remains/plasma, /obj/item/pickaxe/drill/jackhammer) diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm index 8c622c7f29..3490d757a1 100644 --- a/code/modules/mob/living/simple_animal/hostile/statue.dm +++ b/code/modules/mob/living/simple_animal/hostile/statue.dm @@ -11,9 +11,10 @@ a_intent = INTENT_HARM mob_biotypes = MOB_HUMANOID threat = 3 - response_help = "touches" - response_disarm = "pushes" - + response_help_continuous = "touches" + response_help_simple = "touch" + response_disarm_continuous = "pushes" + response_disarm_simple = "push" speed = -1 maxHealth = 50000 health = 50000 @@ -24,7 +25,8 @@ obj_damage = 100 melee_damage_lower = 68 melee_damage_upper = 83 - attacktext = "claws" + attack_verb_continuous = "claws" + attack_verb_simple = "claw" attack_sound = 'sound/hallucinations/growl1.ogg' atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) @@ -80,8 +82,9 @@ return 0 return ..() -/mob/living/simple_animal/hostile/statue/Life() - ..() +/mob/living/simple_animal/hostile/statue/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(!client && target) // If we have a target and we're AI controlled var/mob/watching = can_be_seen() // If they're not our target @@ -125,14 +128,10 @@ // This loop will, at most, loop twice. for(var/atom/check in check_list) - for(var/mob/living/M in viewers(world.view + 1, check) - src) + for(var/mob/living/M in fov_viewers(world.view + 1, check) - src) if(M.client && CanAttack(M) && !M.silicon_privileges) if(!M.eye_blind) return M - for(var/obj/mecha/M in view(world.view + 1, check)) //assuming if you can see them they can see you - if(M.occupant && M.occupant.client) - if(!M.occupant.eye_blind) - return M.occupant return null // Cannot talk diff --git a/code/modules/mob/living/simple_animal/hostile/stickman.dm b/code/modules/mob/living/simple_animal/hostile/stickman.dm index 24bf5e9ea9..226af952b1 100644 --- a/code/modules/mob/living/simple_animal/hostile/stickman.dm +++ b/code/modules/mob/living/simple_animal/hostile/stickman.dm @@ -10,13 +10,10 @@ gender = MALE speak_chance = 0 turns_per_move = 5 - response_help = "pokes" - response_disarm = "shoves" - response_harm = "hits" speed = 0 blood_volume = 0 stat_attack = UNCONSCIOUS - robust_searching = 1 + robust_searching = TRUE //This is also required for the paper robe rallying to work. environment_smash = ENVIRONMENT_SMASH_NONE maxHealth = 100 health = 100 @@ -24,7 +21,8 @@ obj_damage = 0 melee_damage_lower = 10 melee_damage_upper = 10 - attacktext = "punches" + attack_verb_continuous = "punches" + attack_verb_simple = "punch" attack_sound = 'sound/weapons/punch1.ogg' a_intent = INTENT_HARM atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) @@ -32,8 +30,6 @@ faction = list("hostile","stickman") check_friendly_fire = 1 status_flags = CANPUSH - var/datum/action/boss/wizard_summon_minions/changesummons = /datum/action/boss/wizard_summon_minions - var/summoned_by_wizard = 0 /mob/living/simple_animal/hostile/stickman/ranged ranged = 1 @@ -45,7 +41,6 @@ projectilesound = 'sound/misc/bang.ogg' loot = list(/obj/item/gun/ballistic/automatic/pistol/stickman) - /mob/living/simple_animal/hostile/stickman/dog name = "Angry Stick Dog" desc = "Stickman's best friend, if he could see him at least." @@ -54,12 +49,6 @@ icon_dead = "stickdog_dead" mob_biotypes = MOB_BEAST -/mob/living/simple_animal/hostile/stickman/Initialize(mapload, var/wizard_summoned) +/mob/living/simple_animal/hostile/stickman/Initialize(mapload) . = ..() new /obj/effect/temp_visual/paper_scatter(src) - summoned_by_wizard = wizard_summoned - -/mob/living/simple_animal/hostile/stickman/death() - ..() - if(summoned_by_wizard == 1) - changesummons.summoned_minions -- diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index 8c4e19774d..9a362b680d 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -25,9 +25,6 @@ mob_biotypes = MOB_ORGANIC|MOB_HUMANOID speak_chance = 0 turns_per_move = 5 - response_help = "pokes" - response_disarm = "shoves" - response_harm = "hits" threat = 1 speed = 0 stat_attack = UNCONSCIOUS @@ -37,7 +34,8 @@ harm_intent_damage = 5 melee_damage_lower = 10 melee_damage_upper = 10 - attacktext = "punches" + attack_verb_continuous = "punches" + attack_verb_simple = "punch" attack_sound = 'sound/weapons/punch1.ogg' a_intent = INTENT_HARM loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) @@ -50,7 +48,7 @@ dodging = TRUE rapid_melee = 2 - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_SHOE ///////////////Melee//////////// @@ -82,7 +80,8 @@ icon_state = "syndicate_knife" icon_living = "syndicate_knife" loot = list(/obj/effect/gibspawner/human) - attacktext = "slashes" + attack_verb_continuous = "slashes" + attack_verb_simple = "slash" attack_sound = 'sound/weapons/bladeslice.ogg' status_flags = 0 @@ -113,7 +112,8 @@ melee_damage_upper = 30 icon_state = "syndicate_sword" icon_living = "syndicate_sword" - attacktext = "slashes" + attack_verb_continuous = "slashes" + attack_verb_simple = "slash" attack_sound = 'sound/weapons/blade1.ogg' armour_penetration = 35 light_color = LIGHT_COLOR_RED @@ -292,7 +292,8 @@ melee_damage_upper = 15 obj_damage = 0 environment_smash = ENVIRONMENT_SMASH_NONE - attacktext = "cuts" + attack_verb_continuous = "cuts" + attack_verb_simple = "cut" attack_sound = 'sound/weapons/bladeslice.ogg' faction = list(ROLE_SYNDICATE) atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) diff --git a/code/modules/mob/living/simple_animal/hostile/tree.dm b/code/modules/mob/living/simple_animal/hostile/tree.dm index 3c8d028d53..2b9f4eea35 100644 --- a/code/modules/mob/living/simple_animal/hostile/tree.dm +++ b/code/modules/mob/living/simple_animal/hostile/tree.dm @@ -10,9 +10,12 @@ threat = 1 speak_chance = 0 turns_per_move = 5 - response_help = "brushes" - response_disarm = "pushes" - response_harm = "hits" + response_help_continuous = "brushes" + response_help_simple = "brush" + response_disarm_continuous = "pushes" + response_disarm_simple = "push" + response_harm_continuous = "hits" + response_harm_simple = "hit" speed = 1 maxHealth = 250 health = 250 @@ -23,7 +26,8 @@ harm_intent_damage = 5 melee_damage_lower = 8 melee_damage_upper = 12 - attacktext = "bites" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" attack_sound = 'sound/weapons/bite.ogg' speak_emote = list("pines") emote_taunt = list("growls") @@ -40,8 +44,9 @@ gold_core_spawnable = HOSTILE_SPAWN del_on_death = 1 -/mob/living/simple_animal/hostile/tree/Life() - ..() +/mob/living/simple_animal/hostile/tree/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(isopenturf(loc)) var/turf/open/T = src.loc if(T.air) diff --git a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm index 5111b0b180..fdb088934c 100644 --- a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm +++ b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm @@ -100,8 +100,9 @@ /mob/living/simple_animal/hostile/venus_human_trap/ghost_playable playable_plant = TRUE //For admins that want to buss some harmless plants -/mob/living/simple_animal/hostile/venus_human_trap/Life() - . = ..() +/mob/living/simple_animal/hostile/venus_human_trap/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return pull_vines() /mob/living/simple_animal/hostile/venus_human_trap/AttackingTarget() diff --git a/code/modules/mob/living/simple_animal/hostile/wizard.dm b/code/modules/mob/living/simple_animal/hostile/wizard.dm index 15d641299d..57fb6f829d 100644 --- a/code/modules/mob/living/simple_animal/hostile/wizard.dm +++ b/code/modules/mob/living/simple_animal/hostile/wizard.dm @@ -8,9 +8,6 @@ mob_biotypes = MOB_ORGANIC|MOB_HUMANOID speak_chance = 0 turns_per_move = 3 - response_help = "pokes" - response_disarm = "shoves" - response_harm = "hits" threat = 3 speed = 0 maxHealth = 100 @@ -18,7 +15,8 @@ harm_intent_damage = 5 melee_damage_lower = 5 melee_damage_upper = 5 - attacktext = "punches" + attack_verb_continuous = "punches" + attack_verb_simple = "punch" attack_sound = 'sound/weapons/punch1.ogg' a_intent = INTENT_HARM atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) @@ -38,7 +36,7 @@ var/next_cast = 0 - do_footstep = TRUE + footstep_type = FOOTSTEP_MOB_SHOE /mob/living/simple_animal/hostile/wizard/Initialize() . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm index 8878f17893..dc6154c05e 100644 --- a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm +++ b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm @@ -12,7 +12,8 @@ mouse_opacity = MOUSE_OPACITY_ICON move_to_delay = 5 threat = 1 - friendly = "floats near" + friendly_verb_continuous = "floats near" + friendly_verb_simple = "float near" speak_emote = list("puffs") vision_range = 5 speed = 0 @@ -23,7 +24,8 @@ obj_damage = 0 melee_damage_lower = 0 melee_damage_upper = 0 - attacktext = "chomps" + attack_verb_continuous = "chomps" + attack_verb_simple = "chomp" attack_sound = 'sound/weapons/punch1.ogg' throw_message = "is avoided by the" vision_range = 5 @@ -45,12 +47,13 @@ QDEL_NULL(E) return ..() -/mob/living/simple_animal/hostile/asteroid/fugu/Life() +/mob/living/simple_animal/hostile/asteroid/fugu/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(!wumbo) inflate_cooldown = max((inflate_cooldown - 1), 0) if(target && AIStatus == AI_ON) E.Activate() - ..() /mob/living/simple_animal/hostile/asteroid/fugu/adjustHealth(amount, updating_health = TRUE, forced = FALSE) if(!forced && wumbo) diff --git a/code/modules/mob/living/simple_animal/hostile/zombie.dm b/code/modules/mob/living/simple_animal/hostile/zombie.dm index 503f5c121e..6e4cbac022 100644 --- a/code/modules/mob/living/simple_animal/hostile/zombie.dm +++ b/code/modules/mob/living/simple_animal/hostile/zombie.dm @@ -13,7 +13,8 @@ harm_intent_damage = 5 melee_damage_lower = 21 melee_damage_upper = 21 - attacktext = "bites" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" attack_sound = 'sound/hallucinations/growl1.ogg' a_intent = INTENT_HARM atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) @@ -73,7 +74,8 @@ harm_intent_damage = 5 melee_damage_lower = 21 melee_damage_upper = 21 - attacktext = "bites" + attack_verb_continuous = "bites" + attack_verb_simple = "bite" attack_sound = 'sound/hallucinations/growl1.ogg' a_intent = INTENT_HARM atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index 9ad9a121ca..de8a6fb6a0 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -50,13 +50,18 @@ melee_damage_upper = 10 melee_damage_lower = 5 - response_help = "pets" - response_disarm = "gently moves aside" - response_harm = "swats" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently moves aside" + response_disarm_simple = "gently move aside" + response_harm_continuous = "swats" + response_harm_simple = "swat" stop_automated_movement = 1 a_intent = INTENT_HARM //parrots now start "aggressive" since only player parrots will nuzzle. - attacktext = "chomps" - friendly = "grooms" + attack_verb_continuous = "chomps" + attack_verb_simple = "chomp" + friendly_verb_continuous = "grooms" + friendly_verb_simple = "groom" mob_size = MOB_SIZE_SMALL movement_type = FLYING gold_core_spawnable = FRIENDLY_SPAWN @@ -352,9 +357,9 @@ /* * AI - Not really intelligent, but I'm calling it AI anyway. */ -/mob/living/simple_animal/parrot/Life() - ..() - +/mob/living/simple_animal/parrot/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return //Sprite update for when a parrot gets pulled if(pulledby && !stat && parrot_state != PARROT_WANDER) if(buckled) @@ -364,8 +369,6 @@ parrot_state = PARROT_WANDER pixel_x = initial(pixel_x) pixel_y = initial(pixel_y) - return - //-----SPEECH /* Parrot speech mimickry! @@ -575,7 +578,12 @@ parrot_state = PARROT_WANDER return - attacktext = pick("claws at", "chomps") + if(prob(50)) + attack_verb_continuous = "claws at" + attack_verb_simple = "claw_at" + else + attack_verb_continuous = "chomps" + attack_verb_simple = "chomp" L.attack_animal(src)//Time for the hurt to begin! //Otherwise, fly towards the mob! else @@ -901,11 +909,12 @@ if(. && !client && prob(1) && prob(1)) //Only the one true bird may speak across dimensions. world.TgsTargetedChatBroadcast("A stray squawk is heard... \"[message]\"", FALSE) -/mob/living/simple_animal/parrot/Poly/Life() +/mob/living/simple_animal/parrot/Poly/BiologicalLife(seconds, times_fired) + if(!(. = ..())) + return if(!stat && SSticker.current_state == GAME_STATE_FINISHED && !memory_saved) Write_Memory(FALSE) memory_saved = TRUE - ..() /mob/living/simple_animal/parrot/Poly/death(gibbed) if(!memory_saved) diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm index 6aa7f8b401..75182b85e5 100644 --- a/code/modules/mob/living/simple_animal/shade.dm +++ b/code/modules/mob/living/simple_animal/shade.dm @@ -13,13 +13,17 @@ healable = 0 speak_emote = list("hisses") emote_hear = list("wails.","screeches.") - response_help = "puts their hand through" - response_disarm = "flails at" - response_harm = "punches" + response_help_continuous = "puts their hand through" + response_help_simple = "put your hand through" + response_disarm_continuous = "flails at" + response_disarm_simple = "flail at" + response_harm_continuous = "punches" + response_harm_simple = "punch" speak_chance = 1 melee_damage_lower = 5 melee_damage_upper = 12 - attacktext = "metaphysically strikes" + attack_verb_continuous = "metaphysically strikes" + attack_verb_simple = "metaphysically strike" minbodytemp = 0 maxbodytemp = INFINITY atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) @@ -32,6 +36,7 @@ del_on_death = TRUE initial_language_holder = /datum/language_holder/construct blood_volume = 0 + has_field_of_vision = FALSE //we are a spoopy ghost /mob/living/simple_animal/shade/death() deathmessage = "lets out a contented sigh as [p_their()] form unwinds." diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index ba524d156e..1a646ea73e 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -4,95 +4,141 @@ health = 20 maxHealth = 20 gender = PLURAL //placeholder - blood_volume = 550 //How much blud it has for bloodsucking + ///How much blud it has for bloodsucking + blood_volume = 550 status_flags = CANPUSH var/icon_living = "" - var/icon_dead = "" //icon when the animal is dead. Don't use animated icons for this. - var/icon_gib = null //We only try to show a gibbing animation if this exists. + ///icon when the animal is dead. Don't use animated icons for this. + var/icon_dead = "" + ///We only try to show a gibbing animation if this exists. + var/icon_gib = null var/list/speak = list() - var/list/speak_emote = list()// Emotes while speaking IE: Ian [emote], [text] -- Ian barks, "WOOF!". Spoken text is generated from the speak variable. + ///Emotes while speaking IE: Ian [emote], [text] -- Ian barks, "WOOF!". Spoken text is generated from the speak variable. + var/list/speak_emote = list() var/speak_chance = 0 - var/list/emote_hear = list() //Hearable emotes - var/list/emote_see = list() //Unlike speak_emote, the list of things in this variable only show by themselves with no spoken text. IE: Ian barks, Ian yaps + ///Hearable emotes + var/list/emote_hear = list() + ///Unlike speak_emote, the list of things in this variable only show by themselves with no spoken text. IE: Ian barks, Ian yaps. + var/list/emote_see = list() var/turns_per_move = 1 var/turns_since_move = 0 - var/stop_automated_movement = 0 //Use this to temporarely stop random movement or to if you write special movement code for animals. - var/wander = 1 // Does the mob wander around when idle? - var/stop_automated_movement_when_pulled = 1 //When set to 1 this stops the animal from moving when someone is pulling it. + ///Use this to temporarely stop random movement or to if you write special movement code for animals. + var/stop_automated_movement = 0 + ///Does the mob wander around when idle? + var/wander = 1 + ///When set to 1 this stops the animal from moving when someone is pulling it. + var/stop_automated_movement_when_pulled = 1 - //Interaction - var/response_help = "pokes" - var/response_disarm = "shoves" - var/response_harm = "hits" + ///When someone interacts with the simple animal. + ///Help-intent verb in present continuous tense. + var/response_help_continuous = "pokes" + ///Help-intent verb in present simple tense. + var/response_help_simple = "poke" + ///Disarm-intent verb in present continuous tense. + var/response_disarm_continuous = "shoves" + ///Disarm-intent verb in present simple tense. + var/response_disarm_simple = "shove" + ///Harm-intent verb in present continuous tense. + var/response_harm_continuous = "hits" + ///Harm-intent verb in present simple tense. + var/response_harm_simple = "hit" var/harm_intent_damage = 3 - var/force_threshold = 0 //Minimum force required to deal any damage + ///Minimum force required to deal any damage. + var/force_threshold = 0 - //Temperature effect + ///Temperature effect. var/minbodytemp = 250 var/maxbodytemp = 350 - //Healable by medical stacks? Defaults to yes. + ///Healable by medical stacks? Defaults to yes. var/healable = 1 - //Atmos effect - Yes, you can make creatures that require plasma or co2 to survive. N2O is a trace gas and handled separately, hence why it isn't here. It'd be hard to add it. Hard and me don't mix (Yes, yes make all the dick jokes you want with that.) - Errorage + ///Atmos effect - Yes, you can make creatures that require plasma or co2 to survive. N2O is a trace gas and handled separately, hence why it isn't here. It'd be hard to add it. Hard and me don't mix (Yes, yes make all the dick jokes you want with that.) - Errorage var/list/atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) //Leaving something at 0 means it's off - has no maximum - var/unsuitable_atmos_damage = 2 //This damage is taken when atmos doesn't fit all the requirements above + ///This damage is taken when atmos doesn't fit all the requirements above. + var/unsuitable_atmos_damage = 2 - //LETTING SIMPLE ANIMALS ATTACK? WHAT COULD GO WRONG. Defaults to zero so Ian can still be cuddly + ///LETTING SIMPLE ANIMALS ATTACK? WHAT COULD GO WRONG. Defaults to zero so Ian can still be cuddly. var/melee_damage_lower = 0 var/melee_damage_upper = 0 - var/obj_damage = 0 //how much damage this simple animal does to objects, if any - var/armour_penetration = 0 //How much armour they ignore, as a flat reduction from the targets armour value - var/melee_damage_type = BRUTE //Damage type of a simple mob's melee attack, should it do damage. - var/list/damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) // 1 for full damage , 0 for none , -1 for 1:1 heal from that source - var/attacktext = "attacks" + ///How much damage this simple animal does to objects, if any. + var/obj_damage = 0 + ///How much armour they ignore, as a flat reduction from the targets armour value. + var/armour_penetration = 0 + ///Damage type of a simple mob's melee attack, should it do damage. + var/melee_damage_type = BRUTE + /// 1 for full damage , 0 for none , -1 for 1:1 heal from that source. + var/list/damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) + ///Attacking verb in present continuous tense. + var/attack_verb_continuous = "attacks" + ///Attacking verb in present simple tense. + var/attack_verb_simple = "attack" var/attack_sound = null - var/friendly = "nuzzles" //If the mob does no damage with it's attack - var/environment_smash = ENVIRONMENT_SMASH_NONE //Set to 1 to allow breaking of crates,lockers,racks,tables; 2 for walls; 3 for Rwalls + ///Attacking, but without damage, verb in present continuous tense. + var/friendly_verb_continuous = "nuzzles" + ///Attacking, but without damage, verb in present simple tense. + var/friendly_verb_simple = "nuzzle" + ///Set to 1 to allow breaking of crates,lockers,racks,tables; 2 for walls; 3 for Rwalls. + var/environment_smash = ENVIRONMENT_SMASH_NONE - var/speed = 1 //LETS SEE IF I CAN SET SPEEDS FOR SIMPLE MOBS WITHOUT DESTROYING EVERYTHING. Higher speed is slower, negative speed is faster + ///LETS SEE IF I CAN SET SPEEDS FOR SIMPLE MOBS WITHOUT DESTROYING EVERYTHING. Higher speed is slower, negative speed is faster. + var/speed = 1 - //Hot simple_animal baby making vars + ///Hot simple_animal baby making vars. var/list/childtype = null var/next_scan_time = 0 - var/animal_species //Sorry, no spider+corgi buttbabies. + ///Sorry, no spider+corgi buttbabies. + var/animal_species - //simple_animal access - var/obj/item/card/id/access_card = null //innate access uses an internal ID card - var/buffed = 0 //In the event that you want to have a buffing effect on the mob, but don't want it to stack with other effects, any outside force that applies a buff to a simple mob should at least set this to 1, so we have something to check against - var/gold_core_spawnable = NO_SPAWN //If the mob can be spawned with a gold slime core. HOSTILE_SPAWN are spawned with plasma, FRIENDLY_SPAWN are spawned with blood + ///Innate access uses an internal ID card. + var/obj/item/card/id/access_card = null + ///In the event that you want to have a buffing effect on the mob, but don't want it to stack with other effects, any outside force that applies a buff to a simple mob should at least set this to TRUE, so we have something to check against. + var/buffed = FALSE + ///If the mob can be spawned with a gold slime core. HOSTILE_SPAWN are spawned with plasma, FRIENDLY_SPAWN are spawned with blood. + var/gold_core_spawnable = NO_SPAWN var/datum/component/spawner/nest - var/sentience_type = SENTIENCE_ORGANIC // Sentience type, for slime potions + ///Sentience type, for slime potions. + var/sentience_type = SENTIENCE_ORGANIC - var/list/loot = list() //list of things spawned at mob's loc when it dies - var/del_on_death = 0 //causes mob to be deleted on death, useful for mobs that spawn lootable corpses + ///list of things spawned at mob's loc when it dies. + var/list/loot = list() + ///causes mob to be deleted on death, useful for mobs that spawn lootable corpses. + var/del_on_death = FALSE var/deathmessage = "" - var/death_sound = null //The sound played on death + ///The sound played on death. + var/death_sound = null var/allow_movement_on_non_turfs = FALSE - var/attacked_sound = "punch" //Played when someone punches the creature + ///Played when someone punches the creature. + var/attacked_sound = "punch" - var/dextrous = FALSE //If the creature has, and can use, hands + ///If the creature has, and can use, hands. + var/dextrous = FALSE var/dextrous_hud_type = /datum/hud/dextrous - var/AIStatus = AI_ON //The Status of our AI, can be set to AI_ON (On, usual processing), AI_IDLE (Will not process, but will return to AI_ON if an enemy comes near), AI_OFF (Off, Not processing ever), AI_Z_OFF (Temporarily off due to nonpresence of players) - var/can_have_ai = TRUE //once we have become sentient, we can never go back + ///The Status of our AI, can be set to AI_ON (On, usual processing), AI_IDLE (Will not process, but will return to AI_ON if an enemy comes near), AI_OFF (Off, Not processing ever), AI_Z_OFF (Temporarily off due to nonpresence of players). + var/AIStatus = AI_ON + ///once we have become sentient, we can never go back. + var/can_have_ai = TRUE - var/shouldwakeup = FALSE //convenience var for forcibly waking up an idling AI on next check. + ///convenience var for forcibly waking up an idling AI on next check. + var/shouldwakeup = FALSE - //domestication + ///Domestication. var/tame = 0 - var/my_z // I don't want to confuse this with client registered_z + ///I don't want to confuse this with client registered_z. + var/my_z - var/do_footstep = FALSE + ///What kind of footstep this mob should have. Null if it shouldn't have any. + var/footstep_type /mob/living/simple_animal/Initialize() . = ..() @@ -106,6 +152,8 @@ update_simplemob_varspeed() if(dextrous) AddComponent(/datum/component/personal_crafting) + if(footstep_type) + AddComponent(/datum/component/footstep, footstep_type) /mob/living/simple_animal/Destroy() GLOB.simple_animals[AIStatus] -= src @@ -122,10 +170,6 @@ return ..() -/mob/living/simple_animal/initialize_footstep() - if(do_footstep) - ..() - /mob/living/simple_animal/updatehealth() ..() health = clamp(health, 0, maxHealth) @@ -490,17 +534,13 @@ mode() /mob/living/simple_animal/swap_hand(hand_index) + . = ..() + if(!.) + return if(!dextrous) - return ..() + return if(!hand_index) hand_index = (active_hand_index % held_items.len)+1 - var/obj/item/held_item = get_active_held_item() - if(held_item) - if(istype(held_item, /obj/item/twohanded)) - var/obj/item/twohanded/T = held_item - if(T.wielded == 1) - to_chat(usr, "Your other hand is too busy holding the [T.name].") - return var/oindex = active_hand_index active_hand_index = hand_index if(hud_used) diff --git a/code/modules/mob/living/simple_animal/slime/life.dm b/code/modules/mob/living/simple_animal/slime/life.dm index 8c15684261..3513a916f9 100644 --- a/code/modules/mob/living/simple_animal/slime/life.dm +++ b/code/modules/mob/living/simple_animal/slime/life.dm @@ -7,19 +7,17 @@ var/SStun = 0 // stun variable -/mob/living/simple_animal/slime/Life() - set invisibility = 0 - if (notransform) +/mob/living/simple_animal/slime/BiologicalLife(seconds, times_fired) + if(!(. = ..())) return - if(..()) - if(buckled) - handle_feeding() - if(!stat) // Slimes in stasis don't lose nutrition, don't change mood and don't respond to speech - handle_nutrition() - handle_targets() - if (!ckey) - handle_mood() - handle_speech() + if(buckled) + handle_feeding() + if(!stat) // Slimes in stasis don't lose nutrition, don't change mood and don't respond to speech + handle_nutrition() + handle_targets() + if (!ckey) + handle_mood() + handle_speech() // Unlike most of the simple animals, slimes support UNCONSCIOUS /mob/living/simple_animal/slime/update_stat() @@ -262,7 +260,7 @@ . = ..() if(!slime_check) return - if(nutrition == max) + if(nutrition >= get_grow_nutrition()) if(powerlevel<10) if(prob(30-powerlevel*2)) powerlevel++ diff --git a/code/modules/mob/living/simple_animal/slime/powers.dm b/code/modules/mob/living/simple_animal/slime/powers.dm index 0c7f126ad5..d93993bf1f 100644 --- a/code/modules/mob/living/simple_animal/slime/powers.dm +++ b/code/modules/mob/living/simple_animal/slime/powers.dm @@ -28,7 +28,7 @@ return 0 var/list/choices = list() - for(var/mob/living/C in view(1,src)) + for(var/mob/living/C in fov_view(1,src)) if(C!=src && Adjacent(C)) choices += C diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 1c5916a249..f7876b3516 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -3,6 +3,7 @@ icon = 'icons/mob/slimes.dmi' icon_state = "grey baby slime" pass_flags = PASSTABLE + mob_size = MOB_SIZE_SMALL ventcrawler = VENTCRAWLER_ALWAYS gender = NEUTER var/is_adult = 0 @@ -12,9 +13,12 @@ harm_intent_damage = 5 icon_living = "grey baby slime" icon_dead = "grey baby slime dead" - response_help = "pets" - response_disarm = "shoos" - response_harm = "stomps on" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "shoos" + response_disarm_simple = "shoo" + response_harm_continuous = "stomps on" + response_harm_simple = "stomp on" emote_see = list("jiggles", "bounces in place") speak_emote = list("blorbles") bubble_icon = "slime" @@ -64,8 +68,6 @@ var/mutator_used = FALSE //So you can't shove a dozen mutators into a single slime var/force_stasis = FALSE - do_footstep = TRUE - var/static/regex/slime_name_regex = new("\\w+ (baby|adult) slime \\(\\d+\\)") ///////////TIME FOR SUBSPECIES @@ -103,6 +105,7 @@ create_reagents(100, NONE, NO_REAGENTS_VALUE) set_colour(new_colour) . = ..() + AddComponent(/datum/component/footstep, FOOTSTEP_MOB_SLIME, 7.5) /mob/living/simple_animal/slime/Destroy() for (var/A in actions) diff --git a/code/modules/mob/living/status_procs.dm b/code/modules/mob/living/status_procs.dm index 0d41347179..0029300936 100644 --- a/code/modules/mob/living/status_procs.dm +++ b/code/modules/mob/living/status_procs.dm @@ -571,12 +571,13 @@ /mob/living/proc/cure_blind(source) REMOVE_TRAIT(src, TRAIT_BLIND, source) if(!HAS_TRAIT(src, TRAIT_BLIND)) - update_blindness() + if(eye_blind <= 1) //little hack now that we don't actively check for trait and unconsciousness on update_blindness. + adjust_blindness(-1) /mob/living/proc/become_blind(source) if(!HAS_TRAIT(src, TRAIT_BLIND)) // not blind already, add trait then overlay ADD_TRAIT(src, TRAIT_BLIND, source) - update_blindness() + blind_eyes(1) else ADD_TRAIT(src, TRAIT_BLIND, source) diff --git a/code/modules/mob/living/update_icons.dm b/code/modules/mob/living/update_icons.dm index 8bf0dc98a9..f8d5d7e0ba 100644 --- a/code/modules/mob/living/update_icons.dm +++ b/code/modules/mob/living/update_icons.dm @@ -2,7 +2,6 @@ /mob/living/update_transform() var/matrix/ntransform = matrix(transform) //aka transform.Copy() var/final_pixel_y = pixel_y - var/final_dir = dir var/changed = 0 if(lying != lying_prev && rotate_on_lying) changed++ @@ -14,7 +13,7 @@ pixel_y = get_standard_pixel_y_offset() final_pixel_y = get_standard_pixel_y_offset(lying) if(dir & (EAST|WEST)) //Facing east or west - final_dir = pick(NORTH, SOUTH) //So you fall on your side rather than your face or ass + setDir(pick(NORTH, SOUTH)) //So you fall on your side rather than your face or ass if(resize != RESIZE_DEFAULT_SIZE) changed++ @@ -22,5 +21,5 @@ resize = RESIZE_DEFAULT_SIZE if(changed) - animate(src, transform = ntransform, time = 2, pixel_y = final_pixel_y, dir = final_dir, easing = EASE_IN|EASE_OUT) - setMovetype(movement_type & ~FLOATING) // If we were without gravity, the bouncing animation got stopped, so we make sure we restart it in next life(). + animate(src, transform = ntransform, time = 2, pixel_y = final_pixel_y, easing = EASE_IN|EASE_OUT) + floating_need_update = TRUE diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index c266bbddd3..b7546becd8 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -55,3 +55,5 @@ log_message("Client [key_name(src)] has taken ownership of mob [src]([src.type])", LOG_OWNERSHIP) SEND_SIGNAL(src, COMSIG_MOB_CLIENT_LOGIN, client) + if(has_field_of_vision && CONFIG_GET(flag/use_field_of_vision)) + LoadComponent(/datum/component/field_of_vision, field_of_vision_type) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index b5210ae7fa..f3d06f451d 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -124,17 +124,29 @@ * * blind_message (optional) is what blind people will hear e.g. "You hear something!" * * vision_distance (optional) define how many tiles away the message can be seen. * * ignored_mobs (optional) doesn't show any message to any given mob in the list. + * * target (optional) is the other mob involved with the visible message. For example, the attacker in many combat messages. + * * target_message (optional) is what the target mob will see e.g. "[src] does something to you!" */ -/atom/proc/visible_message(message, self_message, blind_message, vision_distance = DEFAULT_MESSAGE_RANGE, list/ignored_mobs) +/atom/proc/visible_message(message, self_message, blind_message, vision_distance = DEFAULT_MESSAGE_RANGE, ignored_mobs, mob/target, target_message) var/turf/T = get_turf(src) if(!T) return var/list/hearers = get_hearers_in_view(vision_distance, src) //caches the hearers and then removes ignored mobs. if(!length(hearers)) return - if(!islist(ignored_mobs)) - ignored_mobs = list(ignored_mobs) hearers -= ignored_mobs + + if(target_message && target && istype(target) && target.client) + hearers -= target + //This entire if/else chain could be in two lines but isn't for readibilties sake. + var/msg = target_message + if(target.see_invisibleYou are unable to unequip that while wearing other garments over it!") + return FALSE I.attack_hand(src) - return 0 + return FALSE -//This is a SAFE proc. Use this instead of equip_to_slot()! -//set qdel_on_fail to have it delete W if it fails to equip -//set disable_warning to disable the 'you are unable to equip that' warning. -//unset redraw_mob to prevent the mob from being redrawn at the end. -/mob/proc/equip_to_slot_if_possible(obj/item/W, slot, qdel_on_fail = FALSE, disable_warning = FALSE, redraw_mob = TRUE, bypass_equip_delay_self = FALSE) - if(!istype(W)) - return FALSE - if(!W.mob_can_equip(src, null, slot, disable_warning, bypass_equip_delay_self)) - if(qdel_on_fail) - qdel(W) - else - if(!disable_warning) - to_chat(src, "You are unable to equip that!") - return FALSE - equip_to_slot(W, slot, redraw_mob) //This proc should not ever fail. - return TRUE - -//This is an UNSAFE proc. It merely handles the actual job of equipping. All the checks on whether you can or can't equip need to be done before! Use mob_can_equip() for that task. -//In most cases you will want to use equip_to_slot_if_possible() -/mob/proc/equip_to_slot(obj/item/W, slot) +/// Checks for slots that are currently obscured by other garments. +/mob/proc/check_obscured_slots() return -//This is just a commonly used configuration for the equip_to_slot_if_possible() proc, used to equip people when the round starts and when events happen and such. -//Also bypasses equip delay checks, since the mob isn't actually putting it on. -/mob/proc/equip_to_slot_or_del(obj/item/W, slot) - return equip_to_slot_if_possible(W, slot, TRUE, TRUE, FALSE, TRUE) - -//puts the item "W" into an appropriate slot in a human's inventory -//returns 0 if it cannot, 1 if successful -/mob/proc/equip_to_appropriate_slot(obj/item/W) - if(!istype(W)) - return 0 - var/slot_priority = W.slot_equipment_priority - - if(!slot_priority) - slot_priority = list( \ - SLOT_BACK, SLOT_WEAR_ID,\ - SLOT_W_UNIFORM, SLOT_WEAR_SUIT,\ - SLOT_WEAR_MASK, SLOT_HEAD, SLOT_NECK,\ - SLOT_SHOES, SLOT_GLOVES,\ - SLOT_EARS, SLOT_GLASSES,\ - SLOT_BELT, SLOT_S_STORE,\ - SLOT_L_STORE, SLOT_R_STORE,\ - SLOT_GENERC_DEXTROUS_STORAGE\ - ) - - for(var/slot in slot_priority) - if(equip_to_slot_if_possible(W, slot, 0, 1, 1)) //qdel_on_fail = 0; disable_warning = 1; redraw_mob = 1 - return 1 - - return 0 - // reset_perspective(thing) set the eye to the thing (if it's equal to current default reset to mob perspective) // reset_perspective() set eye to common default : mob on turf, loc otherwise /mob/proc/reset_perspective(atom/A) - if(client) - if(A) - if(ismovable(A)) - //Set the the thing unless it's us - if(A != src) - client.perspective = EYE_PERSPECTIVE - client.eye = A - else - client.eye = client.mob - client.perspective = MOB_PERSPECTIVE - else if(isturf(A)) - //Set to the turf unless it's our current turf - if(A != loc) - client.perspective = EYE_PERSPECTIVE - client.eye = A - else - client.eye = client.mob - client.perspective = MOB_PERSPECTIVE + if(!client) + return + if(A) + if(ismovable(A)) + //Set the the thing unless it's us + if(A != src) + client.perspective = EYE_PERSPECTIVE + client.eye = A else - //Do nothing - else - //Reset to common defaults: mob if on turf, otherwise current loc - if(isturf(loc)) client.eye = client.mob client.perspective = MOB_PERSPECTIVE - else + else if(isturf(A)) + //Set to the turf unless it's our current turf + if(A != loc) client.perspective = EYE_PERSPECTIVE - client.eye = loc - return 1 + client.eye = A + else + client.eye = client.mob + client.perspective = MOB_PERSPECTIVE + else + //Do nothing + else + //Reset to common defaults: mob if on turf, otherwise current loc + if(isturf(loc)) + client.eye = client.mob + client.perspective = MOB_PERSPECTIVE + else + client.perspective = EYE_PERSPECTIVE + client.eye = loc + SEND_SIGNAL(src, COMSIG_MOB_RESET_PERSPECTIVE, A) + return TRUE /mob/proc/show_inv(mob/user) return +//view() but with a signal, to allow blacklisting some of the otherwise visible atoms. +/mob/proc/fov_view(dist = world.view) + . = view(dist, src) + SEND_SIGNAL(src, COMSIG_MOB_FOV_VIEW, .) + //mob verbs are faster than object verbs. See https://secure.byond.com/forum/?post=1326139&page=2#comment8198716 for why this isn't atom/verb/examine() -/mob/verb/examinate(atom/A as mob|obj|turf in view()) //It used to be oview(12), but I can't really say why +/mob/verb/examinate(atom/A as mob|obj|turf in fov_view()) //It used to be oview(12), but I can't really say why set name = "Examine" set category = "IC" @@ -328,15 +301,19 @@ mob/visible_message(message, self_message, blind_message, vision_distance = DEFA return face_atom(A) + var/flags = SEND_SIGNAL(src, COMSIG_MOB_EXAMINATE, A) + if(flags & COMPONENT_DENY_EXAMINATE) + if(flags & COMPONENT_EXAMINATE_BLIND) + to_chat(src, "Something is there but you can't see it!") + return var/list/result = A.examine(src) to_chat(src, result.Join("\n")) - SEND_SIGNAL(src, COMSIG_MOB_EXAMINATE, A) //same as above //note: ghosts can point, this is intended //visible_message will handle invisibility properly //overridden here and in /mob/dead/observer for different point span classes and sanity checks -/mob/verb/pointed(atom/A as mob|obj|turf in view()) +/mob/verb/pointed(atom/A as mob|obj|turf in fov_view()) set name = "Point To" set category = "Object" @@ -350,7 +327,7 @@ mob/visible_message(message, self_message, blind_message, vision_distance = DEFA return FALSE new /obj/effect/temp_visual/point(A,invisibility) - + SEND_SIGNAL(src, COMSIG_MOB_POINTED, A) return TRUE /mob/proc/can_resist() @@ -655,7 +632,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) return FALSE if(anchored) return FALSE - if(notransform) + if(mob_transforming) return FALSE if(restrained()) return FALSE @@ -732,7 +709,11 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) return FALSE /mob/proc/swap_hand() - return + var/obj/item/held_item = get_active_held_item() + if(SEND_SIGNAL(src, COMSIG_MOB_SWAP_HANDS, held_item) & COMPONENT_BLOCK_SWAP) + to_chat(src, "Your other hand is too busy holding [held_item].") + return FALSE + return TRUE /mob/proc/activate_hand(selhand) return @@ -1024,7 +1005,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) ///Adjust the nutrition of a mob /mob/proc/adjust_nutrition(change, max = INFINITY) //Honestly FUCK the oldcoders for putting nutrition on /mob someone else can move it up because holy hell I'd have to fix SO many typechecks - nutrition = clamp(0, nutrition + change, max) + nutrition = clamp(nutrition + change, 0, max) ///Force set the mob nutrition /mob/proc/set_nutrition(var/change) //Seriously fuck you oldcoders. @@ -1063,3 +1044,10 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) for(var/obj/item/I in held_items) if(I.item_flags & SLOWS_WHILE_IN_HAND) . += I.slowdown + +/** + * Mostly called by doUnEquip() + * Like item dropped() on mob side. + */ +/mob/proc/on_item_dropped(obj/item/I) + return diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 825f015ef4..dbf7b7f350 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -12,6 +12,9 @@ vis_flags = VIS_INHERIT_PLANE //when this be added to vis_contents of something it inherit something.plane, important for visualisation of mob in openspace. + /// What receives our keyboard input. src by default. + var/datum/focus + var/lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE var/datum/mind/mind var/list/datum/action/actions = list() @@ -34,7 +37,9 @@ var/next_move = null var/create_area_cooldown - var/notransform = null //Carbon + /// Whether or not the mob is currently being transformed into another mob or into another state of being. This will prevent it from moving or doing realistically anything. + /// Don't you DARE use this for a cheap way to ensure someone is stunned in your code. + var/mob_transforming = FALSE var/eye_blind = 0 //Carbon var/eye_blurry = 0 //Carbon var/real_name = null @@ -124,9 +129,30 @@ var/registered_z + var/list/alerts = list() // contains /obj/screen/alert only // On /mob so clientless mobs will throw alerts properly + var/list/screens = list() + var/list/client_colours = list() + var/hud_type = /datum/hud + + var/datum/hSB/sandbox = null + var/mob/audiovisual_redirect //Mob to redirect messages, speech, and sounds to var/siliconaccessareas = list() var/siliconaccesstoggle = FALSE var/voluntary_ghosted = FALSE //whether or not they voluntarily ghosted. + + var/has_field_of_vision = FALSE + var/field_of_vision_type = FOV_90_DEGREES + + + ///////TYPING INDICATORS/////// + /// Set to true if we want to show typing indicators. + var/typing_indicator_enabled = FALSE + /// Default icon_state of our typing indicator. Currently only supports paths (because anything else is, as of time of typing this, unnecesary. + var/typing_indicator_state = /obj/effect/overlay/typing_indicator + /// The timer that will remove our indicator for early aborts (like when an user finishes their message) + var/typing_indicator_timerid + /// Current state of our typing indicator. Used for cut overlay, DO NOT RUNTIME ASSIGN OTHER THAN FROM SHOW/CLEAR. Used to absolutely ensure we do not get stuck overlays. + var/typing_indicator_current diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 28ca97dc2b..0b2588bc6c 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -349,7 +349,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp /mob/proc/reagent_check(datum/reagent/R) // utilized in the species code return 1 -/proc/notify_ghosts(message, ghost_sound, enter_link, atom/source, mutable_appearance/alert_overlay, action = NOTIFY_JUMP, flashwindow = TRUE, ignore_mapload = TRUE, ignore_key, ignore_dnr_observers = FALSE) //Easy notification of ghosts. +/proc/notify_ghosts(message, ghost_sound, enter_link, atom/source, mutable_appearance/alert_overlay, action = NOTIFY_JUMP, flashwindow = TRUE, ignore_mapload = TRUE, ignore_key, ignore_dnr_observers = FALSE, header) //Easy notification of ghosts. if(ignore_mapload && SSatoms.initialized != INITIALIZATION_INNEW_REGULAR) //don't notify for objects created during a map load return for(var/mob/dead/observer/O in GLOB.player_list) @@ -366,6 +366,8 @@ It's fairly easy to fix if dealing with single letters but not so much with comp if(A) if(O.client.prefs && O.client.prefs.UI_style) A.icon = ui_style2icon(O.client.prefs.UI_style) + if (header) + A.name = header A.desc = message A.action = action A.target = source diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 6531df5e68..e977c397c9 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -32,7 +32,7 @@ if(!n || !direction || !mob?.loc) return FALSE //GET RID OF THIS SOON AS MOBILITY FLAGS IS DONE - if(mob.notransform) + if(mob.mob_transforming) return FALSE if(mob.control_object) @@ -100,10 +100,11 @@ if(mob.throwing) mob.throwing.finalize(FALSE) - if(L.pulling && !(L.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + var/atom/movable/AM = L.pulling + if(AM && AM.density && !SEND_SIGNAL(L, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_ACTIVE) && !ismob(AM)) L.setDir(turn(L.dir, 180)) - SEND_SIGNAL(mob, COMSIG_MOB_CLIENT_MOVE, src, direction, n, oldloc) + SEND_SIGNAL(mob, COMSIG_MOB_CLIENT_MOVE, src, direction, n, oldloc, add_delay) /// Process_Grab(): checks for grab, attempts to break if so. Return TRUE to prevent movement. /client/proc/Process_Grab() diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index f348829b71..14ddc5c720 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -1,12 +1,53 @@ //Speech verbs. -/mob/verb/say_verb(message as text) - set name = "Say" +// the _keybind verbs uses "as text" versus "as text|null" to force a popup when pressed by a keybind. +/mob/verb/say_typing_indicator() + set name = "say_indicator" + set hidden = TRUE set category = "IC" + display_typing_indicator() + var/message = input(usr, "", "say") as text|null + // If they don't type anything just drop the message. + clear_typing_indicator() // clear it immediately! + if(!length(message)) + return + return say_verb(message) + +/mob/verb/say_verb(message as text) + set name = "say" + set category = "IC" + if(!length(message)) + return if(GLOB.say_disabled) //This is here to try to identify lag problems to_chat(usr, "Speech is currently admin-disabled.") return - if(message) - say(message) + clear_typing_indicator() // clear it immediately! + say(message) + +/mob/verb/me_typing_indicator() + set name = "me_indicator" + set hidden = TRUE + set category = "IC" + display_typing_indicator() + var/message = input(usr, "", "me") as message|null + // If they don't type anything just drop the message. + clear_typing_indicator() // clear it immediately! + if(!length(message)) + return + return me_verb(message) + +/mob/verb/me_verb(message as message) + set name = "me" + set category = "IC" + if(!length(message)) + return + if(GLOB.say_disabled) //This is here to try to identify lag problems + to_chat(usr, "Speech is currently admin-disabled.") + return + + message = trim(copytext_char(sanitize(message), 1, MAX_MESSAGE_LEN)) + clear_typing_indicator() // clear it immediately! + + usr.emote("me",1,message,TRUE) /mob/say_mod(input, message_mode) var/customsayverb = findtext(input, "*") @@ -16,9 +57,23 @@ else return ..() +/proc/uncostumize_say(input, message_mode) + . = input + if(message_mode == MODE_CUSTOM_SAY) + var/customsayverb = findtext(input, "*") + return lowertext(copytext_char(input, 1, customsayverb)) + +/mob/proc/whisper_keybind() + var/message = input(src, "", "whisper") as text|null + if(!length(message)) + return + return whisper_verb(message) + /mob/verb/whisper_verb(message as text) set name = "Whisper" set category = "IC" + if(!length(message)) + return if(GLOB.say_disabled) //This is here to try to identify lag problems to_chat(usr, "Speech is currently admin-disabled.") return @@ -27,18 +82,6 @@ /mob/proc/whisper(message, datum/language/language=null) say(message, language) //only living mobs actually whisper, everything else just talks -/mob/verb/me_verb(message as message) - set name = "Me" - set category = "IC" - - if(GLOB.say_disabled) //This is here to try to identify lag problems - to_chat(usr, "Speech is currently admin-disabled.") - return - - message = trim(copytext_char(sanitize(message), 1, MAX_MESSAGE_LEN)) - - usr.emote("me",1,message,TRUE) - /mob/proc/say_dead(var/message) var/name = real_name var/alt_name = "" @@ -76,7 +119,7 @@ if(name != real_name) alt_name = " (died as [real_name])" - var/spanned = say_quote(message) + var/spanned = say_quote(say_emphasis(message)) message = emoji_parse(message) var/rendered = "DEAD: [name][alt_name] [emoji_parse(spanned)]" log_talk(message, LOG_SAY, tag="DEAD") diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index 377bb1c5fc..5ed24af726 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -23,7 +23,6 @@ proc/get_top_level_mob(var/mob/S) message = null mob_type_blacklist_typecache = list(/mob/living/brain) - /datum/emote/living/subtle/proc/check_invalid(mob/user, input) if(stop_bad_mime.Find(input, 1, 1)) to_chat(user, "Invalid emote.") @@ -61,7 +60,7 @@ proc/get_top_level_mob(var/mob/S) return FALSE user.log_message(message, LOG_EMOTE) - message = "[user] " + "[message]" + message = "[user] " + "[user.say_emphasis(message)]" for(var/mob/M in GLOB.dead_mob_list) if(!M.client || isnewplayer(M)) @@ -122,7 +121,7 @@ proc/get_top_level_mob(var/mob/S) return FALSE user.log_message(message, LOG_SUBTLER) - message = "[user] " + "[message]" + message = "[user] " + "[user.say_emphasis(message)]" if(emote_type == EMOTE_AUDIBLE) user.audible_message(message=message,hearing_distance=1, ignored_mobs = GLOB.dead_mob_list) @@ -130,6 +129,12 @@ proc/get_top_level_mob(var/mob/S) user.visible_message(message=message,self_message=message,vision_distance=1, ignored_mobs = GLOB.dead_mob_list) ///////////////// VERB CODE +/mob/living/proc/subtle_keybind() + var/message = input(src, "", "subtle") as text|null + if(!length(message)) + return + return subtle(message) + /mob/living/verb/subtle() set name = "Subtle" set category = "IC" diff --git a/code/modules/mob/status_procs.dm b/code/modules/mob/status_procs.dm index cf86e962bd..fbef8fd244 100644 --- a/code/modules/mob/status_procs.dm +++ b/code/modules/mob/status_procs.dm @@ -23,9 +23,9 @@ * Sets a mob's blindness to an amount if it was not above it already, similar to how status effects work */ /mob/proc/blind_eyes(amount) - var/old_blind = eye_blind || HAS_TRAIT(src, TRAIT_BLIND) - eye_blind = max(eye_blind, amount) - var/new_blind = eye_blind || HAS_TRAIT(src, TRAIT_BLIND) + var/old_blind = eye_blind + eye_blind = max((!eye_blind && stat == UNCONSCIOUS || HAS_TRAIT(src, TRAIT_BLIND)) ? 1 : eye_blind , amount) + var/new_blind = eye_blind if(old_blind != new_blind) update_blindness() @@ -36,21 +36,21 @@ */ /mob/proc/adjust_blindness(amount) var/old_eye_blind = eye_blind - eye_blind = max(0, eye_blind + amount) - if(!old_eye_blind || !eye_blind && !HAS_TRAIT(src, TRAIT_BLIND)) + eye_blind = max((stat == UNCONSCIOUS || HAS_TRAIT(src, TRAIT_BLIND)) ? 1 : 0, eye_blind + amount) + if(!old_eye_blind || !eye_blind) update_blindness() /** * Force set the blindness of a mob to some level */ /mob/proc/set_blindness(amount) var/old_eye_blind = eye_blind - eye_blind = max(amount, 0) - if(!old_eye_blind || !eye_blind && !HAS_TRAIT(src, TRAIT_BLIND)) + eye_blind = max(amount, (stat == UNCONSCIOUS || HAS_TRAIT(src, TRAIT_BLIND)) ? 1 : 0) + if(!old_eye_blind || !eye_blind) update_blindness() /// proc that adds and removes blindness overlays when necessary /mob/proc/update_blindness() - if(stat == UNCONSCIOUS || HAS_TRAIT(src, TRAIT_BLIND) || eye_blind) // UNCONSCIOUS or has blind trait, or has temporary blindness + if(eye_blind) // UNCONSCIOUS or has blind trait, or has temporary blindness if(stat == CONSCIOUS || stat == SOFT_CRIT) throw_alert("blind", /obj/screen/alert/blind) overlay_fullscreen("blind", /obj/screen/fullscreen/blind) @@ -88,18 +88,20 @@ /mob/proc/add_eyeblur() if(!client) return - var/obj/screen/plane_master/game_world/GW = locate(/obj/screen/plane_master/game_world) in client.screen - var/obj/screen/plane_master/floor/F = locate(/obj/screen/plane_master/floor) in client.screen - GW.add_filter("blurry_eyes", 2, EYE_BLUR(clamp(eye_blurry*0.1,0.6,3))) - F.add_filter("blurry_eyes", 2, EYE_BLUR(clamp(eye_blurry*0.1,0.6,3))) + var/list/screens = list(hud_used.plane_masters["[GAME_PLANE]"], hud_used.plane_masters["[FLOOR_PLANE]"], + hud_used.plane_masters["[WALL_PLANE]"], hud_used.plane_masters["[ABOVE_WALL_PLANE]"]) + for(var/A in screens) + var/obj/screen/plane_master/P = A + P.add_filter("blurry_eyes", 2, EYE_BLUR(clamp(eye_blurry*0.1,0.6,3))) /mob/proc/remove_eyeblur() if(!client) return - var/obj/screen/plane_master/game_world/GW = locate(/obj/screen/plane_master/game_world) in client.screen - var/obj/screen/plane_master/floor/F = locate(/obj/screen/plane_master/floor) in client.screen - GW.remove_filter("blurry_eyes") - F.remove_filter("blurry_eyes") + var/list/screens = list(hud_used.plane_masters["[GAME_PLANE]"], hud_used.plane_masters["[FLOOR_PLANE]"], + hud_used.plane_masters["[WALL_PLANE]"], hud_used.plane_masters["[ABOVE_WALL_PLANE]"]) + for(var/A in screens) + var/obj/screen/plane_master/P = A + P.remove_filter("blurry_eyes") ///Adjust the drugginess of a mob /mob/proc/adjust_drugginess(amount) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 56ec5bb816..5fd94c8a89 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -1,5 +1,5 @@ /mob/living/carbon/proc/monkeyize(tr_flags = (TR_KEEPITEMS | TR_KEEPVIRUS | TR_DEFAULTMSG)) - if (notransform) + if (mob_transforming) return //Handle items on mob @@ -29,7 +29,7 @@ dropItemToGround(W) //Make mob invisible and spawn animation - notransform = TRUE + mob_transforming = TRUE Stun(INFINITY, ignore_canstun = TRUE) icon = null cut_overlays() @@ -150,7 +150,7 @@ //Could probably be merged with monkeyize but other transformations got their own procs, too /mob/living/carbon/proc/humanize(tr_flags = (TR_KEEPITEMS | TR_KEEPVIRUS | TR_DEFAULTMSG)) - if (notransform) + if (mob_transforming) return //Handle items on mob @@ -185,7 +185,7 @@ //Make mob invisible and spawn animation - notransform = TRUE + mob_transforming = TRUE Stun(22, ignore_canstun = TRUE) icon = null cut_overlays() @@ -304,7 +304,7 @@ qdel(src) /mob/living/carbon/human/AIize() - if (notransform) + if (mob_transforming) return for(var/t in bodyparts) qdel(t) @@ -312,12 +312,12 @@ return ..() /mob/living/carbon/AIize() - if(notransform) + if(mob_transforming) return for(var/obj/item/W in src) dropItemToGround(W) regenerate_icons() - notransform = TRUE + mob_transforming = TRUE Paralyze(INFINITY) icon = null invisibility = INVISIBILITY_MAXIMUM @@ -353,7 +353,7 @@ qdel(src) /mob/living/carbon/human/proc/Robotize(delete_items = 0, transfer_after = TRUE) - if (notransform) + if (mob_transforming) return for(var/obj/item/W in src) if(delete_items) @@ -361,7 +361,7 @@ else dropItemToGround(W) regenerate_icons() - notransform = TRUE + mob_transforming = TRUE Paralyze(INFINITY) icon = null invisibility = INVISIBILITY_MAXIMUM @@ -398,12 +398,12 @@ //human -> alien /mob/living/carbon/human/proc/Alienize(mind_transfer = TRUE) - if (notransform) + if (mob_transforming) return for(var/obj/item/W in src) dropItemToGround(W) regenerate_icons() - notransform = 1 + mob_transforming = 1 Paralyze(INFINITY) icon = null invisibility = INVISIBILITY_MAXIMUM @@ -432,12 +432,12 @@ qdel(src) /mob/living/carbon/human/proc/slimeize(reproduce, mind_transfer = TRUE) - if (notransform) + if (mob_transforming) return for(var/obj/item/W in src) dropItemToGround(W) regenerate_icons() - notransform = 1 + mob_transforming = 1 Paralyze(INFINITY) icon = null invisibility = INVISIBILITY_MAXIMUM @@ -477,12 +477,12 @@ /mob/living/carbon/human/proc/corgize(mind_transfer = TRUE) - if (notransform) + if (mob_transforming) return for(var/obj/item/W in src) dropItemToGround(W) regenerate_icons() - notransform = TRUE + mob_transforming = TRUE Paralyze(INFINITY) icon = null invisibility = INVISIBILITY_MAXIMUM @@ -501,7 +501,7 @@ qdel(src) /mob/living/carbon/proc/gorillize(mind_transfer = TRUE) - if(notransform) + if(mob_transforming) return SSblackbox.record_feedback("amount", "gorillas_created", 1) @@ -512,7 +512,7 @@ dropItemToGround(W, TRUE) regenerate_icons() - notransform = TRUE + mob_transforming = TRUE Paralyze(INFINITY) icon = null invisibility = INVISIBILITY_MAXIMUM @@ -535,13 +535,13 @@ if(mind) mind_transfer = alert("Want to transfer their mind into the new mob", "Mind Transfer", "Yes", "No") == "Yes" ? TRUE : FALSE - if(notransform) + if(mob_transforming) return for(var/obj/item/W in src) dropItemToGround(W) regenerate_icons() - notransform = TRUE + mob_transforming = TRUE Paralyze(INFINITY) icon = null invisibility = INVISIBILITY_MAXIMUM diff --git a/code/modules/mob/typing_indicator.dm b/code/modules/mob/typing_indicator.dm new file mode 100644 index 0000000000..f28cbe4385 --- /dev/null +++ b/code/modules/mob/typing_indicator.dm @@ -0,0 +1,47 @@ +/// state = overlay/image/object/type/whatever add_overlay will accept +GLOBAL_LIST_EMPTY(typing_indicator_overlays) + +/// Fetches the typing indicator we'll use from GLOB.typing_indicator_overlays +/mob/proc/get_indicator_overlay(state) + . = GLOB.typing_indicator_overlays[state] + if(.) + return + // doesn't exist, make it and cache it + if(ispath(state)) + . = GLOB.typing_indicator_overlays[state] = state + // We only support paths for now because anything else isn't necessary yet. + +/// Gets the state we will use for typing indicators. Defaults to src.typing_indicator_state +/mob/proc/get_typing_indicator_icon_state() + return typing_indicator_state + +/** + * Displays typing indicator. + * @param timeout_override - Sets how long until this will disappear on its own without the user finishing their message or logging out. Defaults to src.typing_indicator_timeout + * @param state_override - Sets the state that we will fetch. Defaults to src.get_typing_indicator_icon_state() + * @param force - shows even if src.typing_indcator_enabled is FALSE. + */ +/mob/proc/display_typing_indicator(timeout_override = TYPING_INDICATOR_TIMEOUT, state_override = get_typing_indicator_icon_state(), force = FALSE) + if((!typing_indicator_enabled && !force) || typing_indicator_current) + return + typing_indicator_current = state_override + add_overlay(state_override) + typing_indicator_timerid = addtimer(CALLBACK(src, .proc/clear_typing_indicator), timeout_override, TIMER_STOPPABLE) + +/** + * Removes typing indicator. + */ +/mob/proc/clear_typing_indicator() + cut_overlay(typing_indicator_current) + typing_indicator_current = null + if(typing_indicator_timerid) + deltimer(typing_indicator_timerid) + typing_indicator_timerid = null + +/// Default typing indicator +/obj/effect/overlay/typing_indicator + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + icon = 'icons/mob/talk.dmi' + icon_state = "normal_typing" + appearance_flags = RESET_COLOR | TILE_BOUND | PIXEL_SCALE + layer = ABOVE_FLY_LAYER diff --git a/code/modules/modular_computers/hardware/hard_drive.dm b/code/modules/modular_computers/hardware/hard_drive.dm index 76463c6867..e27eaa53ae 100644 --- a/code/modules/modular_computers/hardware/hard_drive.dm +++ b/code/modules/modular_computers/hardware/hard_drive.dm @@ -157,7 +157,7 @@ max_capacity = 64 icon_state = "ssd_mini" w_class = WEIGHT_CLASS_TINY - custom_price = 150 + custom_price = PRICE_ABOVE_NORMAL /obj/item/computer_hardware/hard_drive/small/syndicate // Syndicate variant - very slight better desc = "An efficient SSD for portable devices developed by a rival organisation." diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm index aa60966591..a2176ca95e 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -24,7 +24,8 @@ variable = TRUE /datum/movespeed_modifier/damage_slowdown_flying - movetypes = FLOATING + movetypes = FLYING + blacklisted_movetypes = FLOATING variable = TRUE /datum/movespeed_modifier/equipment_speedmod @@ -118,3 +119,7 @@ /datum/movespeed_modifier/liver_cirrhosis blacklisted_movetypes = FLOATING variable = TRUE + +/datum/movespeed_modifier/active_block + variable = TRUE + flags = IGNORE_NOSLOW diff --git a/code/modules/newscaster/newscaster_machine.dm b/code/modules/newscaster/newscaster_machine.dm index 95a24817a0..cb2d49fc64 100644 --- a/code/modules/newscaster/newscaster_machine.dm +++ b/code/modules/newscaster/newscaster_machine.dm @@ -12,6 +12,7 @@ GLOBAL_LIST_EMPTY(allCasters) desc = "A standard Nanotrasen-licensed newsfeed handler for use in commercial space stations. All the news you absolutely have no use for, in one place!" icon = 'icons/obj/terminals.dmi' icon_state = "newscaster_normal" + plane = ABOVE_WALL_PLANE verb_say = "beeps" verb_ask = "beeps" verb_exclaim = "beeps" diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_stars.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_stars.dm index 31ac62d9fc..508722ecf2 100644 --- a/code/modules/ninja/suit/n_suit_verbs/ninja_stars.dm +++ b/code/modules/ninja/suit/n_suit_verbs/ninja_stars.dm @@ -15,4 +15,4 @@ /obj/item/throwing_star/ninja name = "ninja throwing star" throwforce = 30 - embedding = list("embedded_pain_multiplier" = 6, "embed_chance" = 100, "embedded_fall_chance" = 0) + embedding = list("pain_mult" = 6, "embed_chance" = 100, "fall_chance" = 0, "embed_chance_turf_mod" = 15) diff --git a/code/modules/oracle_ui/assets.dm b/code/modules/oracle_ui/assets.dm index 5d26d80a81..348860b48d 100644 --- a/code/modules/oracle_ui/assets.dm +++ b/code/modules/oracle_ui/assets.dm @@ -1,8 +1,11 @@ +/datum/asset/group/oui_theme_nano + children = list( + /datum/asset/simple/jquery, + /datum/asset/simple/oui_theme_nano + ) + /datum/asset/simple/oui_theme_nano assets = list( - // JavaScript - "sui-nano-common.js" = 'html/oracle_ui/themes/nano/sui-nano-common.js', - "sui-nano-jquery.min.js" = 'html/oracle_ui/themes/nano/sui-nano-jquery.min.js', - // Stylesheets - "sui-nano-common.css" = 'html/oracle_ui/themes/nano/sui-nano-common.css', + "sui-nano-common.js" = 'html/oracle_ui/themes/nano/sui-nano-common.js', + "sui-nano-common.css" = 'html/oracle_ui/themes/nano/sui-nano-common.css', ) diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm index 5e882eb8d0..b368589bc3 100644 --- a/code/modules/paperwork/filingcabinet.dm +++ b/code/modules/paperwork/filingcabinet.dm @@ -186,9 +186,8 @@ GLOBAL_LIST_EMPTY(employmentCabinets) /obj/structure/filingcabinet/employment - var/cooldown = 0 icon_state = "employmentcabinet" - var/virgin = 1 + var/virgin = TRUE /obj/structure/filingcabinet/employment/Initialize() . = ..() @@ -213,13 +212,12 @@ GLOBAL_LIST_EMPTY(employmentCabinets) new /obj/item/paper/contract/employment(src, employee) /obj/structure/filingcabinet/employment/interact(mob/user) - if(!cooldown) - if(virgin) - fillCurrent() - virgin = 0 - cooldown = 1 - sleep(100) // prevents the devil from just instantly emptying the cabinet, ensuring an easy win. - cooldown = 0 - else + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_EMPLOYMENT_CABINET)) to_chat(user, "[src] is jammed, give it a few seconds.") - ..() + return ..() + + TIMER_COOLDOWN_START(src, COOLDOWN_EMPLOYMENT_CABINET, 10 SECONDS) // prevents the devil from just instantly emptying the cabinet, ensuring an easy win. + if(virgin) + fillCurrent() + virgin = FALSE + return ..() diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 35a2b3f058..aed3ff5848 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -384,3 +384,6 @@ /obj/item/paper/crumpled/bloody icon_state = "scrap_bloodied" + +/obj/item/paper/crumpled/muddy + icon_state = "scrap_mud" diff --git a/code/modules/paperwork/paper_premade.dm b/code/modules/paperwork/paper_premade.dm index 2d03a17e0a..23c8d47323 100644 --- a/code/modules/paperwork/paper_premade.dm +++ b/code/modules/paperwork/paper_premade.dm @@ -54,7 +54,7 @@ /obj/item/paper/guides/cogstation/job_changes name = "MEMO: Job Changes" - info = "To ensure minimal employee downtime, please take note of the following changes to select professions that Cogstation specifically requires:
    \n
    \n- Chemists are to have basic Research accessand an encryption key for the Science channel.
    \n- Roboticists are to have basic Medical and Morgue access.
    \n- Engineers and Atmospheric Technicians are to have Warehouse and Mining access.
    \n- The Cook should not have Morgue access
    \n- The Clown and Mime are to have Maintenance access. This is necessary due to the location of their offices.
    \n
    \nGenerated by Organic Resources Bot #2053" + info = "To ensure minimal employee downtime, please take note of the following changes to select professions that CogStation specifically requires:
    \n
    \n- Scientists are to have access to chemistry in order to reach the MedSci router.
    \n
    \n- Chemists should at the very least be provided with an encryption key for the Science channel, if not basic access to the Research department at large.
    \n- Roboticists are to have basic Medical and Morgue access.
    \n- Engineers and Atmospheric Technicians are to have Warehouse and Mining access.
    \n- The Cook should not have Morgue access
    \n- The Clown and Mime are to have Maintenance access. This is necessary due to the location of their offices.
    \n
    \nGenerated by Organic Resources Bot #2053" /obj/item/paper/guides/cogstation/letter_sec name = "To future Security personnel" @@ -86,7 +86,11 @@ /obj/item/paper/guides/cogstation/letter_eng name = "To future Engineering staff:" - info = "I'm not gonna sugarcoat this. Compared to other departments, you might have your work cut out for you. CogStation is an entirely different beast than your standard Box, but everyone's still gonna expect you to keep the place running.
    \n
    \n If there's any good news, it's your time to shine if you know how to run a thermo-electric generator. That's what this station runs on, and CentCom isn't planning on changing that. If it's absolutely critical you might be able to run a singularity or tesla engine east of mining, but it won't have any sort of shielding out there.
    \n
    \nThe air system's different too. It's multiple small networks instead of a single big one, with air hookups across the station. Fortunately it's not that complicated, but it comes at the expense of being able to filter out and reuse specific gases. Besides, you'll probably be busy enough with the engine and general upkeep anyway.
    \n
    \nThe disposal network in contrast is significantly more complicated, yet more capable. I've already elaborated on it, so I'll let you find and read my write-up for that. As for the routing system, it's just begging to get hit by a stray meteor so consider other utilities a higher priority.
    \n
    \nGood luck. You're gonna need it.
    \n
    \n-C. Donnelly
    Architectural Analyst" + info = "I'm not gonna sugarcoat this. Compared to other departments, you might have your work cut out for you. CogStation is an entirely different beast than your standard Box, but everyone's still gonna expect you to keep the place running.
    \n
    \n If there's any good news, it's your time to shine if you know how to run a thermo-electric generator. That's what this station runs on, and that isn't likely to change anytime soon. If it's absolutely critical you might be able to run a singularity or tesla engine east of mining, but it won't have any sort of shielding out there.
    \n
    \nYou still have three solar arrays to work with, two of them being on each end of the starboard side. The port side array will need you to either get access from a head of staff or security, unless you want to spacewalk around the whole station. Don't be afraid to ask the latter - they're there for you, after all. As for other utilities the air system is a bit different than you'd expect, but fortunately you should have the atmos techs this station needed a long time ago. The disposal network is significantly more complicated, yet more capable. I've already elaborated on it, so I'll let you find and read my write-up for that. As for the routing system, it's just begging to get hit by a stray meteor so consider other utilities a higher priority.
    \n
    \nGood luck. You're gonna need it.
    \n
    \n-C. Donnelly
    Architectural Analyst" + +/obj/item/paper/guides/cogstation/letter_atmos + name = "To future Atmospheric Technicians:" + info = "If the place that this station used to call home still hired atmos techs, odds are we could've gotten this place up and running a lot sooner. Alas, the past is in the past and the hard work's already been done. You still have a job to do, but it shouldn't be much different from other stations in this sector. That being said, be aware of the following:
    \n
    \n - If you haven't already noticed, the atmospherics department is separate from the rest of the station. You'll either need to spacewalk or take a transit tube to reach it, but it still connects to the station's air system at large.
    \n
    \n- Seeing as the TEG already uses the standard red and blue for it's heating/cooling loops, the scrubber pipes are ORANGE. The main air supply pipes are a purpleish-blue - HOWEVER, these aren't the only air pipes you'll see. We've decided to reuse existing lines from the old air hookup system - these pipes are CYAN and serve to supply air to specific areas. There's also a VIOLET line to help keep the TEG stable.
    \n
    \nNanotrasen's invested a considerable amount into updating this system, so even if Murphy's Law is alive and well in this sector, the air system isn't one of the things that should fail. If a section of the station is having air problems, check the old air hookups FIRST. Your problem could be as simple as a 'greytider' turning a valve or a clown hooking up a laughing gas canister.
    \n
    \n-C. Donnelly
    Architectural Analyst" /obj/item/paper/guides/cogstation/letter_chief name = "To the future Chief Engineer:" @@ -112,6 +116,10 @@ name = "To the future Research Director" info = "Apologies if you were expecting a letter from the station's Research Director, but just prior to translocation we found out they were a BLF operative. I wouldn't trust a single word they wrote and while I'm not a scientist, something tells me your department will have the easiest time adjusting to this station.
    \n
    \nYou should have everything you need - this is a research facility after all. It's just a matter of finding it, which shouldn't be too hard. Folks like you are why we're out in deep space, after all!
    \n-Louis Cannon
    \nFormer Head of Security" +/obj/item/paper/fluff/cogstation/letter_arrd + name = "To the future Research Director" + info = "Listen, I doubt I need to tell you to how to do your job. From what I've heard this station is getting a state-of-the-art xenobiology lab after it gets translocated, and I don't know the first thing about what you guys do about those slimes. However, there's one thing I do know and it's that your station will have botanists.
    \n
    \nIt's crucial you give them everything they need, so long as they agree to maintain as many apiaries as humanely possible. I know it sounds ridiculous, but it's the ONLY way to keep the floor cluwnes at bay. If you don't know what a floor cluwne is, trust me when I say you do NOT want to find out!
    \nJesse P.
    \nFormer CogStation RD" + /obj/item/paper/fluff/cogstation/letter_cap name = "Captain's Log" info = "So I guess some of the other heads have decided to leave little notes for future employees here. Heartwarming, but the most important thing I figure I can leave you is the truth. Nevermind the Syndicate, the xenomorphs, the apocalyptic death cults I hear are a thing way out there - I'm convinced we are our own worst enemy.
    \n
    \nDon't believe me? Maybe you can ask Chief Engineer Earp. Oh right, he vaporized himself trying to produce enough power to keep the lights on in Space China for a week, despite only needing a sliver of that to run this place as intended. Or maybe you can ask Head of Security Cannon, who executed our Research Director in plain sight of everyone. Even if he was in the right, the final frontier isn't the goddamn wild west! Hell, maybe you can ask one of your 'staff assistants', although in my experience the only ones they seem to want to help is themselves.
    \n
    \nOf course, the REAL problems are with the higher-ups that stationed us on this deathtrap before deciding to send it your way, but there's only so much I can say and get away with it, for instance that they only sent this station since they could care less if it was a total loss. By the time you read this, I'll already be long gone. Maybe it'll be a different story with your crew, but between you and me, I wouldn't hold my breath...unless they fuck up the air system.
    \n
    \nDom Kahn
    Former Captain of Nanotrasen CogStation" @@ -128,6 +136,18 @@ name = "Mysterious Note" info = "ThE rInGmAsTeR dOeSn'T rUn ThE cIrCus... HONK!!!" +/obj/item/paper/fluff/cogstation/secsolars + name = "A heads up:" + info = "I'm hoping you guys are aware of the access changes this station requires, but one thing they might have forgot to mention is that one of the station's solar arrays and air hookups are wedged squarely behind your department. Engineering might need to come through your department to access them.
    \n
    \nWhile I can imagine potential concerns, there shouldn't be any problems if both sides are transparent and communicative. The engineer is most likely there to do their job of keeping the station running, and will only need to pass through your department office and interrogation room (or alternatively, the bridge). You're free to get the doors for them and/or watch them work if it helps put your mind at ease. If they loiter or otherwise act suspiciously then you might want to have a word with them.
    \n
    \n-C. Donnelly
    Architectural Analyst" + +/obj/item/paper/fluff/cogstation/eva + name = "MEMO: Spacesuits" + info = "As a Head of Personnel, you may be familiar with crew members requesting EVA access, particularly when there is an absence of credible threats on the station. While it is your decision to grant or deny access unless overriden by your superior(s), you should be aware of an abundance of spacesuits on this station. While intended for emergencies, these suits are cheaper to replace. You may find it beneficial to direct aspiring 'space explorers' towards finding one of these suits instead, although it is advised you order replacement suits in advance through the cargo department.
    \n
    \n-Generated by Organic Resources Bot #2053" + +/obj/item/paper/fluff/cogstation/chemists + name = "Re: Scientists?!" + info = "Scientists should have access to the chemistry lab. This is intentional as opposed to some sort of oversight - after all, they need to reach the medsci router somehow.
    \n
    \nIf anything you should see this as a blessing, as you won't need to sideline whatever it is you're doing to get them what they need. Your focus should remain on predominantly medical goods, just like other stations in this sector.
    \n
    \n- Dr. Halley" + /obj/item/paper/fluff/cogstation/mime name = "Au futur Mime" info = "Toutes mes excuses pour toute mauvaise grammaire, je ne suis pas un haut-parleur naturel Français et a dû utiliser NanoTranslate. Bien que vous puissiez être mécontent de l’emplacement de votre bureau, s’il vous plaît comprendre que c’était le seul endroit où nous pourrions le mettre sans problèmes de sécurité et/ou CentClown se plaindre à ce sujet. Nous nous excusons également pour l’absence d’une zone de performance dédiée, mais nous espérons que vous accorder un accès à l’entretien compensera.
    \n
    \n-C. Donnelly
    \n
    \nAnalyste Architectural" diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index ca5219375f..08252d4e05 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -27,6 +27,7 @@ var/colour = "black" //what colour the ink is! var/degrees = 0 var/font = PEN_FONT + embedding = list() /obj/item/pen/suicide_act(mob/user) user.visible_message("[user] is scribbling numbers all over [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit sudoku...") @@ -41,6 +42,7 @@ desc = "It's a normal red ink pen." icon_state = "pen_red" colour = "red" + throw_speed = 4 // red ones go faster (in this case, fast enough to embed!) /obj/item/pen/invisible desc = "It's an invisible pen marker." @@ -56,8 +58,10 @@ switch(colour) if("black") colour = "red" + throw_speed++ if("red") colour = "green" + throw_speed = initial(throw_speed) if("green") colour = "blue" else @@ -178,6 +182,7 @@ attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") //these wont show up if the pen is off sharpness = IS_SHARP var/on = FALSE + embedding = list(embed_chance = EMBED_CHANCE) /obj/item/pen/edagger/ComponentInitialize() . = ..() @@ -198,16 +203,18 @@ throwforce = initial(throwforce) playsound(user, 'sound/weapons/saberoff.ogg', 5, 1) to_chat(user, "[src] can now be concealed.") + updateEmbedding() else on = TRUE force = 18 w_class = WEIGHT_CLASS_NORMAL name = "energy dagger" hitsound = 'sound/weapons/blade1.ogg' - embedding = getEmbeddingBehavior(embed_chance = 100, embedded_fall_chance = 0) //rule of cool + embedding = list(embed_chance = 100, fall_chance = 0) //rule of cool throwforce = 35 playsound(user, 'sound/weapons/saberon.ogg', 5, 1) to_chat(user, "[src] is now active.") + updateEmbedding() update_icon() /obj/item/pen/edagger/update_icon_state() @@ -220,3 +227,17 @@ item_state = initial(item_state) lefthand_file = initial(lefthand_file) righthand_file = initial(righthand_file) + +/obj/item/pen/survival + name = "survival pen" + desc = "The latest in portable survival technology, this pen was designed as a miniature diamond pickaxe. Watchers find them very desirable for their diamond exterior." + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "digging_pen" + item_state = "pen" + force = 3 + w_class = WEIGHT_CLASS_TINY + custom_materials = list(/datum/material/iron=10, /datum/material/diamond=100, /datum/material/titanium = 10) + pressure_resistance = 2 + grind_results = list(/datum/reagent/iron = 2, /datum/reagent/iodine = 1) + tool_behaviour = TOOL_MINING //For the classic "digging out of prison with a spoon but you're in space so this analogy doesn't work" situation. + toolspeed = 10 //You will never willingly choose to use one of these over a shovel. diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 8db531aa5e..3c4aebdba3 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -337,3 +337,15 @@ grind_results = list(/datum/reagent/iodine = 40, /datum/reagent/iron = 10) var/charges = 5 var/max_charges = 5 + +/obj/item/toner/large + name = "large toner cartridge" + grind_results = list(/datum/reagent/iodine = 90, /datum/reagent/iron = 10) + charges = 15 + max_charges = 15 + +/obj/item/toner/extreme + name = "extremely large toner cartridge" + desc = "Why would ANYONE need THIS MUCH TONER?" + charges = 200 + max_charges = 200 diff --git a/code/modules/photography/camera/camera.dm b/code/modules/photography/camera/camera.dm index 705888a427..3e76fc874a 100644 --- a/code/modules/photography/camera/camera.dm +++ b/code/modules/photography/camera/camera.dm @@ -15,7 +15,7 @@ flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_NECK custom_materials = list(/datum/material/iron = 50, /datum/material/glass = 150) - custom_price = 120 + custom_price = PRICE_NORMAL var/flash_enabled = TRUE var/state_on = "camera" var/state_off = "camera_off" diff --git a/code/modules/photography/photos/frame.dm b/code/modules/photography/photos/frame.dm index 67559c0381..9e6f827629 100644 --- a/code/modules/photography/photos/frame.dm +++ b/code/modules/photography/photos/frame.dm @@ -4,7 +4,7 @@ name = "picture frame" desc = "The perfect showcase for your favorite deathtrap memories." icon = 'icons/obj/decals.dmi' - custom_materials = null + custom_materials = list(/datum/material/wood = 2000) flags_1 = 0 icon_state = "frame-empty" result_path = /obj/structure/sign/picture_frame @@ -40,6 +40,7 @@ /obj/item/wallframe/picture/examine(mob/user) if(user.is_holding(src) && displayed) displayed.show(user) + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "artok", /datum/mood_event/artok) return list() return ..() @@ -63,6 +64,7 @@ desc = "Every time you look it makes you laugh." icon = 'icons/obj/decals.dmi' icon_state = "frame-empty" + custom_materials = list(/datum/material/wood = 2000) var/obj/item/photo/framed var/persistence_id var/can_decon = TRUE @@ -109,6 +111,7 @@ /obj/structure/sign/picture_frame/examine(mob/user) if(in_range(src, user) && framed) framed.show(user) + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "artok", /datum/mood_event/artok) return list() return ..() diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index fd04ef0a1f..7d0ecf3e66 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -48,7 +48,7 @@ /obj/machinery/power/apc name = "area power controller" desc = "A control terminal for the area's electrical systems." - + plane = ABOVE_WALL_PLANE icon_state = "apc0" use_power = NO_POWER_USE req_access = null @@ -1141,6 +1141,7 @@ return if(!is_station_level(z)) return + malf.ShutOffDoomsdayDevice() occupier = new /mob/living/silicon/ai(src, malf.laws, malf) //DEAR GOD WHY? //IKR???? occupier.adjustOxyLoss(malf.getOxyLoss()) if(!findtext(occupier.name, "APC Copy")) @@ -1411,6 +1412,7 @@ if(WIRE_POWER1, WIRE_POWER2) if(!wires.is_cut(WIRE_POWER1) && !wires.is_cut(WIRE_POWER2)) shorted = FALSE + update() if(WIRE_AI) if(!wires.is_cut(WIRE_AI)) aidisabled = FALSE @@ -1579,5 +1581,5 @@ /obj/item/electronics/apc name = "power control module" icon_state = "power_mod" - custom_price = 50 + custom_price = PRICE_CHEAP desc = "Heavy-duty switching circuits for power control." diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index c8563c653f..e89507f33d 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -39,6 +39,7 @@ By design, d1 is the smallest direction and d2 is the highest icon = 'icons/obj/power_cond/cables.dmi' icon_state = "0-1" level = 1 //is underfloor + plane = ABOVE_WALL_PLANE layer = WIRE_LAYER //Above hidden pipes, GAS_PIPE_HIDDEN_LAYER anchored = TRUE obj_flags = CAN_BE_HIT | ON_BLUEPRINTS @@ -170,8 +171,8 @@ By design, d1 is the smallest direction and d2 is the highest return coil.cable_join(src, user) - else if(istype(W, /obj/item/twohanded/rcl)) - var/obj/item/twohanded/rcl/R = W + else if(istype(W, /obj/item/rcl)) + var/obj/item/rcl/R = W if(R.loaded) R.loaded.cable_join(src, user) R.is_empty(user) @@ -487,7 +488,7 @@ By design, d1 is the smallest direction and d2 is the highest /obj/item/stack/cable_coil name = "cable coil" - custom_price = 75 + custom_price = PRICE_CHEAP_AS_FREE gender = NEUTER //That's a cable coil sounds better than that's some cable coils icon = 'icons/obj/power.dmi' icon_state = "coil" diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index cc321fdb4d..c788b9b033 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -227,6 +227,7 @@ icon_state = "h+cell" maxcharge = 15000 chargerate = 2250 + rating = 2 /obj/item/stock_parts/cell/high/empty start_charged = FALSE @@ -237,6 +238,7 @@ maxcharge = 20000 custom_materials = list(/datum/material/glass=300) chargerate = 2000 + rating = 3 /obj/item/stock_parts/cell/super/empty start_charged = FALSE @@ -247,6 +249,7 @@ maxcharge = 30000 custom_materials = list(/datum/material/glass=400) chargerate = 3000 + rating = 4 /obj/item/stock_parts/cell/hyper/empty start_charged = FALSE @@ -258,6 +261,7 @@ maxcharge = 40000 custom_materials = list(/datum/material/glass=600) chargerate = 4000 + rating = 5 /obj/item/stock_parts/cell/bluespace/empty start_charged = FALSE @@ -313,7 +317,7 @@ /obj/item/stock_parts/cell/emproof/ComponentInitialize() . = ..() - AddComponent(/datum/component/empprotection, EMP_PROTECT_SELF) + AddElement(/datum/element/empprotection, EMP_PROTECT_SELF) /obj/item/stock_parts/cell/emproof/empty start_charged = FALSE diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index 582d72f6c0..1644673ece 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -39,9 +39,9 @@ GLOBAL_LIST_EMPTY(gravity_generators) // We will keep track of this by adding ne if(prob(20)) set_broken() -/obj/machinery/gravity_generator/tesla_act(power, tesla_flags) +/obj/machinery/gravity_generator/zap_act(power, zap_flags) ..() - if(tesla_flags & TESLA_MACHINE_EXPLOSIVE) + if(zap_flags & ZAP_MACHINE_EXPLOSIVE) qdel(src)//like the singulo, tesla deletes it. stops it from exploding over and over /obj/machinery/gravity_generator/update_icon_state() diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 181df7b07c..f911a6a4e4 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -118,7 +118,7 @@ return if(istype(W, /obj/item/stack/cable_coil)) - if(W.use_tool(src, user, 0, 1, max_level = JOB_SKILL_TRAINED)) + if(W.use_tool(src, user, 0, 1, skill_gain_mult = TRIVIAL_USE_TOOL_MULT)) icon_state = "[fixture_type]-construct-stage2" stage = 2 user.visible_message("[user.name] adds wires to [src].", \ @@ -314,8 +314,11 @@ . = ..() SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays) if(on && status == LIGHT_OK) - SSvis_overlays.add_vis_overlay(src, overlayicon, base_state, EMISSIVE_LAYER, EMISSIVE_PLANE, dir, clamp(light_power*250, 30, 200)) - + var/overlay_alpha = clamp(light_power*250, 30, 200) + SSvis_overlays.add_vis_overlay(src, overlayicon, base_state, EMISSIVE_UNBLOCKABLE_LAYER, EMISSIVE_UNBLOCKABLE_PLANE, dir, overlay_alpha) + var/mutable_appearance/M = mutable_appearance(overlayicon, base_state) + M.alpha = overlay_alpha + . += M // update the icon_state and luminosity of the light depending on its state /obj/machinery/light/proc/update(trigger = TRUE) @@ -503,7 +506,7 @@ cell = null qdel(src) -/obj/machinery/light/attacked_by(obj/item/I, mob/living/user) +/obj/machinery/light/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1) ..() if(status == LIGHT_BROKEN || status == LIGHT_EMPTY) if(on && (I.flags_1 & CONDUCT_1)) @@ -687,9 +690,9 @@ on = TRUE update() -/obj/machinery/light/tesla_act(power, tesla_flags) - if(tesla_flags & TESLA_MACHINE_EXPLOSIVE) - explosion(src,0,0,0,flame_range = 5, adminlog = 0) +/obj/machinery/light/zap_act(power, zap_flags) + if(zap_flags & ZAP_MACHINE_EXPLOSIVE) + explosion(src,0,0,0,flame_range = 5, adminlog = FALSE) qdel(src) else return ..() diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 4cec49945a..d5b19b495c 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -299,8 +299,8 @@ //siemens_coeff - layman's terms, conductivity //dist_check - set to only shock mobs within 1 of source (vendors, airlocks, etc.) //No animations will be performed by this proc. -/proc/electrocute_mob(mob/living/carbon/M, power_source, obj/source, siemens_coeff = 1, dist_check = FALSE) - if(!M || ismecha(M.loc)) +/proc/electrocute_mob(mob/living/M, power_source, obj/source, siemens_coeff = 1, dist_check = FALSE) + if(!istype(M) || ismecha(M.loc)) return 0 //feckin mechs are dumb if(dist_check) if(!in_range(source,M)) @@ -310,6 +310,7 @@ if(H.gloves) var/obj/item/clothing/gloves/G = H.gloves if(G.siemens_coefficient == 0) + SEND_SIGNAL(M, COMSIG_LIVING_SHOCK_PREVENTED, power_source, source, siemens_coeff, dist_check) return 0 //to avoid spamming with insulated glvoes on var/area/source_area diff --git a/code/modules/power/rtg.dm b/code/modules/power/rtg.dm index afbeef30a1..b558031fab 100644 --- a/code/modules/power/rtg.dm +++ b/code/modules/power/rtg.dm @@ -97,6 +97,7 @@ /obj/machinery/power/rtg/abductor/fire_act(exposed_temperature, exposed_volume) overload() -/obj/machinery/power/rtg/abductor/tesla_act() - ..() //extend the zap - overload() +/obj/machinery/power/rtg/abductor/zap_act(power, zap_flags, shocked_objects) + . = ..() //extend the zap + if(zap_flags & ZAP_MACHINE_EXPLOSIVE) + overload() diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index d57f78e5b6..0d182e0a1b 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -75,7 +75,7 @@ /obj/machinery/power/emitter/ComponentInitialize() . = ..() - AddComponent(/datum/component/empprotection, EMP_PROTECT_SELF | EMP_PROTECT_WIRES) + AddElement(/datum/element/empprotection, EMP_PROTECT_SELF | EMP_PROTECT_WIRES) /obj/machinery/power/emitter/RefreshParts() var/max_firedelay = 120 diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index 950e34098c..af2237a426 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -61,7 +61,7 @@ field_generator power level display /obj/machinery/field/generator/ComponentInitialize() . = ..() - AddComponent(/datum/component/empprotection, EMP_PROTECT_SELF | EMP_PROTECT_WIRES) + AddElement(/datum/element/empprotection, EMP_PROTECT_SELF | EMP_PROTECT_WIRES) /obj/machinery/field/generator/process() if(active == FG_ONLINE) diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index ed3a098dae..8bf20fddc6 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -127,7 +127,7 @@ /obj/singularity/narsie/mezzer() - for(var/mob/living/carbon/M in viewers(consume_range, src)) + for(var/mob/living/carbon/M in fov_viewers(consume_range, src)) if(M.stat == CONSCIOUS) if(!iscultist(M)) to_chat(M, "You feel conscious thought crumble away in an instant as you gaze upon [src.name]...") diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 85999707a2..788b4b1441 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -228,6 +228,11 @@ var/last_chrg = inputting var/last_onln = outputting + //check for self-recharging cells in stock parts and use them to self-charge + for(var/obj/item/stock_parts/cell/C in component_parts) + if(C.self_recharge) + charge += min(capacity-charge, C.chargerate) // If capacity-charge is smaller than the attempted charge rate, this avoids overcharging + //inputting if(terminal && input_attempt) input_available = terminal.surplus() diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 8b4fe02e69..87bdfe99e2 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -433,7 +433,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) env.merge(removed) air_update_turf() - for(var/mob/living/carbon/human/l in view(src, HALLUCINATION_RANGE(power))) // If they can see it without mesons on. Bad on them. + for(var/mob/living/carbon/human/l in fov_viewers(HALLUCINATION_RANGE(power), src)) // If they can see it without mesons on. Bad on them. if(!istype(l.glasses, /obj/item/clothing/glasses/meson)) var/D = sqrt(1 / max(1, get_dist(l, src))) l.hallucination += power * config_hallucination_power * D @@ -559,14 +559,9 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) dust_mob(user, cause = "alien attack") /obj/machinery/power/supermatter_crystal/attack_animal(mob/living/simple_animal/S) - var/murder - if(!S.melee_damage_upper && !S.melee_damage_lower) - murder = S.friendly - else - murder = S.attacktext dust_mob(S, \ - "[S] unwisely [murder] [src], and [S.p_their()] body burns brilliantly before flashing into ash!", \ - "You unwisely touch [src], and your vision glows brightly as your body crumbles to dust. Oops.", \ + "[S] unwisely [S.attack_verb_continuous] [src], and [S.p_their()] body burns brilliantly before flashing into ash!", \ + "You unwisely [S.attack_verb_simple] [src], and your vision glows brightly as your body crumbles to dust. Oops.", \ "simple animal attack") /obj/machinery/power/supermatter_crystal/attack_robot(mob/user) @@ -666,9 +661,10 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) //Some poor sod got eaten, go ahead and irradiate people nearby. radiation_pulse(src, 3000, 2, TRUE) + var/list/viewers = fov_viewers(world.view, src) for(var/mob/living/L in range(10)) investigate_log("has irradiated [key_name(L)] after consuming [AM].", INVESTIGATE_SUPERMATTER) - if(L in view()) + if(L in viewers) L.show_message("As \the [src] slowly stops resonating, you find your skin covered in new radiation burns.", MSG_VISUAL,\ "The unearthly ringing subsides and you notice you have new radiation burns.", MSG_AUDIBLE) else diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm index 64d317b385..eb80548441 100644 --- a/code/modules/power/tesla/coil.dm +++ b/code/modules/power/tesla/coil.dm @@ -73,7 +73,7 @@ return ..() -/obj/machinery/power/tesla_coil/tesla_act(power, tesla_flags, shocked_targets) +/obj/machinery/power/tesla_coil/zap_act(power, zap_flags, shocked_targets) if(anchored && !panel_open) obj_flags |= BEING_SHOCKED //don't lose arc power when it's not connected to anything @@ -81,17 +81,17 @@ var/power_produced = powernet ? power / power_loss : power add_avail(power_produced*input_power_multiplier) flick("coilhit", src) - playsound(src.loc, 'sound/magic/lightningshock.ogg', 100, 1, extrarange = 5) - tesla_zap(src, 5, power_produced, tesla_flags, shocked_targets) var/datum/bank_account/D = SSeconomy.get_dep_account(ACCOUNT_ENG) if(D) D.adjust_money(min(power_produced, 1)) if(istype(linked_techweb)) linked_techweb.add_point_type(TECHWEB_POINT_TYPE_DEFAULT, min(power_produced, 1)) // x4 coils = ~240/m point bonus for R&D addtimer(CALLBACK(src, .proc/reset_shocked), 10) - tesla_buckle_check(power) + zap_buckle_check(power) + playsound(src.loc, 'sound/magic/lightningshock.ogg', 100, TRUE, extrarange = 5) + return power_produced else - ..() + . = ..() /obj/machinery/power/tesla_coil/proc/zap() if((last_zap + zap_cooldown) > world.time || !powernet) @@ -102,8 +102,8 @@ var/power = (powernet.avail/2) add_load(power) playsound(src.loc, 'sound/magic/lightningshock.ogg', 100, 1, extrarange = 5) - tesla_zap(src, 10, power/(coeff/2), TESLA_FUSION_FLAGS) - tesla_buckle_check(power/(coeff/2)) + tesla_zap(src, 10, power/(coeff/2), ZAP_FUSION_FLAGS) + zap_buckle_check(power/(coeff/2)) // Tesla R&D researcher /obj/machinery/power/tesla_coil/research @@ -113,23 +113,23 @@ circuit = /obj/item/circuitboard/machine/tesla_coil/research power_loss = 20 // something something, high voltage + resistance -/obj/machinery/power/tesla_coil/research/tesla_act(power, tesla_flags, shocked_things) +/obj/machinery/power/tesla_coil/research/zap_act(power, zap_flags, shocked_targets) if(anchored && !panel_open) obj_flags |= BEING_SHOCKED var/power_produced = powernet ? power / power_loss : power add_avail(power_produced*input_power_multiplier) flick("rpcoilhit", src) - playsound(src.loc, 'sound/magic/lightningshock.ogg', 100, 1, extrarange = 5) - tesla_zap(src, 5, power_produced, tesla_flags, shocked_things) var/datum/bank_account/D = SSeconomy.get_dep_account(ACCOUNT_ENG) if(D) D.adjust_money(min(power_produced, 3)) if(istype(linked_techweb)) linked_techweb.add_point_type(TECHWEB_POINT_TYPE_DEFAULT, min(power_produced, 3)) // x4 coils with a pulse per second or so = ~720/m point bonus for R&D addtimer(CALLBACK(src, .proc/reset_shocked), 10) - tesla_buckle_check(power) + zap_buckle_check(power) + playsound(src.loc, 'sound/magic/lightningshock.ogg', 100, TRUE, extrarange = 5) + return power_produced else - ..() + . = ..() /obj/machinery/power/tesla_coil/research/default_unfasten_wrench(mob/user, obj/item/wrench/W, time = 20) . = ..() @@ -180,9 +180,10 @@ return ..() -/obj/machinery/power/grounding_rod/tesla_act(var/power) +/obj/machinery/power/grounding_rod/zap_act(var/power) if(anchored && !panel_open) flick("grounding_rodhit", src) - tesla_buckle_check(power) + zap_buckle_check(power) + return 0 else - ..() + . = ..() diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index e98fe3c88e..06e5d27f6d 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -1,5 +1,14 @@ #define TESLA_DEFAULT_POWER 1738260 #define TESLA_MINI_POWER 869130 +//Zap constants, speeds up targeting +#define BIKE (COIL + 1) +#define COIL (ROD + 1) +#define ROD (RIDE + 1) +#define RIDE (LIVING + 1) +#define LIVING (MACHINERY + 1) +#define MACHINERY (BLOB + 1) +#define BLOB (STRUCTURE + 1) +#define STRUCTURE (1) /obj/singularity/energy_ball name = "energy ball" @@ -32,6 +41,9 @@ /obj/singularity/energy_ball/ex_act(severity, target) return +/obj/singularity/energy_ball/consume(severity, target) + return + /obj/singularity/energy_ball/Destroy() if(orbiting && istype(orbiting.parent, /obj/singularity/energy_ball)) var/obj/singularity/energy_ball/EB = orbiting.parent @@ -39,7 +51,7 @@ for(var/ball in orbiting_balls) var/obj/singularity/energy_ball/EB = ball - qdel(EB) + QDEL_NULL(EB) . = ..() @@ -55,12 +67,12 @@ move_the_basket_ball(4 + orbiting_balls.len * 1.5) - playsound(src.loc, 'sound/magic/lightningbolt.ogg', 100, 1, extrarange = 30) + playsound(src.loc, 'sound/magic/lightningbolt.ogg', 100, TRUE, extrarange = 30) pixel_x = 0 pixel_y = 0 - tesla_zap(src, 7, TESLA_DEFAULT_POWER, TRUE) + tesla_zap(src, 7, TESLA_DEFAULT_POWER) pixel_x = -32 pixel_y = -32 @@ -73,7 +85,7 @@ /obj/singularity/energy_ball/examine(mob/user) . = ..() if(orbiting_balls.len) - . += "The amount of orbiting mini-balls is [orbiting_balls.len]." + . += "There are [orbiting_balls.len] mini-balls orbiting it." /obj/singularity/energy_ball/proc/move_the_basket_ball(var/move_amount) @@ -96,7 +108,7 @@ energy_to_lower = energy_to_raise - 20 energy_to_raise = energy_to_raise * 1.25 - playsound(src.loc, 'sound/magic/lightning_chargeup.ogg', 100, 1, extrarange = 30) + playsound(src.loc, 'sound/magic/lightning_chargeup.ogg', 100, TRUE, extrarange = 30) addtimer(CALLBACK(src, .proc/new_mini_ball), 100) else if(energy < energy_to_lower && orbiting_balls.len) @@ -132,22 +144,19 @@ /obj/singularity/energy_ball/attack_tk(mob/user) if(iscarbon(user)) var/mob/living/carbon/C = user - log_game("[key_name(C)] has been disintegrated by a telekenetic grab on a tesla ball.") to_chat(C, "That was a shockingly dumb idea.") - C.visible_message("A bright flare of lightning is seen from [C]'s head, shortly before you hear a sickening sizzling!") var/obj/item/organ/brain/rip_u = locate(/obj/item/organ/brain) in C.internal_organs - rip_u.Remove() + C.ghostize(0) qdel(rip_u) - return - return ..() + C.death() /obj/singularity/energy_ball/orbit(obj/singularity/energy_ball/target) if (istype(target)) target.orbiting_balls += src GLOB.poi_list -= src target.dissipate_strength = target.orbiting_balls.len - . = ..() + /obj/singularity/energy_ball/stop_orbit() if (orbiting && istype(orbiting.parent, /obj/singularity/energy_ball)) var/obj/singularity/energy_ball/orbitingball = orbiting.parent @@ -171,20 +180,19 @@ var/mob/living/carbon/C = A C.dust() -/proc/tesla_zap(atom/source, zap_range = 3, power, tesla_flags = TESLA_DEFAULT_FLAGS, list/shocked_targets) +/proc/tesla_zap(atom/source, zap_range = 3, power, zap_flags = ZAP_DEFAULT_FLAGS, list/shocked_targets) + if(QDELETED(source)) + return . = source.dir if(power < 1000) return - var/closest_dist = 0 - var/closest_atom - var/obj/machinery/power/tesla_coil/closest_tesla_coil - var/obj/machinery/power/grounding_rod/closest_grounding_rod - var/mob/living/closest_mob - var/obj/machinery/closest_machine - var/obj/structure/closest_structure - var/obj/structure/blob/closest_blob - var/static/things_to_shock = typecacheof(list(/obj/machinery, /mob/living, /obj/structure)) + /* + THIS IS SO FUCKING UGLY AND I HATE IT, but I can't make it nice without making it slower, check*N rather then n. So we're stuck with it. + */ + var/atom/closest_atom + var/closest_type = 0 + var/static/things_to_shock = typecacheof(list(/obj/machinery, /mob/living, /obj/structure, /obj/vehicle/ridden)) var/static/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, /obj/machinery/power/emitter, /obj/machinery/field/generator, @@ -205,112 +213,133 @@ /obj/machinery/gateway, /obj/structure/lattice, /obj/structure/grille, - /obj/machinery/the_singularitygen/tesla, /obj/structure/frame/machine)) - for(var/A in typecache_filter_multi_list_exclusion(oview(source, zap_range+2), things_to_shock, blacklisted_tesla_types)) - if(!(tesla_flags & TESLA_ALLOW_DUPLICATES) && LAZYACCESS(shocked_targets, A)) + //Ok so we are making an assumption here. We assume that view() still calculates from the center out. + //This means that if we find an object we can assume it is the closest one of its type. This is somewhat of a speed increase. + //This also means we have no need to track distance, as the doview() proc does it all for us. + + //Darkness fucks oview up hard. I've tried dview() but it doesn't seem to work + //I hate existance + for(var/a in typecache_filter_multi_list_exclusion(oview(zap_range+2, source), things_to_shock, blacklisted_tesla_types)) + var/atom/A = a + if(!(zap_flags & ZAP_ALLOW_DUPLICATES) && LAZYACCESS(shocked_targets, A)) continue + if(closest_type >= BIKE) + break - if(istype(A, /obj/machinery/power/tesla_coil)) - var/dist = get_dist(source, A) - var/obj/machinery/power/tesla_coil/C = A - if(dist <= zap_range && (dist < closest_dist || !closest_tesla_coil) && !(C.obj_flags & BEING_SHOCKED)) - closest_dist = dist - + else if(istype(A, /obj/vehicle/ridden/bicycle))//God's not on our side cause he hates idiots. + var/obj/vehicle/ridden/bicycle/B = A + if(!(B.obj_flags & BEING_SHOCKED) && B.can_buckle)//Gee goof thanks for the boolean //we use both of these to save on istype and typecasting overhead later on //while still allowing common code to run before hand - closest_tesla_coil = C - closest_atom = C + closest_type = BIKE + closest_atom = B - - else if(closest_tesla_coil) + else if(closest_type >= COIL) continue //no need checking these other things - else if(istype(A, /obj/machinery/power/grounding_rod)) - var/dist = get_dist(source, A)-2 - if(dist <= zap_range && (dist < closest_dist || !closest_grounding_rod)) - closest_grounding_rod = A - closest_atom = A - closest_dist = dist + else if(istype(A, /obj/machinery/power/tesla_coil)) + var/obj/machinery/power/tesla_coil/C = A + if(!(C.obj_flags & BEING_SHOCKED)) + closest_type = COIL + closest_atom = C - else if(closest_grounding_rod) + else if(closest_type >= ROD) + continue + + else if(istype(A, /obj/machinery/power/grounding_rod)) + closest_type = ROD + closest_atom = A + + else if(closest_type >= RIDE) + continue + + else if(istype(A,/obj/vehicle/ridden)) + var/obj/vehicle/ridden/R = A + if(R.can_buckle && !(R.obj_flags & BEING_SHOCKED)) + closest_type = RIDE + closest_atom = A + + else if(closest_type >= LIVING) continue else if(isliving(A)) - var/dist = get_dist(source, A) var/mob/living/L = A - if(dist <= zap_range && (dist < closest_dist || !closest_mob) && L.stat != DEAD && !(L.flags_1 & TESLA_IGNORE_1)) - closest_mob = L + if(L.stat != DEAD && !(HAS_TRAIT(L, TRAIT_TESLA_SHOCKIMMUNE)) && !(L.flags_1 & SHOCKED_1)) + closest_type = LIVING closest_atom = A - closest_dist = dist - else if(closest_mob) + else if(closest_type >= MACHINERY) continue else if(ismachinery(A)) var/obj/machinery/M = A - var/dist = get_dist(source, A) - if(dist <= zap_range && (dist < closest_dist || !closest_machine) && !(M.obj_flags & BEING_SHOCKED)) - closest_machine = M + if(!(M.obj_flags & BEING_SHOCKED)) + closest_type = MACHINERY closest_atom = A - closest_dist = dist - else if(closest_mob) + else if(closest_type >= BLOB) continue else if(istype(A, /obj/structure/blob)) var/obj/structure/blob/B = A - var/dist = get_dist(source, A) - if(dist <= zap_range && (dist < closest_dist || !closest_tesla_coil) && !(B.obj_flags & BEING_SHOCKED)) - closest_blob = B + if(!(B.obj_flags & BEING_SHOCKED)) + closest_type = BLOB closest_atom = A - closest_dist = dist - else if(closest_blob) + else if(closest_type >= STRUCTURE) continue else if(isstructure(A)) var/obj/structure/S = A - var/dist = get_dist(source, A) - if(dist <= zap_range && (dist < closest_dist || !closest_tesla_coil) && !(S.obj_flags & BEING_SHOCKED)) - closest_structure = S + if(!(S.obj_flags & BEING_SHOCKED)) + closest_type = STRUCTURE closest_atom = A - closest_dist = dist //Alright, we've done our loop, now lets see if was anything interesting in range - if(closest_atom) - //common stuff - source.Beam(closest_atom, icon_state="lightning[rand(1,12)]", time=5, maxdistance = INFINITY) - if(!(tesla_flags & TESLA_ALLOW_DUPLICATES)) - LAZYSET(shocked_targets, closest_atom, TRUE) - var/zapdir = get_dir(source, closest_atom) - if(zapdir) - . = zapdir + if(!closest_atom) + return + //common stuff + source.Beam(closest_atom, icon_state="lightning[rand(1,12)]", time=5, maxdistance = INFINITY) + if(!(zap_flags & ZAP_ALLOW_DUPLICATES)) + LAZYSET(shocked_targets, closest_atom, TRUE) + var/zapdir = get_dir(source, closest_atom) + if(zapdir) + . = zapdir - //per type stuff: - if(closest_tesla_coil) - closest_tesla_coil.tesla_act(power, tesla_flags, shocked_targets) + var/next_range = 3 + if(closest_type == COIL) + next_range = 5 - else if(closest_grounding_rod) - closest_grounding_rod.tesla_act(power, tesla_flags, shocked_targets) - - else if(closest_mob) - var/shock_damage = (tesla_flags & TESLA_MOB_DAMAGE)? (min(round(power/600), 90) + rand(-5, 5)) : 0 - closest_mob.electrocute_act(shock_damage, source, 1, SHOCK_TESLA | ((tesla_flags & TESLA_MOB_STUN) ? NONE : SHOCK_NOSTUN)) + if(closest_type == LIVING) + var/mob/living/closest_mob = closest_atom + closest_mob.set_shocked() + addtimer(CALLBACK(closest_mob, /mob/living/proc/reset_shocked), 10) + var/shock_damage = (zap_flags & ZAP_MOB_DAMAGE) ? (min(round(power/600), 90) + rand(-5, 5)) : 0 + closest_mob.electrocute_act(shock_damage, source, 1, SHOCK_TESLA | ((zap_flags & ZAP_MOB_STUN) ? NONE : SHOCK_NOSTUN)) if(issilicon(closest_mob)) var/mob/living/silicon/S = closest_mob - if((tesla_flags & TESLA_MOB_STUN) && (tesla_flags & TESLA_MOB_DAMAGE)) + if((zap_flags & ZAP_MOB_STUN) && (zap_flags & ZAP_MOB_DAMAGE)) S.emp_act(EMP_LIGHT) - tesla_zap(S, 7, power / 1.5, tesla_flags, shocked_targets) // metallic folks bounce it further + next_range = 7 // metallic folks bounce it further else - tesla_zap(closest_mob, 5, power / 1.5, tesla_flags, shocked_targets) + next_range = 5 + power /= 1.5 - else if(closest_machine) - closest_machine.tesla_act(power, tesla_flags, shocked_targets) + else + power = closest_atom.zap_act(power, zap_flags, shocked_targets) + if(prob(20))//I know I know + tesla_zap(closest_atom, next_range, power * 0.5, zap_flags, shocked_targets) + tesla_zap(closest_atom, next_range, power * 0.5, zap_flags, shocked_targets) + else + tesla_zap(closest_atom, next_range, power, zap_flags, shocked_targets) - else if(closest_blob) - closest_blob.tesla_act(power, tesla_flags, shocked_targets) - - else if(closest_structure) - closest_structure.tesla_act(power, tesla_flags, shocked_targets) +#undef BIKE +#undef COIL +#undef ROD +#undef RIDE +#undef LIVING +#undef MACHINERY +#undef BLOB +#undef STRUCTURE diff --git a/code/modules/power/tesla/generator.dm b/code/modules/power/tesla/generator.dm index 53d7010806..260f4128bc 100644 --- a/code/modules/power/tesla/generator.dm +++ b/code/modules/power/tesla/generator.dm @@ -5,6 +5,6 @@ icon_state = "TheSingGen" creation_type = /obj/singularity/energy_ball -/obj/machinery/the_singularitygen/tesla/tesla_act(power, tesla_flags) - if(tesla_flags & TESLA_MACHINE_EXPLOSIVE) +/obj/machinery/the_singularitygen/tesla/zap_act(power, zap_flags) + if(zap_flags & ZAP_MACHINE_EXPLOSIVE) energy += power diff --git a/code/modules/projectiles/ammunition/_firing.dm b/code/modules/projectiles/ammunition/_firing.dm index 848163d658..340cfc2e98 100644 --- a/code/modules/projectiles/ammunition/_firing.dm +++ b/code/modules/projectiles/ammunition/_firing.dm @@ -1,17 +1,21 @@ /obj/item/ammo_casing/proc/fire_casing(atom/target, mob/living/user, params, distro, quiet, zone_override, spread, atom/fired_from) distro += variance - for (var/i = max(1, pellets), i > 0, i--) - var/targloc = get_turf(target) - ready_proj(target, user, quiet, zone_override, fired_from) + var/targloc = get_turf(target) + ready_proj(target, user, quiet, zone_override, fired_from) + if(pellets == 1) if(distro) //We have to spread a pixel-precision bullet. throw_proj was called before so angles should exist by now... if(randomspread) spread = round((rand() - 0.5) * distro) else //Smart spread - spread = round((i / pellets - 0.5) * distro) + spread = round(1 - 0.5) * distro if(!throw_proj(target, targloc, user, params, spread)) - return 0 - if(i > 1) - newshot() + return FALSE + else + if(isnull(BB)) + return FALSE + AddComponent(/datum/component/pellet_cloud, projectile_type, pellets) + SEND_SIGNAL(src, COMSIG_PELLET_CLOUD_INIT, target, user, fired_from, randomspread, spread, zone_override, params, distro) + if(click_cooldown_override) user.changeNext_move(click_cooldown_override) else @@ -32,6 +36,10 @@ BB.def_zone = user.zone_selected BB.suppressed = quiet + if(isgun(fired_from)) + var/obj/item/gun/G = fired_from + BB.damage *= G.projectile_damage_multiplier + if(reagents && BB.reagents) reagents.trans_to(BB, reagents.total_volume) //For chemical darts/bullets qdel(reagents) diff --git a/code/modules/projectiles/ammunition/ballistic/lmg.dm b/code/modules/projectiles/ammunition/ballistic/lmg.dm index 04cc4df349..0688d09e3c 100644 --- a/code/modules/projectiles/ammunition/ballistic/lmg.dm +++ b/code/modules/projectiles/ammunition/ballistic/lmg.dm @@ -21,3 +21,16 @@ name = "1.95x129mm incendiary bullet casing" desc = "A 1.95x129mm bullet casing designed with a chemical-filled capsule on the tip that when bursted, reacts with the atmosphere to produce a fireball, engulfing the target in flames." projectile_type = /obj/item/projectile/bullet/incendiary/mm195x129 + +/obj/item/ammo_casing/mm712x82/match + name = "7.12x82mm match bullet casing" + desc = "A 7.12x82mm bullet casing manufactured to unfailingly high standards, you could pull off some cool trickshots with this." + projectile_type = /obj/item/projectile/bullet/mm712x82_match + +/obj/item/projectile/bullet/mm712x82_match + name = "7.12x82mm match bullet" + damage = 40 + ricochets_max = 2 + ricochet_chance = 60 + ricochet_auto_aim_range = 4 + ricochet_incidence_leeway = 35 \ No newline at end of file diff --git a/code/modules/projectiles/ammunition/ballistic/pistol.dm b/code/modules/projectiles/ammunition/ballistic/pistol.dm index 461166ab0d..07f3b4c997 100644 --- a/code/modules/projectiles/ammunition/ballistic/pistol.dm +++ b/code/modules/projectiles/ammunition/ballistic/pistol.dm @@ -44,7 +44,6 @@ desc = "A 9mm incendiary bullet casing." projectile_type = /obj/item/projectile/bullet/incendiary/c9mm - // .50AE (Desert Eagle) /obj/item/ammo_casing/a50AE @@ -52,4 +51,3 @@ desc = "A .50AE bullet casing." caliber = ".50" projectile_type = /obj/item/projectile/bullet/a50AE - diff --git a/code/modules/projectiles/ammunition/ballistic/revolver.dm b/code/modules/projectiles/ammunition/ballistic/revolver.dm index d5a9fab4b4..693b258e3d 100644 --- a/code/modules/projectiles/ammunition/ballistic/revolver.dm +++ b/code/modules/projectiles/ammunition/ballistic/revolver.dm @@ -11,6 +11,12 @@ desc = "A .357 armor-piercing bullet casing." projectile_type = /obj/item/projectile/bullet/a357/ap +/obj/item/ammo_casing/a357/match + name = ".357 match bullet casing" + desc = "A .357 bullet casing, manufactured to exceedingly high standards." + caliber = "357" + projectile_type = /obj/item/projectile/bullet/a357/match + // 7.62x38mmR (Nagant Revolver) /obj/item/ammo_casing/n762 @@ -47,4 +53,19 @@ name = ".38 Iceblox bullet casing" desc = "A .38 Iceblox bullet casing." caliber = "38" - projectile_type = /obj/item/projectile/bullet/c38/iceblox \ No newline at end of file + projectile_type = /obj/item/projectile/bullet/c38/iceblox + +/obj/item/ammo_casing/c38/match + name = ".38 Match bullet casing" + desc = "A .38 bullet casing, manufactured to exceedingly high standards." + projectile_type = /obj/item/projectile/bullet/c38/match + +/obj/item/ammo_casing/c38/match/bouncy + name = ".38 Rubber bullet casing" + desc = "A .38 rubber bullet casing, manufactured to exceedingly high standards." + projectile_type = /obj/item/projectile/bullet/c38/match/bouncy + +/obj/item/ammo_casing/c38/dumdum + name = ".38 DumDum bullet casing" + desc = "A .38 DumDum bullet casing." + projectile_type = /obj/item/projectile/bullet/c38/dumdum \ No newline at end of file diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index fc8fd65a06..ea84e23d01 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -143,3 +143,12 @@ reagents.add_reagent(/datum/reagent/toxin/acid/fluacid, 5) //this and the acid equal about 25ish burn, not counting the minute toxin damage dealt by their metabolism, this makes each dart about as lethal as a stechkin shot in upfront damage reagents.add_reagent(/datum/reagent/toxin/acid, 5) reagents.add_reagent(/datum/reagent/consumable/frostoil, 10) //tempgun slowdown goes both ways and adds to the burn + +/obj/item/ammo_casing/shotgun/incapacitate + name = "custom incapacitating shot" + desc = "A shotgun casing filled with... something. used to incapacitate targets." + icon_state = "bountyshell" + projectile_type = /obj/item/projectile/bullet/pellet/shotgun_incapacitate + pellets = 12//double the pellets, but half the stun power of each, which makes this best for just dumping right in someone's face. + variance = 25 + custom_materials = list(/datum/material/iron=4000) \ No newline at end of file diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm index 8ebddaa24f..9ea030da99 100644 --- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm +++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm @@ -114,11 +114,13 @@ /obj/item/ammo_box/update_icon() . = ..() desc = "[initial(desc)] There [stored_ammo.len == 1 ? "is" : "are"] [stored_ammo.len] shell\s left!" - for (var/material in bullet_cost) - var/material_amount = bullet_cost[material] - material_amount = (material_amount*stored_ammo.len) + base_cost[material] - custom_materials[material] = material_amount - set_custom_materials(custom_materials)//make sure we setup the correct properties again + if(length(bullet_cost)) + var/temp_materials = custom_materials.Copy() + for (var/material in bullet_cost) + var/material_amount = bullet_cost[material] + material_amount = (material_amount*stored_ammo.len) + base_cost[material] + temp_materials[material] = material_amount + set_custom_materials(temp_materials) /obj/item/ammo_box/update_icon_state() switch(multiple_sprites) diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index 597c7203b4..e4674f4f4c 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -7,6 +7,11 @@ max_ammo = 7 multiple_sprites = 1 +/obj/item/ammo_box/a357/match + name = "speed loader (.357 Match)" + desc = "Designed to quickly reload revolvers. These rounds are manufactured within extremely tight tolerances, making them easy to show off trickshots with." + ammo_type = /obj/item/ammo_casing/a357/match + /obj/item/ammo_box/a357/ap name = "speed loader (.357 AP)" ammo_type = /obj/item/ammo_casing/a357/ap @@ -40,6 +45,16 @@ desc = "Designed to quickly reload revolvers. Iceblox bullets contain a cryogenic payload." ammo_type = /obj/item/ammo_casing/c38/iceblox +/obj/item/ammo_box/c38/dumdum + name = "speed loader (.38 DumDum)" + desc = "Designed to quickly reload revolvers. DumDum bullets shatter on impact and shred the target's innards, likely getting caught inside." + ammo_type = /obj/item/ammo_casing/c38/dumdum + +/obj/item/ammo_box/c38/match + name = "speed loader (.38 Match)" + desc = "Designed to quickly reload revolvers. These rounds are manufactured within extremely tight tolerances, making them easy to show off trickshots with." + ammo_type = /obj/item/ammo_casing/c38/match + /obj/item/ammo_box/c9mm name = "ammo box (9mm)" icon_state = "9mmbox" diff --git a/code/modules/projectiles/boxes_magazines/external/lmg.dm b/code/modules/projectiles/boxes_magazines/external/lmg.dm index e42c6a4719..55f5e491da 100644 --- a/code/modules/projectiles/boxes_magazines/external/lmg.dm +++ b/code/modules/projectiles/boxes_magazines/external/lmg.dm @@ -20,3 +20,7 @@ /obj/item/ammo_box/magazine/mm195x129/update_icon() ..() icon_state = "a762-[round(ammo_count(),10)]" + +/obj/item/ammo_box/magazine/mm712x82/match + name = "box magazine (Match 7.12x82mm)" + ammo_type = /obj/item/ammo_casing/mm712x82/match \ No newline at end of file diff --git a/code/modules/projectiles/boxes_magazines/external/rechargable.dm b/code/modules/projectiles/boxes_magazines/external/rechargable.dm index 7ed0cde50a..7a3c82489c 100644 --- a/code/modules/projectiles/boxes_magazines/external/rechargable.dm +++ b/code/modules/projectiles/boxes_magazines/external/rechargable.dm @@ -12,3 +12,105 @@ /obj/item/ammo_box/magazine/recharge/attack_self() //No popping out the "bullets" return + +// MWS Magazine // +/obj/item/ammo_box/magazine/mws_mag + name = "microbattery magazine" + desc = "A microbattery holder for the 'Big Iron'" + + icon = 'icons/obj/ammo.dmi' + icon_state = "mws_mag" + caliber = "mws" + ammo_type = /obj/item/ammo_casing/mws_batt + start_empty = TRUE + max_ammo = 3 + + var/list/modes = list() + +/obj/item/ammo_box/magazine/mws_mag/update_overlays() + .=..() + if(!stored_ammo.len) + return //Why bother + + var/x_offset = 5 + var/current = 0 + for(var/B in stored_ammo) + var/obj/item/ammo_casing/mws_batt/batt = B + var/mutable_appearance/cap = mutable_appearance(icon, "[initial(icon_state)]_cap", color = batt.type_color) + cap.pixel_x = current * x_offset //Caps don't need a pixel_y offset + . += cap + if(batt.cell.charge > 0) + var/ratio = CEILING(clamp(batt.cell.charge / batt.cell.maxcharge, 0, 1) * 4, 1) //4 is how many lights we have a sprite for + var/mutable_appearance/charge = mutable_appearance(icon, "[initial(icon_state)]_charge-[ratio]", color = "#29EAF4") //Could use battery color but eh. + charge.pixel_x = current * x_offset + . += charge + + current++ //Increment for offsets + + +// MWS Batteries // +/obj/item/ammo_casing/mws_batt + name = "\'MWS\' microbattery - UNKNOWN" + desc = "A miniature battery for an energy weapon." + icon = 'icons/obj/ammo.dmi' + icon_state = "mws_batt" + slot_flags = SLOT_BELT | SLOT_EARS + throwforce = 1 + + caliber = "mws" + var/type_color = null + var/type_name = null + + var/obj/item/stock_parts/cell/cell + var/cell_type = /obj/item/stock_parts/cell{charge = 600; maxcharge = 600} + + var/e_cost = 100 + projectile_type = /obj/item/projectile/beam + +/obj/item/ammo_casing/mws_batt/Initialize() + . = ..() + pixel_x = rand(-10, 10) + pixel_y = rand(-10, 10) + cell = new cell_type(src) + cell.give(cell.maxcharge) + update_icon() + +/obj/item/ammo_casing/mws_batt/update_overlays() + .=..() + + var/mutable_appearance/ends = mutable_appearance(icon, "[initial(icon_state)]_ends", color = type_color) + . += ends + +/obj/item/ammo_casing/mws_batt/get_cell() + return cell + +/obj/item/ammo_casing/mws_batt/proc/chargeshot() + if(cell.charge >= e_cost) + cell.use(e_cost) + newshot() + return + +// Specific batteries // +/obj/item/ammo_casing/mws_batt/lethal + name = "'MWS' microbattery - LETHAL" + type_color = "#bf3d3d" + type_name = "LETHAL" + projectile_type = /obj/item/projectile/beam + +/obj/item/ammo_casing/mws_batt/stun + name = "'MWS' microbattery - STUN" + type_color = "#0f81bc" + type_name = "STUN" + projectile_type = /obj/item/projectile/beam/disabler + +/obj/item/ammo_casing/mws_batt/xray + name = "'MWS' microbattery - XRAY" + type_color = "#32c025" + type_name = "XRAY" + projectile_type = /obj/item/projectile/beam/xray + +/obj/item/ammo_casing/mws_batt/ion + name = "'MWS' microbattery - ION" + type_color = "#d084d6" + type_name = "ION" + projectile_type = /obj/item/projectile/ion \ No newline at end of file diff --git a/code/modules/projectiles/boxes_magazines/internal/shotgun.dm b/code/modules/projectiles/boxes_magazines/internal/shotgun.dm index eb2572187c..1ae4b58f62 100644 --- a/code/modules/projectiles/boxes_magazines/internal/shotgun.dm +++ b/code/modules/projectiles/boxes_magazines/internal/shotgun.dm @@ -50,3 +50,8 @@ name = "riot shotgun internal magazine" ammo_type = /obj/item/ammo_casing/shotgun/rubbershot max_ammo = 6 + +/obj/item/ammo_box/magazine/internal/shot/bounty + name = "triple-barrel shotgun internal magazine" + ammo_type = /obj/item/ammo_casing/shotgun/incapacitate + max_ammo = 3 \ No newline at end of file diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 9c1a23174e..b90f0aee0d 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -15,7 +15,7 @@ throw_speed = 3 throw_range = 5 force = 5 - item_flags = NEEDS_PERMIT | NO_ATTACK_CHAIN_SOFT_STAMCRIT + item_flags = NEEDS_PERMIT attack_verb = list("struck", "hit", "bashed") var/fire_sound = "gunshot" @@ -77,13 +77,17 @@ var/dualwield_spread_mult = 1 //dualwield spread multiplier + /// Just 'slightly' snowflakey way to modify projectile damage for projectiles fired from this gun. + var/projectile_damage_multiplier = 1 + + var/automatic = 0 //can gun use it, 0 is no, anything above 0 is the delay between clicks in ds + /obj/item/gun/Initialize() . = ..() - if(pin) - if(no_pin_required) - pin = null - else - pin = new pin(src) + if(no_pin_required) + pin = null + else if(pin) + pin = new pin(src) if(gun_light) alight = new (src) if(zoomable) @@ -124,7 +128,7 @@ zoom(user, FALSE) //we can only stay zoomed in if it's in our hands //yeah and we only unzoom if we're actually zoomed using the gun!! //called after the gun has successfully fired its chambered ammo. -/obj/item/gun/proc/process_chamber() +/obj/item/gun/proc/process_chamber(mob/living/user) return FALSE //check if there's enough ammo/energy/whatever to shoot one time @@ -136,12 +140,13 @@ to_chat(user, "*click*") playsound(src, "gun_dry_fire", 30, 1) -/obj/item/gun/proc/shoot_live_shot(mob/living/user as mob|obj, pointblank = 0, mob/pbtarget = null, message = 1) +/obj/item/gun/proc/shoot_live_shot(mob/living/user, pointblank = FALSE, mob/pbtarget, message = 1, stam_cost = 0) if(recoil) shake_camera(user, recoil + 1, recoil) - if(isliving(user)) //CIT CHANGE - makes gun recoil cause staminaloss - user.adjustStaminaLossBuffered(getstamcost(user)*(firing && burst_size >= 2 ? 1/burst_size : 1)) //CIT CHANGE - ditto + if(stam_cost) //CIT CHANGE - makes gun recoil cause staminaloss + var/safe_cost = clamp(stam_cost, 0, STAMINA_NEAR_CRIT - user.getStaminaLoss())*(firing && burst_size >= 2 ? 1/burst_size : 1) + user.adjustStaminaLossBuffered(safe_cost) //CIT CHANGE - ditto if(suppressed) playsound(user, fire_sound, 10, 1) @@ -168,9 +173,10 @@ return if(firing) return - if(IS_STAMCRIT(user)) //respect stamina softcrit - to_chat(user, "You are too exhausted to fire [src]!") - return + var/stamloss = user.getStaminaLoss() + if(stamloss >= STAMINA_NEAR_SOFTCRIT) //The more tired you are, the less damage you do. + var/penalty = (stamloss - STAMINA_NEAR_SOFTCRIT)/(STAMINA_NEAR_CRIT - STAMINA_NEAR_SOFTCRIT)*STAM_CRIT_GUN_DELAY + user.changeNext_move(CLICK_CD_RANGE+(CLICK_CD_RANGE*penalty)) if(flag) //It's adjacent, is the user, or is on the user's person if(target in user.contents) //can't shoot stuff inside us. return @@ -211,8 +217,9 @@ var/bonus_spread = 0 var/loop_counter = 0 - bonus_spread += getinaccuracy(user) //CIT CHANGE - adds bonus spread while not aiming - if(ishuman(user) && user.a_intent == INTENT_HARM) + if(user) + bonus_spread = getinaccuracy(user, bonus_spread, stamloss) //CIT CHANGE - adds bonus spread while not aiming + if(ishuman(user) && user.a_intent == INTENT_HARM && weapon_weight <= WEAPON_LIGHT) var/mob/living/carbon/human/H = user for(var/obj/item/gun/G in H.held_items) if(G == src || G.weapon_weight >= WEAPON_MEDIUM) @@ -220,9 +227,11 @@ else if(G.can_trigger_gun(user)) bonus_spread += 24 * G.weapon_weight * G.dualwield_spread_mult loop_counter++ - addtimer(CALLBACK(G, /obj/item/gun.proc/process_fire, target, user, TRUE, params, null, bonus_spread), loop_counter) + var/stam_cost = G.getstamcost(user) + addtimer(CALLBACK(G, /obj/item/gun.proc/process_fire, target, user, TRUE, params, null, bonus_spread, stam_cost), loop_counter) - process_fire(target, user, TRUE, params, null, bonus_spread) + var/stam_cost = getstamcost(user) + process_fire(target, user, TRUE, params, null, bonus_spread, stam_cost) /obj/item/gun/can_trigger_gun(mob/living/user) . = ..() @@ -253,21 +262,21 @@ /obj/item/gun/proc/on_cooldown() return busy_action || firing || ((last_fire + fire_delay) > world.time) -/obj/item/gun/proc/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) +/obj/item/gun/proc/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0, stam_cost = 0) add_fingerprint(user) if(on_cooldown()) return firing = TRUE - . = do_fire(target, user, message, params, zone_override, bonus_spread) + . = do_fire(target, user, message, params, zone_override, bonus_spread, stam_cost) firing = FALSE last_fire = world.time if(user) user.update_inv_hands() - SEND_SIGNAL(user, COMSIG_LIVING_GUN_PROCESS_FIRE, target, params, zone_override) + SEND_SIGNAL(user, COMSIG_LIVING_GUN_PROCESS_FIRE, target, params, zone_override, bonus_spread, stam_cost) -/obj/item/gun/proc/do_fire(atom/target, mob/living/user, message = TRUE, params, zone_override = "", bonus_spread = 0) +/obj/item/gun/proc/do_fire(atom/target, mob/living/user, message = TRUE, params, zone_override = "", bonus_spread = 0, stam_cost = 0) var/sprd = 0 var/randomized_gun_spread = 0 var/rand_spr = rand() @@ -285,7 +294,7 @@ sleep(burst_shot_delay) if(QDELETED(src)) break - do_burst_shot(user, target, message, params, zone_override, sprd, randomized_gun_spread, randomized_bonus_spread, rand_spr, i) + do_burst_shot(user, target, message, params, zone_override, sprd, randomized_gun_spread, randomized_bonus_spread, rand_spr, i, stam_cost) else if(chambered) sprd = round((rand() - 0.5) * DUALWIELD_PENALTY_EXTRA_MULTIPLIER * (randomized_gun_spread + randomized_bonus_spread)) @@ -295,19 +304,19 @@ return else if(get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot - shoot_live_shot(user, 1, target, message) + shoot_live_shot(user, 1, target, message, stam_cost) else - shoot_live_shot(user, 0, target, message) + shoot_live_shot(user, 0, target, message, stam_cost) else shoot_with_empty_chamber(user) return - process_chamber() + process_chamber(user) update_icon() SSblackbox.record_feedback("tally", "gun_fired", 1, type) return TRUE -/obj/item/gun/proc/do_burst_shot(mob/living/user, atom/target, message = TRUE, params=null, zone_override = "", sprd = 0, randomized_gun_spread = 0, randomized_bonus_spread = 0, rand_spr = 0, iteration = 0) +/obj/item/gun/proc/do_burst_shot(mob/living/user, atom/target, message = TRUE, params=null, zone_override = "", sprd = 0, randomized_gun_spread = 0, randomized_bonus_spread = 0, rand_spr = 0, iteration = 0, stam_cost = 0) if(!user || !firing) firing = FALSE return FALSE @@ -331,33 +340,34 @@ return FALSE else if(get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot - shoot_live_shot(user, 1, target, message) + shoot_live_shot(user, 1, target, message, stam_cost) else - shoot_live_shot(user, 0, target, message) + shoot_live_shot(user, 0, target, message, stam_cost) if (iteration >= burst_size) firing = FALSE else shoot_with_empty_chamber(user) firing = FALSE return FALSE - process_chamber() + process_chamber(user) update_icon() return TRUE -/obj/item/gun/attack(mob/M as mob, mob/user) +/obj/item/gun/attack(mob/living/M, mob/user) if(user.a_intent == INTENT_HARM) //Flogging if(bayonet) M.attackby(bayonet, user) + attack_delay_done = TRUE return else return ..() - return + attack_delay_done = TRUE //we are firing the gun, not bashing people with its butt. /obj/item/gun/attack_obj(obj/O, mob/user) if(user.a_intent == INTENT_HARM) if(bayonet) O.attackby(bayonet, user) - return + return TRUE return ..() /obj/item/gun/attackby(obj/item/I, mob/user, params) @@ -493,7 +503,7 @@ if(chambered && chambered.BB) chambered.BB.damage *= 5 - process_fire(target, user, TRUE, params) + process_fire(target, user, TRUE, params, stam_cost = getstamcost(user)) /obj/item/gun/proc/unlock() //used in summon guns and as a convience for admins if(pin) @@ -561,12 +571,25 @@ chambered = null update_icon() -/obj/item/gun/proc/getinaccuracy(mob/living/user) - if(!isliving(user)) - return FALSE - else - var/mob/living/holdingdude = user - if(istype(holdingdude) && (holdingdude.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) - return 0 - else - return ((weapon_weight * 25) * inaccuracy_modifier) +/obj/item/gun/proc/getinaccuracy(mob/living/user, bonus_spread, stamloss) + if(inaccuracy_modifier == 0) + return bonus_spread + var/base_inaccuracy = weapon_weight * 25 * inaccuracy_modifier + var/aiming_delay = 0 //Otherwise aiming would be meaningless for slower guns such as sniper rifles and launchers. + if(fire_delay) + var/penalty = (last_fire + GUN_AIMING_TIME + fire_delay) - world.time + if(penalty > 0) //Yet we only penalize users firing it multiple times in a haste. fire_delay isn't necessarily cumbersomeness. + aiming_delay = penalty + if(SEND_SIGNAL(user, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_ACTIVE)) //To be removed in favor of something less tactless later. + base_inaccuracy /= 1.5 + if(stamloss > STAMINA_NEAR_SOFTCRIT) //This can null out the above bonus. + base_inaccuracy *= 1 + (stamloss - STAMINA_NEAR_SOFTCRIT)/(STAMINA_NEAR_CRIT - STAMINA_NEAR_SOFTCRIT)*0.5 + var/mult = max((GUN_AIMING_TIME + aiming_delay + user.last_click_move - world.time)/GUN_AIMING_TIME, -0.5) //Yes, there is a bonus for taking time aiming. + if(mult < 0) //accurate weapons should provide a proper bonus with negative inaccuracy. the opposite is true too. + mult *= 1/inaccuracy_modifier + return max(bonus_spread + (base_inaccuracy * mult), 0) //no negative spread. + +/obj/item/gun/proc/getstamcost(mob/living/carbon/user) + . = recoil + if(user && !user.has_gravity()) + . = recoil*5 diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index e45483569e..4aeefde6d4 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -25,7 +25,7 @@ else icon_state = "[initial(icon_state)][suppressed ? "-suppressed" : ""][sawn_off ? "-sawn" : ""]" -/obj/item/gun/ballistic/process_chamber(empty_chamber = 1) +/obj/item/gun/ballistic/process_chamber(mob/living/user, empty_chamber = 1) var/obj/item/ammo_casing/AC = chambered //Find chambered round if(istype(AC)) //there's a chambered round if(casing_ejector) diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index 31823dccf6..39956ef3e8 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -365,7 +365,7 @@ can_unsuppress = TRUE can_suppress = TRUE w_class = WEIGHT_CLASS_NORMAL - inaccuracy_modifier = 0 + inaccuracy_modifier = 0.5 zoomable = TRUE zoom_amt = 10 //Long range, enough to see in front of you, but no tiles behind you. zoom_out_amt = 13 diff --git a/code/modules/projectiles/guns/ballistic/bow.dm b/code/modules/projectiles/guns/ballistic/bow.dm index 3f3d2c6f47..dbf249b3f8 100644 --- a/code/modules/projectiles/guns/ballistic/bow.dm +++ b/code/modules/projectiles/guns/ballistic/bow.dm @@ -59,7 +59,7 @@ /obj/item/gun/ballistic/bow/pipe name = "pipe bow" - desc = "Some sort of pipe made projectile weapon made of a silk string and lots of bending. Used to fire arrows." + desc = "Some sort of pipe-based projectile weapon made of string and lots of bending. Used to fire arrows." icon_state = "pipebow" item_state = "pipebow" - force = 0 + force = 2 diff --git a/code/modules/projectiles/guns/ballistic/laser_gatling.dm b/code/modules/projectiles/guns/ballistic/laser_gatling.dm index 366aa367b4..c2dd5bb42d 100644 --- a/code/modules/projectiles/guns/ballistic/laser_gatling.dm +++ b/code/modules/projectiles/guns/ballistic/laser_gatling.dm @@ -53,6 +53,7 @@ ..() /obj/item/minigunpack/dropped(mob/user) + . = ..() if(armed) user.dropItemToGround(gun, TRUE) @@ -125,12 +126,13 @@ return /obj/item/gun/ballistic/minigun/dropped(mob/user) + . = ..() if(ammo_pack) ammo_pack.attach_gun(user) else qdel(src) -/obj/item/gun/ballistic/minigun/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) +/obj/item/gun/ballistic/minigun/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0, stam_cost = 0) if(ammo_pack) if(ammo_pack.overheat < ammo_pack.overheat_max) ammo_pack.overheat += burst_size @@ -144,4 +146,5 @@ . = ..() /obj/item/gun/ballistic/minigun/dropped(mob/living/user) + . = ..() ammo_pack.attach_gun(user) diff --git a/code/modules/projectiles/guns/ballistic/launchers.dm b/code/modules/projectiles/guns/ballistic/launchers.dm index db614b97d3..004f78235a 100644 --- a/code/modules/projectiles/guns/ballistic/launchers.dm +++ b/code/modules/projectiles/guns/ballistic/launchers.dm @@ -6,7 +6,7 @@ name = "grenade launcher" icon_state = "dshotgun-sawn" item_state = "gun" - inaccuracy_modifier = 0 + inaccuracy_modifier = 0.5 mag_type = /obj/item/ammo_box/magazine/internal/grenadelauncher fire_sound = 'sound/weapons/grenadelaunch.ogg' w_class = WEIGHT_CLASS_NORMAL @@ -87,7 +87,7 @@ pin = /obj/item/firing_pin/implant/pindicate burst_size = 1 fire_delay = 0 - inaccuracy_modifier = 0 + inaccuracy_modifier = 0.25 casing_ejector = FALSE weapon_weight = WEAPON_HEAVY magazine_wording = "rocket" @@ -144,13 +144,13 @@ user.visible_message("[user] aims [src] at the ground! It looks like [user.p_theyre()] performing a sick rocket jump!", \ "You aim [src] at the ground to perform a bisnasty rocket jump...") if(can_shoot()) - user.notransform = TRUE + user.mob_transforming = TRUE playsound(src, 'sound/vehicles/rocketlaunch.ogg', 80, 1, 5) animate(user, pixel_z = 300, time = 30, easing = LINEAR_EASING) sleep(70) animate(user, pixel_z = 0, time = 5, easing = LINEAR_EASING) sleep(5) - user.notransform = FALSE + user.mob_transforming = FALSE process_fire(user, user, TRUE) if(!QDELETED(user)) //if they weren't gibbed by the explosion, take care of them for good. user.gib() diff --git a/code/modules/projectiles/guns/ballistic/magweapon.dm b/code/modules/projectiles/guns/ballistic/magweapon.dm index e71f414bd8..74b8b210a7 100644 --- a/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -14,7 +14,7 @@ spread = 0 recoil = 0.1 casing_ejector = FALSE - inaccuracy_modifier = 0 + inaccuracy_modifier = 0.15 dualwield_spread_mult = 1.4 weapon_weight = WEAPON_MEDIUM w_class = WEIGHT_CLASS_BULKY @@ -46,7 +46,7 @@ return 0 . = ..() -/obj/item/gun/ballistic/automatic/magrifle/shoot_live_shot() +/obj/item/gun/ballistic/automatic/magrifle/shoot_live_shot(mob/living/user, pointblank = FALSE, mob/pbtarget, message = 1, stam_cost = 0) var/obj/item/ammo_casing/caseless/magnetic/shot = chambered cell.use(shot.energy_cost) . = ..() diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm index e15c49b891..cdaadb5c3b 100644 --- a/code/modules/projectiles/guns/ballistic/pistol.dm +++ b/code/modules/projectiles/guns/ballistic/pistol.dm @@ -115,6 +115,7 @@ icon_state = "flatgun" /obj/item/gun/ballistic/automatic/pistol/stickman/pickup(mob/living/user) + . = ..() to_chat(user, "As you try to pick up [src], it slips out of your grip..") if(prob(50)) to_chat(user, "..and vanishes from your vision! Where the hell did it go?") diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index afe2b9ca3e..289b43a669 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -102,7 +102,7 @@ . = ..() safe_calibers = magazine.caliber -/obj/item/gun/ballistic/revolver/detective/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) +/obj/item/gun/ballistic/revolver/detective/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0, stam_cost = 0) if(chambered && !(chambered.caliber in safe_calibers)) if(prob(70 - (magazine.ammo_count() * 10))) //minimum probability of 10, maximum of 60 playsound(user, fire_sound, 50, 1) @@ -242,7 +242,7 @@ user.visible_message("*click*") playsound(src, "gun_dry_fire", 30, 1) -/obj/item/gun/ballistic/revolver/russian/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) +/obj/item/gun/ballistic/revolver/russian/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0, stam_cost = 0) add_fingerprint(user) playsound(src, "gun_dry_fire", 30, TRUE) user.visible_message("[user.name] tries to fire \the [src] at the same time, but only succeeds at looking like an idiot.", "\The [src]'s anti-combat mechanism prevents you from firing it at the same time!") @@ -313,25 +313,29 @@ else to_chat(user, "[src] is empty!") -// IMPROVISED SHOTGUN // +///////////////////////////// +// IMPROVISED SHOTGUN // +///////////////////////////// /obj/item/gun/ballistic/revolver/doublebarrel/improvised name = "improvised shotgun" - desc = "Essentially a tube that aims shotgun shells." + desc = "A shoddy break-action breechloaded shotgun. Its lacklustre construction shows in its lesser effectiveness." icon_state = "ishotgun" item_state = "shotgun" w_class = WEIGHT_CLASS_BULKY + weapon_weight = WEAPON_MEDIUM // prevents shooting 2 at once, but doesn't require 2 hands force = 10 slot_flags = null mag_type = /obj/item/ammo_box/magazine/internal/shot/improvised sawn_desc = "I'm just here for the gasoline." unique_reskin = null + projectile_damage_multiplier = 0.9 var/slung = FALSE /obj/item/gun/ballistic/revolver/doublebarrel/improvised/attackby(obj/item/A, mob/user, params) ..() if(istype(A, /obj/item/stack/cable_coil) && !sawn_off) - if(A.use_tool(src, user, 0, 10, max_level = JOB_SKILL_BASIC)) + if(A.use_tool(src, user, 0, 10, skill_gain_mult = EASY_USE_TOOL_MULT)) slot_flags = ITEM_SLOT_BACK to_chat(user, "You tie the lengths of cable to the shotgun, making a sling.") slung = TRUE @@ -353,7 +357,7 @@ /obj/item/gun/ballistic/revolver/doublebarrel/improvised/sawn name = "sawn-off improvised shotgun" - desc = "A single-shot shotgun. Better not miss." + desc = "The barrel and stock have been sawn and filed down; it can fit in backpacks. You wont want to shoot two of these at once if you value your wrists." icon_state = "ishotgun" item_state = "gun" w_class = WEIGHT_CLASS_NORMAL @@ -372,3 +376,114 @@ user.emote("scream") user.drop_all_held_items() user.DefaultCombatKnockdown(80) + +// -------------- HoS Modular Weapon System ------------- +// ---------- Code originally from VoreStation ---------- +/obj/item/gun/ballistic/revolver/mws + name = "MWS-01 'Big Iron'" + desc = "Modular Weapons System" + + icon = 'icons/obj/guns/projectile.dmi' + icon_state = "mws" + + fire_sound = 'sound/weapons/Taser.ogg' + + mag_type = /obj/item/ammo_box/magazine/mws_mag + spawnwithmagazine = FALSE + + recoil = 0 + + var/charge_sections = 6 + +/obj/item/gun/ballistic/revolver/mws/examine(mob/user) + . = ..() + . += "Alt-click to remove the magazine." + +/obj/item/gun/ballistic/revolver/mws/shoot_with_empty_chamber(mob/living/user as mob|obj) + process_chamber(user) + if(!chambered || !chambered.BB) + to_chat(user, "*click*") + playsound(src, "gun_dry_fire", 30, 1) + + +/obj/item/gun/ballistic/revolver/mws/process_chamber(mob/living/user) + if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired... + var/obj/item/ammo_casing/mws_batt/shot = chambered + if(shot.cell.charge >= shot.e_cost) + shot.chargeshot() + else + for(var/B in magazine.stored_ammo) + var/obj/item/ammo_casing/mws_batt/other_batt = B + if(istype(other_batt,shot) && other_batt.cell.charge >= other_batt.e_cost) + switch_to(other_batt, user) + break + update_icon() + +/obj/item/gun/ballistic/revolver/mws/proc/switch_to(obj/item/ammo_casing/mws_batt/new_batt, mob/living/user) + if(ishuman(user)) + if(chambered && new_batt.type == chambered.type) + to_chat(user,"[src] is now using the next [new_batt.type_name] power cell.") + else + to_chat(user,"[src] is now firing [new_batt.type_name].") + + chambered = new_batt + update_icon() + +/obj/item/gun/ballistic/revolver/mws/attack_self(mob/living/user) + if(!chambered) + return + + var/list/stored_ammo = magazine.stored_ammo + + if(stored_ammo.len == 1) + return //silly you. + + //Find an ammotype that ISN'T the same, or exhaust the list and don't change. + var/our_slot = stored_ammo.Find(chambered) + + for(var/index in 1 to stored_ammo.len) + var/true_index = ((our_slot + index - 1) % stored_ammo.len) + 1 // Stupid ONE BASED lists! + var/obj/item/ammo_casing/mws_batt/next_batt = stored_ammo[true_index] + if(chambered != next_batt && !istype(next_batt, chambered.type) && next_batt.cell.charge >= next_batt.e_cost) + switch_to(next_batt, user) + break + +/obj/item/gun/ballistic/revolver/mws/AltClick(mob/living/user) + .=..() + if(magazine) + user.put_in_hands(magazine) + magazine.update_icon() + if(magazine.ammo_count()) + playsound(src, 'sound/weapons/gun_magazine_remove_full.ogg', 70, 1) + else + playsound(src, "gun_remove_empty_magazine", 70, 1) + magazine = null + to_chat(user, "You pull the magazine out of [src].") + if(chambered) + chambered = null + update_icon() + +/obj/item/gun/ballistic/revolver/mws/update_overlays() + .=..() + if(!chambered) + return + + var/obj/item/ammo_casing/mws_batt/batt = chambered + var/batt_color = batt.type_color //Used many times + + //Mode bar + var/image/mode_bar = image(icon, icon_state = "[initial(icon_state)]_type") + mode_bar.color = batt_color + . += mode_bar + + //Barrel color + var/mutable_appearance/barrel_color = mutable_appearance(icon, "[initial(icon_state)]_barrel", color = batt_color) + barrel_color.alpha = 150 + . += barrel_color + + //Charge bar + var/ratio = can_shoot() ? CEILING(clamp(batt.cell.charge / batt.cell.maxcharge, 0, 1) * charge_sections, 1) : 0 + for(var/i = 0, i < ratio, i++) + var/mutable_appearance/charge_bar = mutable_appearance(icon, "[initial(icon_state)]_charge", color = batt_color) + charge_bar.pixel_x = i + . += charge_bar \ No newline at end of file diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 4894a8d8eb..873b129c8f 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -23,7 +23,7 @@ A.update_icon() update_icon() -/obj/item/gun/ballistic/shotgun/process_chamber(empty_chamber = 0) +/obj/item/gun/ballistic/shotgun/process_chamber(mob/living/user, empty_chamber = 0) return ..() //changed argument value /obj/item/gun/ballistic/shotgun/chamber_round() @@ -116,7 +116,7 @@ icon_state = "moistnugget" item_state = "moistnugget" slot_flags = 0 //no ITEM_SLOT_BACK sprite, alas - inaccuracy_modifier = 0 + inaccuracy_modifier = 0.5 mag_type = /obj/item/ammo_box/magazine/internal/boltaction var/bolt_open = FALSE can_bayonet = TRUE @@ -126,10 +126,12 @@ /obj/item/gun/ballistic/shotgun/boltaction/improvised name = "Makeshift 7.62mm Rifle" icon_state = "ishotgun" + icon_state = "irifle" item_state = "shotgun" - desc = "A large zip gun more or less that takes a single 7.62mm bullet" + desc = "A bolt-action breechloaded rifle that takes 7.62mm bullets." mag_type = /obj/item/ammo_box/magazine/internal/boltaction/improvised can_bayonet = FALSE + var/slung = FALSE /obj/item/gun/ballistic/shotgun/boltaction/pump(mob/M) playsound(M, 'sound/weapons/shotgunpump.ogg', 60, 1) @@ -151,6 +153,22 @@ . = ..() . += "The bolt is [bolt_open ? "open" : "closed"]." +/obj/item/gun/ballistic/shotgun/boltaction/improvised/attackby(obj/item/A, mob/user, params) + ..() + if(istype(A, /obj/item/stack/cable_coil) && !sawn_off) + if(A.use_tool(src, user, 0, 10, skill_gain_mult = EASY_USE_TOOL_MULT)) + slot_flags = ITEM_SLOT_BACK + to_chat(user, "You tie the lengths of cable to the rifle, making a sling.") + slung = TRUE + update_icon() + else + to_chat(user, "You need at least ten lengths of cable if you want to make a sling!") + +/obj/item/gun/ballistic/shotgun/boltaction/improvised/update_icon() + ..() + if(slung) + icon_state += "sling" + /obj/item/gun/ballistic/shotgun/boltaction/enchanted name = "enchanted bolt action rifle" desc = "Careful not to lose your head." @@ -190,7 +208,7 @@ /obj/item/gun/ballistic/shotgun/boltaction/enchanted/attack_self() return -/obj/item/gun/ballistic/shotgun/boltaction/enchanted/shoot_live_shot(mob/living/user as mob|obj, pointblank = 0, mob/pbtarget = null, message = 1) +/obj/item/gun/ballistic/shotgun/boltaction/enchanted/shoot_live_shot(mob/living/user, pointblank = FALSE, mob/pbtarget, message = 1, stam_cost = 0) ..() if(guns_left) var/obj/item/gun/ballistic/shotgun/boltaction/enchanted/GUN = new gun_type @@ -204,7 +222,7 @@ // Automatic Shotguns// -/obj/item/gun/ballistic/shotgun/automatic/shoot_live_shot(mob/living/user as mob|obj) +/obj/item/gun/ballistic/shotgun/automatic/shoot_live_shot(mob/living/user, pointblank = FALSE, mob/pbtarget, message = 1, stam_cost = 0) ..() src.pump(user) @@ -302,3 +320,18 @@ return TRUE // DOUBLE BARRELED SHOTGUN and IMPROVISED SHOTGUN are in revolver.dm + +/obj/item/gun/ballistic/shotgun/doublebarrel/hook + name = "hook modified sawn-off shotgun" + desc = "Range isn't an issue when you can bring your victim to you." + icon_state = "hookshotgun" + item_state = "shotgun" + mag_type = /obj/item/ammo_box/magazine/internal/shot/bounty + w_class = WEIGHT_CLASS_BULKY + weapon_weight = WEAPON_MEDIUM + force = 16 //it has a hook on it + attack_verb = list("slashed", "hooked", "stabbed") + hitsound = 'sound/weapons/bladeslice.ogg' + //our hook gun! + var/obj/item/gun/magic/hook/bounty/hook + var/toggled = FALSE diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm index 4060a02c0f..5cdd773894 100644 --- a/code/modules/projectiles/guns/ballistic/toy.dm +++ b/code/modules/projectiles/guns/ballistic/toy.dm @@ -57,7 +57,7 @@ casing_ejector = FALSE can_suppress = FALSE -/obj/item/gun/ballistic/shotgun/toy/process_chamber(empty_chamber = 0) +/obj/item/gun/ballistic/shotgun/toy/process_chamber(mob/living/user, empty_chamber = 0) ..() if(chambered && !chambered.BB) qdel(chambered) diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index ff3f127817..8f9e364302 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -127,12 +127,12 @@ chambered = null //either way, released the prepared shot recharge_newshot() //try to charge a new shot -/obj/item/gun/energy/do_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) +/obj/item/gun/energy/do_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0, stam_cost = 0) if(!chambered && can_shoot()) process_chamber() // If the gun was drained and then recharged, load a new shot. return ..() -/obj/item/gun/energy/do_burst_shot(mob/living/user, atom/target, message = TRUE, params = null, zone_override="", sprd = 0, randomized_gun_spread = 0, randomized_bonus_spread = 0, rand_spr = 0, iteration = 0) +/obj/item/gun/energy/do_burst_shot(mob/living/user, atom/target, message = TRUE, params = null, zone_override="", sprd = 0, randomized_gun_spread = 0, randomized_bonus_spread = 0, rand_spr = 0, iteration = 0, stam_cost = 0) if(!chambered && can_shoot()) process_chamber() // Ditto. return ..() diff --git a/code/modules/projectiles/guns/energy/dueling.dm b/code/modules/projectiles/guns/energy/dueling.dm index 7fa81f513f..80bb269b21 100644 --- a/code/modules/projectiles/guns/energy/dueling.dm +++ b/code/modules/projectiles/guns/energy/dueling.dm @@ -237,7 +237,7 @@ return FALSE return TRUE -/obj/item/gun/energy/dueling/process_fire(atom/target, mob/living/user, message, params, zone_override, bonus_spread) +/obj/item/gun/energy/dueling/process_fire(atom/target, mob/living/user, message, params, zone_override, bonus_spread = 0, stam_cost = 0) if(duel.state == DUEL_READY) duel.confirmations[src] = TRUE to_chat(user,"You confirm your readiness.") diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index 71ee8bc5ef..1b835d35a4 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -110,7 +110,7 @@ fail_tick-- ..() -/obj/item/gun/energy/e_gun/nuclear/shoot_live_shot() +/obj/item/gun/energy/e_gun/nuclear/shoot_live_shot(mob/living/user, pointblank = FALSE, mob/pbtarget, message = 1, stam_cost = 0) failcheck() update_icon() ..() diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index c5660624a2..0c723199a1 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -34,13 +34,6 @@ righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' ammo_type = list(/obj/item/ammo_casing/energy/kinetic/premium) -/obj/item/gun/energy/kinetic_accelerator/premiumka/dropped(mob/user) - . = ..() - if(!QDELING(src) && !holds_charge) - // Put it on a delay because moving item from slot to hand - // calls dropped(). - addtimer(CALLBACK(src, .proc/empty_if_not_held), 1.60) - /obj/item/ammo_casing/energy/kinetic/premium projectile_type = /obj/item/projectile/kinetic/premium @@ -60,6 +53,12 @@ else cut_overlays() +/obj/item/gun/energy/kinetic_accelerator/getinaccuracy(mob/living/user, bonus_spread, stamloss) + var/old_fire_delay = fire_delay //It's pretty irrelevant tbh but whatever. + fire_delay = overheat_time + . = ..() + fire_delay = old_fire_delay + /obj/item/gun/energy/kinetic_accelerator/examine(mob/user) . = ..() if(max_mod_capacity) @@ -128,7 +127,7 @@ if(!holds_charge) empty() -/obj/item/gun/energy/kinetic_accelerator/shoot_live_shot() +/obj/item/gun/energy/kinetic_accelerator/shoot_live_shot(mob/living/user, pointblank = FALSE, mob/pbtarget, message = 1, stam_cost = 0) . = ..() attempt_reload() @@ -145,7 +144,7 @@ addtimer(CALLBACK(src, .proc/empty_if_not_held), 2) /obj/item/gun/energy/kinetic_accelerator/proc/empty_if_not_held() - if(!ismob(loc)) + if(!ismob(loc) && !istype(loc, /obj/item/integrated_circuit)) empty() /obj/item/gun/energy/kinetic_accelerator/proc/empty() @@ -207,6 +206,12 @@ var/obj/item/gun/energy/kinetic_accelerator/KA = loc KA.modify_projectile(BB) +/obj/item/gun/energy/kinetic_accelerator/getstamcost(mob/living/carbon/user) + if(user && !lavaland_equipment_pressure_check(get_turf(user))) + return 0 + else + return ..() + //Projectiles /obj/item/projectile/kinetic name = "kinetic force" diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index bcd3a97ccd..72ac9620b5 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -62,7 +62,7 @@ slot_flags = ITEM_SLOT_BACK w_class = WEIGHT_CLASS_BULKY weapon_weight = WEAPON_MEDIUM - inaccuracy_modifier = 0.5 + inaccuracy_modifier = 0.7 force = 10 throwforce = 10 cell_type = /obj/item/stock_parts/cell/lascarbine diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 807b414ce4..b55e26b6a3 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -89,7 +89,7 @@ suppressed = TRUE ammo_type = list(/obj/item/ammo_casing/energy/bolt) weapon_weight = WEAPON_LIGHT - inaccuracy_modifier = 0 + inaccuracy_modifier = 0.25 obj_flags = 0 overheat_time = 20 holds_charge = TRUE @@ -126,7 +126,7 @@ attack_verb = list("attacked", "slashed", "cut", "sliced") force = 12 sharpness = IS_SHARP - inaccuracy_modifier = 0 + inaccuracy_modifier = 0.25 can_charge = 0 heat = 3800 @@ -182,7 +182,7 @@ item_state = null icon_state = "wormhole_projector" pin = null - inaccuracy_modifier = 0 + inaccuracy_modifier = 0.25 var/obj/effect/portal/p_blue var/obj/effect/portal/p_orange var/atmos_link = FALSE @@ -318,7 +318,7 @@ icon_state = "emitter_carbine" force = 12 w_class = WEIGHT_CLASS_SMALL - inaccuracy_modifier = 0 + inaccuracy_modifier = 0.25 cell_type = /obj/item/stock_parts/cell/super ammo_type = list(/obj/item/ammo_casing/energy/emitter) diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm index ce87eddc67..0c8a9deaf8 100644 --- a/code/modules/projectiles/guns/magic.dm +++ b/code/modules/projectiles/guns/magic.dm @@ -9,7 +9,7 @@ fire_sound = 'sound/weapons/emitter.ogg' flags_1 = CONDUCT_1 w_class = WEIGHT_CLASS_HUGE - var/checks_antimagic = FALSE + var/checks_antimagic = TRUE var/max_charges = 6 var/charges = 0 var/recharge_rate = 4 diff --git a/code/modules/projectiles/guns/magic/staff.dm b/code/modules/projectiles/guns/magic/staff.dm index c993c0013a..b23b059d89 100644 --- a/code/modules/projectiles/guns/magic/staff.dm +++ b/code/modules/projectiles/guns/magic/staff.dm @@ -45,7 +45,7 @@ /obj/item/projectile/magic/death, /obj/item/projectile/magic/teleport, /obj/item/projectile/magic/door, /obj/item/projectile/magic/aoe/fireball, /obj/item/projectile/magic/spellblade, /obj/item/projectile/magic/arcane_barrage, /obj/item/projectile/magic/locker) -/obj/item/gun/magic/staff/chaos/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) +/obj/item/gun/magic/staff/chaos/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0, stam_cost = 0) chambered.projectile_type = pick(allowed_projectile_types) . = ..() diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm index f8ddcb5aae..bcb074023f 100644 --- a/code/modules/projectiles/guns/misc/beam_rifle.dm +++ b/code/modules/projectiles/guns/misc/beam_rifle.dm @@ -77,7 +77,6 @@ var/static/image/drained_overlay = image(icon = 'icons/obj/guns/energy.dmi', icon_state = "esniper_empty") var/datum/action/item_action/zoom_lock_action/zoom_lock_action - var/mob/listeningTo /obj/item/gun/energy/beam_rifle/debug delay = 0 @@ -178,7 +177,6 @@ STOP_PROCESSING(SSfastprocess, src) set_user(null) QDEL_LIST(current_tracers) - listeningTo = null return ..() /obj/item/gun/energy/beam_rifle/proc/aiming_beam(force_update = FALSE) @@ -260,17 +258,12 @@ if(user == current_user) return stop_aiming(current_user) - if(listeningTo) - UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED) - listeningTo = null - if(istype(current_user)) - LAZYREMOVE(current_user.mousemove_intercept_objects, src) + if(current_user) + UnregisterSignal(current_user, COMSIG_MOVABLE_MOVED) current_user = null if(istype(user)) current_user = user - LAZYOR(current_user.mousemove_intercept_objects, src) RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/on_mob_move) - listeningTo = user /obj/item/gun/energy/beam_rifle/onMouseDrag(src_object, over_object, src_location, over_location, params, mob) if(aiming) @@ -295,7 +288,7 @@ if(istype(object, /obj/screen) && !istype(object, /obj/screen/click_catcher)) return process_aim() - if(fire_check()) + if(fire_check() && can_trigger_gun(M)) sync_ammo() do_fire(M.client.mouseObject, M, FALSE, M.client.mouseParams, M.zone_selected) stop_aiming() diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index c05ec1c4be..9db5161247 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -9,7 +9,7 @@ throw_speed = 3 throw_range = 7 force = 4 - inaccuracy_modifier = 0 + inaccuracy_modifier = 0.25 custom_materials = list(/datum/material/iron=2000) clumsy_check = FALSE fire_sound = 'sound/items/syringeproj.ogg' diff --git a/code/modules/projectiles/guns/misc/grenade_launcher.dm b/code/modules/projectiles/guns/misc/grenade_launcher.dm index 6113bc4857..86dd0c6ce4 100644 --- a/code/modules/projectiles/guns/misc/grenade_launcher.dm +++ b/code/modules/projectiles/guns/misc/grenade_launcher.dm @@ -31,7 +31,7 @@ /obj/item/gun/grenadelauncher/can_shoot() return grenades.len -/obj/item/gun/grenadelauncher/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) +/obj/item/gun/grenadelauncher/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0, stam_cost = 0) user.visible_message("[user] fired a grenade!", \ "You fire the grenade launcher!") var/obj/item/grenade/F = grenades[1] //Now with less copypasta! diff --git a/code/modules/projectiles/guns/misc/medbeam.dm b/code/modules/projectiles/guns/misc/medbeam.dm index 8d800357df..e841422893 100644 --- a/code/modules/projectiles/guns/misc/medbeam.dm +++ b/code/modules/projectiles/guns/misc/medbeam.dm @@ -41,7 +41,7 @@ on_beam_release(current_target) current_target = null -/obj/item/gun/medbeam/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) +/obj/item/gun/medbeam/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0, stam_cost = 0) if(isliving(user)) add_fingerprint(user) diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm index a5f871bdf0..dc2a1df03a 100644 --- a/code/modules/projectiles/guns/misc/syringe_gun.dm +++ b/code/modules/projectiles/guns/misc/syringe_gun.dm @@ -7,7 +7,7 @@ throw_speed = 3 throw_range = 7 force = 4 - inaccuracy_modifier = 0 + inaccuracy_modifier = 0.25 custom_materials = list(/datum/material/iron=2000) clumsy_check = 0 fire_sound = 'sound/items/syringeproj.ogg' @@ -160,7 +160,7 @@ item_state = "blowgun" fire_sound = 'sound/items/syringeproj.ogg' -/obj/item/gun/syringe/blowgun/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) +/obj/item/gun/syringe/blowgun/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0, stam_cost = 0) visible_message("[user] starts aiming with a blowgun!") if(do_after(user, 25, target = src)) user.adjustStaminaLoss(20) diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm index 8a1db49762..cef730366e 100644 --- a/code/modules/projectiles/pins.dm +++ b/code/modules/projectiles/pins.dm @@ -13,11 +13,16 @@ var/pin_removeable = 0 // Can be replaced by any pin. var/obj/item/gun/gun -/obj/item/firing_pin/New(newloc) - ..() +/obj/item/firing_pin/Initialize(newloc) + . = ..() if(istype(newloc, /obj/item/gun)) gun = newloc +/obj/item/firing_pin/Destroy() + if(gun) + gun.pin = null + return ..() + /obj/item/firing_pin/afterattack(atom/target, mob/user, proximity_flag) . = ..() if(proximity_flag) @@ -224,24 +229,6 @@ suit_requirement = /obj/item/clothing/suit/bluetag tagcolor = "blue" -/obj/item/firing_pin/Destroy() - if(gun) - gun.pin = null - return ..() - -//Station Locked - -/obj/item/firing_pin/away - name = "station locked pin" - desc = "A firing pin that only will fire when off the station." - -/obj/item/firing_pin/away/pin_auth(mob/living/user) - var/area/station_area = get_area(src) - if(!station_area || is_station_level(station_area.z)) - to_chat(user, "The pin beeps, refusing to fire.") - return FALSE - return TRUE - /obj/item/firing_pin/security_level name = "security level firing pin" desc = "A sophisticated firing pin that authorizes operation based on its settings and current security level." @@ -325,3 +312,18 @@ /obj/item/firing_pin/security_level/pin_auth(mob/living/user) return (only_lethals && !(gun.chambered?.harmful)) || ISINRANGE(GLOB.security_level, min_sec_level, max_sec_level) + +// Explorer Firing Pin- Prevents use on station Z-Level, so it's justifiable to give Explorers guns that don't suck. +/obj/item/firing_pin/explorer + name = "outback firing pin" + desc = "A firing pin used by the austrailian defense force, retrofit to prevent weapon discharge on the station." + icon_state = "firing_pin_explorer" + fail_message = "CANNOT FIRE WHILE ON STATION, MATE!" + +// This checks that the user isn't on the station Z-level. +/obj/item/firing_pin/explorer/pin_auth(mob/living/user) + var/turf/station_check = get_turf(user) + if(!station_check||is_station_level(station_check.z)) + to_chat(user, "You cannot use your weapon while on the station!") + return FALSE + return TRUE diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 71aa78da4b..7c988ca730 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -1,6 +1,10 @@ #define MOVES_HITSCAN -1 //Not actually hitscan but close as we get without actual hitscan. #define MUZZLE_EFFECT_PIXEL_INCREMENT 17 //How many pixels to move the muzzle flash up so your character doesn't look like they're shitting out lasers. +/// Minimum projectile pixels to move before it animate()S, below this it's a direct set. +#define MINIMUM_PIXELS_TO_ANIMATE 4 +/// Pixels to instantly travel on firing. +#define PROJECTILE_FIRING_INSTANT_TRAVEL_AMOUNT 16 /obj/item/projectile name = "projectile" @@ -12,7 +16,9 @@ pass_flags = PASSTABLE mouse_opacity = MOUSE_OPACITY_TRANSPARENT movement_type = FLYING + animate_movement = NO_STEPS hitsound = 'sound/weapons/pierce.ogg' + appearance_flags = PIXEL_SCALE var/hitsound_wall = "" resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF @@ -32,22 +38,45 @@ //Fired processing vars var/fired = FALSE //Have we been fired yet var/paused = FALSE //for suspending the projectile midair - var/last_projectile_move = 0 var/time_offset = 0 var/datum/point/vector/trajectory var/trajectory_ignore_forcemove = FALSE //instructs forceMove to NOT reset our trajectory to the new location! + /// "leftover" pixels for Range() calculation as pixel_move() was moved to simulated semi-pixel movement and Range() is in tiles. + var/pixels_range_leftover = 0 + /// "leftover" tick pixels and stuff yeah, so we don't round off things and introducing tracing inaccuracy. + var/pixels_tick_leftover = 0 + /// Used to detect jumps in the middle of a pixel_move. Yes, this is ugly as sin code-wise but it works. + var/pixel_move_interrupted = FALSE + + /// Pixels moved per second. + var/pixels_per_second = TILES_TO_PIXELS(12.5) + /// The number of pixels we increment by. THIS IS NOT SPEED, DO NOT TOUCH THIS UNLESS YOU KNOW WHAT YOU ARE DOING. In general, lower values means more linetrace accuracy up to a point at cost of performance. + var/pixel_increment_amount - var/speed = 0.8 //Amount of deciseconds it takes for projectile to travel - /// "leftover" ticks and stuff yeah. hey when are we rewriting projectiles for the eighth time to do something smarter like incrementing x pixels until it meets a goal instead of for(var/i in 1 to required_moves)? - var/tick_moves_leftover = 0 var/Angle = 0 var/original_angle = 0 //Angle at firing var/nondirectional_sprite = FALSE //Set TRUE to prevent projectiles from having their sprites rotated based on firing angle var/spread = 0 //amount (in degrees) of projectile spread animate_movement = 0 //Use SLIDE_STEPS in conjunction with legacy + /// how many times we've ricochet'd so far (instance variable, not a stat) var/ricochets = 0 - var/ricochets_max = 2 - var/ricochet_chance = 30 + /// how many times we can ricochet max + var/ricochets_max = 0 + /// 0-100, the base chance of ricocheting, before being modified by the atom we shoot and our chance decay + var/ricochet_chance = 0 + /// 0-1 (or more, I guess) multiplier, the ricochet_chance is modified by multiplying this after each ricochet + var/ricochet_decay_chance = 0.7 + /// 0-1 (or more, I guess) multiplier, the projectile's damage is modified by multiplying this after each ricochet + var/ricochet_decay_damage = 0.7 + /// On ricochet, if nonzero, we consider all mobs within this range of our projectile at the time of ricochet to home in on like Revolver Ocelot, as governed by ricochet_auto_aim_angle + var/ricochet_auto_aim_range = 0 + /// On ricochet, if ricochet_auto_aim_range is nonzero, we'll consider any mobs within this range of the normal angle of incidence to home in on, higher = more auto aim + var/ricochet_auto_aim_angle = 30 + /// the angle of impact must be within this many degrees of the struck surface, set to 0 to allow any angle + var/ricochet_incidence_leeway = 40 + + ///If the object being hit can pass ths damage on to something else, it should not do it for this bullet + var/force_hit = FALSE //Hitscan var/hitscan = FALSE //Whether this is hitscan. If it is, speed is basically ignored. @@ -75,12 +104,16 @@ //Homing var/homing = FALSE var/atom/homing_target - var/homing_turn_speed = 10 //Angle per tick. + /// How fast the projectile turns towards its homing targets, in angle per second. + var/homing_turn_speed = 100 var/homing_inaccuracy_min = 0 //in pixels for these. offsets are set once when setting target. var/homing_inaccuracy_max = 0 var/homing_offset_x = 0 var/homing_offset_y = 0 + /// How many deciseconds are each hitscan movement considered. Used for homing and other things that use seconds for timing rather than ticks. + var/hitscan_movement_decisecond_equivalency = 0.1 + var/ignore_source_check = FALSE var/damage = 10 @@ -88,7 +121,8 @@ var/nodamage = 0 //Determines if the projectile will skip any damage inflictions var/flag = "bullet" //Defines what armor to use when it hits things. Must be set to bullet, laser, energy,or bomb var/projectile_type = /obj/item/projectile - var/range = 50 //This will de-increment every step. When 0, it will deletze the projectile. + /// Range of the projectile, de-incrementing every step. The projectile deletes itself at 0. This is in tiles. + var/range = 50 var/decayedRange //stores original range var/reflect_range_decrease = 5 //amount of original range that falls off when reflecting, so it doesn't go forever var/is_reflectable = FALSE // Can it be reflected or not? @@ -115,17 +149,27 @@ var/temporary_unstoppable_movement = FALSE + ///If defined, on hit we create an item of this type then call hitby() on the hit target with this + var/shrapnel_type + ///If TRUE, hit mobs even if they're on the floor and not our target + var/hit_stunned_targets = FALSE + /obj/item/projectile/Initialize() . = ..() permutated = list() decayedRange = range +/** + * Artificially modified to be called at around every world.icon_size pixels of movement. + * WARNING: Range() can only be called once per pixel_increment_amount pixels. + */ /obj/item/projectile/proc/Range() range-- if(range <= 0 && loc) on_range() /obj/item/projectile/proc/on_range() //if we want there to be effects when they reach the end of their range + SEND_SIGNAL(src, COMSIG_PROJECTILE_RANGE_OUT) qdel(src) //to get the correct limb (if any) for the projectile hit message @@ -145,6 +189,14 @@ /obj/item/projectile/proc/on_hit(atom/target, blocked = FALSE) if(fired_from) SEND_SIGNAL(fired_from, COMSIG_PROJECTILE_ON_HIT, firer, target, Angle) + + // i know that this is probably more with wands and gun mods in mind, but it's a bit silly that the projectile on_hit signal doesn't ping the projectile itself. + // maybe we care what the projectile thinks! See about combining these via args some time when it's not 5AM + var/obj/item/bodypart/hit_limb + if(isliving(target)) + var/mob/living/L = target + hit_limb = L.check_limb_hit(def_zone) + SEND_SIGNAL(src, COMSIG_PROJECTILE_SELF_ON_HIT, firer, target, Angle, hit_limb) var/turf/target_loca = get_turf(target) var/hitx @@ -187,7 +239,7 @@ else if(ishuman(target)) var/mob/living/carbon/human/H = target - new /obj/effect/temp_visual/dir_setting/bloodsplatter(target_loca, splatter_dir, bloodtype_to_color(H.dna.blood_type)) + new /obj/effect/temp_visual/dir_setting/bloodsplatter(target_loca, splatter_dir, H.dna.species.exotic_blood_color) else new /obj/effect/temp_visual/dir_setting/bloodsplatter(target_loca, splatter_dir, bloodtype_to_color()) @@ -196,10 +248,13 @@ new impact_effect_type(target_loca, hitx, hity) var/organ_hit_text = "" - var/limb_hit = L.check_limb_hit(def_zone)//to get the correct message info. + var/limb_hit = hit_limb if(limb_hit) organ_hit_text = " in \the [parse_zone(limb_hit)]" - if(suppressed) + + if(suppressed==SUPPRESSED_VERY) + playsound(loc, hitsound, 5, TRUE, -1) + else if(suppressed) playsound(loc, hitsound, 5, 1, -1) to_chat(L, "You're shot by \a [src][organ_hit_text]!") else @@ -230,7 +285,23 @@ return 50 //if the projectile doesn't do damage, play its hitsound at 50% volume /obj/item/projectile/proc/on_ricochet(atom/A) - return + if(!ricochet_auto_aim_angle || !ricochet_auto_aim_range) + return + + var/mob/living/unlucky_sob + var/best_angle = ricochet_auto_aim_angle + if(firer && HAS_TRAIT(firer, TRAIT_NICE_SHOT)) + best_angle += NICE_SHOT_RICOCHET_BONUS + for(var/mob/living/L in range(ricochet_auto_aim_range, src.loc)) + if(L.stat == DEAD || !isInSight(src, L)) + continue + var/our_angle = abs(closer_angle_difference(Angle, get_projectile_angle(src.loc, L.loc))) + if(our_angle < best_angle) + best_angle = our_angle + unlucky_sob = L + + if(unlucky_sob) + setAngle(get_projectile_angle(src, unlucky_sob.loc)) /obj/item/projectile/proc/store_hitscan_collision(datum/point/pcache) beam_segments[beam_index] = pcache @@ -238,21 +309,22 @@ beam_segments[beam_index] = null /obj/item/projectile/Bump(atom/A) + if(!trajectory) + return var/turf/T = get_turf(A) - if(trajectory && check_ricochet(A) && check_ricochet_flag(A) && ricochets < ricochets_max) + if(check_ricochet(A) && A.handle_ricochet(src)) //if you can ricochet, attempt to ricochet off the object + on_ricochet(A) //if allowed, use autoaim to ricochet into someone, otherwise default to ricocheting off the object from above var/datum/point/pcache = trajectory.copy_to() - ricochets++ - if(A.handle_ricochet(src)) - on_ricochet(A) - ignore_source_check = TRUE - decayedRange = max(0, decayedRange - reflect_range_decrease) - range = decayedRange - if(hitscan) - store_hitscan_collision(pcache) - return TRUE + if(hitscan) + store_hitscan_collision(pcache) + decayedRange = max(0, decayedRange - reflect_range_decrease) + ricochet_chance *= ricochet_decay_chance + damage *= ricochet_decay_damage + range = decayedRange + return TRUE var/distance = get_dist(T, starting) // Get the distance between the turf shot from and the mob we hit and use that for the calculations. - if(check_zone(def_zone) != BODY_ZONE_CHEST) + if(def_zone && check_zone(def_zone) != BODY_ZONE_CHEST) def_zone = ran_zone(def_zone, max(100-(7*distance), 5) * zone_accuracy_factor) //Lower accurancy/longer range tradeoff. 7 is a balanced number to use. if(isturf(A) && hitsound_wall) @@ -324,24 +396,42 @@ return T //Returns null if nothing at all was found. -/obj/item/projectile/proc/check_ricochet() - if(prob(ricochet_chance)) - return TRUE - return FALSE +/obj/item/projectile/proc/check_ricochet(atom/A) + if(ricochets > ricochets_max) //safety thing, we don't care about what the other thing says about this. + return FALSE + var/them = A.check_projectile_ricochet(src) + switch(them) + if(PROJECTILE_RICOCHET_PREVENT) + return FALSE + if(PROJECTILE_RICOCHET_FORCE) + return TRUE + if(PROJECTILE_RICOCHET_NO) + return FALSE + if(PROJECTILE_RICOCHET_YES) + var/chance = ricochet_chance * A.ricochet_chance_mod + if(firer && HAS_TRAIT(firer, TRAIT_NICE_SHOT)) + chance += NICE_SHOT_RICOCHET_BONUS + if(prob(chance)) + return TRUE + else + CRASH("Invalid return value for projectile ricochet check from [A].") /obj/item/projectile/proc/check_ricochet_flag(atom/A) - if(A.flags_1 & CHECK_RICOCHET_1) + if((flag in list("energy", "laser")) && (A.flags_ricochet & RICOCHET_SHINY)) + return TRUE + if((flag in list("bomb", "bullet")) && (A.flags_ricochet & RICOCHET_HARD)) return TRUE return FALSE +/// one move is a tile. /obj/item/projectile/proc/return_predicted_turf_after_moves(moves, forced_angle) //I say predicted because there's no telling that the projectile won't change direction/location in flight. if(!trajectory && isnull(forced_angle) && isnull(Angle)) return FALSE var/datum/point/vector/current = trajectory if(!current) var/turf/T = get_turf(src) - current = new(T.x, T.y, T.z, pixel_x, pixel_y, isnull(forced_angle)? Angle : forced_angle, SSprojectiles.global_pixel_speed) - var/datum/point/vector/v = current.return_vector_after_increments(moves * SSprojectiles.global_iterations_per_move) + current = new(T.x, T.y, T.z, pixel_x, pixel_y, isnull(forced_angle)? Angle : forced_angle, pixel_increment_amount || SSprojectiles.global_pixel_increment_amount) + var/datum/point/vector/v = current.return_vector_after_increments(TILES_TO_PIXELS(moves) / (pixel_increment_amount || SSprojectiles.global_pixel_increment_amount)) return v.return_turf() /obj/item/projectile/proc/return_pathing_turfs_in_moves(moves, forced_angle) @@ -358,20 +448,20 @@ return PROCESS_KILL if(paused || !isturf(loc)) return + var/ds = (SSprojectiles.flags & SS_TICKER)? (wait * world.tick_lag) : wait - var/required_moves = ds / speed - var/leftover = MODULUS(required_moves, 1) - tick_moves_leftover += leftover - required_moves = round(required_moves) - if(tick_moves_leftover > 1) - required_moves += round(tick_moves_leftover) - tick_moves_leftover = MODULUS(tick_moves_leftover, 1) - for(var/i in 1 to required_moves) - pixel_move(1, FALSE) + var/required_pixels = (pixels_per_second * ds * 0.1) + pixels_tick_leftover + if(required_pixels >= pixel_increment_amount) + pixels_tick_leftover = MODULUS(required_pixels, pixel_increment_amount) + pixel_move(FLOOR(required_pixels / pixel_increment_amount, 1), FALSE, ds, SSprojectiles.global_projectile_speed_multiplier) + else + pixels_tick_leftover = required_pixels /obj/item/projectile/proc/fire(angle, atom/direct_target) if(fired_from) SEND_SIGNAL(fired_from, COMSIG_PROJECTILE_BEFORE_FIRE, src, original) //If no angle needs to resolve it from xo/yo! + if(shrapnel_type) + AddElement(/datum/element/embed, projectile_payload = shrapnel_type) if(!log_override && firer && original) log_combat(firer, original, "fired at", src, "from [get_area_name(src, TRUE)]") if(direct_target) @@ -390,7 +480,7 @@ qdel(src) return var/turf/target = locate(clamp(starting + xo, 1, world.maxx), clamp(starting + yo, 1, world.maxy), starting.z) - setAngle(Get_Angle(src, target)) + setAngle(get_projectile_angle(src, target)) original_angle = Angle if(!nondirectional_sprite) var/matrix/M = new @@ -399,17 +489,20 @@ trajectory_ignore_forcemove = TRUE forceMove(starting) trajectory_ignore_forcemove = FALSE - trajectory = new(starting.x, starting.y, starting.z, pixel_x, pixel_y, Angle, SSprojectiles.global_pixel_speed) - last_projectile_move = world.time + if(isnull(pixel_increment_amount)) + pixel_increment_amount = SSprojectiles.global_pixel_increment_amount + trajectory = new(starting.x, starting.y, starting.z, pixel_x, pixel_y, Angle, pixel_increment_amount) fired = TRUE if(hitscan) process_hitscan() + return if(!(datum_flags & DF_ISPROCESSING)) START_PROCESSING(SSprojectiles, src) - pixel_move(1, FALSE) //move it now! + pixel_move(round(PROJECTILE_FIRING_INSTANT_TRAVEL_AMOUNT / pixel_increment_amount), FALSE, allow_animation = FALSE) //move it now! /obj/item/projectile/proc/setAngle(new_angle, hitscan_store_segment = TRUE) //wrapper for overrides. Angle = new_angle + pixel_move_interrupted = TRUE if(!nondirectional_sprite) var/matrix/M = new M.Turn(Angle) @@ -436,6 +529,7 @@ trajectory.initialize_location(target.x, target.y, target.z, 0, 0) if(hitscan) record_hitscan_start(RETURN_PRECISE_POINT(src)) + pixel_move_interrupted = TRUE if(zc) after_z_change(old, target) @@ -451,7 +545,8 @@ else return ..() -/obj/item/projectile/proc/set_pixel_speed(new_speed) +/obj/item/projectile/proc/set_pixel_increment_amount(new_speed) + pixel_increment_amount = new_speed if(trajectory) trajectory.set_speed(new_speed) return TRUE @@ -464,6 +559,7 @@ beam_segments[beam_index] = null //record start. /obj/item/projectile/proc/process_hitscan() + var/ttm = round(world.icon_size / pixel_increment_amount, 1) var/safety = range * 10 record_hitscan_start(RETURN_POINT_VECTOR_INCREMENT(src, Angle, MUZZLE_EFFECT_PIXEL_INCREMENT, 1)) while(loc && !QDELETED(src)) @@ -476,20 +572,34 @@ if(!QDELETED(src)) qdel(src) return //Kill! - pixel_move(1, TRUE) + pixel_move(ttm, TRUE, hitscan_movement_decisecond_equivalency) -/obj/item/projectile/proc/pixel_move(trajectory_multiplier, hitscanning = FALSE) +/** + * The proc to make the projectile go, using a simulated pixel movement line trace. + * Note: deciseconds_equivalent is currently only used for homing, times is the number of times to move pixel_increment_amount. + * Trajectory multiplier directly modifies the factor of pixel_increment_amount to go per time. + * It's complicated, so probably just don't mess with this unless you know what you're doing. + */ +/obj/item/projectile/proc/pixel_move(times, hitscanning = FALSE, deciseconds_equivalent = world.tick_lag, trajectory_multiplier = 1, allow_animation = TRUE) if(!loc || !trajectory) return - last_projectile_move = world.time if(!nondirectional_sprite && !hitscanning) var/matrix/M = new M.Turn(Angle) transform = M - if(homing) - process_homing() var/forcemoved = FALSE - for(var/i in 1 to SSprojectiles.global_iterations_per_move) + pixel_move_interrupted = FALSE // reset that + var/turf/oldloc = loc + var/old_px = pixel_x + var/old_py = pixel_y + for(var/i in 1 to times) + // HOMING START - Too expensive to proccall at this point. + if(homing_target) + // No datum/points, too expensive. + var/angle = closer_angle_difference(Angle, get_projectile_angle(src, homing_target)) + var/max_turn = homing_turn_speed * deciseconds_equivalent * 0.1 + setAngle(Angle + clamp(angle, -max_turn, max_turn)) + // HOMING END trajectory.increment(trajectory_multiplier) var/turf/T = trajectory.return_turf() if(!istype(T)) @@ -509,23 +619,31 @@ pixel_x = trajectory.return_px() pixel_y = trajectory.return_py() else if(T != loc) - step_towards(src, T) + var/safety = CEILING(pixel_increment_amount / world.icon_size, 1) * 2 + 1 + while(T != loc) + if(!--safety) + CRASH("[type] took too long (allowed: [CEILING(pixel_increment_amount/world.icon_size,1)*2] moves) to get to its location.") + step_towards(src, T) + if(QDELETED(src) || pixel_move_interrupted) // this doesn't take into account with pixel_move_interrupted the portion of the move cut off by any forcemoves, but we're opting to ignore that for now + // the reason is the entire point of moving to pixel speed rather than tile speed is smoothness, which will be crucial when pixel movement is done in the future + // reverting back to tile is more or less the only way of fixing this issue. + return + pixels_range_leftover += pixel_increment_amount + if(pixels_range_leftover > world.icon_size) + Range() if(QDELETED(src)) return + pixels_range_leftover -= world.icon_size if(!hitscanning && !forcemoved) - pixel_x = trajectory.return_px() - trajectory.mpx * trajectory_multiplier * SSprojectiles.global_iterations_per_move - pixel_y = trajectory.return_py() - trajectory.mpy * trajectory_multiplier * SSprojectiles.global_iterations_per_move - animate(src, pixel_x = trajectory.return_px(), pixel_y = trajectory.return_py(), time = 1, flags = ANIMATION_END_NOW) - Range() - -/obj/item/projectile/proc/process_homing() //may need speeding up in the future performance wise. - if(!homing_target) - return FALSE - var/datum/point/PT = RETURN_PRECISE_POINT(homing_target) - PT.x += clamp(homing_offset_x, 1, world.maxx) - PT.y += clamp(homing_offset_y, 1, world.maxy) - var/angle = closer_angle_difference(Angle, angle_between_points(RETURN_PRECISE_POINT(src), PT)) - setAngle(Angle + clamp(angle, -homing_turn_speed, homing_turn_speed)) + var/traj_px = round(trajectory.return_px(), 1) + var/traj_py = round(trajectory.return_py(), 1) + if(allow_animation && (pixel_increment_amount * times > MINIMUM_PIXELS_TO_ANIMATE)) + pixel_x = ((oldloc.x - x) * world.icon_size) + old_px + pixel_y = ((oldloc.y - y) * world.icon_size) + old_py + animate(src, pixel_x = traj_px, pixel_y = traj_py, time = 1, flags = ANIMATION_END_NOW) + else + pixel_x = traj_px + pixel_y = traj_py /obj/item/projectile/proc/set_homing_target(atom/A) if(!A || (!isturf(A) && !isturf(A.loc))) @@ -575,7 +693,7 @@ if(targloc || !params) yo = targloc.y - curloc.y xo = targloc.x - curloc.x - setAngle(Get_Angle(src, targloc) + spread) + setAngle(get_projectile_angle(src, targloc) + spread) if(isliving(source) && params) var/list/calculated = calculate_projectile_angle_and_pixel_offsets(source, params) @@ -586,7 +704,7 @@ else if(targloc) yo = targloc.y - curloc.y xo = targloc.x - curloc.x - setAngle(Get_Angle(src, targloc) + spread) + setAngle(get_projectile_angle(src, targloc) + spread) else stack_trace("WARNING: Projectile [type] fired without either mouse parameters, or a target atom to aim at!") qdel(src) @@ -698,3 +816,7 @@ /proc/is_energy_reflectable_projectile(atom/A) var/obj/item/projectile/P = A return istype(P) && P.is_reflectable + +#undef MOVES_HITSCAN +#undef MINIMUM_PIXELS_TO_ANIMATE +#undef MUZZLE_EFFECT_PIXEL_INCREMENT diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index ee081d57d6..2f12f0f69b 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -74,7 +74,7 @@ flag = "energy" hitsound = 'sound/weapons/tap.ogg' eyeblur = 0 - speed = 0.6 + pixels_per_second = TILES_TO_PIXELS(16.667) impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser light_color = LIGHT_COLOR_BLUE tracer_type = /obj/effect/projectile/tracer/disabler diff --git a/code/modules/projectiles/projectile/bullets/ferromagnetic.dm b/code/modules/projectiles/projectile/bullets/ferromagnetic.dm index 2d66e25256..78deff601f 100644 --- a/code/modules/projectiles/projectile/bullets/ferromagnetic.dm +++ b/code/modules/projectiles/projectile/bullets/ferromagnetic.dm @@ -3,7 +3,7 @@ damage = 20 armour_penetration = 20 light_range = 3 - speed = 0.6 + pixels_per_second = TILES_TO_PIXELS(16.667) range = 35 light_color = LIGHT_COLOR_RED @@ -39,7 +39,7 @@ armour_penetration = 20 movement_type = FLYING | UNSTOPPABLE range = 20 - speed = 0.8 + pixels_per_second = TILES_TO_PIXELS(12.5) light_range = 4 light_color = LIGHT_COLOR_RED diff --git a/code/modules/projectiles/projectile/bullets/pistol.dm b/code/modules/projectiles/projectile/bullets/pistol.dm index 319640a4d5..38c9c9f7d9 100644 --- a/code/modules/projectiles/projectile/bullets/pistol.dm +++ b/code/modules/projectiles/projectile/bullets/pistol.dm @@ -47,4 +47,4 @@ if(L.getStaminaLoss() >= 60) L.Sleeping(300) else - L.adjustStaminaLoss(25) \ No newline at end of file + L.adjustStaminaLoss(25) diff --git a/code/modules/projectiles/projectile/bullets/revolver.dm b/code/modules/projectiles/projectile/bullets/revolver.dm index c5c649a57e..5643804ac1 100644 --- a/code/modules/projectiles/projectile/bullets/revolver.dm +++ b/code/modules/projectiles/projectile/bullets/revolver.dm @@ -15,6 +15,38 @@ /obj/item/projectile/bullet/c38 name = ".38 bullet" damage = 25 + ricochets_max = 2 + ricochet_chance = 50 + ricochet_auto_aim_angle = 10 + ricochet_auto_aim_range = 3 + +/obj/item/projectile/bullet/c38/match + name = ".38 Match bullet" + ricochets_max = 4 + ricochet_chance = 100 + ricochet_auto_aim_angle = 40 + ricochet_auto_aim_range = 5 + ricochet_incidence_leeway = 50 + ricochet_decay_chance = 1 + ricochet_decay_damage = 1 + +/obj/item/projectile/bullet/c38/match/bouncy + name = ".38 Rubber bullet" + damage = 10 + stamina = 30 + armour_penetration = -30 + ricochets_max = 6 + ricochet_incidence_leeway = 70 + ricochet_chance = 130 + ricochet_decay_damage = 0.8 + shrapnel_type = NONE + +/obj/item/projectile/bullet/c38/dumdum + name = ".38 DumDum bullet" + damage = 15 + armour_penetration = -30 + ricochets_max = 0 + shrapnel_type = /obj/item/shrapnel/bullet/c38/dumdum /obj/item/projectile/bullet/c38/rubber name = ".38 rubber bullet" @@ -24,6 +56,7 @@ /obj/item/projectile/bullet/c38/trac name = ".38 TRAC bullet" damage = 10 + ricochets_max = 0 /obj/item/projectile/bullet/c38/trac/on_hit(atom/target, blocked = FALSE) . = ..() @@ -39,6 +72,7 @@ /obj/item/projectile/bullet/c38/hotshot //similar to incendiary bullets, but do not leave a flaming trail name = ".38 Hot Shot bullet" damage = 20 + ricochets_max = 0 /obj/item/projectile/bullet/c38/hotshot/on_hit(atom/target, blocked = FALSE) . = ..() @@ -51,6 +85,7 @@ name = ".38 Iceblox bullet" damage = 20 var/temperature = 100 + ricochets_max = 0 /obj/item/projectile/bullet/c38/iceblox/on_hit(atom/target, blocked = FALSE) . = ..() @@ -68,4 +103,14 @@ /obj/item/projectile/bullet/a357/ap name = ".357 armor-piercing bullet" damage = 45 - armour_penetration = 45 \ No newline at end of file + armour_penetration = 45 + +// admin only really, for ocelot memes +/obj/item/projectile/bullet/a357/match + name = ".357 match bullet" + ricochets_max = 5 + ricochet_chance = 140 + ricochet_auto_aim_angle = 50 + ricochet_auto_aim_range = 6 + ricochet_incidence_leeway = 80 + ricochet_decay_chance = 1 \ No newline at end of file diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm index ff95b65a49..264df22c76 100644 --- a/code/modules/projectiles/projectile/bullets/shotgun.dm +++ b/code/modules/projectiles/projectile/bullets/shotgun.dm @@ -112,3 +112,8 @@ /obj/item/projectile/bullet/seed damage = 4 stamina = 1 + +/obj/item/projectile/bullet/pellet/shotgun_incapacitate + name = "incapacitating pellet" + damage = 1 + stamina = 6 \ No newline at end of file diff --git a/code/modules/projectiles/projectile/bullets/sniper.dm b/code/modules/projectiles/projectile/bullets/sniper.dm index 5e3ae53806..f69b62a149 100644 --- a/code/modules/projectiles/projectile/bullets/sniper.dm +++ b/code/modules/projectiles/projectile/bullets/sniper.dm @@ -2,7 +2,7 @@ /obj/item/projectile/bullet/p50 name =".50 bullet" - speed = 0.4 + pixels_per_second = TILES_TO_PIXELS(25) damage = 70 knockdown = 100 dismemberment = 50 @@ -43,5 +43,5 @@ /obj/item/projectile/bullet/p50/penetrator/shuttle //Nukeop Shuttle Variety icon_state = "gaussstrong" damage = 25 - speed = 0.3 + pixels_per_second = TILES_TO_PIXELS(33.33) range = 16 diff --git a/code/modules/projectiles/projectile/energy/nuclear_particle.dm b/code/modules/projectiles/projectile/energy/nuclear_particle.dm index e08f806fe5..6cbe258560 100644 --- a/code/modules/projectiles/projectile/energy/nuclear_particle.dm +++ b/code/modules/projectiles/projectile/energy/nuclear_particle.dm @@ -5,7 +5,7 @@ pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE flag = "rad" irradiate = 5000 - speed = 0.4 + pixels_per_second = TILES_TO_PIXELS(25) hitsound = 'sound/weapons/emitter2.ogg' impact_type = /obj/effect/projectile/impact/xray var/static/list/particle_colors = list( diff --git a/code/modules/projectiles/projectile/energy/stun.dm b/code/modules/projectiles/projectile/energy/stun.dm index e3449a0c1d..83b753e0a3 100644 --- a/code/modules/projectiles/projectile/energy/stun.dm +++ b/code/modules/projectiles/projectile/energy/stun.dm @@ -10,7 +10,7 @@ jitter = 20 hitsound = 'sound/weapons/taserhit.ogg' range = 14 - speed = 0.6 + pixels_per_second = TILES_TO_PIXELS(16.667) tracer_type = /obj/effect/projectile/tracer/stun muzzle_type = /obj/effect/projectile/muzzle/stun impact_type = /obj/effect/projectile/impact/stun diff --git a/code/modules/projectiles/projectile/energy/tesla.dm b/code/modules/projectiles/projectile/energy/tesla.dm index 2439cee429..1afbdeae25 100644 --- a/code/modules/projectiles/projectile/energy/tesla.dm +++ b/code/modules/projectiles/projectile/energy/tesla.dm @@ -3,7 +3,7 @@ icon_state = "tesla_projectile" impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser var/chain - var/tesla_flags = TESLA_MOB_DAMAGE | TESLA_OBJ_DAMAGE + var/zap_flags = ZAP_MOB_DAMAGE | ZAP_OBJ_DAMAGE var/zap_range = 3 var/power = 10000 @@ -15,7 +15,7 @@ /obj/item/projectile/energy/tesla/on_hit(atom/target) . = ..() - tesla_zap(target, zap_range, power, tesla_flags) + tesla_zap(target, zap_range, power, zap_flags) qdel(src) /obj/item/projectile/energy/tesla/Destroy() diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index ff6340bcdb..7ef52aef25 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -121,10 +121,10 @@ qdel(src) /proc/wabbajack(mob/living/M) - if(!istype(M) || M.stat == DEAD || M.notransform || (GODMODE & M.status_flags)) + if(!istype(M) || M.stat == DEAD || M.mob_transforming || (GODMODE & M.status_flags)) return - M.notransform = TRUE + M.mob_transforming = TRUE M.Paralyze(INFINITY) M.icon = null M.cut_overlays() @@ -434,12 +434,12 @@ damage = 15 damage_type = BURN nodamage = 0 - speed = 0.3 + pixels_per_second = TILES_TO_PIXELS(33.33) flag = "magic" - var/tesla_power = 20000 - var/tesla_range = 15 - var/tesla_flags = TESLA_MOB_DAMAGE | TESLA_MOB_STUN | TESLA_OBJ_DAMAGE + var/zap_power = 20000 + var/zap_range = 15 + var/zap_flags = ZAP_MOB_DAMAGE | ZAP_MOB_STUN | ZAP_OBJ_DAMAGE var/chain var/mob/living/caster @@ -456,7 +456,7 @@ visible_message("[src] fizzles on contact with [target]!") qdel(src) return BULLET_ACT_BLOCK - tesla_zap(src, tesla_range, tesla_power, tesla_flags) + tesla_zap(src, zap_range, zap_power, zap_flags) qdel(src) /obj/item/projectile/magic/aoe/lightning/Destroy() diff --git a/code/modules/projectiles/projectile/special/curse.dm b/code/modules/projectiles/projectile/special/curse.dm index 99aa922622..d967540e6a 100644 --- a/code/modules/projectiles/projectile/special/curse.dm +++ b/code/modules/projectiles/projectile/special/curse.dm @@ -10,7 +10,7 @@ damage_type = BURN damage = 10 knockdown = 20 - speed = 2 + pixels_per_second = TILES_TO_PIXELS(5) range = 16 movement_type = FLYING | UNSTOPPABLE var/datum/beam/arm diff --git a/code/modules/projectiles/projectile/special/hallucination.dm b/code/modules/projectiles/projectile/special/hallucination.dm index 3aa85c085f..19fd13857a 100644 --- a/code/modules/projectiles/projectile/special/hallucination.dm +++ b/code/modules/projectiles/projectile/special/hallucination.dm @@ -50,7 +50,7 @@ if(M == hal_target) to_chat(hal_target, "[M] is hit by \a [src] in the chest!") hal_apply_effect() - else if(M in view(hal_target)) + else if(M in hal_target.fov_view()) to_chat(hal_target, "[M] is hit by \a [src] in the chest!!") if(damage_type == BRUTE) var/splatter_dir = dir diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index f4c06f39cc..4cf50cd072 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -326,19 +326,18 @@ var/datum/reagent/R = addiction if(C && R) R.addiction_stage++ - switch(R.addiction_stage) - if(1 to R.addiction_stage1_end) - need_mob_update += R.addiction_act_stage1(C) - if(R.addiction_stage1_end to R.addiction_stage2_end) - need_mob_update += R.addiction_act_stage2(C) - if(R.addiction_stage2_end to R.addiction_stage3_end) - need_mob_update += R.addiction_act_stage3(C) - if(R.addiction_stage3_end to R.addiction_stage4_end) - need_mob_update += R.addiction_act_stage4(C) - if(R.addiction_stage4_end to INFINITY) - remove_addiction(R) - else - SEND_SIGNAL(C, COMSIG_CLEAR_MOOD_EVENT, "[R.type]_overdose") + if(1 <= R.addiction_stage && R.addiction_stage <= R.addiction_stage1_end) + need_mob_update += R.addiction_act_stage1(C) + else if(R.addiction_stage1_end < R.addiction_stage && R.addiction_stage <= R.addiction_stage2_end) + need_mob_update += R.addiction_act_stage2(C) + else if(R.addiction_stage2_end < R.addiction_stage && R.addiction_stage <= R.addiction_stage3_end) + need_mob_update += R.addiction_act_stage3(C) + else if(R.addiction_stage3_end < R.addiction_stage && R.addiction_stage <= R.addiction_stage4_end) + need_mob_update += R.addiction_act_stage4(C) + else if(R.addiction_stage4_end < R.addiction_stage) + remove_addiction(R) + else + SEND_SIGNAL(C, COMSIG_CLEAR_MOOD_EVENT, "[R.type]_overdose") addiction_tick++ if(C && need_mob_update) //some of the metabolized reagents had effects on the mob that requires some updates. C.updatehealth() @@ -535,7 +534,7 @@ add_reagent(P, cached_results[P]*multiplier, null, chem_temp) - var/list/seen = viewers(4, get_turf(my_atom))//Sound and sight checkers + var/list/seen = fov_viewers(4, get_turf(my_atom))//Sound and sight checkers var/iconhtml = icon2html(cached_my_atom, seen) if(cached_my_atom) if(!ismob(cached_my_atom)) // No bubbling mobs @@ -617,10 +616,7 @@ handle_reactions() update_total() //Reaction sounds and words - var/list/seen = viewers(5, get_turf(my_atom)) - var/iconhtml = icon2html(my_atom, seen) - for(var/mob/M in seen) - to_chat(M, "[iconhtml] [C.mix_message]") + my_atom.visible_message("[icon2html(my_atom, viewers(DEFAULT_MESSAGE_RANGE, src))] [C.mix_message]") /datum/reagents/proc/fermiReact(selected_reaction, cached_temp, cached_pH, reactedVol, targetVol, cached_required_reagents, cached_results, multiplier) var/datum/chemical_reaction/C = selected_reaction diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 942786fd43..b85d7aefc9 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -23,7 +23,7 @@ resistance_flags = FIRE_PROOF | ACID_PROOF circuit = /obj/item/circuitboard/machine/chem_dispenser var/obj/item/stock_parts/cell/cell - var/powerefficiency = 0.1 + var/powerefficiency = 0.0666666 var/amount = 30 var/recharge_amount = 10 var/recharge_counter = 0 @@ -387,7 +387,7 @@ /obj/machinery/chem_dispenser/RefreshParts() recharge_amount = initial(recharge_amount) - var/newpowereff = 0.0666666 + var/newpowereff = initial(powerefficiency) for(var/obj/item/stock_parts/cell/P in component_parts) cell = P for(var/obj/item/stock_parts/matter_bin/M in component_parts) @@ -511,12 +511,10 @@ /datum/reagent/consumable/peachjuice ) emagged_reagents = list( - /datum/reagent/consumable/ethanol/thirteenloko, - /datum/reagent/consumable/ethanol/changelingsting, - /datum/reagent/consumable/ethanol/whiskey_cola, /datum/reagent/toxin/mindbreaker, /datum/reagent/toxin/staminatoxin, - /datum/reagent/medicine/cryoxadone + /datum/reagent/medicine/cryoxadone, + /datum/reagent/iron ) /obj/machinery/chem_dispenser/drinks/fullupgrade //fully ugpraded stock parts, emagged @@ -571,11 +569,12 @@ upgrade_reagents2 = null upgrade_reagents3 = null emagged_reagents = list( - /datum/reagent/iron, /datum/reagent/consumable/ethanol/alexander, /datum/reagent/consumable/clownstears, /datum/reagent/toxin/minttoxin, - /datum/reagent/consumable/ethanol/atomicbomb + /datum/reagent/consumable/ethanol/atomicbomb, + /datum/reagent/consumable/ethanol/thirteenloko, + /datum/reagent/consumable/ethanol/changelingsting ) /obj/machinery/chem_dispenser/drinks/beer/fullupgrade //fully ugpraded stock parts, emagged @@ -721,3 +720,58 @@ component_parts += new /obj/item/stack/sheet/glass(null) component_parts += new /obj/item/stock_parts/cell/bluespace(null) RefreshParts() + +///An unique, less efficient model found in the medbay apothecary room. +/obj/machinery/chem_dispenser/apothecary + name = "apothecary chem dispenser" + desc = "A cheaper chem dispenser meant for small scale medicine production." + icon_state = "minidispenser" + working_state = "minidispenser_working" + nopower_state = "minidispenser_nopower" + circuit = /obj/item/circuitboard/machine/chem_dispenser/apothecary + powerefficiency = 0.0833333 + dispensable_reagents = list( //radium and stable plasma moved to upgrade tier 1 and 2, they've little to do with most medicines anyway. + /datum/reagent/hydrogen, + /datum/reagent/lithium, + /datum/reagent/carbon, + /datum/reagent/nitrogen, + /datum/reagent/oxygen, + /datum/reagent/fluorine, + /datum/reagent/sodium, + /datum/reagent/aluminium, + /datum/reagent/silicon, + /datum/reagent/phosphorus, + /datum/reagent/sulfur, + /datum/reagent/chlorine, + /datum/reagent/potassium, + /datum/reagent/iron, + /datum/reagent/copper, + /datum/reagent/mercury, + /datum/reagent/water, + /datum/reagent/consumable/ethanol, + /datum/reagent/consumable/sugar, + /datum/reagent/toxin/acid, + /datum/reagent/fuel, + /datum/reagent/silver, + /datum/reagent/iodine, + /datum/reagent/bromine + ) + upgrade_reagents = list( + /datum/reagent/oil, + /datum/reagent/ammonia, + /datum/reagent/radium + ) + upgrade_reagents2 = list( + /datum/reagent/acetone, + /datum/reagent/phenol, + /datum/reagent/stable_plasma + ) + upgrade_reagents3 = list( + /datum/reagent/medicine/mine_salve + ) + + emagged_reagents = list( + /datum/reagent/drug/space_drugs, + /datum/reagent/toxin/carpotoxin, + /datum/reagent/medicine/morphine + ) diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 9899d219bf..24c5200a54 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -32,7 +32,7 @@ for (var/x in 1 to PILL_STYLE_COUNT) var/list/SL = list() SL["id"] = x - SL["htmltag"] = assets.icon_tag("pill[x]") + SL["className"] = assets.icon_class_name("pill[x]") pillStyles += list(SL) . = ..() @@ -154,6 +154,11 @@ bottle?.forceMove(A) return ..() +//Insert our custom spritesheet css link into the html +/obj/machinery/chem_master/ui_base_html(html) + var/datum/asset/spritesheet/assets = get_asset_datum(/datum/asset/spritesheet/simple/pills) + . = replacetext(html, "", assets.css_tag()) + /obj/machinery/chem_master/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) @@ -163,11 +168,6 @@ ui = new(user, src, ui_key, "chem_master", name, 500, 550, master_ui, state) ui.open() -//Insert our custom spritesheet css link into the html -/obj/machinery/chem_master/ui_base_html(html) - var/datum/asset/spritesheet/simple/assets = get_asset_datum(/datum/asset/spritesheet/simple/pills) - . = replacetext(html, "", assets.css_tag()) - /obj/machinery/chem_master/ui_data(mob/user) var/list/data = list() data["isBeakerLoaded"] = beaker ? 1 : 0 @@ -258,9 +258,9 @@ var/amount = text2num(params["amount"]) if(amount == null) amount = text2num(input(usr, - "Max 10. Buffer content will be split evenly.", + "Max 20. Buffer content will be split evenly.", "How many to make?", 1)) - amount = clamp(round(amount), 0, 10) + amount = clamp(round(amount), 0, 20) if (amount <= 0) return FALSE // Get units per item @@ -386,7 +386,8 @@ return FALSE if("analyze") - var/datum/reagent/R = GLOB.name2reagent[params["id"]] + var/reagent = GLOB.name2reagent[params["id"]] + var/datum/reagent/R = GLOB.chemical_reagents_list[reagent] if(R) var/state = "Unknown" if(initial(R.reagent_state) == 1) @@ -399,13 +400,9 @@ var/T = initial(R.metabolization_rate) * (60 / P) if(istype(R, /datum/reagent/fermi)) fermianalyze = TRUE - var/datum/chemical_reaction/Rcr = get_chemical_reaction(R) + var/datum/chemical_reaction/Rcr = get_chemical_reaction(reagent) var/pHpeakCache = (Rcr.OptimalpHMin + Rcr.OptimalpHMax)/2 - var/datum/reagent/targetReagent = reagents.has_reagent(R) - - if(!targetReagent) - CRASH("Tried to find a reagent that doesn't exist in the chem_master!") - analyzeVars = list("name" = initial(R.name), "state" = state, "color" = initial(R.color), "description" = initial(R.description), "metaRate" = T, "overD" = initial(R.overdose_threshold), "addicD" = initial(R.addiction_threshold), "purityF" = targetReagent.purity, "inverseRatioF" = initial(R.inverse_chem_val), "purityE" = initial(Rcr.PurityMin), "minTemp" = initial(Rcr.OptimalTempMin), "maxTemp" = initial(Rcr.OptimalTempMax), "eTemp" = initial(Rcr.ExplodeTemp), "pHpeak" = pHpeakCache) + analyzeVars = list("name" = initial(R.name), "state" = state, "color" = initial(R.color), "description" = initial(R.description), "metaRate" = T, "overD" = initial(R.overdose_threshold), "addicD" = initial(R.addiction_threshold), "purityF" = R.purity, "inverseRatioF" = initial(R.inverse_chem_val), "purityE" = initial(Rcr.PurityMin), "minTemp" = initial(Rcr.OptimalTempMin), "maxTemp" = initial(Rcr.OptimalTempMax), "eTemp" = initial(Rcr.ExplodeTemp), "pHpeak" = pHpeakCache) else fermianalyze = FALSE analyzeVars = list("name" = initial(R.name), "state" = state, "color" = initial(R.color), "description" = initial(R.description), "metaRate" = T, "overD" = initial(R.overdose_threshold), "addicD" = initial(R.addiction_threshold)) diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index 25315f457d..38a05cd541 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -170,7 +170,7 @@ if(!A.mutable) return if(A) - var/new_name = sanitize_name(html_encode(params["name"])) + var/new_name = sanitize_name(html_encode(trim(params["name"], 50))) if(!new_name || ..()) return A.AssignName(new_name) diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 75848f89b9..a53c57a3e7 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -213,6 +213,11 @@ for(var/datum/reagent/R in beaker.reagents.reagent_list) . += "- [R.volume] units of [R.name]." +/obj/machinery/reagentgrinder/AltClick(mob/user) + . = ..() + if(istype(user) && user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + replace_beaker(user) + /obj/machinery/reagentgrinder/proc/eject(mob/user) for(var/i in holdingitems) var/obj/item/O = i diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index b22f34091f..385a82baa5 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -2291,7 +2291,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/oil_drum name = "Oil Drum" color = "#000000" //(0, 0, 0) - description = "Industeral grade oil mixed with some ethanol to make it a drink. Somehow not known to be toxic." + description = "Industrial grade oil mixed with some ethanol to make it a drink. Somehow not known to be toxic." boozepwr = 45 taste_description = "oil spill" glass_icon_state = "oil_drum" @@ -2308,7 +2308,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/nord_king name = "Nord King" color = "#EB1010" //(235, 16, 16) - description = "Strong mead mixed with more honey and ethanol. Known to beloved by most palettes." + description = "Strong mead mixed with more honey and ethanol. Beloved by its human patrons." boozepwr = 50 //strong! taste_description = "honey and red wine" glass_icon_state = "nord_king" @@ -2347,7 +2347,7 @@ All effects don't start immediately, but rather get worse over time; the rate is taste_description = "grass and lime" glass_icon_state = "abduction_fruit" glass_name = "glass of Abduction Fruit" - glass_desc = "Mixed fruits that were never ment to be mixed..." + glass_desc = "Mixed fruits that were never meant to be mixed..." /datum/reagent/consumable/ethanol/abduction_fruit/on_mob_life(mob/living/carbon/M) if(isabductor(M) || isxenoperson(M)) @@ -2359,7 +2359,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/bug_zapper name = "Bug Zapper" color = "#F5882A" //(222, 250, 205) - description = "Metals and lemon juice. Hardly even a drink." + description = "Copper and lemon juice. Hardly even a drink." boozepwr = 5 //No booze really taste_description = "copper and AC power" glass_icon_state = "bug_zapper" @@ -2381,7 +2381,7 @@ All effects don't start immediately, but rather get worse over time; the rate is taste_description = "dirt and iron" glass_icon_state = "mush_crush" glass_name = "glass of Mush Crush" - glass_desc = "Popular among people that want to grow their own food rather then drink the soil." + glass_desc = "Popular among people that want to grow their own food rather than drink the soil." /datum/reagent/consumable/ethanol/mush_crush/on_mob_life(mob/living/carbon/M) if(ispodperson(M) || ismush(M)) @@ -2456,7 +2456,7 @@ All effects don't start immediately, but rather get worse over time; the rate is quality = RACE_DRINK else M.adjust_disgust(25) - M.adjustToxLoss(1, 0) //Low tox do to being carp + jell toxins. + M.adjustToxLoss(1, 0) //Low tox due to being carp + jell toxins. return ..() /datum/reagent/consumable/ethanol/laval_spit //Yes Laval diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index ef4b7f3a53..f1e45d0717 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -559,3 +559,128 @@ var/mob/living/carbon/C = M if(!C.undergoing_cardiac_arrest()) C.set_heartattack(TRUE) + +//aphrodisiac & anaphrodisiac + +/datum/reagent/drug/aphrodisiac + name = "Crocin" + description = "Naturally found in the crocus and gardenia flowers, this drug acts as a natural and safe aphrodisiac." + taste_description = "strawberries" + color = "#FFADFF"//PINK, rgb(255, 173, 255) + can_synth = FALSE + +/datum/reagent/drug/aphrodisiac/on_mob_life(mob/living/M) + if(M && M.client?.prefs.arousable && !(M.client?.prefs.cit_toggles & NO_APHRO)) + if((prob(min(current_cycle/2,5)))) + M.emote(pick("moan","blush")) + if(prob(min(current_cycle/4,10))) + var/aroused_message = pick("You feel frisky.", "You're having trouble suppressing your urges.", "You feel in the mood.") + to_chat(M, "[aroused_message]") + if(ishuman(M)) + var/mob/living/carbon/human/H = M + var/list/genits = H.adjust_arousal(current_cycle, aphro = TRUE) // redundant but should still be here + for(var/g in genits) + var/obj/item/organ/genital/G = g + to_chat(M, "[G.arousal_verb]!") + ..() + +/datum/reagent/drug/aphrodisiacplus + name = "Hexacrocin" + description = "Chemically condensed form of basic crocin. This aphrodisiac is extremely powerful and addictive in most animals.\ + Addiction withdrawals can cause brain damage and shortness of breath. Overdosage can lead to brain damage and a \ + permanent increase in libido (commonly referred to as 'bimbofication')." + taste_description = "liquid desire" + color = "#FF2BFF"//dark pink + addiction_threshold = 20 + overdose_threshold = 20 + can_synth = FALSE + +/datum/reagent/drug/aphrodisiacplus/on_mob_life(mob/living/M) + if(M && M.client?.prefs.arousable && !(M.client?.prefs.cit_toggles & NO_APHRO)) + if(prob(5)) + if(prob(current_cycle)) + M.say(pick("Hnnnnngghh...", "Ohh...", "Mmnnn...")) + else + M.emote(pick("moan","blush")) + if(prob(5)) + var/aroused_message + if(current_cycle>25) + aroused_message = pick("You need to fuck someone!", "You're bursting with sexual tension!", "You can't get sex off your mind!") + else + aroused_message = pick("You feel a bit hot.", "You feel strong sexual urges.", "You feel in the mood.", "You're ready to go down on someone.") + to_chat(M, "[aroused_message]") + REMOVE_TRAIT(M,TRAIT_NEVERBONER,APHRO_TRAIT) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + var/list/genits = H.adjust_arousal(100, aphro = TRUE) // redundant but should still be here + for(var/g in genits) + var/obj/item/organ/genital/G = g + to_chat(M, "[G.arousal_verb]!") + ..() + +/datum/reagent/drug/aphrodisiacplus/addiction_act_stage2(mob/living/M) + if(prob(30)) + M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2) + ..() +/datum/reagent/drug/aphrodisiacplus/addiction_act_stage3(mob/living/M) + if(prob(30)) + M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3) + + ..() +/datum/reagent/drug/aphrodisiacplus/addiction_act_stage4(mob/living/M) + if(prob(30)) + M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 4) + ..() + +/datum/reagent/drug/aphrodisiacplus/overdose_process(mob/living/M) + if(M && M.client?.prefs.arousable && !(M.client?.prefs.cit_toggles & NO_APHRO) && prob(33)) + if(prob(5) && ishuman(M) && M.has_dna() && (M.client?.prefs.cit_toggles & BIMBOFICATION)) + if(!HAS_TRAIT(M,TRAIT_PERMABONER)) + to_chat(M, "Your libido is going haywire!") + ADD_TRAIT(M,TRAIT_PERMABONER,APHRO_TRAIT) + ..() + +/datum/reagent/drug/anaphrodisiac + name = "Camphor" + description = "Naturally found in some species of evergreen trees, camphor is a waxy substance. When injested by most animals, it acts as an anaphrodisiac\ + , reducing libido and calming them. Non-habit forming and not addictive." + taste_description = "dull bitterness" + taste_mult = 2 + color = "#D9D9D9"//rgb(217, 217, 217) + reagent_state = SOLID + can_synth = FALSE + +/datum/reagent/drug/anaphrodisiac/on_mob_life(mob/living/M) + if(M && M.client?.prefs.arousable && prob(16)) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + var/list/genits = H.adjust_arousal(-100, aphro = TRUE) + if(genits.len) + to_chat(M, "You no longer feel aroused.") + ..() + +/datum/reagent/drug/anaphrodisiacplus + name = "Hexacamphor" + description = "Chemically condensed camphor. Causes an extreme reduction in libido and a permanent one if overdosed. Non-addictive." + taste_description = "tranquil celibacy" + color = "#D9D9D9"//rgb(217, 217, 217) + reagent_state = SOLID + overdose_threshold = 20 + can_synth = FALSE + +/datum/reagent/drug/anaphrodisiacplus/on_mob_life(mob/living/M) + if(M && M.client?.prefs.arousable) + REMOVE_TRAIT(M,TRAIT_PERMABONER,APHRO_TRAIT) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + var/list/genits = H.adjust_arousal(-100, aphro = TRUE) + if(genits.len) + to_chat(M, "You no longer feel aroused.") + + ..() + +/datum/reagent/drug/anaphrodisiacplus/overdose_process(mob/living/M) + if(M && M.client?.prefs.arousable && prob(5)) + to_chat(M, "You feel like you'll never feel aroused again...") + ADD_TRAIT(M,TRAIT_NEVERBONER,APHRO_TRAIT) + ..() diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index bc2f4dd022..f80cd10792 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -132,8 +132,8 @@ "You're covered in boiling oil!") M.emote("scream") playsound(M, 'sound/machines/fryer/deep_fryer_emerge.ogg', 25, TRUE) - var/oil_damage = (holder.chem_temp / fry_temperature) * 0.33 //Damage taken per unit - M.adjustFireLoss(min(35, oil_damage * reac_volume)) //Damage caps at 35 + var/oil_damage = max((holder.chem_temp / fry_temperature) * 0.33,1) //Damage taken per unit + M.adjustFireLoss(oil_damage * max(reac_volume,20)) //Damage caps at 20 else ..() return TRUE @@ -857,3 +857,13 @@ taste_mult = 2.5 //sugar's 1.5, capsacin's 1.5, so a good middle ground. taste_description = "smokey sweetness" value = REAGENT_VALUE_COMMON + +/datum/reagent/consumable/laughsyrup + name = "Laughin' Syrup" + description = "The product of juicing Laughin' Peas. Fizzy, and seems to change flavour based on what it's used with!" + nutriment_factor = 5 * REAGENTS_METABOLISM + color = "#803280" + taste_mult = 2 + taste_description = "fizzy sweetness" + value = REAGENT_VALUE_COMMON + diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 7913b24218..0f53add567 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -250,7 +250,7 @@ if(istype(O, /obj/item/stack/medical/gauze)) var/obj/item/stack/medical/gauze/G = O reac_volume = min((reac_volume / 10), G.amount) - new/obj/item/stack/medical/ointment(get_turf(G), reac_volume) + new/obj/item/stack/medical/mesh(get_turf(G), reac_volume) G.use(reac_volume) /datum/reagent/medicine/silver_sulfadiazine/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1) @@ -274,7 +274,11 @@ /datum/reagent/medicine/silver_sulfadiazine/overdose_start(mob/living/M) metabolization_rate = 15 * REAGENTS_METABOLISM - M.adjustBruteLoss(2*REM, 0) + ..() + . = 1 + +/datum/reagent/medicine/silver_sulfadiazine/overdose_process(mob/living/M) + M.adjustFireLoss(2*REM, 0) var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER) if(L) L.applyOrganDamage(1) @@ -332,7 +336,7 @@ if(istype(O, /obj/item/stack/medical/gauze)) var/obj/item/stack/medical/gauze/G = O reac_volume = min((reac_volume / 10), G.amount) - new/obj/item/stack/medical/bruise_pack(get_turf(G), reac_volume) + new/obj/item/stack/medical/suture(get_turf(G), reac_volume) G.use(reac_volume) /datum/reagent/medicine/styptic_powder/on_mob_life(mob/living/carbon/M) @@ -340,8 +344,12 @@ ..() . = 1 -datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) +/datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) metabolization_rate = 15 * REAGENTS_METABOLISM + ..() + . = 1 + +/datum/reagent/medicine/styptic_powder/overdose_process(mob/living/M) M.adjustBruteLoss(2*REM, 0) var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER) if(L) @@ -1555,3 +1563,20 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) M.adjustOrganLoss(ORGAN_SLOT_LUNGS, 0.5) ..() . = 1 + +/datum/reagent/medicine/liquid_wisdom + name = "liquid wisdom" + description = "the physical representation of wisdom, in liquid form" + taste_mult = 4 + can_synth = FALSE + overdose_threshold = 30 + value = REAGENT_VALUE_UNCOMMON // while it's 'rare', it can be milked from the wisdom cow + +/datum/reagent/medicine/liquid_wisdom/on_mob_life(mob/living/carbon/C) //slightly stronger mannitol, from the wisdom cow + C.adjustOrganLoss(ORGAN_SLOT_BRAIN, -3*REM) + if(prob(20)) + C.cure_trauma_type(resilience = TRAUMA_RESILIENCE_BASIC) + if(prob(3)) + to_chat(C, "[pick(GLOB.wisdoms)]") //give them a random wisdom + ..() + diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index ed94a28c7a..96ce50895e 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -70,6 +70,10 @@ B = new(T) if(data["blood_DNA"]) B.blood_DNA[data["blood_DNA"]] = data["blood_type"] + if(!B.blood_DNA["color"]) + B.blood_DNA["color"] = data["bloodcolor"] + else + B.blood_DNA["color"] = BlendRGB(B.blood_DNA["color"], data["bloodcolor"]) if(B.reagents) B.reagents.add_reagent(type, reac_volume) B.update_icon() @@ -77,7 +81,7 @@ /datum/reagent/blood/on_new(list/data) if(istype(data)) SetViruses(src, data) - color = bloodtype_to_color(data["blood_type"]) + color = data["bloodcolor"] if(data["blood_type"] == "SY") name = "Synthetic Blood" taste_description = "oil" @@ -1735,6 +1739,22 @@ H.facial_hair_style = "Very Long Beard" H.update_hair() +/datum/reagent/baldium + name = "Baldium" + description = "A major cause of hair loss across the world." + reagent_state = LIQUID + color = "#ecb2cf" + taste_description = "bitterness" + +/datum/reagent/baldium/reaction_mob(mob/living/M, method=TOUCH, reac_volume) + if(method == TOUCH || method == VAPOR) + if(M && ishuman(M)) + var/mob/living/carbon/human/H = M + to_chat(H, "Your hair is falling out in clumps!") + H.hair_style = "Bald" + H.facial_hair_style = "Shaved" + H.update_hair() + /datum/reagent/saltpetre name = "Saltpetre" description = "Volatile. Controversial. Third Thing." @@ -2178,3 +2198,94 @@ reagent_state = LIQUID color = "#f7685e" metabolization_rate = REAGENTS_METABOLISM * 0.25 + + +//body bluids +/datum/reagent/consumable/semen + name = "Semen" + description = "Sperm from some animal. Useless for anything but insemination, really." + taste_description = "something salty" + taste_mult = 2 //Not very overpowering flavor + data = list("donor"=null,"viruses"=null,"donor_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null) + reagent_state = LIQUID + color = "#FFFFFF" // rgb: 255, 255, 255 + can_synth = FALSE + nutriment_factor = 0.5 * REAGENTS_METABOLISM + +/datum/reagent/consumable/semen/reaction_turf(turf/T, reac_volume) + if(!istype(T)) + return + if(reac_volume < 10) + return + + var/obj/effect/decal/cleanable/semen/S = locate() in T + if(!S) + S = new(T) + if(data["blood_DNA"]) + S.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"])) + +/obj/effect/decal/cleanable/semen + name = "semen" + desc = null + gender = PLURAL + density = 0 + layer = ABOVE_NORMAL_TURF_LAYER + icon = 'icons/obj/genitals/effects.dmi' + icon_state = "semen1" + random_icon_states = list("semen1", "semen2", "semen3", "semen4") + +/obj/effect/decal/cleanable/semen/Initialize(mapload) + . = ..() + dir = GLOB.cardinals + add_blood_DNA(list("Non-human DNA" = "A+")) + +/obj/effect/decal/cleanable/semen/replace_decal(obj/effect/decal/cleanable/semen/S) + if(S.blood_DNA) + blood_DNA |= S.blood_DNA + return ..() + +/datum/reagent/consumable/femcum + name = "Female Ejaculate" + description = "Vaginal lubricant found in most mammals and other animals of similar nature. Where you found this is your own business." + taste_description = "something with a tang" // wew coders who haven't eaten out a girl. + taste_mult = 2 + data = list("donor"=null,"viruses"=null,"donor_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null) + reagent_state = LIQUID + color = "#AAAAAA77" + can_synth = FALSE + nutriment_factor = 0.5 * REAGENTS_METABOLISM + +/obj/effect/decal/cleanable/femcum + name = "female ejaculate" + desc = null + gender = PLURAL + density = 0 + layer = ABOVE_NORMAL_TURF_LAYER + icon = 'icons/obj/genitals/effects.dmi' + icon_state = "fem1" + random_icon_states = list("fem1", "fem2", "fem3", "fem4") + blood_state = null + bloodiness = null + +/obj/effect/decal/cleanable/femcum/Initialize(mapload) + . = ..() + dir = GLOB.cardinals + add_blood_DNA(list("Non-human DNA" = "A+")) + +/obj/effect/decal/cleanable/femcum/replace_decal(obj/effect/decal/cleanable/femcum/F) + if(F.blood_DNA) + blood_DNA |= F.blood_DNA + return ..() + +/datum/reagent/consumable/femcum/reaction_turf(turf/T, reac_volume) + if(!istype(T)) + return + if(reac_volume < 10) + return + + var/obj/effect/decal/cleanable/femcum/S = locate() in T + if(!S) + S = new(T) + if(data["blood_DNA"]) + S.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"])) + diff --git a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm index f7684cd908..3f0ebcb3e3 100644 --- a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm @@ -227,6 +227,18 @@ playsound(M, "sparks", 50, 1) ..() +/datum/reagent/teslium/on_mob_metabolize(mob/living/carbon/human/L) + . = ..() + if(!istype(L)) + return + L.physiology.siemens_coeff *= 2 + +/datum/reagent/teslium/on_mob_end_metabolize(mob/living/carbon/human/L) + . = ..() + if(!istype(L)) + return + L.physiology.siemens_coeff *= 0.5 + /datum/reagent/teslium/energized_jelly name = "Energized Jelly" description = "Electrically-charged jelly. Boosts jellypeople's nervous system, but only shocks other lifeforms." diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 141367c9d9..02e4a89e1d 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -765,7 +765,9 @@ /datum/reagent/toxin/rotatium/on_mob_life(mob/living/carbon/M) if(M.hud_used) if(current_cycle >= 20 && current_cycle%20 == 0) - var/list/screens = list(M.hud_used.plane_masters["[FLOOR_PLANE]"], M.hud_used.plane_masters["[GAME_PLANE]"], M.hud_used.plane_masters["[LIGHTING_PLANE]"]) + var/list/screens = list(M.hud_used.plane_masters["[FLOOR_PLANE]"], M.hud_used.plane_masters["[GAME_PLANE]"], + M.hud_used.plane_masters["[LIGHTING_PLANE]"], M.hud_used.plane_masters["[WALL_PLANE]"], + M.hud_used.plane_masters["[ABOVE_WALL_PLANE]"]) var/rotation = min(round(current_cycle/20), 89) // By this point the player is probably puking and quitting anyway for(var/whole_screen in screens) animate(whole_screen, transform = matrix(rotation, MATRIX_ROTATE), time = 5, easing = QUAD_EASING, loop = -1) @@ -793,15 +795,17 @@ /* if(M.hud_used) if(current_cycle >= 5 && current_cycle % 3 == 0) - var/list/screens = list(M.hud_used.plane_masters["[FLOOR_PLANE]"], M.hud_used.plane_masters["[GAME_PLANE]"], M.hud_used.plane_masters["[LIGHTING_PLANE]"]) - var/matrix/skew = matrix() + var/list/screens = list(M.hud_used.plane_masters["[FLOOR_PLANE]"], M.hud_used.plane_masters["[GAME_PLANE]"], + M.hud_used.plane_masters["[LIGHTING_PLANE]"], M.hud_used.plane_masters["[WALL_PLANE]"], + M.hud_used.plane_masters["[ABOVE_WALL_PLANE]"]) var/matrix/skew = matrix() var/intensity = 8 skew.set_skew(rand(-intensity,intensity), rand(-intensity,intensity)) var/matrix/newmatrix = skew if(prob(33)) // 1/3rd of the time, let's make it stack with the previous matrix! Mwhahahaha! - var/obj/screen/plane_master/PM = M.hud_used.plane_masters["[GAME_PLANE]"] - newmatrix = skew * PM.transform + for(var/whole_screen in screens) + var/obj/screen/plane_master/PM = whole_screen + newmatrix = skew * PM.transform for(var/whole_screen in screens) animate(whole_screen, transform = newmatrix, time = 5, easing = QUAD_EASING, loop = -1) @@ -1015,3 +1019,20 @@ to_chat(M, "[tox_message]") . = 1 ..() + +/datum/reagent/toxin/leadacetate + name = "Lead Acetate" + description = "Used hundreds of years ago as a sweetener, before it was realized that it's incredibly poisonous." + reagent_state = SOLID + color = "#2b2b2b" // rgb: 127, 132, 0 + toxpwr = 0.5 + taste_mult = 1.3 + taste_description = "sugary sweetness" + +/datum/reagent/toxin/leadacetate/on_mob_life(mob/living/carbon/M) + M.adjustOrganLoss(ORGAN_SLOT_EARS,1) + M.adjustOrganLoss(ORGAN_SLOT_BRAIN,1) + if(prob(1)) + to_chat(M, "Ah, what was that? You thought you heard something...") + M.confused += 5 + return ..() diff --git a/code/modules/reagents/chemistry/recipes/drugs.dm b/code/modules/reagents/chemistry/recipes/drugs.dm index 468d29c052..a2b8c27552 100644 --- a/code/modules/reagents/chemistry/recipes/drugs.dm +++ b/code/modules/reagents/chemistry/recipes/drugs.dm @@ -62,3 +62,34 @@ results = list(/datum/reagent/moonsugar = 1, /datum/reagent/medicine/morphine = 2.5) required_temp = 315 //a little above normal body temperature required_reagents = list(/datum/reagent/drug/skooma = 1) +/datum/chemical_reaction/aphro + name = "crocin" + id = /datum/reagent/drug/aphrodisiac + results = list(/datum/reagent/drug/aphrodisiac = 6) + required_reagents = list(/datum/reagent/carbon = 2, /datum/reagent/hydrogen = 2, /datum/reagent/oxygen = 2, /datum/reagent/water = 1) + required_temp = 400 + mix_message = "The mixture boils off a pink vapor..."//The water boils off, leaving the crocin + +/datum/chemical_reaction/aphroplus + name = "hexacrocin" + id = /datum/reagent/drug/aphrodisiacplus + results = list(/datum/reagent/drug/aphrodisiacplus = 1) + required_reagents = list(/datum/reagent/drug/aphrodisiac = 6, /datum/reagent/phenol = 1) + required_temp = 400 + mix_message = "The mixture rapidly condenses and darkens in color..." + +/datum/chemical_reaction/anaphro + name = "camphor" + id = /datum/reagent/drug/anaphrodisiac + results = list(/datum/reagent/drug/anaphrodisiac = 6) + required_reagents = list(/datum/reagent/carbon = 2, /datum/reagent/hydrogen = 2, /datum/reagent/oxygen = 2, /datum/reagent/sulfur = 1) + required_temp = 400 + mix_message = "The mixture boils off a yellow, smelly vapor..."//Sulfur burns off, leaving the camphor + +/datum/chemical_reaction/anaphroplus + name = "pentacamphor" + id = /datum/reagent/drug/anaphrodisiacplus + results = list(/datum/reagent/drug/anaphrodisiacplus = 1) + required_reagents = list(/datum/reagent/drug/aphrodisiac = 5, /datum/reagent/acetone = 1) + required_temp = 300 + mix_message = "The mixture thickens and heats up slighty..." diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index ce1940994d..a8aec91669 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -87,7 +87,7 @@ new /obj/item/stack/sheet/mineral/uranium(location) /datum/chemical_reaction/bluespacecrystalifaction - name = "Crystal Bluespace" + name = "Crystallized Bluespace" id = "crystalbluespace" required_reagents = list(/datum/reagent/consumable/frostoil = 5, /datum/reagent/bluespace = 20, /datum/reagent/iron = 1) mob_react = FALSE @@ -440,9 +440,8 @@ mob_react = FALSE /datum/chemical_reaction/foam/on_reaction(datum/reagents/holder, multiplier) - var/location = get_turf(holder.my_atom) - for(var/mob/M in viewers(5, location)) - to_chat(M, "The solution spews out foam!") + var/turf/location = get_turf(holder.my_atom) + location.visible_message("The solution spews out foam!") var/datum/effect_system/foam_spread/s = new() s.set_up(multiplier*2, location, holder) s.start() @@ -457,11 +456,8 @@ mob_react = FALSE /datum/chemical_reaction/metalfoam/on_reaction(datum/reagents/holder, multiplier) - var/location = get_turf(holder.my_atom) - - for(var/mob/M in viewers(5, location)) - to_chat(M, "The solution spews out a metallic foam!") - + var/turf/location = get_turf(holder.my_atom) + location.visible_message("The solution spews out a metallic foam!") var/datum/effect_system/foam_spread/metal/s = new() s.set_up(multiplier*5, location, holder, 1) s.start() @@ -488,9 +484,8 @@ mob_react = FALSE /datum/chemical_reaction/ironfoam/on_reaction(datum/reagents/holder, multiplier) - var/location = get_turf(holder.my_atom) - for(var/mob/M in viewers(5, location)) - to_chat(M, "The solution spews out a metallic foam!") + var/turf/location = get_turf(holder.my_atom) + location.visible_message("The solution spews out metallic foam!") var/datum/effect_system/foam_spread/metal/s = new() s.set_up(multiplier*5, location, holder, 2) s.start() @@ -636,6 +631,11 @@ results = list(/datum/reagent/concentrated_barbers_aid = 2) required_reagents = list(/datum/reagent/barbers_aid = 1, /datum/reagent/toxin/mutagen = 1) +/datum/chemical_reaction/baldium + results = list(/datum/reagent/baldium = 1) + required_reagents = list(/datum/reagent/radium = 1, /datum/reagent/toxin/acid = 1, /datum/reagent/lye = 1) + required_temp = 395 + /datum/chemical_reaction/saltpetre name = "saltpetre" id = /datum/reagent/saltpetre diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index 8782d65f76..1d06aaacde 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -429,7 +429,7 @@ noexplosion = TRUE mix_message = "The teslium starts to spark as electricity arcs away from it!" mix_sound = 'sound/machines/defib_zap.ogg' - var/tesla_flags = TESLA_MOB_DAMAGE | TESLA_OBJ_DAMAGE | TESLA_MOB_STUN + var/zap_flags = ZAP_MOB_DAMAGE | ZAP_OBJ_DAMAGE | ZAP_MOB_STUN /datum/chemical_reaction/reagent_explosion/teslium_lightning/on_reaction(datum/reagents/holder, multiplier) var/T1 = multiplier * 20 //100 units : Zap 3 times, with powers 2000/5000/12000. Tesla revolvers have a power of 10000 for comparison. @@ -437,15 +437,15 @@ var/T3 = multiplier * 120 sleep(5) if(multiplier >= 75) - tesla_zap(holder.my_atom, 7, T1, tesla_flags) + tesla_zap(holder.my_atom, 7, T1, zap_flags) playsound(holder.my_atom, 'sound/machines/defib_zap.ogg', 50, 1) sleep(15) if(multiplier >= 40) - tesla_zap(holder.my_atom, 7, T2, tesla_flags) + tesla_zap(holder.my_atom, 7, T2, zap_flags) playsound(holder.my_atom, 'sound/machines/defib_zap.ogg', 50, 1) sleep(15) if(multiplier >= 10) //10 units minimum for lightning, 40 units for secondary blast, 75 units for tertiary blast. - tesla_zap(holder.my_atom, 7, T3, tesla_flags) + tesla_zap(holder.my_atom, 7, T3, zap_flags) playsound(holder.my_atom, 'sound/machines/defib_zap.ogg', 50, 1) ..() diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index f326b94e44..fbdbb5f656 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -160,11 +160,8 @@ /obj/item/reagent_containers/microwave_act(obj/machinery/microwave/M) reagents.expose_temperature(1000) if(container_flags & TEMP_WEAK) - var/list/seen = viewers(5, get_turf(src)) - var/iconhtml = icon2html(src, seen) - for(var/mob/H in seen) - to_chat(H, "[iconhtml] \The [src]'s melts from the temperature!") - playsound(get_turf(src), 'sound/FermiChem/heatmelt.ogg', 80, 1) + visible_message("[icon2html(src, viewers(DEFAULT_MESSAGE_RANGE, src))] [src]'s melts from the temperature!") + playsound(src, 'sound/FermiChem/heatmelt.ogg', 80, 1) qdel(src) ..() @@ -184,7 +181,7 @@ if((reagents.pH < 1.5) || (reagents.pH > 12.5)) START_PROCESSING(SSobj, src) else if((reagents.pH < -3) || (reagents.pH > 17)) - visible_message("[icon2html(src, viewers(src))] \The [src] is damaged by the super pH and begins to deform!") + visible_message("[icon2html(src, viewers(DEFAULT_MESSAGE_RANGE, src))] \The [src] is damaged by the super pH and begins to deform!") reagents.pH = clamp(reagents.pH, -3, 17) container_HP -= 1 @@ -221,15 +218,11 @@ container_HP -= damage - var/list/seen = viewers(5, get_turf(src)) - var/iconhtml = icon2html(src, seen) - var/damage_percent = ((container_HP / initial(container_HP)*100)) switch(damage_percent) if(-INFINITY to 0) - for(var/mob/M in seen) - to_chat(M, "[iconhtml] \The [src]'s melts [cause]!") - playsound(get_turf(src), 'sound/FermiChem/acidmelt.ogg', 80, 1) + visible_message("[icon2html(src, viewers(DEFAULT_MESSAGE_RANGE, src))] [src]'s melts [cause]!") + playsound(src, 'sound/FermiChem/acidmelt.ogg', 80, 1) SSblackbox.record_feedback("tally", "fermi_chem", 1, "Times beakers have melted") STOP_PROCESSING(SSobj, src) qdel(src) @@ -246,5 +239,4 @@ update_icon() if(prob(25)) - for(var/mob/M in seen) - to_chat(M, "[iconhtml] \The [src]'s is damaged by [cause] and begins to deform!") + visible_message("[icon2html(src, viewers(DEFAULT_MESSAGE_RANGE, src))] [src]'s is damaged by [cause] and begins to deform!") diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index 6be2e658c1..98a117ea69 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -13,7 +13,7 @@ /obj/item/reagent_containers/blood/Initialize() . = ..() if(blood_type != null) - reagents.add_reagent(/datum/reagent/blood, 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_colour"=color, "blood_type"=blood_type,"resistances"=null,"trace_chem"=null)) + reagents.add_reagent(/datum/reagent/blood, 200, list("donor"=null,"viruses"=null,"blood_DNA"=null,"bloodcolor"=bloodtype_to_color(blood_type), "blood_type"=blood_type,"resistances"=null,"trace_chem"=null)) update_icon() /obj/item/reagent_containers/blood/on_reagent_change(changetype) diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm index cc1cd21bac..ad8d722b61 100644 --- a/code/modules/reagents/reagent_containers/bottle.dm +++ b/code/modules/reagents/reagent_containers/bottle.dm @@ -8,7 +8,6 @@ possible_transfer_amounts = list(5,10,15,25,30) volume = 30 - /obj/item/reagent_containers/glass/bottle/Initialize() . = ..() if(!icon_state) @@ -40,7 +39,6 @@ . += filling - /obj/item/reagent_containers/glass/bottle/epinephrine name = "epinephrine bottle" desc = "A small bottle. Contains epinephrine - used to stabilize patients." @@ -228,6 +226,13 @@ desc = "A small bottle of atropine." list_reagents = list(/datum/reagent/medicine/atropine = 30) +/obj/item/reagent_containers/glass/bottle/zeolites + name = "Zeolites bottle" + desc = "A small bottle of lab made Zeolite, which removes radiation from people quickly as well as contamination on items." + list_reagents = list(/datum/reagent/fermi/zeolites = 30) + +// Viro bottles + /obj/item/reagent_containers/glass/bottle/romerol name = "romerol bottle" desc = "A small bottle of Romerol. The REAL zombie powder." diff --git a/code/modules/reagents/reagent_containers/chem_pack.dm b/code/modules/reagents/reagent_containers/chem_pack.dm new file mode 100644 index 0000000000..35ec588ec5 --- /dev/null +++ b/code/modules/reagents/reagent_containers/chem_pack.dm @@ -0,0 +1,51 @@ +/obj/item/reagent_containers/chem_pack + name = "intravenous medicine bag" + desc = "A plastic pressure bag, or 'chem pack', for IV administration of drugs. It is fitted with a thermosealing strip." + icon = 'icons/obj/bloodpack.dmi' + icon_state = "chempack" + volume = 100 + reagent_flags = OPENCONTAINER + spillable = TRUE + obj_flags = UNIQUE_RENAME + resistance_flags = ACID_PROOF + var/sealed = FALSE + +/obj/item/reagent_containers/chem_pack/on_reagent_change(changetype) + update_icon() + +/obj/item/reagent_containers/chem_pack/update_icon() + cut_overlays() + + var/v = min(round(reagents.total_volume / volume * 10), 10) + if(v > 0) + var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "chempack1") + filling.icon_state = "chempack[v]" + filling.color = mix_color_from_reagents(reagents.reagent_list) + add_overlay(filling) + +/obj/item/reagent_containers/chem_pack/AltClick(mob/living/user) + if(user.canUseTopic(src, BE_CLOSE, NO_DEXTERY) && !sealed) + if(iscarbon(user) && (HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50))) + to_chat(user, "Uh... whoops! You accidentally spill the content of the bag onto yourself.") + SplashReagents(user) + return + else + DISABLE_BITFIELD(reagents.reagents_holder_flags, OPENCONTAINER) + ENABLE_BITFIELD(reagents.reagents_holder_flags, DRAWABLE |INJECTABLE ) + spillable = FALSE + sealed = TRUE + to_chat(user, "You seal the bag.") + + +/obj/item/reagent_containers/chem_pack/examine() + . = ..() + if(sealed) + . += "The bag is sealed shut." + else + . += "Alt-click to seal it." + + +obj/item/reagent_containers/chem_pack/attack_self(mob/user) + if(sealed) + return + ..() \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index b4c570dfc6..3ed946d0c5 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -7,7 +7,7 @@ possible_transfer_amounts = list(1, 2, 3, 4, 5) volume = 5 reagent_flags = TRANSPARENT - custom_price = 75 + custom_price = PRICE_CHEAP_AS_FREE /obj/item/reagent_containers/dropper/afterattack(obj/target, mob/user , proximity) . = ..() diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index b4e954f147..37ea2ca70d 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -351,7 +351,7 @@ name = "wooden bucket" desc = "It's a bucket made of wood." icon_state = "bucket_wooden" - custom_materials = null + custom_materials = list(/datum/material/wood = MINERAL_MATERIAL_AMOUNT * 2) slot_flags = NONE item_flags = NO_MAT_REDEMPTION @@ -361,7 +361,7 @@ icon = 'icons/obj/drinks.dmi' icon_state = "smallbottle" item_state = "bottle" - custom_price = 30 + custom_price = PRICE_CHEAP_AS_FREE list_reagents = list(/datum/reagent/water = 49.5, /datum/reagent/fluorine = 0.5)//see desc, don't think about it too hard custom_materials = list(/datum/material/glass=0) volume = 50 @@ -386,6 +386,20 @@ /obj/item/reagent_containers/glass/beaker/waterbottle/large/empty list_reagents = list() +/obj/item/reagent_containers/glass/beaker/waterbottle/wataur + name = "Bottled Wataur" + desc = "Finally, a bottle as proportionate as you." + icon = 'icons/obj/drinks.dmi' + icon_state = "wataur" + custom_materials = list(/datum/material/plastic=0) + list_reagents = list(/datum/reagent/water = 100) + volume = 100 + amount_per_transfer_from_this = 20 + possible_transfer_amounts = list(5,10,15,20,25,30,50, 100) + container_flags = TEMP_WEAK|APTFT_ALTCLICK|APTFT_VERB + container_HP = 1 + cached_icon = "wataur" + /obj/item/reagent_containers/glass/get_belt_overlay() return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', "bottle") diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 99a93e58dc..799a6db9f5 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -96,8 +96,7 @@ reagent_flags = DRAWABLE flags_1 = null list_reagents = list(/datum/reagent/medicine/epinephrine = 10, /datum/reagent/preservahyde = 3) - custom_price = 150 - custom_premium_price = 300 + custom_premium_price = PRICE_ALMOST_EXPENSIVE /obj/item/reagent_containers/hypospray/medipen/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins to choke on \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") diff --git a/code/modules/reagents/reagent_containers/maunamug.dm b/code/modules/reagents/reagent_containers/maunamug.dm new file mode 100644 index 0000000000..18e6cfa847 --- /dev/null +++ b/code/modules/reagents/reagent_containers/maunamug.dm @@ -0,0 +1,117 @@ +/obj/item/reagent_containers/glass/maunamug + name = "mauna mug" + desc = "A drink served in a classy mug. Now with built-in heating!" + icon = 'icons/obj/mauna_mug.dmi' + icon_state = "maunamug" + spillable = TRUE + reagent_flags = OPENCONTAINER +// fill_icon_state = "maunafilling" +// fill_icon_thresholds = list(25) + var/obj/item/stock_parts/cell/cell + var/open = FALSE + var/on = FALSE + +/obj/item/reagent_containers/glass/maunamug/Initialize(mapload, vol) + . = ..() + cell = new /obj/item/stock_parts/cell(src) + +/obj/item/reagent_containers/glass/maunamug/examine(mob/user) + . = ..() + . += "The status display reads: Current temperature: [reagents.chem_temp]K Current Charge:[cell ? "[cell.charge / cell.maxcharge * 100]%" : "No cell found"]." + if(open) + . += "The battery case is open." + +/obj/item/reagent_containers/glass/maunamug/update_overlays() + . = ..() + if(reagents.total_volume >= 25) + . += mutable_appearance('icons/obj/reagentfillings.dmi', "maunafilling25", color = mix_color_from_reagents(reagents.reagent_list)) + +/obj/item/reagent_containers/glass/maunamug/process() + ..() + if(on && (!cell || cell.charge <= 0)) //Check if we ran out of power + change_power_status(FALSE) + return FALSE + cell.use(10) //Basic cell goes for like 200 seconds, bluespace for 8000 + if(!reagents.total_volume) + return FALSE + var/max_temp = min(500 + (500 * (0.2 * cell.rating)), 1000) // 373 to 1000 + reagents.adjust_thermal_energy(0.8 * cell.maxcharge * reagents.total_volume, max_temp = max_temp) // 4 kelvin every tick on a basic cell. 160k on bluespace + reagents.handle_reactions() + update_icon() + if(reagents.chem_temp >= max_temp) + change_power_status(FALSE) + audible_message("The Mauna Mug lets out a happy beep and turns off!") + playsound(src, 'sound/machines/chime.ogg', 50) + +/obj/item/reagent_containers/glass/maunamug/Destroy() + if(cell) + QDEL_NULL(cell) + STOP_PROCESSING(SSobj, src) + . = ..() + + +/obj/item/reagent_containers/glass/maunamug/attack_self(mob/user) + if(on) + change_power_status(FALSE) + else + if(!cell || cell.charge <= 0) + return FALSE //No power, so don't turn on + change_power_status(TRUE) + +/obj/item/reagent_containers/glass/maunamug/proc/change_power_status(status) + on = status + if(on) + START_PROCESSING(SSobj, src) + else + STOP_PROCESSING(SSobj, src) + update_icon() + +/obj/item/reagent_containers/glass/maunamug/screwdriver_act(mob/living/user, obj/item/I) + . = ..() + open = !open + to_chat(user, "You screw the battery case on [src] [open ? "open" : "closed"] .") + update_icon() + +/obj/item/reagent_containers/glass/maunamug/attackby(obj/item/I, mob/user, params) + add_fingerprint(user) + if(!istype(I, /obj/item/stock_parts/cell)) + return ..() + if(!open) + to_chat(user, "The battery case must be open to insert a power cell!") + return FALSE + if(cell) + to_chat(user, "There is already a power cell inside!") + return FALSE + else if(!user.transferItemToLoc(I, src)) + return + cell = I + user.visible_message("[user] inserts a power cell into [src].", "You insert the power cell into [src].") + update_icon() + +/obj/item/reagent_containers/glass/maunamug/attack_hand(mob/living/user) + if(cell && open) + cell.update_icon() + user.put_in_hands(cell) + cell = null + to_chat(user, "You remove the power cell from [src].") + on = FALSE + update_icon() + return TRUE + return ..() + +/obj/item/reagent_containers/glass/maunamug/update_icon() + ..() + if(open) + if(cell) + icon_state = "maunamug_bat" + else + icon_state = "maunamug_no_bat" + else if(on) + icon_state = "maunamug_on" + else + icon_state = "maunamug" + if(reagents.total_volume && reagents.chem_temp >= 400) + var/intensity = (reagents.chem_temp - 400) * 1 / 600 //Get the opacity of the incandescent overlay. Ranging from 400 to 1000 + var/mutable_appearance/mug_glow = mutable_appearance(icon, "maunamug_incand") + mug_glow.alpha = 255 * intensity + add_overlay(mug_glow) diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index e6fa18ba9c..ec1e7823ed 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -11,8 +11,8 @@ grind_results = list() var/apply_type = INGEST var/apply_method = "swallow" - var/roundstart = 0 - var/self_delay = 0 //pills are instant, this is because patches inheret their aplication from pills + var/roundstart = FALSE + var/self_delay = FALSE //pills are instant, this is because patches inheret their aplication from pills var/dissolvable = TRUE /obj/item/reagent_containers/pill/Initialize() @@ -22,10 +22,11 @@ if(reagents.total_volume && roundstart) name += " ([reagents.total_volume]u)" - /obj/item/reagent_containers/pill/attack_self(mob/user) return +/obj/item/reagent_containers/pill/get_w_volume() // DEFAULT_VOLUME_TINY at 25u, DEFAULT_VOLUME_SMALL at 50u + return DEFAULT_VOLUME_TINY/2 + reagents.total_volume / reagents.maximum_volume * DEFAULT_VOLUME_TINY /obj/item/reagent_containers/pill/attack(mob/M, mob/user, def_zone) if(!canconsume(M, user)) @@ -72,9 +73,8 @@ to_chat(user, "[target] is full.") return - to_chat(user, "You dissolve [src] in [target].") - for(var/mob/O in viewers(2, user)) //viewers is necessary here because of the small radius - to_chat(O, "[user] slips something into [target]!") + user.visible_message("[user] slips something into [target]!", + "You dissolve [src] in [target].", vision_distance = 2) reagents.trans_to(target, reagents.total_volume) qdel(src) @@ -83,119 +83,126 @@ desc = "Highly toxic." icon_state = "pill5" list_reagents = list(/datum/reagent/toxin = 50) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/cyanide name = "cyanide pill" desc = "Don't swallow this." icon_state = "pill5" list_reagents = list(/datum/reagent/toxin/cyanide = 50) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/adminordrazine name = "adminordrazine pill" desc = "It's magic. We don't have to explain it." icon_state = "pill16" list_reagents = list(/datum/reagent/medicine/adminordrazine = 50) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/morphine name = "morphine pill" desc = "Commonly used to treat insomnia." icon_state = "pill8" list_reagents = list(/datum/reagent/medicine/morphine = 30) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/stimulant name = "stimulant pill" desc = "Often taken by overworked employees, athletes, and the inebriated. You'll snap to attention immediately!" icon_state = "pill19" list_reagents = list(/datum/reagent/medicine/ephedrine = 10, /datum/reagent/medicine/antihol = 10, /datum/reagent/consumable/coffee = 30) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/salbutamol name = "salbutamol pill" desc = "Used to treat oxygen deprivation." icon_state = "pill16" list_reagents = list(/datum/reagent/medicine/salbutamol = 30) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/charcoal name = "charcoal pill" desc = "Neutralizes many common toxins." icon_state = "pill17" list_reagents = list(/datum/reagent/medicine/charcoal = 10) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/epinephrine name = "epinephrine pill" desc = "Used to stabilize patients." icon_state = "pill5" list_reagents = list(/datum/reagent/medicine/epinephrine = 15) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/mannitol name = "mannitol pill" desc = "Used to treat brain damage." icon_state = "pill17" - list_reagents = list(/datum/reagent/medicine/mannitol = 50) - roundstart = 1 + list_reagents = list(/datum/reagent/medicine/mannitol = 25) + roundstart = TRUE /obj/item/reagent_containers/pill/mutadone name = "mutadone pill" desc = "Used to treat genetic damage." icon_state = "pill20" - list_reagents = list(/datum/reagent/medicine/mutadone = 50) - roundstart = 1 + list_reagents = list(/datum/reagent/medicine/mutadone = 25) + roundstart = TRUE /obj/item/reagent_containers/pill/salicyclic name = "salicylic acid pill" desc = "Used to dull pain." icon_state = "pill9" list_reagents = list(/datum/reagent/medicine/sal_acid = 24) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/oxandrolone name = "oxandrolone pill" desc = "Used to stimulate burn healing." icon_state = "pill11" list_reagents = list(/datum/reagent/medicine/oxandrolone = 24) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/insulin name = "insulin pill" desc = "Handles hyperglycaemic coma." icon_state = "pill18" list_reagents = list(/datum/reagent/medicine/insulin = 50) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/psicodine name = "psicodine pill" - desc = "Used to treat mental instability and traumas." + desc = "Used to treat mental instability and phobias." list_reagents = list(/datum/reagent/medicine/psicodine = 10) icon_state = "pill22" - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/antirad name = "potassium iodide pill" desc = "Used to treat radition used to counter radiation poisoning." icon_state = "pill18" list_reagents = list(/datum/reagent/medicine/potass_iodide = 50) - roundstart = 1 + roundstart = TRUE /obj/item/reagent_containers/pill/antirad_plus name = "prussian blue pill" desc = "Used to treat heavy radition poisoning." icon_state = "prussian_blue" - list_reagents = list(/datum/reagent/medicine/prussian_blue = 25, /datum/reagent/water = 10) - roundstart = 1 + list_reagents = list(/datum/reagent/medicine/prussian_blue = 25) + roundstart = TRUE /obj/item/reagent_containers/pill/mutarad name = "radiation treatment deluxe pill" desc = "Used to treat heavy radition poisoning and genetic defects." icon_state = "anit_rad_fixgene" - list_reagents = list(/datum/reagent/medicine/prussian_blue = 15, /datum/reagent/medicine/potass_iodide = 15, /datum/reagent/medicine/mutadone = 15, /datum/reagent/water = 5) - roundstart = 1 + list_reagents = list(/datum/reagent/medicine/prussian_blue = 10, /datum/reagent/medicine/potass_iodide = 10, /datum/reagent/medicine/mutadone = 5) + roundstart = TRUE + +/obj/item/reagent_containers/pill/neurine + name = "neurine pill" + desc = "Used to treat non-severe mental traumas." + list_reagents = list("neurine" = 10) + icon_state = "pill22" + roundstart = TRUE ///////////////////////////////////////// this pill is used only in a legion mob drop /obj/item/reagent_containers/pill/shadowtoxin @@ -217,7 +224,7 @@ /obj/item/reagent_containers/pill/lsd name = "hallucinogen pill" - list_reagents = list(/datum/reagent/drug/mushroomhallucinogen = 15, /datum/reagent/toxin/mindbreaker = 15) + list_reagents = list(/datum/reagent/drug/mushroomhallucinogen = 12.5, /datum/reagent/toxin/mindbreaker = 12.5) /obj/item/reagent_containers/pill/aranesp diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 4782a80c62..4ab1470667 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -15,7 +15,7 @@ var/show_filling = TRUE custom_materials = list(/datum/material/iron=10, /datum/material/glass=20) reagent_flags = TRANSPARENT - custom_price = 100 + custom_price = PRICE_CHEAP_AS_FREE /obj/item/reagent_containers/syringe/Initialize() . = ..() diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 54ec327fdb..bc4e214161 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -120,9 +120,10 @@ /obj/structure/reagent_dispensers/fueltank/fire_act(exposed_temperature, exposed_volume) boom() -/obj/structure/reagent_dispensers/fueltank/tesla_act() +/obj/structure/reagent_dispensers/fueltank/zap_act(power, zap_flags, shocked_objects) ..() //extend the zap - boom() + if(ZAP_OBJ_DAMAGE & zap_flags) + boom() /obj/structure/reagent_dispensers/fueltank/bullet_act(obj/item/projectile/P) . = ..() @@ -169,6 +170,7 @@ name = "pepper spray refiller" desc = "Contains condensed capsaicin for use in law \"enforcement.\"" icon_state = "pepper" + plane = ABOVE_WALL_PLANE anchored = TRUE density = FALSE reagent_id = /datum/reagent/consumable/condensedcapsaicin @@ -182,6 +184,7 @@ name = "virus food dispenser" desc = "A dispenser of low-potency virus mutagenic." icon_state = "virus_food" + plane = ABOVE_WALL_PLANE anchored = TRUE density = FALSE reagent_id = /datum/reagent/consumable/virus_food @@ -238,12 +241,6 @@ icon_state = "whitekeg" reagent_id = /datum/reagent/consumable/milk -/obj/structure/reagent_dispensers/keg/semen - name = "keg of semen" - desc = "Dear lord, where did this even come from?" - icon_state = "whitekeg" - reagent_id = /datum/reagent/consumable/semen - /obj/structure/reagent_dispensers/keg/gargle name = "keg of pan galactic gargleblaster" desc = "A keg of... wow that's a long name." diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 600ee4ad14..cadd9ba04f 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -138,6 +138,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) var/turf/T = get_step(src, movedir) if(length(T.contents) > 150) return + affecting.len = min(affecting.len, 150 - length(T.contents)) for(var/atom/movable/A in affecting) if((A.loc == loc) && A.has_gravity()) A.ConveyorMove(movedir) diff --git a/code/modules/recycling/disposal/pipe.dm b/code/modules/recycling/disposal/pipe.dm index aed2310a7f..45d3d9da25 100644 --- a/code/modules/recycling/disposal/pipe.dm +++ b/code/modules/recycling/disposal/pipe.dm @@ -14,6 +14,7 @@ max_integrity = 200 armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 30) layer = DISPOSAL_PIPE_LAYER // slightly lower than wires and other pipes + plane = ABOVE_WALL_PLANE rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE var/dpdir = NONE // bitmask of pipe directions var/initialize_dirs = NONE // bitflags of pipe directions added on init, see \code\_DEFINES\pipe_construction.dm diff --git a/code/modules/research/bepis.dm b/code/modules/research/bepis.dm new file mode 100644 index 0000000000..20ca7987d5 --- /dev/null +++ b/code/modules/research/bepis.dm @@ -0,0 +1,270 @@ +//This system is designed to act as an in-between for cargo and science, and the first major money sink in the game outside of just buying things from cargo (As of 10/9/19, anyway). + +//economics defined values, subject to change should anything be too high or low in practice. + +#define MACHINE_OPERATION 100000 +#define MACHINE_OVERLOAD 500000 +#define MAJOR_THRESHOLD 5500 +#define MINOR_THRESHOLD 3500 +#define STANDARD_DEVIATION 1000 + +/obj/machinery/rnd/bepis + name = "\improper B.E.P.I.S. Chamber" + desc = "A high fidelity testing device which unlocks the secrets of the known universe using the two most powerful substances available to man: excessive amounts of electricity and capital." + icon = 'icons/obj/machines/bepis.dmi' + icon_state = "chamber" + density = TRUE + layer = ABOVE_MOB_LAYER + use_power = IDLE_POWER_USE + active_power_usage = 1500 + circuit = /obj/item/circuitboard/machine/bepis + + var/banking_amount = 100 + var/banked_cash = 0 //stored player cash + var/datum/bank_account/account //payer's account. + var/account_name //name of the payer's account. + var/error_cause = null + //Vars related to probability and chance of success for testing + var/major_threshold = MAJOR_THRESHOLD + var/minor_threshold = MINOR_THRESHOLD + var/std = STANDARD_DEVIATION //That's Standard Deviation, what did you think it was? + //Stock part variables + var/power_saver = 1 + var/inaccuracy_percentage = 1.5 + var/positive_cash_offset = 0 + var/negative_cash_offset = 0 + var/minor_rewards = list(/obj/item/stack/circuit_stack/full, //To add a new minor reward, add it here. + /obj/item/flashlight/flashdark, + /obj/item/pen/survival, + /obj/item/circuitboard/machine/sleeper/party, + /obj/item/toy/sprayoncan) + var/static/list/item_list = list() + +/obj/machinery/rnd/bepis/attackby(obj/item/O, mob/user, params) + if(default_deconstruction_screwdriver(user, "chamber_open", "chamber", O)) + update_icon_state() + return + if(default_deconstruction_crowbar(O)) + return + if(!is_operational()) + to_chat(user, "[src] can't accept money when it's not functioning.") + return + if(istype(O, /obj/item/holochip) || istype(O, /obj/item/stack/spacecash)) + var/deposit_value = O.get_item_credit_value() + banked_cash += deposit_value + qdel(O) + say("Deposited [deposit_value] credits into storage.") + update_icon_state() + return + if(istype(O, /obj/item/card/id)) + var/obj/item/card/id/Card = O + if(Card.registered_account) + account = Card.registered_account + account_name = Card.registered_name + say("New account detected. Console Updated.") + else + say("No account detected on card. Aborting.") + return + return ..() + +/obj/machinery/rnd/bepis/RefreshParts() + var/C = 0 + var/M = 0 + var/L = 0 + var/S = 0 + for(var/obj/item/stock_parts/capacitor/Cap in component_parts) + C += ((Cap.rating - 1) * 0.1) + power_saver = 1 - C + for(var/obj/item/stock_parts/manipulator/Manip in component_parts) + M += ((Manip.rating - 1) * 250) + positive_cash_offset = M + for(var/obj/item/stock_parts/micro_laser/Laser in component_parts) + L += ((Laser.rating - 1) * 250) + negative_cash_offset = L + for(var/obj/item/stock_parts/scanning_module/Scan in component_parts) + S += ((Scan.rating - 1) * 0.25) + inaccuracy_percentage = (1.5 - S) + +/obj/machinery/rnd/bepis/proc/depositcash() + var/deposit_value = 0 + deposit_value = banking_amount + if(deposit_value == 0) + update_icon_state() + say("Attempting to deposit 0 credits. Aborting.") + return + deposit_value = clamp(round(deposit_value, 1), 1, 15000) + if(!account) + say("Cannot find user account. Please swipe a valid ID.") + return + if(!account.has_money(deposit_value)) + say("You do not possess enough credits.") + return + account.adjust_money(-deposit_value) //The money vanishes, not paid to any accounts. + SSblackbox.record_feedback("amount", "BEPIS_credits_spent", deposit_value) + banked_cash += deposit_value + use_power(1000 * power_saver) + say("Cash deposit successful. There is [banked_cash] in the chamber.") + update_icon_state() + return + +/obj/machinery/rnd/bepis/proc/withdrawcash() + var/withdraw_value = 0 + withdraw_value = banking_amount + if(withdraw_value > banked_cash) + say("Cannot withdraw more than stored funds. Aborting.") + else + banked_cash -= withdraw_value + new /obj/item/holochip(src.loc, withdraw_value) + say("Withdrawing [withdraw_value] credits from the chamber.") + update_icon_state() + return + +/obj/machinery/rnd/bepis/proc/calcsuccess() + var/turf/dropturf = null + var/gauss_major = 0 + var/gauss_minor = 0 + var/gauss_real = 0 + var/list/turfs = block(locate(x-1,y-1,z),locate(x+1,y+1,z)) //NO MORE DISCS IN WINDOWS + while(length(turfs)) + var/turf/T = pick_n_take(turfs) + if(is_blocked_turf(T, exclude_mobs=TRUE)) + continue + else + dropturf = T + break + if (!dropturf) + dropturf = drop_location() + gauss_major = (gaussian(major_threshold, std) - negative_cash_offset) //This is the randomized profit value that this experiment has to surpass to unlock a tech. + gauss_minor = (gaussian(minor_threshold, std) - negative_cash_offset) //And this is the threshold to instead get a minor prize. + gauss_real = (gaussian(banked_cash, std*inaccuracy_percentage) + positive_cash_offset) //this is the randomized profit value that your experiment expects to give. + say("Real: [gauss_real]. Minor: [gauss_minor]. Major: [gauss_major].") + flick("chamber_flash",src) + update_icon_state() + banked_cash = 0 + if((gauss_real >= gauss_major) && (SSresearch.techweb_nodes_experimental.len > 0)) //Major Success. + say("Experiment concluded with major success. New technology node discovered on technology disc.") + new /obj/item/disk/tech_disk/major(dropturf,1) + if(SSresearch.techweb_nodes_experimental.len == 0) + say("Expended all available experimental technology nodes. Resorting to minor rewards.") + return + if(gauss_real >= gauss_minor) //Minor Success. + var/reward = pick(minor_rewards) + new reward(dropturf) + say("Experiment concluded with partial success. Dispensing compiled research efforts.") + return + if(gauss_real <= -1) //Critical Failure + say("ERROR: CRITICAL MACHIME MALFUNCTI- ON. CURRENCY IS NOT CRASH. CANNOT COMPUTE COMMAND: 'make bucks'") //not a typo, for once. + new /mob/living/simple_animal/deer(dropturf, 1) + use_power(MACHINE_OVERLOAD * power_saver) //To prevent gambling at low cost and also prevent spamming for infinite deer. + return + //Minor Failure + error_cause = pick("attempted to sell grey products to American dominated market.","attempted to sell gray products to British dominated market.","placed wild assumption that PDAs would go out of style.","simulated product #76 damaged brand reputation mortally.","simulated business model resembled 'pyramid scheme' by 98.7%.","product accidently granted override access to all station doors.") + say("Experiment concluded with zero product viability. Cause of error: [error_cause]") + return + +/obj/machinery/rnd/bepis/update_icon_state() + if(panel_open == TRUE) + icon_state = "chamber_open" + return + if((use_power == ACTIVE_POWER_USE) && (banked_cash > 0) && (is_operational())) + icon_state = "chamber_active_loaded" + return + if (((use_power == IDLE_POWER_USE) && (banked_cash > 0)) || (banked_cash > 0) && (!is_operational())) + icon_state = "chamber_loaded" + return + if(use_power == ACTIVE_POWER_USE && is_operational()) + icon_state = "chamber_active" + return + if(((use_power == IDLE_POWER_USE) && (banked_cash == 0)) || (!is_operational())) + icon_state = "chamber" + return + +/obj/machinery/rnd/bepis/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "bepis", name, 500, 480, master_ui, state) + ui.open() + RefreshParts() + +/obj/machinery/rnd/bepis/ui_data(mob/user) + var/list/data = list() + var/powered = FALSE + var/zvalue = (banked_cash - (major_threshold - positive_cash_offset - negative_cash_offset))/(std) + var/std_success = 0 + var/prob_success = 0 + //Admittedly this is messy, but not nearly as messy as the alternative, which is jury-rigging an entire Z-table into the code, or making an adaptive z-table. + var/z = abs(zvalue) + if(z > 0 && z <= 0.5) + std_success = 19.1 + else if(z > 0.5 && z <= 1.0) + std_success = 34.1 + else if(z > 1.0 && z <= 1.5) + std_success = 43.3 + else if(z > 1.5 && z <= 2.0) + std_success = 47.7 + else if(z > 2.0 && z <= 2.5) + std_success = 49.4 + else + std_success = 50 + if(zvalue > 0) + prob_success = 50 + std_success + else if(zvalue == 0) + prob_success = 50 + else + prob_success = 50 - std_success + + if(use_power == ACTIVE_POWER_USE) + powered = TRUE + data["account_owner"] = account_name + data["amount"] = banking_amount + data["stored_cash"] = banked_cash + data["mean_value"] = (major_threshold - positive_cash_offset - negative_cash_offset) + data["error_name"] = error_cause + data["power_saver"] = power_saver + data["accuracy_percentage"] = inaccuracy_percentage * 100 + data["positive_cash_offset"] = positive_cash_offset + data["negative_cash_offset"] = negative_cash_offset + data["manual_power"] = powered ? FALSE : TRUE + data["silicon_check"] = issilicon(user) + data["success_estimate"] = prob_success + return data + +/obj/machinery/rnd/bepis/ui_act(action,params) + if(..()) + return + switch(action) + if("deposit_cash") + if(use_power == IDLE_POWER_USE) + return + depositcash() + if("withdraw_cash") + if(use_power == IDLE_POWER_USE) + return + withdrawcash() + if("begin_experiment") + if(use_power == IDLE_POWER_USE) + return + if(banked_cash == 0) + say("Please deposit funds to begin testing.") + return + calcsuccess() + use_power(MACHINE_OPERATION * power_saver) //This thing should eat your APC battery if you're not careful. + use_power = IDLE_POWER_USE //Machine shuts off after use to prevent spam and look better visually. + update_icon_state() + if("amount") + var/input = text2num(params["amount"]) + if(input) + banking_amount = input + if("toggle_power") + if(use_power == ACTIVE_POWER_USE) + use_power = IDLE_POWER_USE + else + use_power = ACTIVE_POWER_USE + update_icon_state() + if("account_reset") + if(use_power == IDLE_POWER_USE) + return + account_name = "" + account = null + say("Account settings reset.") + . = TRUE diff --git a/code/modules/research/designs/autobotter_designs.dm b/code/modules/research/designs/autobotter_designs.dm index eab7423b91..830c035525 100644 --- a/code/modules/research/designs/autobotter_designs.dm +++ b/code/modules/research/designs/autobotter_designs.dm @@ -14,7 +14,7 @@ /datum/design/bottle materials = list(/datum/material/glass = 1200) build_type = AUTOBOTTLER - category = list("Storge") + category = list("Storage") /datum/design/bottle/wine name = "Bottle Design (Wine)" @@ -165,6 +165,7 @@ name = "Export Design (Gin)" desc = "Allows for the blowing, and bottling of Gin bottles." id = "gin_export" + reagents_list = list(/datum/reagent/consumable/ethanol/gin = 50) build_path = /obj/item/export/bottle/gin /datum/design/bottle/export/whiskey @@ -331,4 +332,4 @@ id = "greenroad" reagents_list = list(/datum/reagent/consumable/vitfro = 50, /datum/reagent/consumable/ethanol/rum = 30, /datum/reagent/ash = 10) category = list("Beers") - build_path = /obj/item/export/bottle/greenroad \ No newline at end of file + build_path = /obj/item/export/bottle/greenroad diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm index 20a5370793..61d0594d3b 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm @@ -10,6 +10,7 @@ id = "beanbag_slug" build_type = AUTOLATHE materials = list(/datum/material/iron = 250) + materials = list(/datum/material/iron = 1000) build_path = /obj/item/ammo_casing/shotgun/beanbag category = list("initial", "Security") @@ -73,12 +74,12 @@ build_path = /obj/item/restraints/handcuffs category = list("hacked", "Security") -/datum/design/receiver - name = "Modular Receiver" - id = "receiver" - build_type = AUTOLATHE | NO_PUBLIC_LATHE - materials = list(/datum/material/iron = 15000) - build_path = /obj/item/weaponcrafting/receiver +/datum/design/rifle_receiver + name = "Rifle Receiver" + id = "rifle_receiver" + build_type = AUTOLATHE + materials = list(/datum/material/iron = 24000) + build_path = /obj/item/weaponcrafting/improvised_parts/rifle_receiver category = list("hacked", "Security") /datum/design/shotgun_slug @@ -113,6 +114,10 @@ build_path = /obj/item/ammo_casing/shotgun/incendiary category = list("hacked", "Security") +///////////////// +// Bullets // +///////////////// + /datum/design/riot_dart name = "Foam Riot Dart" id = "riot_dart" @@ -192,3 +197,4 @@ materials = list(/datum/material/iron = 5500) build_path = /obj/item/clothing/head/foilhat category = list("hacked", "Misc") + diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm index eebeec2c78..539232bbcd 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm @@ -81,7 +81,16 @@ materials = list(/datum/material/iron = 50, /datum/material/glass = 50) build_path = /obj/item/airlock_painter category = list("initial", "Misc","Tool Designs") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SERVICE + +/datum/design/airlock_painter/decal + name = "Decal Painter" + id = "decal_painter" + build_type = AUTOLATHE | PROTOLATHE + materials = list(/datum/material/iron = 50, /datum/material/glass = 50) + build_path = /obj/item/airlock_painter/decal + category = list("initial","Tools","Tool Designs") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SERVICE /datum/design/cultivator name = "Cultivator" @@ -271,4 +280,12 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 2000) build_path = /obj/item/vending_refill/custom - category = list("initial", "Misc") \ No newline at end of file + category = list("initial", "Misc") + +/datum/design/trigger_assembly + name = "Trigger Assembly" + id = "trigger_assembly" + build_type = AUTOLATHE + materials = list(/datum/material/iron = 6500, /datum/material/glass = 50) + build_path = /obj/item/weaponcrafting/improvised_parts/trigger_assembly + category = list("initial", "Misc") diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm index f6c31a9808..bebf836ce0 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm @@ -139,7 +139,7 @@ id = "tool_box" build_type = AUTOLATHE materials = list(MAT_CATEGORY_RIGID = 500) - build_path = /obj/item/storage/toolbox + build_path = /obj/item/storage/toolbox/greyscale category = list("initial","Tools") /datum/design/spraycan @@ -148,7 +148,8 @@ build_type = AUTOLATHE materials = list(/datum/material/iron = 100, /datum/material/glass = 100) build_path = /obj/item/toy/crayon/spraycan - category = list("initial", "Tools") + category = list("initial", "Tools", "Tool Designs") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE /datum/design/geiger name = "Geiger Counter" diff --git a/code/modules/research/designs/autoylathe_designs.dm b/code/modules/research/designs/autoylathe_designs.dm index c2076db121..6db9755585 100644 --- a/code/modules/research/designs/autoylathe_designs.dm +++ b/code/modules/research/designs/autoylathe_designs.dm @@ -63,7 +63,7 @@ name = "Double-Bladed Toy Sword" id = "dbtoysword" materials = list(/datum/material/plastic = 1000) - build_path = /obj/item/twohanded/dualsaber/toy + build_path = /obj/item/dualsaber/toy category = list("initial", "Melee") /datum/design/autoylathe/toykatana diff --git a/code/modules/research/designs/bluespace_designs.dm b/code/modules/research/designs/bluespace_designs.dm index 0d11b8e887..336dc4ec8e 100644 --- a/code/modules/research/designs/bluespace_designs.dm +++ b/code/modules/research/designs/bluespace_designs.dm @@ -95,3 +95,23 @@ build_path = /obj/item/storage/bag/ore/holding category = list("Bluespace Designs") departmental_flags = DEPARTMENTAL_FLAG_CARGO + +/datum/design/bluespace_tray + name = "Bluespace Tray" + desc = "A tray created using bluespace technology to fit more food on it." + id = "bluespace_tray" + build_type = PROTOLATHE + build_path = /obj/item/storage/bag/tray/bluespace + materials = list(/datum/material/iron = 2000, /datum/material/bluespace = 500) + category = list("Bluespace Designs") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/bluespace_carrier + name = "Bluespace Jar" + desc = "A jar used to contain creatures, using the power of bluespace." + id = "bluespace_carrier" + build_type = PROTOLATHE + build_path = /obj/item/pet_carrier/bluespace + materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 600) + category = list("Bluespace Designs") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE \ No newline at end of file diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm b/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm index 27560f29a1..99caa5b480 100644 --- a/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm +++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm @@ -43,4 +43,20 @@ id = "libraryconsole" build_path = /obj/item/circuitboard/computer/libraryconsole category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ALL \ No newline at end of file + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/flight_control + name = "Computer Design (Shuttle Flight Controls)" + desc = "Allows for the construction of circuit boards used to build a console that enables shuttle flight" + id = "shuttle_control" + build_path = /obj/item/circuitboard/computer/shuttle/flight_control + category = list("Computer Boards", "Shuttle Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/shuttle_docker + name = "Computer Design (Private Navigation Computer)" + desc = "Allows for the construction of circuit boards used to build a console that enables the targetting of custom flight locations" + id = "shuttle_docker" + build_path = /obj/item/circuitboard/computer/shuttle/docker + category = list("Computer Boards", "Shuttle Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_sec.dm b/code/modules/research/designs/comp_board_designs/comp_board_designs_sec.dm index 0e93481f66..914e9ec225 100644 --- a/code/modules/research/designs/comp_board_designs/comp_board_designs_sec.dm +++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_sec.dm @@ -10,6 +10,14 @@ category = list("Computer Boards") departmental_flags = DEPARTMENTAL_FLAG_SECURITY +/datum/design/board/shuttleseccamera + name = "Computer Design (Shuttle-Linked Security Camera)" + desc = "Same as a regular security camera console, but when linked to a shuttle, will specifically access cameras on that shuttle." + id = "shuttleseccamera" + build_path = /obj/item/circuitboard/computer/security/shuttle + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + /datum/design/board/secdata name = "Computer Design (Security Records Console)" desc = "Allows for the construction of circuit boards used to build a security records console." diff --git a/code/modules/research/designs/electronics_designs.dm b/code/modules/research/designs/electronics_designs.dm index 4e9238c4c7..7e5bedaf0e 100644 --- a/code/modules/research/designs/electronics_designs.dm +++ b/code/modules/research/designs/electronics_designs.dm @@ -166,5 +166,3 @@ desc = "This disk will add the ability to remotely feed slimes potions via the Xenobiology console, and lift the restrictions on the number of slimes that can be stored inside the Xenobiology console. This includes the contents of the basic slime upgrade disk." id = "xenobio_slimeadv" build_path = /obj/item/disk/xenobio_console_upgrade/slimeadv - - diff --git a/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm b/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm index 95e5a66099..e0702be689 100644 --- a/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm +++ b/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm @@ -122,3 +122,44 @@ build_path = /obj/item/circuitboard/machine/autolathe/toy departmental_flags = DEPARTMENTAL_FLAG_ALL category = list("Misc. Machinery") + +/datum/design/board/hypnochair + name = "Machine Design (Enhanced Interrogation Chamber)" + desc = "Allows for the construction of circuit boards used to build an Enhanced Interrogation Chamber." + id = "hypnochair" + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + build_path = /obj/item/circuitboard/machine/hypnochair + category = list("Misc. Machinery") + +/datum/design/board/engine_plasma + name = "Machine Design (Plasma Thruster Board)" + desc = "The circuit board for a plasma thruster." + id = "engine_plasma" + build_path = /obj/item/circuitboard/machine/shuttle/engine/plasma + category = list ("Shuttle Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/engine_void + name = "Machine Design (Void Thruster Board)" + desc = "The circuit board for a void thruster." + id = "engine_void" + build_path = /obj/item/circuitboard/machine/shuttle/engine/void + category = list ("Shuttle Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/engine_heater + name = "Machine Design (Engine Heater Board)" + desc = "The circuit board for an engine heater." + id = "engine_heater" + build_path = /obj/item/circuitboard/machine/shuttle/heater + category = list ("Shuttle Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/sheetifier + name = "Sheetifier" + desc = "This machine turns weird things into sheets." + id = "sheetifier" + build_path = /obj/item/circuitboard/machine/sheetifier + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + diff --git a/code/modules/research/designs/machine_desings/machine_designs_sci.dm b/code/modules/research/designs/machine_desings/machine_designs_sci.dm index 183977b455..59fae9d09b 100644 --- a/code/modules/research/designs/machine_desings/machine_designs_sci.dm +++ b/code/modules/research/designs/machine_desings/machine_designs_sci.dm @@ -66,6 +66,14 @@ category = list("Research Machinery") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE +/datum/design/board/bepis + name = "Machine Design (B.E.P.I.S. Board)" + desc = "The circuit board for a B.E.P.I.S." + id = "bepis" + build_path = /obj/item/circuitboard/machine/bepis + category = list("Research Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + /datum/design/board/protolathe name = "Machine Design (Protolathe Board)" desc = "The circuit board for a protolathe." diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 02d16b8c2e..4efcad97ba 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -264,6 +264,79 @@ construction_time = 600 category = list("Gygax") +//Medical Gygax +/datum/design/medigax_chassis + name = "Exosuit Chassis (\"Medical Gygax\")" + id = "medigax_chassis" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/chassis/medigax + materials = list(/datum/material/iron=20000) + construction_time = 100 + category = list("Medical-Spec Gygax") + +/datum/design/medigax_torso + name = "Exosuit Torso (\"Medical Gygax\")" + id = "medigax_torso" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/medigax_torso + materials = list(/datum/material/iron=20000,/datum/material/glass=10000,/datum/material/diamond=2000) + construction_time = 300 + category = list("Medical-Spec Gygax") + +/datum/design/medigax_head + name = "Exosuit Head (\"Medical Gygax\")" + id = "medigax_head" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/medigax_head + materials = list(/datum/material/iron=10000,/datum/material/glass=5000, /datum/material/diamond=2000) + construction_time = 200 + category = list("Medical-Spec Gygax") + +/datum/design/medigax_left_arm + name = "Exosuit Left Arm (\"Medical Gygax\")" + id = "medigax_left_arm" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/medigax_left_arm + materials = list(/datum/material/iron=15000, /datum/material/diamond=1000) + construction_time = 200 + category = list("Medical-Spec Gygax") + +/datum/design/medigax_right_arm + name = "Exosuit Right Arm (\"Medical Gygax\")" + id = "medigax_right_arm" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/medigax_right_arm + materials = list(/datum/material/iron=15000, /datum/material/diamond=1000) + construction_time = 200 + category = list("Medical-Spec Gygax") + +/datum/design/medigax_left_leg + name = "Exosuit Left Leg (\"Medical Gygax\")" + id = "medigax_left_leg" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/medigax_left_leg + materials = list(/datum/material/iron=15000, /datum/material/diamond=2000) + construction_time = 200 + category = list("Medical-Spec Gygax") + +/datum/design/medigax_right_leg + name = "Exosuit Right Leg (\"Medical Gygax\")" + id = "medigax_right_leg" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/medigax_right_leg + materials = list(/datum/material/iron=15000, /datum/material/diamond=2000) + construction_time = 200 + category = list("Medical-Spec Gygax") + +/datum/design/medigax_armor + name = "Exosuit Armor (\"Medical Gygax\")" + id = "medigax_armor" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/part/medigax_armor + materials = list(/datum/material/iron=15000,/datum/material/diamond=10000,/datum/material/titanium=10000) + construction_time = 600 + category = list("Medical-Spec Gygax") + //Durand /datum/design/durand_chassis name = "Exosuit Chassis (\"Durand\")" diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 5405b82848..e1e55f3476 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -212,6 +212,16 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL +/datum/design/chem_pack + name = "Intravenous Medicine Bag" + desc = "A plastic pressure bag for IV administration of drugs." + id = "chem_pack" + build_type = PROTOLATHE + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + materials = list(/datum/material/plastic = 1500) + build_path = /obj/item/reagent_containers/chem_pack + category = list("Medical Designs") + /datum/design/cloning_disk name = "Cloning Data Disk" desc = "Produce additional disks for storing genetic data." @@ -238,7 +248,7 @@ /datum/design/bodybag name = "Body Bag" - desc = "A normal body bag used for storge of dead crew." + desc = "A normal body bag used for storage of dead crew." id = "bodybag" build_type = PROTOLATHE materials = list(/datum/material/plastic = 4000) diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index e407277ebf..1b608060ce 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -206,6 +206,35 @@ category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING +/datum/design/bright_helmet + name = "Workplace-Ready Firefighter Helmet" + desc = "By applying state of the art lighting technology to a fire helmet with industry standard photo-chemical hardening methods, this hardhat will protect you from robust workplace hazards." + id = "bright_helmet" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 4000, /datum/material/glass = 1000, /datum/material/plastic = 3000, /datum/material/silver = 500) + build_path = /obj/item/clothing/head/hardhat/red/upgraded + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_CARGO + +/datum/design/mauna_mug + name = "Mauna Mug" + desc = "This awesome mug will ensure your coffee never stays cold!" + id = "mauna_mug" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 1000, /datum/material/glass = 100) + build_path = /obj/item/reagent_containers/glass/maunamug + category = list("Equipment") + +/datum/design/rolling_table + name = "Rolly poly" + desc = "We duct-taped some wheels to the bottom of a table. It's goddamn science alright?" + id = "rolling_table" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 4000) + build_path = /obj/structure/table/rolling + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_ALL + /datum/design/portaseeder name = "Portable Seed Extractor" desc = "For the enterprising botanist on the go. Less efficient than the stationary model, it creates one seed per plant." @@ -285,6 +314,25 @@ build_path = /obj/item/vending_refill/donksoft category = list("Equipment") +/datum/design/eng_gloves + name = "Tinkers Gloves" + desc = "Overdesigned engineering gloves that have automated construction subroutines dialed in, allowing for faster construction while worn." + id = "eng_gloves" + build_type = PROTOLATHE + materials = list(/datum/material/iron=2000, /datum/material/silver=1500, /datum/material/gold = 1000) + build_path = /obj/item/clothing/gloves/color/latex/engineering + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/lavarods + name = "Lava-Resistant Metal Rods" + id = "lava_rods" + build_type = PROTOLATHE + materials = list(/datum/material/iron=1000, /datum/material/plasma=500, /datum/material/titanium=2000) + build_path = /obj/item/stack/rods/lava + category = list("initial", "Stock Parts") + departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + ///////////////////////////////////////// ////////////Janitor Designs////////////// ///////////////////////////////////////// @@ -295,7 +343,7 @@ id = "broom" build_type = PROTOLATHE | AUTOLATHE materials = list(/datum/material/iron = 1000, /datum/material/glass = 600) - build_path = /obj/item/twohanded/broom + build_path = /obj/item/broom category = list("initial", "Equipment", "Misc") departmental_flags = DEPARTMENTAL_FLAG_SERVICE @@ -659,3 +707,122 @@ build_path = /obj/item/clothing/gloves/tackler/rocket category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +///////////////////////////////////////// +/////////////Internal Tanks////////////// +///////////////////////////////////////// + +/datum/design/oxygen_tank + name = "Oxygen Tank" + desc = "An empty oxygen tank." + id = "oxygen_tank" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 2000) + build_path = /obj/item/tank/internals/oxygen/empty + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/plasma_tank + name = "Plasma Tank" + desc = "An empty plasma tank." + id = "plasma_tank" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 2000) + build_path = /obj/item/tank/internals/plasma/empty + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/emergency_oxygen + name = "Emergency Oxygen Tank" + desc = "A small emergency oxygen tank." + id = "emergency_oxygen" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 1000) + build_path = /obj/item/tank/internals/emergency_oxygen/empty + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/plasma_belt_tank + name = "Plasmaman Belt Tank" + desc = "A small tank of plasma for plasmamen." + id = "plasmaman_tank_belt" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 1000) + build_path = /obj/item/tank/internals/plasmaman/belt/empty + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/emergency_oxygen_engi + name = "Engineering Emergency Oxygen Tank" + desc = "An emergency oxygen tank for engineers." + id = "emergency_oxygen_engi" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 1000) + build_path = /obj/item/tank/internals/emergency_oxygen/engi/empty + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +///////////////////////////////////////// +/////////////////Tape//////////////////// +///////////////////////////////////////// + +/datum/design/sticky_tape + name = "Sticky Tape" + id = "sticky_tape" + build_type = PROTOLATHE + materials = list(/datum/material/plastic = 500) + build_path = /obj/item/stack/sticky_tape + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/super_sticky_tape + name = "Super Sticky Tape" + id = "super_sticky_tape" + build_type = PROTOLATHE + materials = list(/datum/material/plastic = 3000) + build_path = /obj/item/stack/sticky_tape/super + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/pointy_tape + name = "Pointy Tape" + id = "pointy_tape" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 1500, /datum/material/plastic = 1000) + build_path = /obj/item/stack/sticky_tape/pointy + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +///////////////////////////////////////// +/////////////////Shuttle Upgrades//////// +///////////////////////////////////////// + +/datum/design/shuttle_speed_upgrade + name = "Shuttle Route Optimisation Upgrade" + desc = "A disk that allows for calculating shorter routes when inserted into a flight control console." + id = "disk_shuttle_route" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 1000, /datum/material/glass = 1000) + build_path = /obj/item/shuttle_route_optimisation + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/shuttle_speed_upgrade_hyper + name = "Shuttle Bluespace Hyperlane Optimisation Upgrade" + desc = "A disk that allows for calculating shorter routes when inserted into a flight control console. This one abuses bluespace hyperlanes for increased efficiency." + id = "disk_shuttle_route_hyper" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 1000, /datum/material/glass = 1000) + build_path = /obj/item/shuttle_route_optimisation/hyperlane + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/shuttle_speed_upgrade_void + name = "Shuttle Voidspace Optimisation Upgrade" + desc = "A disk that allows for calculating shorter routes when inserted into a flight control console. This one access voidspace for increased efficiency." + id = "disk_shuttle_route_void" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 1000, /datum/material/glass = 1000) + build_path = /obj/item/shuttle_route_optimisation/void + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING diff --git a/code/modules/research/designs/tool_designs.dm b/code/modules/research/designs/tool_designs.dm index 2d938bc38c..551d6fa0e3 100644 --- a/code/modules/research/designs/tool_designs.dm +++ b/code/modules/research/designs/tool_designs.dm @@ -42,6 +42,16 @@ category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING +/datum/design/shuttlecreator + name = "Rapid Shuttle Designator" + desc = "An advanced device capable of defining areas for use in the creation of shuttles" + id = "shuttle_creator" + build_path = /obj/item/shuttle_creator + build_type = PROTOLATHE + materials = list(/datum/material/iron = 8000, /datum/material/titanium = 5000, /datum/material/bluespace = 5000) + category = list("Tool Designs") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + /datum/design/handdrill name = "Hand Drill" desc = "A small electric hand drill with an interchangeable screwdriver and bolt bit" @@ -72,6 +82,16 @@ category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING +/datum/design/rld_mini + name = "Mini Rapid Light Device (MRLD)" + desc = "A tool that can portable and standing lighting orbs and glowsticks." + id = "rld_mini" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 20000, /datum/material/glass = 10000, /datum/material/plastic = 8000, /datum/material/gold = 2000) + build_path = /obj/item/construction/rld/mini + category = list("Tool Designs") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_CARGO + ///////////////////////////////////////// //////////////Alien Tools//////////////// ///////////////////////////////////////// diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 93168e17c7..8c934d39a9 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -91,7 +91,7 @@ /datum/design/mag_oldsmg name = "WT-550 Semi-Auto SMG Magazine (4.6x30mm)" - desc = "A 20 round magazine for the out of date security WT-550 Semi-Auto SMG." + desc = "A 32 round magazine for the out of date security WT-550 Semi-Auto SMG." id = "mag_oldsmg" build_type = PROTOLATHE materials = list(/datum/material/iron = 4000) @@ -101,7 +101,7 @@ /datum/design/mag_oldsmg/ap_mag name = "WT-550 Semi-Auto SMG Armour Piercing Magazine (4.6x30mm AP)" - desc = "A 20 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG." + desc = "A 32 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG." id = "mag_oldsmg_ap" materials = list(/datum/material/iron = 6000, /datum/material/silver = 600) build_path = /obj/item/ammo_box/magazine/wt550m9/wtap @@ -109,7 +109,7 @@ /datum/design/mag_oldsmg/ic_mag name = "WT-550 Semi-Auto SMG Incendiary Magazine (4.6x30mm IC)" - desc = "A 20 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG." + desc = "A 32 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG." id = "mag_oldsmg_ic" materials = list(/datum/material/iron = 6000, /datum/material/silver = 600, /datum/material/glass = 1000) build_path = /obj/item/ammo_box/magazine/wt550m9/wtic @@ -117,7 +117,7 @@ /datum/design/mag_oldsmg/tx_mag name = "WT-550 Semi-Auto SMG Uranium Magazine (4.6x30mm TX)" - desc = "A 20 round uranium tipped magazine for the out of date security WT-550 Semi-Auto SMG." + desc = "A 32 round uranium tipped magazine for the out of date security WT-550 Semi-Auto SMG." id = "mag_oldsmg_tx" materials = list(/datum/material/iron = 6000, /datum/material/silver = 600, /datum/material/uranium = 2000) build_path = /obj/item/ammo_box/magazine/wt550m9/wttx @@ -125,7 +125,7 @@ /datum/design/mag_oldsmg/rubber_mag name = "WT-550 Semi-Auto SMG rubberbullets Magazine (4.6x30mm rubber)" - desc = "A 20 round rubber shots magazine for the out of date security WT-550 Semi-Auto SMG" + desc = "A 32 round rubber shots magazine for the out of date security WT-550 Semi-Auto SMG" id = "mag_oldsmg_rubber" materials = list(/datum/material/iron = 6000) build_path = /obj/item/ammo_box/magazine/wt550m9/wtrubber @@ -234,13 +234,13 @@ category = list("Firing Pins") departmental_flags = DEPARTMENTAL_FLAG_SECURITY -/datum/design/pin_away - name = "Station Locked Pin" - desc = "This is a security firing pin which only authorizes users who are off station." - id = "pin_away" +/datum/design/pin_explorer + name = "Outback Firing Pin" + desc = "This firing pin only shoots while ya ain't on station, fair dinkum!" + id = "pin_explorer" build_type = PROTOLATHE - materials = list(/datum/material/iron = 1500, /datum/material/glass = 2000) - build_path = /obj/item/firing_pin/away + materials = list(/datum/material/silver = 1000, /datum/material/gold = 1000, /datum/material/iron = 500) + build_path = /obj/item/firing_pin/explorer category = list("Firing Pins") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -500,3 +500,13 @@ materials = list(MAT_CATEGORY_RIGID = 12000) build_path = /obj/item/melee/cleric_mace category = list("Imported") + +/datum/design/stun_boomerang + name = "OZtek Boomerang" + desc = "Uses reverse flow gravitodynamics to flip its personal gravity back to the thrower mid-flight. Also functions similar to a stun baton." + id = "stun_boomerang" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 10000, /datum/material/glass = 4000, /datum/material/silver = 10000, /datum/material/gold = 2000) + build_path = /obj/item/melee/baton/boomerang + category = list("Weapons") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index a5df3f4d12..5a50120833 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -96,7 +96,7 @@ for(var/i in 1 to amount) var/obj/O = new path(get_turf(src)) if(efficient_with(O.type)) - O.set_custom_materials(matlist.Copy()) + O.set_custom_materials(matlist) O.rnd_crafted(src) SSblackbox.record_feedback("nested tally", "item_printed", amount, list("[type]", "[path]")) investigate_log("[key_name(user)] built [amount] of [path] at [src]([type]).", INVESTIGATE_RESEARCH) diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index d543468c48..a7b266fc0e 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -1075,6 +1075,9 @@ Nothing else in the console has ID requirements. /obj/machinery/computer/rdconsole/ui_interact(mob/user) . = ..() var/datum/browser/popup = new(user, "rndconsole", name, 900, 600) + var/datum/asset/spritesheet/assets = get_asset_datum(/datum/asset/spritesheet/research_designs) + + popup.add_head_content("") popup.add_stylesheet("techwebs", 'html/browser/techwebs.css') popup.set_content(generate_ui()) popup.open() diff --git a/code/modules/research/research_disk.dm b/code/modules/research/research_disk.dm index aa781ca06b..a656093d98 100644 --- a/code/modules/research/research_disk.dm +++ b/code/modules/research/research_disk.dm @@ -21,6 +21,16 @@ . = ..() stored_research = new /datum/techweb/admin +/obj/item/disk/tech_disk/major + name = "Reformatted technology disk" + desc = "A disk containing a new, completed tech from the B.E.P.I.S. Upload the disk to an R&D Console to redeem the tech." + icon_state = "rndmajordisk" + custom_materials = list(/datum/material/iron=300, /datum/material/glass=100) + +/obj/item/disk/tech_disk/major/Initialize() + . = ..() + stored_research = new /datum/techweb/bepis + /obj/item/disk/tech_disk/illegal name = "Illegal technology disk" desc = "A technology disk containing schematics for syndicate inspired equipment." diff --git a/code/modules/research/techweb/_techweb.dm b/code/modules/research/techweb/_techweb.dm index ccfcecf66c..a0f0c651f0 100644 --- a/code/modules/research/techweb/_techweb.dm +++ b/code/modules/research/techweb/_techweb.dm @@ -24,10 +24,10 @@ var/list/tiers = list() //Assoc list, id = number, 1 is available, 2 is all reqs are 1, so on /datum/techweb/New() + hidden_nodes = SSresearch.techweb_nodes_hidden.Copy() for(var/i in SSresearch.techweb_nodes_starting) var/datum/techweb_node/DN = SSresearch.techweb_node_by_id(i) research_node(DN, TRUE, FALSE) - hidden_nodes = SSresearch.techweb_nodes_hidden.Copy() return ..() /datum/techweb/admin @@ -63,6 +63,19 @@ id = "SCIENCE" organization = "Nanotrasen" +/datum/techweb/bepis //Should contain only 1 BEPIS tech selected at random. + id = "EXPERIMENTAL" + organization = "Nanotrasen R&D" + +/datum/techweb/bepis/New() + . = ..() + var/bepis_id = pick(SSresearch.techweb_nodes_experimental) //To add a new tech to the BEPIS, add the ID to this pick list. + var/datum/techweb_node/BN = (SSresearch.techweb_node_by_id(bepis_id)) + hidden_nodes -= BN.id //Has to be removed from hidden nodes + research_node(BN, TRUE, FALSE, FALSE) + update_node_status(BN) + SSresearch.techweb_nodes_experimental -= bepis_id + /datum/techweb/Destroy() researched_nodes = null researched_designs = null @@ -126,17 +139,17 @@ modify_point_list(l) /datum/techweb/proc/copy_research_to(datum/techweb/receiver, unlock_hidden = TRUE) //Adds any missing research to theirs. + if(unlock_hidden) + for(var/i in receiver.hidden_nodes) + CHECK_TICK + if(!hidden_nodes[i]) + receiver.hidden_nodes -= i //We can see it so let them see it too. for(var/i in researched_nodes) CHECK_TICK receiver.research_node_id(i, TRUE, FALSE) for(var/i in researched_designs) CHECK_TICK receiver.add_design_by_id(i) - if(unlock_hidden) - for(var/i in receiver.hidden_nodes) - CHECK_TICK - if(!hidden_nodes[i]) - receiver.hidden_nodes -= i //We can see it so let them see it too. receiver.recalculate_nodes() /datum/techweb/proc/copy() diff --git a/code/modules/research/techweb/_techweb_node.dm b/code/modules/research/techweb/_techweb_node.dm index 6750fa5475..40cc322eed 100644 --- a/code/modules/research/techweb/_techweb_node.dm +++ b/code/modules/research/techweb/_techweb_node.dm @@ -7,6 +7,7 @@ var/display_name = "Errored Node" var/description = "Why are you seeing this?" var/hidden = FALSE //Whether it starts off hidden. + var/experimental = FALSE //If the tech can be randomly granted by the BEPIS as a reward. Meant to be fully given in tech disks, not researched. var/starting_node = FALSE //Whether it's available without any research. var/list/prereq_ids = list() var/list/design_ids = list() @@ -102,6 +103,6 @@ description = "NT default research technologies." // Default research tech, prevents bricking design_ids = list("basic_matter_bin", "basic_cell", "basic_scanning", "basic_capacitor", "basic_micro_laser", "micro_mani", "desttagger", "handlabel", "packagewrap", - "destructive_analyzer", "circuit_imprinter", "experimentor", "rdconsole", "design_disk", "tech_disk", "rdserver", "rdservercontrol", "mechfab", "paystand", + "destructive_analyzer", "circuit_imprinter", "experimentor", "rdconsole", "bepis", "design_disk", "tech_disk", "rdserver", "rdservercontrol", "mechfab", "paystand", "space_heater", "beaker", "large_beaker", "bucket", "xlarge_beaker", "sec_shellclip", "sec_beanbag", "sec_rshot", "sec_bshot", "sec_slug", "sec_islug", "sec_dart", "sec_38", "sec_38lethal", "rglass","plasteel","plastitanium","plasmaglass","plasmareinforcedglass","titaniumglass","plastitaniumglass") diff --git a/code/modules/research/techweb/nodes/bepis_nodes.dm b/code/modules/research/techweb/nodes/bepis_nodes.dm new file mode 100644 index 0000000000..41d3a08d64 --- /dev/null +++ b/code/modules/research/techweb/nodes/bepis_nodes.dm @@ -0,0 +1,91 @@ +////////////////////////B.E.P.I.S. Locked Techs//////////////////////// + +/datum/techweb_node/light_apps + id = "light_apps" + display_name = "Illumination Applications" + description = "Applications of lighting and vision technology not originally thought to be commercially viable." + prereq_ids = list("base") + design_ids = list("bright_helmet", "rld_mini") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + hidden = TRUE + experimental = TRUE + +/datum/techweb_node/aus_security + id = "aus_security" + display_name = "Australicus Security Protocols" + description = "It is said that security in the Australicus sector is tight, so we took some pointers from their equipment. Thankfully, our sector lacks any signs of these, 'dropbears'." + prereq_ids = list("base") + design_ids = list("pin_explorer", "stun_boomerang") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + hidden = TRUE + experimental = TRUE + +/datum/techweb_node/spec_eng + id = "spec_eng" + display_name = "Specialized Engineering" + description = "Conventional wisdom has deemed these engineering products 'technically' safe, but far too dangerous to traditionally condone." + prereq_ids = list("base") + design_ids = list("lava_rods", "eng_gloves") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + hidden = TRUE + experimental = TRUE + +/datum/techweb_node/rolling_table + id = "rolling_table" + display_name = "Advanced Wheel Applications" + description = "Adding wheels to things can lead to extremely beneficial outcomes." + prereq_ids = list("base") + design_ids = list("rolling_table") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + hidden = TRUE + experimental = TRUE + +/datum/techweb_node/Mauna_Mug + id = "mauna_mug" + display_name = "Mauna Mug" + description = "A bored scientist was thinking to himself for very long...and then realized his coffee got cold! He made this invention to solve this extreme problem." + prereq_ids = list("base") + design_ids = list("mauna_mug") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + hidden = TRUE + experimental = TRUE + +/datum/techweb_node/nanite_replication_protocols + id = "nanite_replication_protocols" + display_name = "Nanite Replication Protocols" + description = "Advanced behaviours that allow nanites to exploit certain circumstances to replicate faster." + prereq_ids = list("nanite_smart") + design_ids = list("kickstart_nanites","factory_nanites","tinker_nanites","offline_nanites","synergy_nanites") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + hidden = TRUE + experimental = TRUE + +/datum/techweb_node/interrogation + id = "interrogation" + display_name = "Enhanced Interrogation Technology" + description = "By cross-referencing several declassified documents from past dictatorial regimes, we were able to develop an incredibly effective interrogation device. \ + Ethical concerns about loss of free will may still apply, according to galactic law." + prereq_ids = list("base") + design_ids = list("hypnochair") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500) + hidden = TRUE + experimental = TRUE + +/datum/techweb_node/tackle_advanced + id = "tackle_advanced" + display_name = "Advanced Grapple Technology" + description = "Nanotrasen would like to remind its researching staff that it is never acceptable to \"glomp\" your coworkers, and further \"scientific trials\" on the subject \ + will no longer be accepted in its academic journals." + design_ids = list("tackle_dolphin", "tackle_rocket") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + hidden = TRUE + experimental = TRUE + +/datum/techweb_node/sticky_advanced + id = "sticky_advanced" + display_name = "Advanced Sticky Technology" + description = "Taking a good joke too far? Nonsense!" + design_ids = list("super_sticky_tape", "pointy_tape") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + hidden = TRUE + experimental = TRUE diff --git a/code/modules/research/techweb/nodes/biotech_nodes.dm b/code/modules/research/techweb/nodes/biotech_nodes.dm index 8f7d978a99..977f8685d6 100644 --- a/code/modules/research/techweb/nodes/biotech_nodes.dm +++ b/code/modules/research/techweb/nodes/biotech_nodes.dm @@ -5,7 +5,7 @@ display_name = "Biological Technology" description = "What makes us tick." //the MC, silly! prereq_ids = list("base") - design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibrillator", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag", "bloodbankgen", "telescopiciv", "medspray","genescanner") + design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibrillator", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag", "bloodbankgen", "telescopiciv", "medspray","genescanner","chem_pack") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) /datum/techweb_node/adv_biotech diff --git a/code/modules/research/techweb/nodes/bluespace_nodes.dm b/code/modules/research/techweb/nodes/bluespace_nodes.dm index 85142cd9b8..b0705a0b76 100644 --- a/code/modules/research/techweb/nodes/bluespace_nodes.dm +++ b/code/modules/research/techweb/nodes/bluespace_nodes.dm @@ -13,7 +13,7 @@ display_name = "Applied Bluespace Research" description = "Using bluespace to make things faster and better." prereq_ids = list("bluespace_basic", "engineering") - design_ids = list("bs_rped","biobag_holding","minerbag_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "bluespacesmartdart", "xenobio_slimebasic") + design_ids = list("bs_rped","biobag_holding","minerbag_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "bluespacesmartdart", "xenobio_slimebasic", "bluespace_tray", "bluespace_carrier") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) /datum/techweb_node/adv_bluespace @@ -63,3 +63,36 @@ prereq_ids = list("bluespace_warping", "syndicate_basic") design_ids = list("desynchronizer") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/////////////////////////shuttle tech///////////////////////// +/datum/techweb_node/basic_shuttle_tech + id = "basic_shuttle" + display_name = "Basic Shuttle Research" + description = "Research the technology required to create and use basic shuttles." + prereq_ids = list("practical_bluespace", "adv_engi") + design_ids = list("shuttle_creator", "engine_plasma", "engine_heater", "shuttle_control", "shuttle_docker") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + +/datum/techweb_node/shuttle_route_upgrade + id = "shuttle_route_upgrade" + display_name = "Route Optimisation Upgrade" + description = "Research into bluespace tunnelling, allowing us to reduce flight times by up to 20%!" + prereq_ids = list("basic_shuttle") + design_ids = list("disk_shuttle_route") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +/datum/techweb_node/shuttle_route_upgrade_hyper + id = "shuttle_route_upgrade_hyper" + display_name = "Hyperlane Optimisation Upgrade" + description = "Research into bluespace hyperlane, allowing us to reduce flight times by up to 40%!" + prereq_ids = list("shuttle_route_upgrade", "bluespace_warping") + design_ids = list("disk_shuttle_route_hyper") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + +/datum/techweb_node/shuttle_route_upgrade_void + id = "shuttle_route_upgrade_void" + display_name = "Nullspace Breaching Upgrade" + description = "Research into voidspace tunnelling, allowing us to significantly reduce flight times." + prereq_ids = list("shuttle_route_upgrade_hyper", "alientech") + design_ids = list("disk_shuttle_route_void", "engine_void") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 12500) diff --git a/code/modules/research/techweb/nodes/engineering_nodes.dm b/code/modules/research/techweb/nodes/engineering_nodes.dm index 2ab5458028..d024823c85 100644 --- a/code/modules/research/techweb/nodes/engineering_nodes.dm +++ b/code/modules/research/techweb/nodes/engineering_nodes.dm @@ -7,7 +7,8 @@ prereq_ids = list("base") design_ids = list("solarcontrol", "recharger", "powermonitor", "rped", "pacman", "adv_capacitor", "adv_scanning", "emitter", "high_cell", "adv_matter_bin", "atmosalerts", "atmos_control", "recycler", "autolathe", "autolathe_secure", "high_micro_laser", "nano_mani", "mesons", "thermomachine", "rad_collector", "tesla_coil", "grounding_rod", - "apc_control", "power control", "airlock_board", "firelock_board", "airalarm_electronics", "firealarm_electronics", "cell_charger", "stack_console", "stack_machine", "rcd_ammo") + "apc_control", "power control", "airlock_board", "firelock_board", "airalarm_electronics", "firealarm_electronics", "cell_charger", "stack_console", "stack_machine", "rcd_ammo","oxygen_tank", + "plasma_tank", "emergency_oxygen", "emergency_oxygen_engi", "plasmaman_tank_belt") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 6000) /datum/techweb_node/adv_engi @@ -15,7 +16,9 @@ display_name = "Advanced Engineering" description = "Pushing the boundaries of physics, one chainsaw-fist at a time." prereq_ids = list("engineering", "emp_basic") - design_ids = list("engine_goggles", "magboots", "forcefield_projector", "weldingmask" , "rcd_loaded", "rpd", "tray_goggles_prescription", "engine_goggles_prescription", "mesons_prescription", "rcd_upgrade_frames", "rcd_upgrade_simple_circuits", "rcd_ammo_large") + design_ids = list("engine_goggles", "magboots", "forcefield_projector", "weldingmask" , "rcd_loaded", "rpd", + "tray_goggles_prescription", "engine_goggles_prescription", "mesons_prescription", "rcd_upgrade_frames", + "rcd_upgrade_simple_circuits", "rcd_ammo_large", "sheetifier") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 4000) /datum/techweb_node/anomaly diff --git a/code/modules/research/techweb/nodes/mecha_nodes.dm b/code/modules/research/techweb/nodes/mecha_nodes.dm index 4d1b703cae..2e77f697da 100644 --- a/code/modules/research/techweb/nodes/mecha_nodes.dm +++ b/code/modules/research/techweb/nodes/mecha_nodes.dm @@ -42,6 +42,14 @@ "gygax_peri", "gygax_targ", "gygax_armor") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) +/datum/techweb_node/medigax + id = "mech_medigax" + display_name = "EXOSUIT: Medical-Spec Gygax" + description = "Medical-Spec Gygax designs" + prereq_ids = list("mech_gygax", "mecha_odysseus") + design_ids = list("medigax_chassis", "medigax_torso", "medigax_head", "medigax_left_arm", "medigax_right_arm", "medigax_left_leg", "medigax_right_leg", "medigax_armor") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + /datum/techweb_node/durand id = "mech_durand" display_name = "EXOSUIT: Durand" diff --git a/code/modules/research/techweb/nodes/misc_nodes.dm b/code/modules/research/techweb/nodes/misc_nodes.dm index d34afca90a..3f8ad8592a 100644 --- a/code/modules/research/techweb/nodes/misc_nodes.dm +++ b/code/modules/research/techweb/nodes/misc_nodes.dm @@ -66,3 +66,24 @@ design_ids = list("air_horn", "honker_main", "honker_peri", "honker_targ", "honk_chassis", "honk_head", "honk_torso", "honk_left_arm", "honk_right_arm", "honk_left_leg", "honk_right_leg", "mech_banana_mortar", "mech_mousetrap_mortar", "mech_honker", "mech_punching_face", "implant_trombone", "borg_transform_clown") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + +////////////////////////Tape tech//////////////////////////// +/datum/techweb_node/sticky_basic + id = "sticky_basic" + display_name = "Basic Sticky Technology" + description = "The only thing left to do after researching this tech is to start printing out a bunch of 'kick me' signs." + prereq_ids = list("base") + design_ids = list("sticky_tape") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + hidden = TRUE + experimental = TRUE + +// Can be researched after getting the basic sticky technology from the BEPIS major reward +/datum/techweb_node/sticky_advanced + id = "sticky_advanced" + display_name = "Advanced Sticky Technology" + description = "Taking a good joke too far? Nonsense!" + prereq_ids = list("sticky_basic") + design_ids = list("super_sticky_tape", "pointy_tape") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) + hidden = TRUE \ No newline at end of file diff --git a/code/modules/research/techweb/nodes/nanites_nodes.dm b/code/modules/research/techweb/nodes/nanites_nodes.dm index 5fc707d77a..0a860c8938 100644 --- a/code/modules/research/techweb/nodes/nanites_nodes.dm +++ b/code/modules/research/techweb/nodes/nanites_nodes.dm @@ -74,11 +74,3 @@ prereq_ids = list("nanite_harmonic", "alientech") design_ids = list("spreading_nanites","mindcontrol_nanites","mitosis_nanites") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) - -/datum/techweb_node/nanite_replication_protocols - id = "nanite_replication_protocols" - display_name = "Nanite Replication Protocols" - description = "Advanced behaviours that allow nanites to exploit certain circumstances to replicate faster." - prereq_ids = list("nanite_smart") - design_ids = list("kickstart_nanites","factory_nanites","tinker_nanites","offline_nanites","synergy_nanites") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) diff --git a/code/modules/research/techweb/nodes/tools_nodes.dm b/code/modules/research/techweb/nodes/tools_nodes.dm index 5d8d40f10d..b084979116 100644 --- a/code/modules/research/techweb/nodes/tools_nodes.dm +++ b/code/modules/research/techweb/nodes/tools_nodes.dm @@ -5,7 +5,7 @@ display_name = "Basic Tools" description = "Basic mechanical, electronic, surgical and botanical tools." prereq_ids = list("base") - design_ids = list("screwdriver", "wrench", "wirecutters", "crowbar", "multitool", "welding_tool", "tscanner", "analyzer", "cable_coil", "pipe_painter", "airlock_painter", "scalpel", "circular_saw", "surgicaldrill", "retractor", "cautery", "hemostat", "cultivator", "plant_analyzer", "shovel", "spade", "hatchet", "mop", "broom", "normtrash") + design_ids = list("screwdriver", "wrench", "wirecutters", "crowbar", "multitool", "welding_tool", "tscanner", "analyzer", "cable_coil", "pipe_painter", "airlock_painter", "decal_painter", "scalpel", "circular_saw", "surgicaldrill", "retractor", "cautery", "hemostat", "cultivator", "plant_analyzer", "shovel", "spade", "hatchet", "mop", "broom", "normtrash", "spraycan") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 500) /datum/techweb_node/basic_mining diff --git a/code/modules/research/techweb/nodes/weaponry_nodes.dm b/code/modules/research/techweb/nodes/weaponry_nodes.dm index 064f88077a..e17d7e1e7b 100644 --- a/code/modules/research/techweb/nodes/weaponry_nodes.dm +++ b/code/modules/research/techweb/nodes/weaponry_nodes.dm @@ -5,7 +5,7 @@ display_name = "Weapon Development Technology" description = "Our researchers have found new to weaponize just about everything now." prereq_ids = list("engineering") - design_ids = list("pin_testing", "tele_shield", "lasercarbine", "pin_away") + design_ids = list("pin_testing", "tele_shield", "lasercarbine") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) /datum/techweb_node/adv_weaponry diff --git a/code/modules/research/xenobiology/crossbreeding/burning.dm b/code/modules/research/xenobiology/crossbreeding/burning.dm index 7b5004e722..1a8b82232b 100644 --- a/code/modules/research/xenobiology/crossbreeding/burning.dm +++ b/code/modules/research/xenobiology/crossbreeding/burning.dm @@ -276,7 +276,7 @@ Burning extracts: /obj/item/slimecross/burning/adamantine/do_effect(mob/user) user.visible_message("[src] crystallizes into a large shield!") - new /obj/item/twohanded/required/adamantineshield(get_turf(user)) + new /obj/item/shield/adamantineshield(get_turf(user)) ..() /obj/item/slimecross/burning/rainbow @@ -440,7 +440,7 @@ Burning extracts: attack_verb = list("irradiated","mutated","maligned") return ..() -/obj/item/twohanded/required/adamantineshield +/obj/item/shield/adamantineshield name = "adamantine shield" desc = "A gigantic shield made of solid adamantium." icon = 'icons/obj/slimecrossing.dmi' @@ -450,12 +450,15 @@ Burning extracts: armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70) slot_flags = ITEM_SLOT_BACK block_chance = 75 + force = 0 throw_range = 1 //How far do you think you're gonna throw a solid crystalline shield...? throw_speed = 2 - force = 15 //Heavy, but hard to wield. attack_verb = list("bashed","pounded","slammed") item_flags = SLOWS_WHILE_IN_HAND +/obj/item/shield/adamantineshield/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, require_twohands=TRUE, force_wielded=15) /obj/effect/proc_holder/spell/targeted/shapeshift/slimeform name = "Slime Transformation" diff --git a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm new file mode 100644 index 0000000000..65530031c0 --- /dev/null +++ b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm @@ -0,0 +1,247 @@ +//******Decoration objects +//***Bone statues and giant skeleton parts. +/obj/structure/statue/bone + anchored = TRUE + max_integrity = 120 + material_drop_type = /obj/item/stack/sheet/bone + impressiveness = 18 // Carved from the bones of a massive creature, it's going to be a specticle to say the least + layer = ABOVE_ALL_MOB_LAYER + +/obj/structure/statue/bone/rib + name = "collosal rib" + desc = "It's staggering to think that something this big could have lived, let alone died." + oreAmount = 4 + icon = 'icons/obj/statuelarge.dmi' + icon_state = "rib" + +/obj/structure/statue/bone/skull + name = "collosal skull" + desc = "The gaping maw of a dead, titanic monster." + oreAmount = 12 + icon = 'icons/obj/statuelarge.dmi' + icon_state = "skull" + +/obj/structure/statue/bone/skull/half + desc = "The gaping maw of a dead, titanic monster. This one is cracked in half." + oreAmount = 6 + icon = 'icons/obj/statuelarge.dmi' + icon_state = "skull-half" + +//***Wasteland floor and rock turfs here. +/turf/open/floor/plating/asteroid/basalt/wasteland //Like a more fun version of living in Arizona. + name = "cracked earth" + icon = 'icons/turf/floors.dmi' + icon_state = "wasteland" + environment_type = "wasteland" + baseturfs = /turf/open/floor/plating/asteroid/basalt/wasteland + digResult = /obj/item/stack/ore/glass/basalt + initial_gas_mix = LAVALAND_DEFAULT_ATMOS + slowdown = 0.5 + floor_variance = 30 + +/turf/open/floor/plating/asteroid/basalt/wasteland/Initialize() + .=..() + if(prob(floor_variance)) + icon_state = "[environment_type][rand(0,6)]" + +/turf/closed/mineral/strong/wasteland + name = "ancient dry rock" + color = "#B5651D" + environment_type = "wasteland" + turf_type = /turf/open/floor/plating/asteroid/basalt/wasteland + baseturfs = /turf/open/floor/plating/asteroid/basalt/wasteland + smooth_icon = 'icons/turf/walls/rock_wall.dmi' + +/turf/closed/mineral/strong/wasteland/drop_ores() + if(prob(10)) + new /obj/item/stack/ore/iron(src, 1) + new /obj/item/stack/ore/glass(src, 1) + new /obj/effect/decal/remains/human/grave(src, 1) + else + new /obj/item/stack/sheet/bone(src, 1) + +//***Oil well puddles. +/obj/structure/sink/oil_well //You're not going to enjoy bathing in this... + name = "oil well" + desc = "A bubbling pool of oil.This would probably be valuable, had bluespace technology not destroyed the need for fossil fuels 200 years ago." + icon = 'icons/obj/watercloset.dmi' + icon_state = "puddle-oil" + dispensedreagent = /datum/reagent/oil + +/obj/structure/sink/oil_well/Initialize() + .=..() + create_reagents(20) + reagents.add_reagent(dispensedreagent, 20) + +/obj/structure/sink/oil_well/attack_hand(mob/M) + flick("puddle-oil-splash",src) + reagents.reaction(M, TOUCH, 20) //Covers target in 20u of oil. + to_chat(M, "You touch the pool of oil, only to get oil all over yourself. It would be wise to wash this off with water.") + +/obj/structure/sink/oil_well/attackby(obj/item/O, mob/user, params) + flick("puddle-oil-splash",src) + if(O.tool_behaviour == TOOL_SHOVEL && !(flags_1&NODECONSTRUCT_1)) //attempt to deconstruct the puddle with a shovel + to_chat(user, "You fill in the oil well with soil.") + O.play_tool_sound(src) + deconstruct() + return 1 + if(istype(O, /obj/item/reagent_containers)) //Refilling bottles with oil + var/obj/item/reagent_containers/RG = O + if(RG.is_refillable()) + if(!RG.reagents.holder_full()) + RG.reagents.add_reagent(dispensedreagent, min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) + to_chat(user, "You fill [RG] from [src].") + return TRUE + to_chat(user, "\The [RG] is full.") + return FALSE + if(user.a_intent != INTENT_HARM) + to_chat(user, "You won't have any luck getting \the [O] out if you drop it in the oil.") + return 1 + else + return ..() + +/obj/structure/sink/oil_well/drop_materials() + new /obj/effect/decal/cleanable/oil(loc) + +//***Grave mounds. +/obj/structure/closet/crate/grave + name = "burial mound" + desc = "An marked patch of soil, showing signs of a burial long ago. You wouldn't disturb a grave... right?" + icon = 'icons/obj/crates.dmi' + icon_state = "grave" + dense_when_open = TRUE + material_drop = /obj/item/stack/ore/glass/basalt + material_drop_amount = 5 + anchorable = FALSE + anchored = TRUE + locked = TRUE + breakout_time = 900 + cutting_tool = /obj/item/shovel + var/lead_tomb = FALSE + var/first_open = FALSE + +/obj/structure/closet/crate/grave/PopulateContents() //GRAVEROBBING IS NOW A FEATURE + ..() + new /obj/effect/decal/remains/human/grave(src) + switch(rand(1,8)) + if(1) + new /obj/item/coin/gold(src) + new /obj/item/storage/wallet(src) + if(2) + new /obj/item/clothing/glasses/meson(src) + if(3) + new /obj/item/coin/silver(src) + new /obj/item/shovel/spade(src) + if(4) + new /obj/item/storage/book/bible/booze(src) + if(5) + new /obj/item/clothing/neck/stethoscope(src) + new /obj/item/scalpel(src) + new /obj/item/hemostat(src) + + if(6) + new /obj/item/reagent_containers/glass/beaker(src) + new /obj/item/clothing/glasses/science(src) + if(7) + new /obj/item/clothing/glasses/sunglasses(src) + new /obj/item/clothing/mask/cigarette/rollie(src) + +/obj/structure/closet/crate/grave/open(mob/living/user, obj/item/S) + if(!opened) + to_chat(user, "The ground here is too hard to dig up with your bare hands. You'll need a shovel.") + else + to_chat(user, "The grave has already been dug up.") + +/obj/structure/closet/crate/grave/tool_interact(obj/item/S, mob/living/carbon/user) + if(user.a_intent == INTENT_HELP) //checks to attempt to dig the grave, must be done on help intent only. + if(!opened) + if(istype(S,cutting_tool) && S.tool_behaviour == TOOL_SHOVEL) + to_chat(user, "You start start to dig open \the [src] with \the [S]...") + if (do_after(user,20, target = src)) + opened = TRUE + locked = TRUE + dump_contents() + update_icon() + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "graverobbing", /datum/mood_event/graverobbing) + if(lead_tomb == TRUE && first_open == TRUE) + user.gain_trauma(/datum/brain_trauma/magic/stalker) + to_chat(user, "Oh no, no no no, THEY'RE EVERYWHERE! EVERY ONE OF THEM IS EVERYWHERE!") + first_open = FALSE + return 1 + return 1 + else + to_chat(user, "You can't dig up a grave with \the [S.name].") + return 1 + else + to_chat(user, "The grave has already been dug up.") + return 1 + + else if((user.a_intent != INTENT_HELP) && opened) //checks to attempt to remove the grave entirely. + if(istype(S,cutting_tool) && S.tool_behaviour == TOOL_SHOVEL) + to_chat(user, "You start to remove \the [src] with \the [S].") + if (do_after(user,15, target = src)) + to_chat(user, "You remove \the [src] completely.") + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "graverobbing", /datum/mood_event/graverobbing) + deconstruct(TRUE) + return 1 + return + +/obj/structure/closet/crate/grave/bust_open() + ..() + opened = TRUE + update_icon() + dump_contents() + return + +/obj/structure/closet/crate/grave/lead_researcher + name = "ominous burial mound" + desc = "Even in a place filled to the brim with graves, this one shows a level of preperation and planning that fills you with dread." + icon = 'icons/obj/crates.dmi' + icon_state = "grave_lead" + lead_tomb = TRUE + first_open = TRUE + +/obj/structure/closet/crate/grave/lead_researcher/PopulateContents() //ADVANCED GRAVEROBBING + ..() + new /obj/effect/decal/cleanable/blood/gibs/old(src) + new /obj/item/book/granter/crafting_recipe/boneyard_notes(src) + +/obj/effect/decal/remains/human/grave + turf_loc_check = FALSE + +/obj/item/book/granter/crafting_recipe/boneyard_notes + name = "The Complete Works of Lavaland Bone Architecture" + desc = "Pried from the lead Archaeologist's cold, dead hands, this seems to explain how ancient bone architecture was erected long ago." + crafting_recipe_types = list(/datum/crafting_recipe/rib, /datum/crafting_recipe/boneshovel, /datum/crafting_recipe/halfskull, /datum/crafting_recipe/skull) + icon = 'icons/obj/library.dmi' + icon_state = "boneworking_learing" + oneuse = FALSE + remarks = list("Who knew you could bend bones that far back?", "I guess that was much easier before the planet heated up...", "So that's how they made those ruins survive the ashstorms. Neat!", "The page is just filled with insane ramblings about some 'legion' thing.", "But why would they need vinegar to polish the bones? And rags too?", "You spend a few moments cleaning dirt and blood off of the page, yeesh.") + + +//***Fluff items for lore/intrigue +/obj/item/paper/crumpled/muddy/fluff/elephant_graveyard + name = "posted warning" + desc = "It seems to be smudged with mud and... oil?" + info = "TO WHOM IT MAY CONCERN

    This area is property of the Nanotrasen Mining Division.

    Trespassing in this area is illegal, highly dangerous, and subject to several NDAs.

    Please turn back now, under intergalactic law section 48-R." + +/obj/item/paper/crumpled/muddy/fluff/elephant_graveyard/rnd_notes + name = "Research Findings: Day 26" + desc = "Huh, this one page looks like it was torn out of a full book. How odd." + icon_state = "docs_part" + info = "Researcher name: B--*--* J--*s.

    Detailed findings:Today the camp site's cond-tion has wor--ene*. The ashst--ms keep blocking us off from le-ving the sit* for m-re supplies, and it's lo-king like we're out of pl*sma to p-wer the ge-erat*r. Can't rea-*y study c-*bon *ating with no li--ts, ya know? Da-*y's been going -*f again and ag-*n a-*ut h*w the company's left us to *ie here, but I j-s* keep tell-ng him to stop che*-in* out these damn graves. We m-y b* archaeologists, but -e sho*ld have t-e dec-**cy to know these grav-s are *-l NEW.

    The rest of the page is just semantics about carbon dating methods." + +/obj/item/paper/crumpled/muddy/fluff/elephant_graveyard/mutiny + name = "hastily scribbled note" + desc = "Seems like someone was in a hurry." + info = "Alright, we all know that stuck up son a bitch is just doing this to keep us satisifed. Who the hell does he think he is, taking extra rations? We're OUT OF FOOD, CARL. Tomorrow at noon, we're going to try and take the ship by force. He HAS to be lying about the engine cooling down. He HAS TO BE. I'm tellin ya, with this implant I lifted off that last supply ship, I got the smarts to get us offa this shithole. Keep your knife handy carl." + +/obj/item/paper/fluff/ruins/elephant_graveyard/hypothesis + name = "research document" + desc = "Standard Nanotrasen typeface for important research documents." + info = "Day 9: Tenative Conclusions

    While the area appears to be of significant cultural importance to the lizard race, outside of some sparce contact with native wildlife, we're yet to find any exact reasoning for the nature of this phenomenon. It seems that organic life is communally drawn to this planet as though it functions as a final resting place for intelligent life. As per company guidelines, this site shall be given the following classification: 'LZ-0271 - Elephant Graveyard'

    Compiled list of Artifact findings (Currently Sent Offsite)
    Cultist Blade Fragments: x8
    Brass Multiplicative Ore Sample: x105
    Syndicate Revolutionary Leader Implant (Broken) x1
    Extinct Cortical Borer Tissue Sample x1
    Space Carp Fossil x3" + +/obj/item/paper/fluff/ruins/elephant_graveyard/final_message + name = "important looking Note" + desc = "This note is well written, and seems to have been put here so you'd find it." + info = "If you find this... you don't need to know who I am.

    You need to leave this place. I dunno what shit they did to me out here, but I don't think I'm going to be making it out of here.

    This place... it wears down your psyche. The other researchers out here laughed it off but... They were the first to go.

    One by one they started turning on each other. The more they found out, the more they started fighting and arguing...
    As I speak now, I had to... I wound up having to put most of my men down. I know what I had to do, and I know there's no way left for me to live with myself.
    If anyone ever finds this, just don't touch the graves.

    DO NOT. TOUCH. THE GRAVES. Don't be a dumbass, like we all were." diff --git a/code/modules/ruins/lavalandruin_code/puzzle.dm b/code/modules/ruins/lavalandruin_code/puzzle.dm index 70b0545ded..92e24e3bc4 100644 --- a/code/modules/ruins/lavalandruin_code/puzzle.dm +++ b/code/modules/ruins/lavalandruin_code/puzzle.dm @@ -289,7 +289,7 @@ /obj/effect/sliding_puzzle/prison/dispense_reward() prisoner.forceMove(get_turf(src)) - prisoner.notransform = FALSE + prisoner.mob_transforming = FALSE prisoner = null //Some armor so it's harder to kill someone by mistake. @@ -329,7 +329,7 @@ return FALSE //First grab the prisoner and move them temporarily into the generator so they won't get thrown around. - prisoner.notransform = TRUE + prisoner.mob_transforming = TRUE prisoner.forceMove(cube) to_chat(prisoner,"You're trapped by the prison cube! You will remain trapped until someone solves it.") @@ -350,4 +350,4 @@ //Move them into random block var/obj/structure/puzzle_element/E = pick(cube.elements) prisoner.forceMove(E) - return TRUE \ No newline at end of file + return TRUE diff --git a/code/modules/ruins/spaceruin_code/clericsden.dm b/code/modules/ruins/spaceruin_code/clericsden.dm index 67e071b274..7d1fda6740 100644 --- a/code/modules/ruins/spaceruin_code/clericsden.dm +++ b/code/modules/ruins/spaceruin_code/clericsden.dm @@ -27,7 +27,8 @@ melee_damage_lower = 8 melee_damage_upper = 10 retreat_distance = 4 //AI proteons will rapidly move in and out of combat to avoid conflict, but will still target and follow you. - attacktext = "pinches" + attack_verb_continuous = "pinches" + attack_verb_simple = "pinch" environment_smash = ENVIRONMENT_SMASH_WALLS attack_sound = 'sound/weapons/punch2.ogg' playstyle_string = "You are a Proteon. Your abilities in combat are outmatched by most combat constructs, but you are still fast and nimble. Run metal and supplies, and cooperate with your fellow cultists." diff --git a/code/modules/ruins/spaceruin_code/hilbertshotel.dm b/code/modules/ruins/spaceruin_code/hilbertshotel.dm index a60d564631..ec5e98b2e6 100644 --- a/code/modules/ruins/spaceruin_code/hilbertshotel.dm +++ b/code/modules/ruins/spaceruin_code/hilbertshotel.dm @@ -413,13 +413,13 @@ GLOBAL_VAR_INIT(hhmysteryRoomNumber, 1337) . = ..() if(ismob(AM)) var/mob/M = AM - M.notransform = TRUE + M.mob_transforming = TRUE /obj/item/abstracthotelstorage/Exited(atom/movable/AM, atom/newLoc) . = ..() if(ismob(AM)) var/mob/M = AM - M.notransform = FALSE + M.mob_transforming = FALSE //Space Ruin stuff /area/ruin/space/has_grav/hilbertresearchfacility diff --git a/code/modules/security_levels/keycard_authentication.dm b/code/modules/security_levels/keycard_authentication.dm index b9dc9b92d3..adf53ff0da 100644 --- a/code/modules/security_levels/keycard_authentication.dm +++ b/code/modules/security_levels/keycard_authentication.dm @@ -9,6 +9,7 @@ GLOBAL_DATUM_INIT(keycard_events, /datum/events, new) desc = "This device is used to trigger station functions, which require more than one ID card to authenticate." icon = 'icons/obj/monitors.dmi' icon_state = "auth_off" + plane = ABOVE_WALL_PLANE use_power = IDLE_POWER_USE idle_power_usage = 2 active_power_usage = 6 @@ -19,6 +20,7 @@ GLOBAL_DATUM_INIT(keycard_events, /datum/events, new) var/event = "" var/obj/machinery/keycard_auth/event_source var/mob/triggerer = null + var/obj/item/card/id/first_id = null var/waiting = 0 /obj/machinery/keycard_auth/Initialize() @@ -55,32 +57,37 @@ GLOBAL_DATUM_INIT(keycard_events, /datum/events, new) return ..() /obj/machinery/keycard_auth/ui_act(action, params) - if(..() || waiting || !allowed(usr)) + if(..() || waiting) + return + var/obj/item/card/id/ID = usr.get_idcard(TRUE) + if(!ID || !istype(ID)) + return + if(!check_access(ID)) return switch(action) if("red_alert") if(!event_source) - sendEvent(KEYCARD_RED_ALERT) + sendEvent(KEYCARD_RED_ALERT, ID) . = TRUE if("emergency_maint") if(!event_source) - sendEvent(KEYCARD_EMERGENCY_MAINTENANCE_ACCESS) + sendEvent(KEYCARD_EMERGENCY_MAINTENANCE_ACCESS, ID) . = TRUE if("auth_swipe") - if(event_source) + if(event_source && ID != first_id && first_id) event_source.trigger_event(usr) event_source = null . = TRUE if("bsa_unlock") if(!event_source) - sendEvent(KEYCARD_BSA_UNLOCK) + sendEvent(KEYCARD_BSA_UNLOCK, ID) . = TRUE -/obj/machinery/keycard_auth/proc/sendEvent(event_type) +/obj/machinery/keycard_auth/proc/sendEvent(event_type, trigger_id) triggerer = usr event = event_type waiting = 1 - GLOB.keycard_events.fireEvent("triggerEvent", src) + GLOB.keycard_events.fireEvent("triggerEvent", src, trigger_id) addtimer(CALLBACK(src, .proc/eventSent), 20) /obj/machinery/keycard_auth/proc/eventSent() @@ -88,14 +95,16 @@ GLOBAL_DATUM_INIT(keycard_events, /datum/events, new) event = "" waiting = 0 -/obj/machinery/keycard_auth/proc/triggerEvent(source) +/obj/machinery/keycard_auth/proc/triggerEvent(source, trigger_id) icon_state = "auth_on" + first_id = trigger_id event_source = source addtimer(CALLBACK(src, .proc/eventTriggered), 20) /obj/machinery/keycard_auth/proc/eventTriggered() icon_state = "auth_off" event_source = null + first_id = null /obj/machinery/keycard_auth/proc/trigger_event(confirmer) log_game("[key_name(triggerer)] triggered and [key_name(confirmer)] confirmed event [event]") diff --git a/code/modules/shuttle/computer.dm b/code/modules/shuttle/computer.dm index d2b13fc71a..75bf55a5a3 100644 --- a/code/modules/shuttle/computer.dm +++ b/code/modules/shuttle/computer.dm @@ -71,6 +71,6 @@ to_chat(user, "You fried the consoles ID checking system.") return TRUE -/obj/machinery/computer/shuttle/proc/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) +/obj/machinery/computer/shuttle/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) if(port && (shuttleId == initial(shuttleId) || override)) shuttleId = port.id \ No newline at end of file diff --git a/code/modules/shuttle/custom_shuttle.dm b/code/modules/shuttle/custom_shuttle.dm new file mode 100644 index 0000000000..6e06e3fefe --- /dev/null +++ b/code/modules/shuttle/custom_shuttle.dm @@ -0,0 +1,268 @@ +#define Z_DIST 500 +#define CUSTOM_ENGINES_START_TIME 65 +#define CALCULATE_STATS_COOLDOWN 2 + +/obj/machinery/computer/custom_shuttle + name = "nanotrasen shuttle flight controller" + desc = "A terminal used to fly shuttles defined by the Shuttle Zoning Designator" + circuit = /obj/item/circuitboard/computer/shuttle/flight_control + icon_screen = "shuttle" + icon_keyboard = "tech_key" + light_color = LIGHT_COLOR_CYAN + req_access = list( ) + var/shuttleId + var/possible_destinations = "whiteship_home" + var/admin_controlled + var/no_destination_swap = 0 + var/calculated_mass = 0 + var/calculated_dforce = 0 + var/calculated_speed = 0 + var/calculated_engine_count = 0 + var/calculated_consumption = 0 + var/calculated_cooldown = 0 + var/calculated_non_operational_thrusters = 0 + var/calculated_fuel_less_thrusters = 0 + var/target_fuel_cost = 0 + var/targetLocation + var/datum/browser/popup + + var/stat_calc_cooldown = 0 + + //Upgrades + var/distance_multiplier = 1 + +/obj/machinery/computer/custom_shuttle/examine(mob/user) + . = ..() + . += distance_multiplier < 1 ? "Bluespace shortcut module installed. Route is [distance_multiplier]x the original length." : "" + +/obj/machinery/computer/custom_shuttle/ui_interact(mob/user) + var/list/options = params2list(possible_destinations) + var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) + var/dat = "[M ? "Current Location : [M.getStatusText()]" : "Shuttle link required."]

    " + if(M) + dat += "Run Flight Calculations
    " + dat += "Shuttle Data
    " + dat += "Shuttle Mass: [calculated_mass/10]tons
    " + dat += "Engine Force: [calculated_dforce]kN ([calculated_engine_count] engines)
    " + dat += "Sublight Speed: [calculated_speed]ms-1
    " + dat += calculated_speed < 1 ? "INSUFFICIENT ENGINE POWER
    " : "" + dat += calculated_non_operational_thrusters > 0 ? "Warning: [calculated_non_operational_thrusters] thrusters offline.
    " : "" + dat += "Fuel Consumption: [calculated_consumption]units per distance
    " + dat += "Engine Cooldown: [calculated_cooldown]s
    " + var/destination_found + for(var/obj/docking_port/stationary/S in SSshuttle.stationary) + if(!options.Find(S.id)) + continue + if(!M.check_dock(S, silent=TRUE)) + continue + if(calculated_speed == 0) + break + destination_found = TRUE + var/dist = round(calculateDistance(S)) + dat += "Target [S.name] (Dist: [dist] | Fuel Cost: [round(dist * calculated_consumption)] | Time: [round(dist / calculated_speed)])
    " + if(!destination_found) + dat += "No valid destinations
    " + dat += "
    [targetLocation ? "Target Location : [targetLocation]" : "No Target Location"]" + dat += "
    Initate Flight
    " + dat += "Close" + + popup = new(user, "computer", M ? M.name : "shuttle", 350, 450) + popup.set_content("
    [dat]
    ") + popup.set_title_image(usr.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + +/obj/machinery/computer/custom_shuttle/Topic(href, href_list) + if(..()) + return + usr.set_machine(src) + src.add_fingerprint(usr) + if(!allowed(usr)) + to_chat(usr, "Access denied.") + return + + if(href_list["calculate"]) + calculateStats() + ui_interact(usr) + return + var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) + if(!M) + return + if(M.launch_status == ENDGAME_LAUNCHED) + return + if(href_list["setloc"]) + SetTargetLocation(href_list["setloc"]) + ui_interact(usr) + return + else if(href_list["fly"]) + Fly() + ui_interact(usr) + return + +/obj/machinery/computer/custom_shuttle/proc/calculateDistance(var/obj/docking_port/stationary/port) + var/deltaX = port.x - x + var/deltaY = port.y - y + var/deltaZ = (port.z - z) * Z_DIST + return sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ) * distance_multiplier + +/obj/machinery/computer/custom_shuttle/proc/linkShuttle(var/new_id) + shuttleId = new_id + possible_destinations = "whiteship_home;shuttle[new_id]_custom" + +/obj/machinery/computer/custom_shuttle/proc/calculateStats(var/useFuel = FALSE, var/dist = 0, var/ignore_cooldown = FALSE) + if(!ignore_cooldown && stat_calc_cooldown >= world.time) + to_chat(usr, "You are using this too fast, please slow down") + return + stat_calc_cooldown = world.time + CALCULATE_STATS_COOLDOWN + var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) + if(!M) + return FALSE + //Reset data + calculated_mass = 0 + calculated_dforce = 0 + calculated_speed = 0 + calculated_engine_count = 0 + calculated_consumption = 0 + calculated_cooldown = 0 + calculated_fuel_less_thrusters = 0 + calculated_non_operational_thrusters = 0 + //Calculate all the data + var/list/areas = M.shuttle_areas + for(var/shuttleArea in areas) + calculated_mass += length(get_area_turfs(shuttleArea)) + for(var/obj/machinery/shuttle/engine/E in shuttleArea) + E.check_setup() + if(!E.thruster_active) //Skipover thrusters with no valid heater + calculated_non_operational_thrusters ++ + continue + if(E.attached_heater) + var/obj/machinery/atmospherics/components/unary/shuttle/heater/resolvedHeater = E.attached_heater.resolve() + if(resolvedHeater && !resolvedHeater.hasFuel(dist * E.fuel_use) && useFuel) + calculated_fuel_less_thrusters ++ + continue + calculated_engine_count++ + calculated_dforce += E.thrust + calculated_consumption += E.fuel_use + calculated_cooldown = max(calculated_cooldown, E.cooldown) + //This should really be accelleration, but its a 2d spessman game so who cares + if(calculated_mass == 0) + return FALSE + calculated_speed = (calculated_dforce*1000) / (calculated_mass*100) + return TRUE + +/obj/machinery/computer/custom_shuttle/proc/consumeFuel(var/dist) + var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) + if(!M) + return FALSE + //Calculate all the data + for(var/obj/machinery/shuttle/engine/shuttle_machine in GLOB.custom_shuttle_machines) + shuttle_machine.check_setup() + if(!shuttle_machine.thruster_active) + continue + if(get_area(M) != get_area(shuttle_machine)) + continue + if(shuttle_machine.attached_heater) + var/obj/machinery/atmospherics/components/unary/shuttle/heater/resolvedHeater = shuttle_machine.attached_heater.resolve() + if(resolvedHeater && !resolvedHeater.hasFuel(dist * shuttle_machine.fuel_use)) + continue + resolvedHeater?.consumeFuel(dist * shuttle_machine.fuel_use) + shuttle_machine.fireEngine() + +/obj/machinery/computer/custom_shuttle/proc/SetTargetLocation(var/newTarget) + if(!(newTarget in params2list(possible_destinations))) + log_admin("[usr] attempted to href dock exploit on [src] with target location \"[newTarget]\"") + message_admins("[usr] just attempted to href dock exploit on [src] with target location \"[newTarget]\"") + return + targetLocation = newTarget + say("Shuttle route calculated.") + return + +/obj/machinery/computer/custom_shuttle/proc/Fly() + if(!targetLocation) + return + var/obj/docking_port/mobile/linkedShuttle = SSshuttle.getShuttle(shuttleId) + if(!linkedShuttle) + return + if(linkedShuttle.mode != SHUTTLE_IDLE) + return + if(!calculateStats(TRUE, 0, TRUE)) + return + if(calculated_fuel_less_thrusters > 0) + say("Warning, [calculated_fuel_less_thrusters] do not have enough fuel for this journey, engine output may be limitted.") + if(calculated_speed < 1) + say("Insufficient engine power, shuttle requires [calculated_mass / 10]kN of thrust.") + return + var/obj/docking_port/stationary/targetPort = SSshuttle.getDock(targetLocation) + if(!targetPort) + return + var/dist = calculateDistance(targetPort) + var/time = min(max(round(dist / calculated_speed), 10), 90) + linkedShuttle.callTime = time * 10 + linkedShuttle.rechargeTime = calculated_cooldown + //We need to find the direction of this console to the port + linkedShuttle.port_direction = angle2dir(dir2angle(dir) - (dir2angle(linkedShuttle.dir)) + 180) + linkedShuttle.preferred_direction = NORTH + linkedShuttle.ignitionTime = CUSTOM_ENGINES_START_TIME + linkedShuttle.count_engines() + linkedShuttle.hyperspace_sound(HYPERSPACE_WARMUP) + var/throwForce = clamp((calculated_speed / 2) - 5, 0, 10) + linkedShuttle.movement_force = list("KNOCKDOWN" = calculated_speed > 5 ? 3 : 0, "THROW" = throwForce) + if(!(targetLocation in params2list(possible_destinations))) + log_admin("[usr] attempted to launch a shuttle that has been affected by href dock exploit on [src] with target location \"[targetLocation]\"") + message_admins("[usr] attempted to launch a shuttle that has been affected by href dock exploit on [src] with target location \"[targetLocation]\"") + return + switch(SSshuttle.moveShuttle(shuttleId, targetLocation, 1)) + if(0) + consumeFuel(dist) + say("Shuttle departing. Please stand away from the doors.") + if(1) + to_chat(usr, "Invalid shuttle requested.") + else + to_chat(usr, "Unable to comply.") + return + +/obj/machinery/computer/custom_shuttle/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) + if(port && (shuttleId == initial(shuttleId) || override)) + linkShuttle(port.id) + +//Custom shuttle docker locations +/obj/machinery/computer/camera_advanced/shuttle_docker/custom + name = "Shuttle Navigation Computer" + desc = "Used to designate a precise transit location for private ships." + lock_override = NONE + whitelist_turfs = list(/turf/open/space, + /turf/open/lava, + /turf/open/floor/plating/beach, + /turf/open/floor/plating/ashplanet, + /turf/open/floor/plating/asteroid, + /turf/open/floor/plating/lavaland_baseturf) + jumpto_ports = list("whiteship_home" = 1) + view_range = 12 + designate_time = 100 + circuit = /obj/item/circuitboard/computer/shuttle/docker + +/obj/machinery/computer/camera_advanced/shuttle_docker/custom/Initialize() + . = ..() + GLOB.jam_on_wardec += src + +/obj/machinery/computer/camera_advanced/shuttle_docker/custom/Destroy() + GLOB.jam_on_wardec -= src + return ..() + +/obj/machinery/computer/camera_advanced/shuttle_docker/custom/placeLandingSpot() + if(!shuttleId) + return //Only way this would happen is if someone else delinks the console while in use somehow + var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) + if(M?.mode != SHUTTLE_IDLE) + to_chat(usr, "You cannot target locations while in transit.") + return + ..() + +/obj/machinery/computer/camera_advanced/shuttle_docker/custom/attack_hand(mob/user) + if(!shuttleId) + to_chat(user, "You must link the console to a shuttle first.") + return + return ..() + +/obj/machinery/computer/camera_advanced/shuttle_docker/custom/proc/linkShuttle(var/new_id) + shuttleId = new_id + shuttlePortId = "shuttle[new_id]_custom" diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm index 69eb4a6be4..4f53e5d9d0 100644 --- a/code/modules/shuttle/navigation_computer.dm +++ b/code/modules/shuttle/navigation_computer.dm @@ -253,7 +253,7 @@ current_user.client.images -= remove_images current_user.client.images += add_images -/obj/machinery/computer/camera_advanced/shuttle_docker/proc/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) +/obj/machinery/computer/camera_advanced/shuttle_docker/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock, idnum, override=FALSE) if(port && (shuttleId == initial(shuttleId) || override)) shuttleId = port.id shuttlePortId = "[port.id]_custom" diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 665361af49..bce2da74e4 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -11,17 +11,31 @@ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF anchored = TRUE -// + /// The identifier of the port or ship. + /// This will be used in numerous other places like the console, + /// stationary ports and whatnot to tell them your ship's mobile + /// port can be used in these places, or the docking port is compatible, etc. var/id - // this should point -away- from the dockingport door, ie towards the ship + ///Common standard is for this to point -away- from the dockingport door, ie towards the ship dir = NORTH - var/width = 0 //size of covered area, perpendicular to dir - var/height = 0 //size of covered area, parallel to dir - var/dwidth = 0 //position relative to covered area, perpendicular to dir - var/dheight = 0 //position relative to covered area, parallel to dir + ///size of covered area, perpendicular to dir. You shouldn't modify this for mobile dockingports, set automatically. + var/width = 0 + ///size of covered area, parallel to dir. You shouldn't modify this for mobile dockingports, set automatically. + var/height = 0 + ///position relative to covered area, perpendicular to dir. You shouldn't modify this for mobile dockingports, set automatically. + var/dwidth = 0 + ///position relative to covered area, parallel to dir. You shouldn't modify this for mobile dockingports, set automatically. + var/dheight = 0 var/area_type - var/hidden = FALSE //are we invisible to shuttle navigation computers? + ///are we invisible to shuttle navigation computers? + var/hidden = FALSE + + ///Delete this port after ship fly off. + var/delete_after = FALSE + +/obj/docking_port/proc/get_save_vars() + return list("pixel_x", "pixel_y", "dir", "name", "req_access", "req_access_txt", "piping_layer", "color", "icon_state", "pipe_color", "amount", "width", "height", "dwidth", "dheight") //these objects are indestructible /obj/docking_port/Destroy(force) @@ -155,8 +169,6 @@ /obj/docking_port/stationary name = "dock" - area_type = SHUTTLE_DEFAULT_UNDERLYING_AREA - var/last_dock_time var/datum/map_template/shuttle/roundstart_template @@ -169,6 +181,9 @@ id = "[SSshuttle.stationary.len]" if(name == "dock") name = "dock[SSshuttle.stationary.len]" + if(!area_type) + var/area/place = get_area(src) + area_type = place?.type || SHUTTLE_DEFAULT_UNDERLYING_AREA // We might be created in nullspace if(mapload) for(var/turf/T in return_turfs()) @@ -183,6 +198,13 @@ SSshuttle.stationary -= src . = ..() +/obj/docking_port/stationary/Moved(atom/oldloc, dir, forced) + . = ..() + if(area_type) // We already have one + return + var/area/newarea = get_area(src) + area_type = newarea?.type + /obj/docking_port/stationary/proc/load_roundstart() if(json_key) var/sid = SSmapping.config.shuttles[json_key] @@ -235,16 +257,25 @@ var/list/shuttle_areas - var/timer //used as a timer (if you want time left to complete move, use timeLeft proc) + ///used as a timer (if you want time left to complete move, use timeLeft proc) + var/timer var/last_timer_length + ///current shuttle mode + var/mode = SHUTTLE_IDLE + ///time spent in transit (deciseconds). Should not be lower then 10 seconds without editing the animation of the hyperspace ripples. + var/callTime = 100 + /// time spent "starting the engines". Also rate limits how often we try to reserve transit space if its ever full of transiting shuttles. + var/ignitionTime = 55 + /// time spent after arrival before being able to begin ignition + var/rechargeTime = 0 + /// time spent after transit 'landing' before actually arriving + var/prearrivalTime = 0 - var/mode = SHUTTLE_IDLE //current shuttle mode - var/callTime = 100 //time spent in transit (deciseconds). Should not be lower then 10 seconds without editing the animation of the hyperspace ripples. - var/ignitionTime = 55 // time spent "starting the engines". Also rate limits how often we try to reserve transit space if its ever full of transiting shuttles. - - // The direction the shuttle prefers to travel in + /// The direction the shuttle prefers to travel in, ie what direction + /// the animation will cause it to appear to be traveling in var/preferred_direction = NORTH - // And the angle from the front of the shuttle to the port + /// relative direction of the docking port from the front of the shuttle + /// NORTH is towards front, EAST would be starboard side, WEST port, etc. var/port_direction = NORTH var/obj/docking_port/stationary/destination @@ -254,13 +285,16 @@ var/launch_status = NOLAUNCH - var/list/movement_force = list("KNOCKDOWN" = 3, "THROW" = 2) + ///Whether or not you want your ship to knock people down, and also whether it will throw them several tiles upon launching. + var/list/movement_force = list("KNOCKDOWN" = 3, "THROW" = 0) var/list/ripples = list() - var/engine_coeff = 1 //current engine coeff - var/current_engines = 0 //current engine power - var/initial_engines = 0 //initial engine power - var/can_move_docking_ports = FALSE //if this shuttle can move docking ports other than the one it is docked at + var/engine_coeff = 1 + var/current_engines = 0 + var/initial_engines = 0 + var/list/engine_list = list() + ///if this shuttle can move docking ports other than the one it is docked at + var/can_move_docking_ports = FALSE var/list/hidden_turfs = list() /obj/docking_port/mobile/proc/register() @@ -308,14 +342,12 @@ id = "[id][idnum]" if(name == initial(name)) name = "[name] [idnum]" - for(var/i in shuttle_areas) - var/area/place = i - for(var/obj/machinery/computer/shuttle/comp in place) - comp.connect_to_shuttle(src, dock, idnum) - for(var/obj/machinery/computer/camera_advanced/shuttle_docker/comp in place) - comp.connect_to_shuttle(src, dock, idnum) - for(var/obj/machinery/status_display/shuttle/sd in place) - sd.connect_to_shuttle(src, dock, idnum) + for(var/place in shuttle_areas) + var/area/area = place + area.connect_to_shuttle(src, dock, idnum, FALSE) + for(var/each in place) + var/atom/atom = each + atom.connect_to_shuttle(src, dock, idnum, FALSE) //this is a hook for custom behaviour. Maybe at some point we could add checks to see if engines are intact @@ -423,7 +455,10 @@ if(initiate_docking(S1) != DOCKING_SUCCESS) WARNING("shuttle \"[id]\" could not enter transit space. Docked at [S0 ? S0.id : "null"]. Transit dock [S1 ? S1.id : "null"].") else - previous = S0 + if(S0.delete_after) + qdel(S0, TRUE) + else + previous = S0 else WARNING("shuttle \"[id]\" could not enter transit space. S0=[S0 ? S0.id : "null"] S1=[S1 ? S1.id : "null"]") @@ -472,7 +507,7 @@ if(M.mind && !istype(t, /turf/open/floor/plasteel/shuttle/red) && !istype(t, /turf/open/floor/mineral/plastitanium/red/brig)) M.mind.force_escaped = TRUE // Ghostize them and put them in nullspace stasis (for stat & possession checks) - M.notransform = TRUE + M.mob_transforming = TRUE M.ghostize(FALSE) M.moveToNullspace() @@ -536,7 +571,11 @@ // If we can't dock or we don't have a transit slot, wait for 20 ds, // then try again switch(mode) - if(SHUTTLE_CALL) + if(SHUTTLE_CALL, SHUTTLE_PREARRIVAL) + if(prearrivalTime && mode != SHUTTLE_PREARRIVAL) + mode = SHUTTLE_PREARRIVAL + setTimer(prearrivalTime) + return var/error = initiate_docking(destination, preferred_direction) if(error && error & (DOCKING_NULL_DESTINATION | DOCKING_NULL_SOURCE)) var/msg = "A mobile dock in transit exited initiate_docking() with an error. This is most likely a mapping problem: Error: [error], ([src]) ([previous][ADMIN_JMP(previous)] -> [destination][ADMIN_JMP(destination)])" @@ -547,6 +586,10 @@ else if(error) setTimer(20) return + if(rechargeTime) + mode = SHUTTLE_RECHARGING + setTimer(rechargeTime) + return if(SHUTTLE_RECALL) if(initiate_docking(previous) != DOCKING_SUCCESS) setTimer(20) @@ -649,6 +692,10 @@ return "ESC" if(SHUTTLE_STRANDED) return "ERR" + if(SHUTTLE_RECHARGING) + return "RCH" + if(SHUTTLE_PREARRIVAL) + return "LDN" return "" // returns 5-letter timer string, used by status screens and mob status panel @@ -667,7 +714,7 @@ /obj/docking_port/mobile/proc/getStatusText() var/obj/docking_port/stationary/dockedAt = get_docked() - + var/docked_at = dockedAt?.name || "unknown" if(istype(dockedAt, /obj/docking_port/stationary/transit)) if (timeLeft() > 1 HOURS) return "hyperspace" @@ -678,8 +725,10 @@ else dst = destination . = "transit towards [dst?.name || "unknown location"] ([getTimerStr()])" + else if(mode == SHUTTLE_RECHARGING) + return "[docked_at], recharging [getTimerStr()]" else - return dockedAt?.name || "unknown" + return docked_at /obj/docking_port/mobile/proc/getDbgStatusText() @@ -711,19 +760,47 @@ return null /obj/docking_port/mobile/proc/hyperspace_sound(phase, list/areas) - var/s + var/selected_sound switch(phase) if(HYPERSPACE_WARMUP) - s = 'sound/effects/hyperspace_begin.ogg' + selected_sound = "hyperspace_begin" if(HYPERSPACE_LAUNCH) - s = 'sound/effects/hyperspace_progress.ogg' + selected_sound = "hyperspace_progress" if(HYPERSPACE_END) - s = 'sound/effects/hyperspace_end.ogg' + selected_sound = "hyperspace_end" else CRASH("Invalid hyperspace sound phase: [phase]") - for(var/A in areas) - for(var/obj/machinery/door/E in A) //dumb, I know, but playing it on the engines doesn't do it justice - playsound(E, s, 100, FALSE, max(width, height) - world.view) + // This previously was played from each door at max volume, and was one of the worst things I had ever seen. + // Now it's instead played from the nearest engine if close, or the first engine in the list if far since it doesn't really matter. + // Or a door if for some reason the shuttle has no engine, fuck oh hi daniel fuck it + var/range = (engine_coeff * max(width, height)) + var/long_range = range * 2.5 + var/atom/distant_source + if(LAZYLEN(engine_list)) + distant_source = engine_list[1] + else + for(var/A in areas) + distant_source = locate(/obj/machinery/door) in A + if(distant_source) + break + + if(distant_source) + for(var/mob/M in SSmobs.clients_by_zlevel[z]) + var/dist_far = get_dist(M, distant_source) + if(dist_far <= long_range && dist_far > range) + M.playsound_local(distant_source, "sound/effects/[selected_sound]_distance.ogg", 100, falloff = 20) + else if(dist_far <= range) + var/source + if(engine_list.len == 0) + source = distant_source + else + var/closest_dist = 10000 + for(var/obj/O in engine_list) + var/dist_near = get_dist(M, O) + if(dist_near < closest_dist) + source = O + closest_dist = dist_near + M.playsound_local(source, "sound/effects/[selected_sound].ogg", 100, falloff = range / 2) // Losing all initial engines should get you 2 // Adding another set of engines at 0.5 time @@ -743,7 +820,12 @@ var/area/shuttle/areaInstance = thing for(var/obj/structure/shuttle/engine/E in areaInstance.contents) if(!QDELETED(E)) + engine_list += E . += E.engine_power + for(var/obj/machinery/shuttle/engine/E in areaInstance.contents) + if(!QDELETED(E)) + engine_list += E + . += E.thruster_active ? 1 : 0 // Double initial engines to get to 0.5 minimum // Lose all initial engines to get to 2 @@ -768,7 +850,7 @@ /obj/docking_port/mobile/proc/in_flight() switch(mode) - if(SHUTTLE_CALL,SHUTTLE_RECALL) + if(SHUTTLE_CALL,SHUTTLE_RECALL,SHUTTLE_PREARRIVAL) return TRUE if(SHUTTLE_IDLE,SHUTTLE_IGNITING) return FALSE diff --git a/code/modules/shuttle/shuttle_creation/shuttle_creator.dm b/code/modules/shuttle/shuttle_creation/shuttle_creator.dm new file mode 100644 index 0000000000..f5a11db60f --- /dev/null +++ b/code/modules/shuttle/shuttle_creation/shuttle_creator.dm @@ -0,0 +1,370 @@ +#define SHUTTLE_CREATOR_MAX_SIZE CONFIG_GET(number/max_shuttle_size) +#define CUSTOM_SHUTTLE_LIMIT CONFIG_GET(number/max_shuttle_count) +#define CARDINAL_DIRECTIONS_X list(1, 0, -1, 0) +#define CARDINAL_DIRECTIONS_Y list(0, 1, 0, -1) + +GLOBAL_VAR_INIT(custom_shuttle_count, 0) //The amount of custom shuttles created to prevent creating hundreds +GLOBAL_LIST_EMPTY(custom_shuttle_machines) //Machines that require updating (Heaters, engines) + +//============ Shuttle Creator Object ============ +/obj/item/shuttle_creator + name = "Rapid Shuttle Designator" + icon = 'icons/obj/tools.dmi' + icon_state = "rsd" + lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' + desc = "A device used to define the area required for custom ships. Uses bluespace crystals to create bluespace-capable ships." + density = FALSE + anchored = FALSE + flags_1 = CONDUCT_1 + item_flags = NOBLUDGEON + force = 0 + throwforce = 8 + throw_speed = 3 + throw_range = 5 + w_class = WEIGHT_CLASS_NORMAL + req_access_txt = "11" + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) + resistance_flags = FIRE_PROOF + var/ready = TRUE + //pre-designation + var/override_max_shuttles = FALSE + var/obj/machinery/computer/camera_advanced/shuttle_creator/internal_shuttle_creator + //During designation + var/overwritten_area = /area/space + var/list/loggedTurfs = list() + var/loggedOldArea + var/recorded_shuttle_area + var/datum/shuttle_creator_overlay_holder/overlay_holder + //After designation + var/linkedShuttleId + +/obj/item/shuttle_creator/Initialize() + . = ..() + internal_shuttle_creator = new() + internal_shuttle_creator.owner_rsd = src + overlay_holder = new() + +/obj/item/shuttle_creator/Destroy() + . = ..() + if(internal_shuttle_creator) + internal_shuttle_creator.owner_rsd = null + QDEL_NULL(internal_shuttle_creator) + if(overlay_holder) + QDEL_NULL(overlay_holder) + +/obj/item/shuttle_creator/attack_self(mob/user) + ..() + if(linkedShuttleId) + return + if(GLOB.custom_shuttle_count > CUSTOM_SHUTTLE_LIMIT && !override_max_shuttles) + to_chat(user, "Too many shuttles have been created.") + message_admins("[ADMIN_FLW(user)] attempted to create a shuttle, however [CUSTOM_SHUTTLE_LIMIT] have already been created.") + return + if(!internal_shuttle_creator) + return + overlay_holder.add_client(user.client) + internal_shuttle_creator.attack_hand(user) + +/obj/item/shuttle_creator/afterattack(atom/target, mob/user, proximity_flag) + . = ..() + if(!ready) + to_chat(user, "You need to define a shuttle area first.") + return + if(!proximity_flag) + return + if(istype(target, /obj/machinery/computer/custom_shuttle)) + if(!linkedShuttleId) + to_chat(user, "Error, no defined shuttle linked to device") + return + var/obj/machinery/computer/custom_shuttle/console = target + console.linkShuttle(linkedShuttleId) + to_chat(user, "Console linked successfully!") + return + else if(istype(target, /obj/machinery/computer/camera_advanced/shuttle_docker/custom)) + if(!linkedShuttleId) + to_chat(user, "Error, no defined shuttle linked to device") + return + var/obj/machinery/computer/camera_advanced/shuttle_docker/custom/console = target + console.linkShuttle(linkedShuttleId) + to_chat(user, "Console linked successfully!") + return + to_chat(user, "The [src] bleeps. Select an airlock to create a docking port, or a valid machine to link.") + return + +//=========== shuttle designation actions ============ +/obj/item/shuttle_creator/proc/calculate_bounds(obj/docking_port/mobile/port) + if(!port || !istype(port, /obj/docking_port/mobile)) + return FALSE + //Heights is the distance away from the port + //width is the distance perpendicular to the port + var/minX = INFINITY + var/maxX = 0 + var/minY = INFINITY + var/maxY = 0 + for(var/turf/T in loggedTurfs) + minX = min(T.x, minX) + maxX = max(T.x, maxX) + minY = min(T.y, minY) + maxY = max(T.y, maxY) + //Make sure shuttle was actually found. + if(maxX == INFINITY || maxY == INFINITY) + return FALSE + minX-- + minY-- + var/width = maxX - minX + var/height = maxY - minY + var/offset_x = port.x - minX + var/offset_y = port.y - minY + switch(port.dir) //Source: code/datums/shuttles.dm line 77 (14/03/2020) :) + if(NORTH) + port.width = width + port.height = height + port.dwidth = offset_x - 1 + port.dheight = offset_y - 1 + if(EAST) + port.width = height + port.height = width + port.dwidth = height - offset_y + port.dheight = offset_x - 1 + if(SOUTH) + port.width = width + port.height = height + port.dwidth = width - offset_x + port.dheight = height - offset_y + if(WEST) + port.width = height + port.height = width + port.dwidth = offset_y - 1 + port.dheight = width - offset_x + return TRUE + +//Go through all the all_turfs and check which direction doesn't have the shuttle +/obj/item/shuttle_creator/proc/getNonShuttleDirection(turf/targetTurf) + var/position = null + if(!(get_offset_target_turf(targetTurf, 0, 1) in loggedTurfs)) + if(position != null) + return null + position = NORTH + if(!(get_offset_target_turf(targetTurf, 0, -1) in loggedTurfs)) + if(position != null) + return null + position = SOUTH + if(!(get_offset_target_turf(targetTurf, 1, 0) in loggedTurfs)) + if(position != null) + return null + position = EAST + if(!(get_offset_target_turf(targetTurf, -1, 0) in loggedTurfs)) + if(position != null) + return null + position = WEST + return position + +/obj/item/shuttle_creator/proc/invertDir(var/input_dir) + if(input_dir == NORTH) + return SOUTH + else if(input_dir == SOUTH) + return NORTH + else if(input_dir == EAST) + return WEST + else if(input_dir == WEST) + return EAST + return null + +/obj/item/shuttle_creator/proc/shuttle_create_docking_port(atom/target, mob/user) + + if(loggedTurfs.len == 0 || !recorded_shuttle_area) + to_chat(user, "Invalid shuttle, restarting bluespace systems...") + return FALSE + + var/datum/map_template/shuttle/new_shuttle = new /datum/map_template/shuttle() + + var/obj/docking_port/mobile/port = new /obj/docking_port/mobile(get_turf(target)) + var/obj/docking_port/stationary/stationary_port = new /obj/docking_port/stationary(get_turf(target)) + port.callTime = 50 + port.dir = 1 //Point away from space. + port.id = "custom_[GLOB.custom_shuttle_count]" + linkedShuttleId = port.id + port.ignitionTime = 25 + port.name = "Custom Shuttle" + port.port_direction = 2 + port.preferred_direction = 4 + port.area_type = recorded_shuttle_area + + stationary_port.area_type = overwritten_area + + var/portDirection = getNonShuttleDirection(get_turf(port)) + var/invertedDir = invertDir(portDirection) + if(!portDirection || !invertedDir) + to_chat(usr, "Shuttle creation aborted, docking airlock must be on an external wall. Please select a new airlock.") + port.Destroy() + stationary_port.Destroy() + linkedShuttleId = null + return FALSE + port.dir = invertedDir + port.port_direction = portDirection + + if(!calculate_bounds(port)) + to_chat(usr, "Bluespace calculations failed, please select a new airlock.") + port.Destroy() + stationary_port.Destroy() + linkedShuttleId = null + return FALSE + + port.shuttle_areas = list() + //var/list/all_turfs = port.return_ordered_turfs(port.x, port.y, port.z, port.dir) + var/list/all_turfs = loggedTurfs + for(var/i in 1 to all_turfs.len) + var/turf/curT = all_turfs[i] + var/area/cur_area = curT.loc + //Add the area to the shuttle <3 + if(istype(cur_area, recorded_shuttle_area)) + if(istype(curT, /turf/open/space)) + continue + if(length(curT.baseturfs) < 2) + continue + //Add the shuttle base shit to the shuttle + curT.baseturfs.Insert(3, /turf/baseturf_skipover/shuttle) + port.shuttle_areas[cur_area] = TRUE + + port.linkup(new_shuttle, stationary_port) + + port.movement_force = list("KNOCKDOWN" = 0, "THROW" = 0) + port.initiate_docking(stationary_port) + + port.mode = SHUTTLE_IDLE + port.timer = 0 + + port.register() + + icon_state = "rsd_used" + + //Clear highlights + overlay_holder.clear_highlights() + GLOB.custom_shuttle_count ++ + message_admins("[ADMIN_LOOKUPFLW(user)] created a new shuttle with a [src] at [ADMIN_VERBOSEJMP(user)] ([GLOB.custom_shuttle_count] custom shuttles, limit is [CUSTOM_SHUTTLE_LIMIT])") + log_game("[key_name(user)] created a new shuttle with a [src] at [AREACOORD(user)] ([GLOB.custom_shuttle_count] custom shuttles, limit is [CUSTOM_SHUTTLE_LIMIT])") + return TRUE + +/obj/item/shuttle_creator/proc/create_shuttle_area(mob/user) + //Check to see if the user can make a new area to prevent spamming + if(user) + if(user.create_area_cooldown >= world.time) + to_chat(user, "Smoke vents from the [src], maybe you should let it cooldown before using it again.") + return FALSE + user.create_area_cooldown = world.time + 10 + if(!loggedTurfs) + return FALSE + if(!check_area(loggedTurfs, FALSE)) //Makes sure nothing (Shuttles) has moved into the area during creation + return FALSE + //Create the new area + var/area/shuttle/custom/powered/newS + var/area/oldA = loggedOldArea + var/str = stripped_input(user, "Shuttle Name:", "Blueprint Editing", "", MAX_NAME_LEN) + if(!str || !length(str)) + return FALSE + if(length(str) > 50) + to_chat(user, "The provided ship name is too long, blares the [src]") + return FALSE + newS = new /area/shuttle/custom/powered() + newS.setup(str) + newS.set_dynamic_lighting() + //Shuttles always have gravity + newS.has_gravity = TRUE + newS.requires_power = TRUE + //Record the area for use when creating the docking port + recorded_shuttle_area = newS + + for(var/i in 1 to loggedTurfs.len) + var/turf/turf_holder = loggedTurfs[i] + var/area/old_area = turf_holder.loc + newS.contents += turf_holder + turf_holder.change_area(old_area, newS) + + newS.reg_in_areas_in_z() + + var/list/firedoors = oldA.firedoors + for(var/door in firedoors) + var/obj/machinery/door/firedoor/FD = door + FD.CalculateAffectingAreas() + return TRUE + +//Checks an area to ensure that the turfs provided are valid to be made into a shuttle +/obj/item/shuttle_creator/proc/check_area(list/turfs, addingTurfs = TRUE) + if(!turfs) + to_chat(usr, "Shuttles must be created in an airtight space, ensure that the shuttle is airtight, including corners.") + return FALSE + if(turfs.len + (addingTurfs ? loggedTurfs.len : 0) > SHUTTLE_CREATOR_MAX_SIZE) + to_chat(usr, "The [src]'s internal cooling system wizzes violently and a message appears on the screen, \"Caution, this device can only handle the creation of shuttles up to [SHUTTLE_CREATOR_MAX_SIZE] units in size. Please reduce your shuttle by [turfs.len-SHUTTLE_CREATOR_MAX_SIZE]. Sorry for the inconvinience\"") + return FALSE + //Check to see if it's a valid shuttle + for(var/i in 1 to turfs.len) + var/area/place = get_area(turfs[i]) + //If any of the turfs are on station / not in space, a shuttle cannot be forced there + if(!place) + to_chat(usr, "You can't seem to overpower the bluespace harmonics in this location, try somewhere else.") + return FALSE + if(istype(place, /area/space)) + overwritten_area = /area/space + else if(istype(place, /area/lavaland/surface/outdoors)) + overwritten_area = /area/lavaland/surface/outdoors + else + to_chat(usr, "Caution, shuttle must not use any material connected to the station. Your shuttle is currenly overlapping with [place.name]") + return FALSE + //Finally, check to see if the area is actually attached + if(!LAZYLEN(loggedTurfs)) + return TRUE + for(var/turf/T in turfs) + if(turf_connected_to_saved_turfs(T)) + return TRUE + CHECK_TICK + to_chat(usr, "Caution, new areas of the shuttle must be connected to the other areas of the shuttle.") + return FALSE + +/obj/item/shuttle_creator/proc/turf_connected_to_saved_turfs(turf/T) + for(var/i in 1 to 4) + var/turf/adjacentT = get_offset_target_turf(T, CARDINAL_DIRECTIONS_X[i], CARDINAL_DIRECTIONS_Y[i]) + if(adjacentT in loggedTurfs) + return TRUE + return FALSE + +/obj/item/shuttle_creator/proc/turf_in_list(turf/T) + return loggedTurfs.Find(T) + +/obj/item/shuttle_creator/proc/add_single_turf(turf/T) + if(!check_area(list(T))) + return FALSE + loggedTurfs |= T + loggedOldArea = get_area(T) + overlay_holder.highlight_turf(T) + +/obj/item/shuttle_creator/proc/add_saved_area(mob/user) + var/static/area_or_turf_fail_types = typecacheof(list( + /turf/open/space, + /area/shuttle + )) + //Detect the turfs connected in the curerrent enclosed area + var/list/turfs = detect_room(get_turf(user), area_or_turf_fail_types) + if(!check_area(turfs)) + return FALSE + loggedOldArea = get_area(get_turf(user)) + loggedTurfs |= turfs + overlay_holder.highlight_area(turfs) + //TODO READD THIS SHIT: icon_state = "rsd_used" + to_chat(user, "You add the area into the buffer of the [src], you made add more areas or select an airlock to act as a docking port to complete the shuttle.") + return turfs + +/obj/item/shuttle_creator/proc/remove_single_turf(turf/T) + if(!turf_in_list(T)) + return + loggedTurfs -= T + loggedOldArea = get_area(T) + overlay_holder.unhighlight_turf(T) + +/obj/item/shuttle_creator/proc/reset_saved_area() + overlay_holder.clear_highlights() + loggedTurfs.Cut() + to_chat(usr, "You reset the area buffer on the [src].") + +#undef CARDINAL_DIRECTIONS_X +#undef CARDINAL_DIRECTIONS_Y diff --git a/code/modules/shuttle/shuttle_creation/shuttle_creator_actions.dm b/code/modules/shuttle/shuttle_creation/shuttle_creator_actions.dm new file mode 100644 index 0000000000..f50b3bf59f --- /dev/null +++ b/code/modules/shuttle/shuttle_creation/shuttle_creator_actions.dm @@ -0,0 +1,101 @@ +//============ Actions ============ +/datum/action/innate/shuttle_creator + icon_icon = 'icons/mob/actions/actions_shuttle.dmi' + var/mob/living/C + var/mob/camera/aiEye/remote/shuttle_creation/remote_eye + var/obj/item/shuttle_creator/shuttle_creator + +/datum/action/innate/shuttle_creator/Activate() + if(!target) + return TRUE + C = owner + remote_eye = C.remote_control + var/obj/machinery/computer/camera_advanced/shuttle_creator/internal_console = target + shuttle_creator = internal_console.owner_rsd + +//Add an area +/datum/action/innate/shuttle_creator/designate_area + name = "Designate Room" + button_icon_state = "designate_area" + +/datum/action/innate/shuttle_creator/designate_area/Activate() + if(..()) + return + shuttle_creator.add_saved_area(remote_eye) + +//Add a single turf +/datum/action/innate/shuttle_creator/designate_turf + name = "Designate Turf" + button_icon_state = "designate_turf" + +/datum/action/innate/shuttle_creator/designate_turf/Activate() + if(..()) + return + var/turf/T = get_turf(remote_eye) + if(istype(T, /turf/open/space)) + var/connectors_exist = FALSE + for(var/obj/structure/lattice/lattice in T) + connectors_exist = TRUE + break + if(!connectors_exist) + to_chat(usr, "This turf requires support, build some catwalks or lattices.") + return + if(!shuttle_creator.check_area(list(T))) + return + if(shuttle_creator.turf_in_list(T)) + return + shuttle_creator.add_single_turf(T) + +//Clear a single entire area +/datum/action/innate/shuttle_creator/clear_turf + name = "Clear Turf" + button_icon_state = "clear_turf" + +/datum/action/innate/shuttle_creator/clear_turf/Activate() + if(..()) + return + shuttle_creator.remove_single_turf(get_turf(remote_eye)) + +//Clear the entire area +/datum/action/innate/shuttle_creator/reset + name = "Reset Buffer" + button_icon_state = "clear_area" + +/datum/action/innate/shuttle_creator/reset/Activate() + if(..()) + return + shuttle_creator.reset_saved_area() + +//Finish the shuttle +/datum/action/innate/shuttle_creator/airlock + name = "Select Docking Airlock" + button_icon_state = "select_airlock" + +/datum/action/innate/shuttle_creator/airlock/Activate() + if(..()) + return + var/turf/T = get_turf(remote_eye) + for(var/obj/machinery/door/airlock/A in T) + if(get_area(A) != shuttle_creator.loggedOldArea) + to_chat(C, "Caution, airlock must be on the shuttle to function as a dock.") + return + if(shuttle_creator.linkedShuttleId) + return + if(GLOB.custom_shuttle_count > CUSTOM_SHUTTLE_LIMIT) + to_chat(C, "Shuttle limit reached, sorry.") + return + if(shuttle_creator.loggedTurfs.len > SHUTTLE_CREATOR_MAX_SIZE) + to_chat(C, "This shuttle is too large!") + return + if(!shuttle_creator.getNonShuttleDirection(T)) + to_chat(C, "Docking port must be on an external wall, with only 1 side exposed to space.") + return + if(!shuttle_creator.create_shuttle_area(C)) + return + if(shuttle_creator.shuttle_create_docking_port(A, C)) + to_chat(C, "Shuttle created!") + //Remove eye control + var/obj/machinery/computer/camera_advanced/shuttle_creator/internal_console = target + internal_console.remove_eye_control() + qdel(internal_console) + return diff --git a/code/modules/shuttle/shuttle_creation/shuttle_creator_console.dm b/code/modules/shuttle/shuttle_creation/shuttle_creator_console.dm new file mode 100644 index 0000000000..f5ddf12182 --- /dev/null +++ b/code/modules/shuttle/shuttle_creation/shuttle_creator_console.dm @@ -0,0 +1,93 @@ +//============The internal camera console used for designating the area============= +/obj/machinery/computer/camera_advanced/shuttle_creator + name = "internal shuttle creator console" + desc = "You should not have access to this, please report this as a bug" + networks = list() + var/obj/item/shuttle_creator/owner_rsd + var/datum/action/innate/shuttle_creator/designate_area/area_action = new + var/datum/action/innate/shuttle_creator/designate_turf/turf_action = new + var/datum/action/innate/shuttle_creator/clear_turf/clear_turf_action = new + var/datum/action/innate/shuttle_creator/reset/reset_action = new + var/datum/action/innate/shuttle_creator/airlock/airlock_action = new + +/obj/machinery/computer/camera_advanced/shuttle_creator/check_eye(mob/user) + if(user.eye_blind || user.incapacitated()) + user.unset_machine() + +/obj/machinery/computer/camera_advanced/shuttle_creator/CreateEye() + eyeobj = new /mob/camera/aiEye/remote/shuttle_creation(get_turf(owner_rsd)) + eyeobj.origin = src + eyeobj.use_static = USE_STATIC_NONE + +/obj/machinery/computer/camera_advanced/shuttle_creator/is_operational() + return TRUE + +/obj/machinery/computer/camera_advanced/shuttle_creator/can_interact(mob/user) + if(!isliving(user)) + return FALSE + var/mob/living/L = user + if(L.incapacitated()) + return FALSE + return TRUE + +/obj/machinery/computer/camera_advanced/shuttle_creator/GrantActions(mob/living/user) + ..(user) + eyeobj.invisibility = SEE_INVISIBLE_LIVING + if(area_action) + area_action.target = src + area_action.Grant(user) + actions += area_action + if(turf_action) + turf_action.target = src + turf_action.Grant(user) + actions += turf_action + if(clear_turf_action) + clear_turf_action.target = src + clear_turf_action.Grant(user) + actions += clear_turf_action + if(reset_action) + reset_action.target = src + reset_action.Grant(user) + actions += reset_action + if(airlock_action) + airlock_action.target = src + airlock_action.Grant(user) + actions += airlock_action + +/obj/machinery/computer/camera_advanced/shuttle_creator/remove_eye_control(mob/living/user) + . = ..() + owner_rsd.overlay_holder.remove_client() + eyeobj.invisibility = INVISIBILITY_MAXIMUM + if(user?.client) + user.client.images -= eyeobj.user_image + +/obj/machinery/computer/camera_advanced/shuttle_creator/attack_hand(mob/user) + if(!is_operational()) //you cant use broken machine you chumbis + return + if(current_user) + to_chat(user, "The console is already in use!") + return + var/mob/living/L = user + if(!can_use(user)) + return + if(!eyeobj) + CreateEye() + if(!eyeobj.eye_initialized) + var/camera_location = get_turf(owner_rsd) + if(camera_location) + eyeobj.eye_initialized = TRUE + give_eye_control(L) + eyeobj.setLoc(camera_location) + var/mob/camera/aiEye/remote/shuttle_creation/shuttle_eye = eyeobj + shuttle_eye.source_turf = get_turf(user) + else + user.unset_machine() + else + var/camera_location = get_turf(owner_rsd) + var/mob/camera/aiEye/remote/shuttle_creation/eye = eyeobj + give_eye_control(L) + if(camera_location) + eye.source_turf = camera_location + eyeobj.setLoc(camera_location) + else + eyeobj.setLoc(eyeobj.loc) diff --git a/code/modules/shuttle/shuttle_creation/shuttle_creator_eye.dm b/code/modules/shuttle/shuttle_creation/shuttle_creator_eye.dm new file mode 100644 index 0000000000..ff96e2ae65 --- /dev/null +++ b/code/modules/shuttle/shuttle_creation/shuttle_creator_eye.dm @@ -0,0 +1,54 @@ +//===============Camera Eye================ +/mob/camera/aiEye/remote/shuttle_creation + name = "shuttle holo-drone" + icon = 'icons/obj/mining.dmi' + icon_state = "construction_drone" + visible_icon = FALSE + acceleration = 0 + var/turf/source_turf + var/max_range = 12 + +/mob/camera/aiEye/remote/shuttle_creation/Initialize() + . = ..() + setLoc(get_turf(source_turf)) + +/mob/camera/aiEye/remote/shuttle_creation/update_remote_sight(mob/living/user) + user.sight = BLIND|SEE_TURFS + user.lighting_alpha = LIGHTING_PLANE_ALPHA_INVISIBLE + user.sync_lighting_plane_alpha() + return TRUE + +/mob/camera/aiEye/remote/shuttle_creation/relaymove(mob/user, direct) + dir = direct //This camera eye is visible as a drone, and needs to keep the dir updated + var/initial = initial(sprint) + var/max_sprint = 50 + + if(cooldown && cooldown < world.timeofday) // 3 seconds + sprint = initial + + for(var/i = 0; i < max(sprint, initial); i += 20) + var/turf/step = get_turf(get_step(src, direct)) + if(step && can_move_to(step)) + setLoc(step) + + cooldown = world.timeofday + 5 + if(acceleration) + sprint = min(sprint + 0.5, max_sprint) + else + sprint = initial + +/mob/camera/aiEye/remote/shuttle_creation/proc/can_move_to(var/turf/T) + var/origin_x = source_turf.x + var/origin_y = source_turf.y + var/change_X = abs(origin_x - T.x) + var/change_Y = abs(origin_y - T.y) + return (change_X < max_range && change_Y < max_range) + +/mob/camera/aiEye/remote/shuttle_creation/setLoc(T) + ..() + if(eye_user?.client) + eye_user.client.images -= user_image + var/image/I = image(icon, loc, icon_state, FLY_LAYER, dir) + I.plane = MASSIVE_OBJ_LAYER + user_image = I + eye_user.client.images += user_image diff --git a/code/modules/shuttle/shuttle_creation/shuttle_creator_overlay.dm b/code/modules/shuttle/shuttle_creation/shuttle_creator_overlay.dm new file mode 100644 index 0000000000..83c03ed33c --- /dev/null +++ b/code/modules/shuttle/shuttle_creation/shuttle_creator_overlay.dm @@ -0,0 +1,53 @@ +/* + * Manages the overlays for the shuttle creator drone. +*/ + +/datum/shuttle_creator_overlay_holder + var/client/holder + var/list/images = list() + var/list/turfs = list() + +/datum/shuttle_creator_overlay_holder/proc/add_client(client/C) + holder = C + holder.images += images + +/datum/shuttle_creator_overlay_holder/proc/remove_client() + if(holder) + holder.images -= images + holder = null + +/datum/shuttle_creator_overlay_holder/proc/clear_highlights() + if(holder) + holder.images -= images + images.Cut() + turfs.Cut() + +/datum/shuttle_creator_overlay_holder/proc/create_hightlight(turf/T) + if(T in turfs) + return + var/image/I = image('icons/turf/overlays.dmi', T, "greenOverlay") + I.plane = ABOVE_LIGHTING_PLANE + images += I + holder.images += I + turfs += T + +/datum/shuttle_creator_overlay_holder/proc/remove_hightlight(turf/T) + if(!(T in turfs)) + return + turfs -= T + holder.images -= images + for(var/image/I in images) + if(get_turf(I) != T) + continue + images -= I + holder.images += images + +/datum/shuttle_creator_overlay_holder/proc/highlight_area(list/turfs) + for(var/turf/T in turfs) + highlight_turf(T) + +/datum/shuttle_creator_overlay_holder/proc/highlight_turf(turf/T) + create_hightlight(T) + +/datum/shuttle_creator_overlay_holder/proc/unhighlight_turf(turf/T) + remove_hightlight(T) diff --git a/code/modules/shuttle/shuttle_creation/shuttle_upgrades.dm b/code/modules/shuttle/shuttle_creation/shuttle_upgrades.dm new file mode 100644 index 0000000000..6b67eec5b8 --- /dev/null +++ b/code/modules/shuttle/shuttle_creation/shuttle_upgrades.dm @@ -0,0 +1,39 @@ +/obj/item/shuttle_route_optimisation + name = "Route Optimisation Upgrade" + desc = "Used on a custom shuttle control console to calculate more efficient routes." + icon = 'icons/obj/module.dmi' + icon_state = "shuttledisk" + force = 0 + throwforce = 0 + throw_speed = 1 + throw_range = 7 + density = FALSE + anchored = FALSE + item_flags = NOBLUDGEON + var/upgrade_amount = 0.8 + +/obj/item/shuttle_route_optimisation/hyperlane + name = "Bluespace Hyperlane Calculator" + desc = "Used on a custom shuttle control console to allow for the following of bluespace hyperlanes, increasing the efficiency of the shuttle." + icon_state = "shuttledisk_better" + upgrade_amount = 0.6 + +/obj/item/shuttle_route_optimisation/void + name = "Voidspace Route Calculator" + desc = "Used on a custom shuttle control console to allow it to navigate into voidspace, making the routes almost instant." + icon_state = "shuttledisk_void" + upgrade_amount = 0.2 + +/obj/item/shuttle_route_optimisation/attack_obj(obj/O, mob/living/user) + . = ..() + if(!istype(O, /obj/machinery/computer)) + return + if(!istype(O, /obj/machinery/computer/custom_shuttle)) + to_chat(user, "This upgrade only works on a custom shuttle flight console.") + return + if (!user.transferItemToLoc(src, get_turf(O))) + return + var/obj/machinery/computer/custom_shuttle/link_comp = O + link_comp.distance_multiplier = clamp(link_comp.distance_multiplier, 0, upgrade_amount) + playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0) + to_chat(usr, "You insert the disk into the flight computer, allowing for routes to be [upgrade_amount]x the original distance.") diff --git a/code/modules/shuttle/snaxi.dm b/code/modules/shuttle/snaxi.dm new file mode 100644 index 0000000000..477d61753c --- /dev/null +++ b/code/modules/shuttle/snaxi.dm @@ -0,0 +1,7 @@ +/obj/machinery/computer/shuttle/snow_taxi + name = "snow taxi console" + desc = "Used to direct the snow taxi." + circuit = /obj/item/circuitboard/computer/snow_taxi + shuttleId = "snow_taxi" + possible_destinations = "snaxi_nw;snaxi_ne;snaxi_s" + no_destination_swap = TRUE diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index a4ef2dfde9..7af0315934 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -101,6 +101,10 @@ GLOBAL_LIST_INIT(cargo_shuttle_leave_behind_typecache, typecacheof(list( if(!SSshuttle.shoppinglist.len) return + var/list/obj/miscboxes = list() //miscboxes are combo boxes that contain all goody orders grouped + var/list/misc_order_num = list() //list of strings of order numbers, so that the manifest can show all orders in a box + var/list/misc_contents = list() //list of lists of items that each box will contain + var/list/empty_turfs = list() for(var/place in shuttle_areas) var/area/shuttle/shuttle_area = place @@ -117,10 +121,13 @@ GLOBAL_LIST_INIT(cargo_shuttle_leave_behind_typecache, typecacheof(list( break var/price = SO.pack.cost + if(SO.applied_coupon) + price *= (1 - SO.applied_coupon.discount_pct_off) var/datum/bank_account/D if(SO.paying_account) //Someone paid out of pocket D = SO.paying_account - price *= 1.1 //TODO make this customizable by the quartermaster + if(!SO.pack.goody) + price *= 1.1 //TODO make this customizable by the quartermaster else D = cargo_budget if(D) @@ -136,14 +143,46 @@ GLOBAL_LIST_INIT(cargo_shuttle_leave_behind_typecache, typecacheof(list( value += SO.pack.cost SSshuttle.shoppinglist -= SO SSshuttle.orderhistory += SO + QDEL_NULL(SO.applied_coupon) + + if(SO.pack.goody) //goody means it gets piled in the miscbox + if(SO.paying_account) + if(!miscboxes.len || !miscboxes[D.account_holder]) //if there's no miscbox for this person + miscboxes[D.account_holder] = new /obj/item/storage/lockbox/order(pick_n_take(empty_turfs)) + var/obj/item/storage/lockbox/order/our_box = miscboxes[D.account_holder] + our_box.buyer_account = SO.paying_account + miscboxes[D.account_holder].name = "small items case - purchased by [D.account_holder]" + misc_contents[D.account_holder] = list() + for (var/item in SO.pack.contains) + misc_contents[D.account_holder] += item + misc_order_num[D.account_holder] = "[misc_order_num[D.account_holder]]#[SO.id] " + else //No private payment, so we just stuff it all into a generic crate + if(!miscboxes.len || !miscboxes["Cargo"]) + miscboxes["Cargo"] = new /obj/structure/closet/secure_closet/goodies(pick_n_take(empty_turfs)) + miscboxes["Cargo"].name = "small items closet" + misc_contents["Cargo"] = list() + miscboxes["Cargo"].req_access = list() + for (var/item in SO.pack.contains) + misc_contents["Cargo"] += item + //new item(miscboxes["Cargo"]) + if(SO.pack.access) + miscboxes["Cargo"].req_access += SO.pack.access + misc_order_num["Cargo"] = "[misc_order_num["Cargo"]]#[SO.id] " + else + SO.generate(pick_n_take(empty_turfs)) - SO.generate(pick_n_take(empty_turfs)) SSblackbox.record_feedback("nested tally", "cargo_imports", 1, list("[SO.pack.cost]", "[SO.pack.name]")) investigate_log("Order #[SO.id] ([SO.pack.name], placed by [key_name(SO.orderer_ckey)]), paid by [D.account_holder] has shipped.", INVESTIGATE_CARGO) if(SO.pack.dangerous) message_admins("\A [SO.pack.name] ordered by [ADMIN_LOOKUPFLW(SO.orderer_ckey)], paid by [D.account_holder] has shipped.") purchases++ + for(var/I in miscboxes) + var/datum/supply_order/SO = new/datum/supply_order() + SO.id = misc_order_num[I] + SO.generateCombo(miscboxes[I], I, misc_contents[I]) + qdel(SO) + investigate_log("[purchases] orders in this shipment, worth [value] credits. [cargo_budget.account_balance] credits left.", INVESTIGATE_CARGO) /obj/docking_port/mobile/supply/proc/sell() diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index 143fe508b6..21552f7e87 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -120,7 +120,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th var/list/mobs_blacklist //The opposite of the above. var/stat_allowed = 0 //see if it requires being conscious/alive, need to set to 1 for ghostpells var/phase_allowed = 0 // If true, the spell can be cast while phased, eg. blood crawling, ethereal jaunting - var/antimagic_allowed = TRUE // If false, the spell cannot be cast while under the effect of antimagic + var/antimagic_allowed = FALSE // If false, the spell cannot be cast while under the effect of antimagic var/invocation = "HURP DURP" //what is uttered when the wizard casts the spell var/invocation_emote_self = null var/invocation_type = "none" //can be none, whisper, emote and shout diff --git a/code/modules/spells/spell_types/aimed.dm b/code/modules/spells/spell_types/aimed.dm index 1a904b1076..8fab4a221d 100644 --- a/code/modules/spells/spell_types/aimed.dm +++ b/code/modules/spells/spell_types/aimed.dm @@ -101,7 +101,7 @@ base_icon_state = "lightning" sound = 'sound/magic/lightningbolt.ogg' active = FALSE - projectile_var_overrides = list("tesla_range" = 15, "tesla_power" = 20000, "tesla_flags" = TESLA_MOB_DAMAGE) + projectile_var_overrides = list("zap_range" = 15, "zap_power" = 20000, "zap_flags" = ZAP_MOB_DAMAGE) active_msg = "You energize your hand with arcane lightning!" deactive_msg = "You let the energy flow out of your hands back into yourself..." projectile_type = /obj/item/projectile/magic/aoe/lightning diff --git a/code/modules/spells/spell_types/curse.dm b/code/modules/spells/spell_types/curse.dm new file mode 100644 index 0000000000..9449e4a5d0 --- /dev/null +++ b/code/modules/spells/spell_types/curse.dm @@ -0,0 +1,37 @@ +GLOBAL_VAR_INIT(curse_of_madness_triggered, FALSE) + +/proc/curse_of_madness(mob/user, message) + if(user) //in this case either someone holding a spellbook or a badmin + to_chat(user, "You sent a curse of madness with the message \"[message]\"!") + message_admins("[ADMIN_LOOKUPFLW(user)] sent a curse of madness with the message \"[message]\"!") + log_game("[key_name(user)] sent a curse of madness with the message \"[message]\"!") + + GLOB.curse_of_madness_triggered = message // So latejoiners are also afflicted. + + deadchat_broadcast("A Curse of Madness has stricken the station, shattering their minds with the awful secret: \"[message]\"") + + for(var/mob/living/carbon/human/H in GLOB.player_list) + if(H.stat == DEAD) + continue + var/turf/T = get_turf(H) + if(T && !is_station_level(T.z)) + continue + if(H.anti_magic_check(TRUE, FALSE, TRUE)) + to_chat(H, "You have a strange feeling for a moment, but then it passes.") + continue + give_madness(H, message) + +/proc/give_madness(mob/living/carbon/human/H, message) + H.playsound_local(H,'sound/magic/curse.ogg',40,1) + to_chat(H, "[message]") + to_chat(H, "Your mind shatters!") + switch(rand(1,10)) + if(1 to 3) + H.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_LOBOTOMY) + H.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_LOBOTOMY) + if(4 to 6) + H.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_LOBOTOMY) + if(7 to 8) + H.gain_trauma_type(BRAIN_TRAUMA_MAGIC, TRAUMA_RESILIENCE_LOBOTOMY) + if(9 to 10) + H.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_LOBOTOMY) diff --git a/code/modules/spells/spell_types/devil.dm b/code/modules/spells/spell_types/devil.dm index 34b033fd17..3b76107905 100644 --- a/code/modules/spells/spell_types/devil.dm +++ b/code/modules/spells/spell_types/devil.dm @@ -5,7 +5,7 @@ include_user = 1 range = -1 clothes_req = NONE - item_type = /obj/item/twohanded/pitchfork/demonic + item_type = /obj/item/pitchfork/demonic school = "conjuration" charge_max = 150 @@ -15,10 +15,10 @@ action_background_icon_state = "bg_demon" /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/greater - item_type = /obj/item/twohanded/pitchfork/demonic/greater + item_type = /obj/item/pitchfork/demonic/greater /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/ascended - item_type = /obj/item/twohanded/pitchfork/demonic/ascended + item_type = /obj/item/pitchfork/demonic/ascended /obj/effect/proc_holder/spell/targeted/conjure_item/violin item_type = /obj/item/instrument/violin/golden @@ -118,14 +118,14 @@ revert_cast() return ..() else - user.notransform = TRUE + user.mob_transforming = TRUE user.fakefire() to_chat(src, "You begin to phase back into sinful flames.") if(do_mob(user,user,150)) user.infernalphaseout() else to_chat(user, "You must remain still while exiting.") - user.notransform = FALSE + user.mob_transforming = FALSE user.fakefireextinguish() start_recharge() return @@ -149,11 +149,11 @@ ExtinguishMob() forceMove(holder) holder = holder - notransform = 0 + mob_transforming = 0 fakefireextinguish() /mob/living/proc/infernalphasein() - if(notransform) + if(mob_transforming) to_chat(src, "You're too busy to jaunt in.") return FALSE fakefire() diff --git a/code/modules/spells/spell_types/ethereal_jaunt.dm b/code/modules/spells/spell_types/ethereal_jaunt.dm index f485ae578f..8cf51d45c6 100644 --- a/code/modules/spells/spell_types/ethereal_jaunt.dm +++ b/code/modules/spells/spell_types/ethereal_jaunt.dm @@ -22,14 +22,14 @@ INVOKE_ASYNC(src, .proc/do_jaunt, target) /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/proc/do_jaunt(mob/living/target) - target.notransform = 1 + target.mob_transforming = 1 var/turf/mobloc = get_turf(target) var/obj/effect/dummy/phased_mob/spell_jaunt/holder = new /obj/effect/dummy/phased_mob/spell_jaunt(mobloc) new jaunt_out_type(mobloc, target.dir) target.ExtinguishMob() target.forceMove(holder) target.reset_perspective(holder) - target.notransform=0 //mob is safely inside holder now, no need for protection. + target.mob_transforming=0 //mob is safely inside holder now, no need for protection. jaunt_steam(mobloc) sleep(jaunt_duration) @@ -102,4 +102,4 @@ return /obj/effect/dummy/phased_mob/spell_jaunt/bullet_act(blah) - return BULLET_ACT_FORCE_PIERCE \ No newline at end of file + return BULLET_ACT_FORCE_PIERCE diff --git a/code/modules/spells/spell_types/mime.dm b/code/modules/spells/spell_types/mime.dm index 8f39da5031..26a6b57b25 100644 --- a/code/modules/spells/spell_types/mime.dm +++ b/code/modules/spells/spell_types/mime.dm @@ -12,6 +12,7 @@ range = 0 cast_sound = null mobs_whitelist = list(/mob/living/carbon/human) + antimagic_allowed = TRUE action_icon_state = "mime" action_background_icon_state = "bg_mime" @@ -40,6 +41,7 @@ action_icon_state = "mime" action_background_icon_state = "bg_mime" + antimagic_allowed = TRUE /obj/effect/proc_holder/spell/targeted/mime/speak/Trigger(mob/user, skip_can_cast = TRUE) if(user.mind?.miming) @@ -76,6 +78,7 @@ action_icon_state = "mime" action_background_icon_state = "bg_mime" + antimagic_allowed = TRUE /obj/effect/proc_holder/spell/targeted/forcewall/mime/Trigger(mob/user, skip_can_cast = TRUE) if(user.mind) @@ -107,6 +110,7 @@ action_icon_state = "mime" action_background_icon_state = "bg_mime" base_icon_state = "mime" + antimagic_allowed = TRUE /obj/effect/proc_holder/spell/aimed/finger_guns/Trigger(mob/user, skip_can_cast = TRUE) @@ -137,6 +141,7 @@ action_icon_state = "mime" action_background_icon_state = "bg_mime" hand_path = /obj/item/melee/touch_attack/mimerope + antimagic_allowed = TRUE /obj/effect/proc_holder/spell/targeted/touch/mimerope/Trigger(mob/user, skip_can_cast = TRUE) if(user.mind) diff --git a/code/modules/spells/spell_types/rod_form.dm b/code/modules/spells/spell_types/rod_form.dm index 7a96d0ac55..6b974608d6 100644 --- a/code/modules/spells/spell_types/rod_form.dm +++ b/code/modules/spells/spell_types/rod_form.dm @@ -18,7 +18,7 @@ W.damage_bonus += spell_level * 20 //You do more damage when you upgrade the spell W.start_turf = start M.forceMove(W) - M.notransform = 1 + M.mob_transforming = 1 M.status_flags |= GODMODE //Wizard Version of the Immovable Rod @@ -37,7 +37,7 @@ /obj/effect/immovablerod/wizard/Destroy() if(wizard) wizard.status_flags &= ~GODMODE - wizard.notransform = 0 + wizard.mob_transforming = 0 wizard.forceMove(get_turf(src)) return ..() diff --git a/code/modules/spells/spell_types/santa.dm b/code/modules/spells/spell_types/santa.dm index 64ed925455..4f6957433b 100644 --- a/code/modules/spells/spell_types/santa.dm +++ b/code/modules/spells/spell_types/santa.dm @@ -13,3 +13,4 @@ summon_type = list("/obj/item/a_gift") summon_lifespan = 0 summon_amt = 5 + antimagic_allowed = TRUE diff --git a/code/modules/spells/spell_types/shadow_walk.dm b/code/modules/spells/spell_types/shadow_walk.dm index 83996b5bfb..1dd949caa0 100644 --- a/code/modules/spells/spell_types/shadow_walk.dm +++ b/code/modules/spells/spell_types/shadow_walk.dm @@ -12,6 +12,7 @@ action_icon = 'icons/mob/actions/actions_minor_antag.dmi' action_icon_state = "ninja_cloak" action_background_icon_state = "bg_alien" + antimagic_allowed = TRUE /obj/effect/proc_holder/spell/targeted/shadowwalk/cast(list/targets,mob/living/user = usr) var/L = user.loc diff --git a/code/modules/spells/spell_types/shapeshift.dm b/code/modules/spells/spell_types/shapeshift.dm index c6966ccee9..a8f9c8bce5 100644 --- a/code/modules/spells/spell_types/shapeshift.dm +++ b/code/modules/spells/spell_types/shapeshift.dm @@ -100,7 +100,7 @@ if(stored.mind) stored.mind.transfer_to(shape) stored.forceMove(src) - stored.notransform = TRUE + stored.mob_transforming = TRUE if(source.convert_damage) var/damage_percent = (stored.maxHealth - stored.health)/stored.maxHealth; var/damapply = damage_percent * shape.maxHealth; @@ -148,7 +148,7 @@ restoring = TRUE qdel(slink) stored.forceMove(get_turf(src)) - stored.notransform = FALSE + stored.mob_transforming = FALSE if(shape.mind) shape.mind.transfer_to(stored) if(death) diff --git a/code/modules/spells/spell_types/summonitem.dm b/code/modules/spells/spell_types/summonitem.dm index 94de75faac..2f3ed64655 100644 --- a/code/modules/spells/spell_types/summonitem.dm +++ b/code/modules/spells/spell_types/summonitem.dm @@ -76,20 +76,6 @@ break M.dropItemToGround(item_to_retrieve) - if(iscarbon(M)) //Edge case housekeeping - var/mob/living/carbon/C = M - if(C.stomach_contents && (item_to_retrieve in C.stomach_contents)) - C.stomach_contents -= item_to_retrieve - for(var/X in C.bodyparts) - var/obj/item/bodypart/part = X - if(item_to_retrieve in part.embedded_objects) - part.embedded_objects -= item_to_retrieve - to_chat(C, "The [item_to_retrieve] that was embedded in your [L] has mysteriously vanished. How fortunate!") - if(!C.has_embedded_objects()) - C.clear_alert("embeddedobject") - SEND_SIGNAL(C, COMSIG_CLEAR_MOOD_EVENT, "embedded") - break - else if(istype(item_to_retrieve.loc, /obj/machinery/portable_atmospherics/)) //Edge cases for moved machinery var/obj/machinery/portable_atmospherics/P = item_to_retrieve.loc diff --git a/code/modules/spells/spell_types/taeclowndo.dm b/code/modules/spells/spell_types/taeclowndo.dm index 5b1e09565b..59826daf07 100644 --- a/code/modules/spells/spell_types/taeclowndo.dm +++ b/code/modules/spells/spell_types/taeclowndo.dm @@ -10,6 +10,7 @@ cooldown_min = 30 action_icon = 'icons/obj/food/piecake.dmi' action_icon_state = "pie" + antimagic_allowed = TRUE ////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -24,6 +25,7 @@ range = 7 selection_type = "view" projectile_type = null + antimagic_allowed = TRUE active_msg = "You focus, your mind reaching to the clown dimension, ready to make a peel matrialize wherever you want!" deactive_msg = "You relax, the peel remaining right in the \"thin air\" it would appear out of." @@ -62,6 +64,7 @@ charge_max = 100 clothes_req = NONE cooldown_min = 100 + antimagic_allowed = TRUE action_icon = 'icons/mecha/mecha_equipment.dmi' action_icon_state = "mecha_honker" @@ -76,6 +79,7 @@ charge_max = 450 clothes_req = NONE cooldown_min = 450 + antimagic_allowed = TRUE action_icon = 'icons/obj/food/piecake.dmi' action_icon_state = "frostypie" diff --git a/code/modules/spells/spell_types/telepathy.dm b/code/modules/spells/spell_types/telepathy.dm index 4b4f91eb18..caf9ec79c6 100644 --- a/code/modules/spells/spell_types/telepathy.dm +++ b/code/modules/spells/spell_types/telepathy.dm @@ -8,6 +8,7 @@ action_icon = 'icons/mob/actions/actions_revenant.dmi' action_icon_state = "r_transmit" action_background_icon_state = "bg_spell" + antimagic_allowed = TRUE var/notice = "notice" var/boldnotice = "boldnotice" var/magic_check = FALSE diff --git a/code/modules/spells/spell_types/voice_of_god.dm b/code/modules/spells/spell_types/voice_of_god.dm index 495681a818..a920344adc 100644 --- a/code/modules/spells/spell_types/voice_of_god.dm +++ b/code/modules/spells/spell_types/voice_of_god.dm @@ -5,6 +5,7 @@ cooldown_min = 0 level_max = 1 clothes_req = NONE + antimagic_allowed = TRUE action_icon = 'icons/mob/actions/actions_items.dmi' action_icon_state = "voice_of_god" var/command diff --git a/code/modules/spells/spell_types/wizard.dm b/code/modules/spells/spell_types/wizard.dm index e9432e2f58..b104c2182a 100644 --- a/code/modules/spells/spell_types/wizard.dm +++ b/code/modules/spells/spell_types/wizard.dm @@ -306,6 +306,7 @@ sound = 'sound/magic/tail_swing.ogg' charge_max = 150 clothes_req = NONE + antimagic_allowed = TRUE range = 2 cooldown_min = 150 invocation_type = "none" diff --git a/code/modules/surgery/advanced/bioware/nerve_grounding.dm b/code/modules/surgery/advanced/bioware/nerve_grounding.dm index 99902ff6d6..eb70a838a4 100644 --- a/code/modules/surgery/advanced/bioware/nerve_grounding.dm +++ b/code/modules/surgery/advanced/bioware/nerve_grounding.dm @@ -32,13 +32,11 @@ name = "Grounded Nerves" desc = "Nerves form a safe path for electricity to traverse, protecting the body from electric shocks." mod_type = BIOWARE_NERVES - var/prev_coeff /datum/bioware/grounded_nerves/on_gain() ..() - prev_coeff = owner.physiology.siemens_coeff - owner.physiology.siemens_coeff = 0 + ADD_TRAIT(owner, TRAIT_SHOCKIMMUNE, "grounded_nerves") /datum/bioware/grounded_nerves/on_lose() ..() - owner.physiology.siemens_coeff = prev_coeff + REMOVE_TRAIT(owner, TRAIT_SHOCKIMMUNE, "grounded_nerves") diff --git a/code/modules/surgery/advanced/lobotomy.dm b/code/modules/surgery/advanced/lobotomy.dm index 2b2d11e54f..4a52e446bc 100644 --- a/code/modules/surgery/advanced/lobotomy.dm +++ b/code/modules/surgery/advanced/lobotomy.dm @@ -1,6 +1,6 @@ /datum/surgery/advanced/lobotomy name = "Lobotomy" - desc = "An invasive surgical procedure which guarantees removal of almost all brain traumas, but might cause another permanent trauma in return." + desc = "An invasive surgical procedure which guarantees removal of almost all brain traumas, at the cost of severe, albeit repairable, brain damage." steps = list( /datum/surgery_step/incise, /datum/surgery_step/retract_skin, @@ -43,11 +43,14 @@ target.mind.remove_antag_datum(/datum/antagonist/brainwashed) switch(rand(1,6))//Now let's see what hopefully-not-important part of the brain we cut off if(1) - target.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_MAGIC) + target.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_SURGERY) if(2) - target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_MAGIC) + target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_SURGERY) if(3) - target.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_MAGIC) + target.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_SURGERY) + // you're cutting off a part of the brain.w + var/obj/item/organ/brain/B = target.getorganslot(ORGAN_SLOT_BRAIN) + B.applyOrganDamage(50, 100) return TRUE /datum/surgery_step/lobotomize/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) @@ -59,11 +62,11 @@ B.applyOrganDamage(80) switch(rand(1,3)) if(1) - target.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_MAGIC) + target.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_LOBOTOMY) if(2) - target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_MAGIC) + target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_LOBOTOMY) if(3) - target.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_MAGIC) + target.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_LOBOTOMY) else user.visible_message("[user] suddenly notices that the brain [user.p_they()] [user.p_were()] working on is not there anymore.", "You suddenly notice that the brain you were working on is not there anymore.") return FALSE diff --git a/code/modules/surgery/advanced/revival.dm b/code/modules/surgery/advanced/revival.dm index e9f8ff4446..dd36af9b32 100644 --- a/code/modules/surgery/advanced/revival.dm +++ b/code/modules/surgery/advanced/revival.dm @@ -25,18 +25,18 @@ return TRUE /datum/surgery_step/revive name = "electrically stimulate brain" - implements = list(/obj/item/twohanded/shockpaddles = 100, /obj/item/abductor/gizmo = 100, /obj/item/melee/baton = 75, /obj/item/organ/cyberimp/arm/baton = 75, /obj/item/organ/cyberimp/arm/gun/taser = 60, /obj/item/gun/energy/e_gun/advtaser = 60, /obj/item/gun/energy/taser = 60) + implements = list(/obj/item/shockpaddles = 100, /obj/item/abductor/gizmo = 100, /obj/item/melee/baton = 75, /obj/item/organ/cyberimp/arm/baton = 75, /obj/item/organ/cyberimp/arm/gun/taser = 60, /obj/item/gun/energy/e_gun/advtaser = 60, /obj/item/gun/energy/taser = 60) time = 120 /datum/surgery_step/revive/tool_check(mob/user, obj/item/tool) . = TRUE - if(istype(tool, /obj/item/twohanded/shockpaddles)) - var/obj/item/twohanded/shockpaddles/S = tool + if(istype(tool, /obj/item/shockpaddles)) + var/obj/item/shockpaddles/S = tool if((S.req_defib && !S.defib.powered) || !S.wielded || S.cooldown || S.busy) to_chat(user, "You need to wield both paddles, and [S.defib] must be powered!") return FALSE if(istype(tool, /obj/item/melee/baton)) var/obj/item/melee/baton/B = tool - if(!B.status) + if(!B.turned_on) to_chat(user, "[B] needs to be active!") return FALSE if(istype(tool, /obj/item/gun/energy)) diff --git a/code/modules/surgery/amputation.dm b/code/modules/surgery/amputation.dm index 5c77532188..e00ff66ee7 100644 --- a/code/modules/surgery/amputation.dm +++ b/code/modules/surgery/amputation.dm @@ -6,7 +6,7 @@ requires_bodypart_type = 0 /datum/surgery_step/sever_limb name = "sever limb" - implements = list(TOOL_SCALPEL = 100, TOOL_SAW = 100, /obj/item/melee/transforming/energy/sword/cyborg/saw = 100, /obj/item/melee/arm_blade = 80, /obj/item/twohanded/required/chainsaw = 80, /obj/item/mounted_chainsaw = 80, /obj/item/twohanded/fireaxe = 50, /obj/item/hatchet = 40, /obj/item/kitchen/knife/butcher = 25) + implements = list(TOOL_SCALPEL = 100, TOOL_SAW = 100, /obj/item/melee/transforming/energy/sword/cyborg/saw = 100, /obj/item/melee/arm_blade = 80, /obj/item/chainsaw = 80, /obj/item/mounted_chainsaw = 80, /obj/item/fireaxe = 50, /obj/item/hatchet = 40, /obj/item/kitchen/knife/butcher = 25) time = 64 /datum/surgery_step/sever_limb/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index dd31145491..fcdb07ca17 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -285,7 +285,7 @@ if(status == BODYPART_ORGANIC) icon = base_bp_icon || DEFAULT_BODYPART_ICON_ORGANIC else if(status == BODYPART_ROBOTIC) - icon = base_bp_icon || DEFAULT_BODYPART_ICON_ROBOTIC + icon = DEFAULT_BODYPART_ICON_ROBOTIC if(owner) owner.updatehealth() @@ -651,7 +651,7 @@ held_index = 1 px_x = -6 px_y = 0 - stam_heal_tick = 4 + stam_heal_tick = STAM_RECOVERY_LIMB /obj/item/bodypart/l_arm/is_disabled() if(HAS_TRAIT(owner, TRAIT_PARALYSIS_L_ARM)) @@ -711,7 +711,7 @@ held_index = 2 px_x = 6 px_y = 0 - stam_heal_tick = 4 + stam_heal_tick = STAM_RECOVERY_LIMB max_stamina_damage = 50 /obj/item/bodypart/r_arm/is_disabled() @@ -771,7 +771,7 @@ body_damage_coeff = 0.75 px_x = -2 px_y = 12 - stam_heal_tick = 4 + stam_heal_tick = STAM_RECOVERY_LIMB max_stamina_damage = 50 /obj/item/bodypart/l_leg/is_disabled() @@ -830,7 +830,7 @@ px_x = 2 px_y = 12 max_stamina_damage = 50 - stam_heal_tick = 4 + stam_heal_tick = STAM_RECOVERY_LIMB /obj/item/bodypart/r_leg/is_disabled() if(HAS_TRAIT(owner, TRAIT_PARALYSIS_R_LEG)) diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index d9e7012214..f654270df7 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -14,7 +14,6 @@ return FALSE if(HAS_TRAIT(C, TRAIT_NODISMEMBER)) return FALSE - var/obj/item/bodypart/affecting = C.get_bodypart(BODY_ZONE_CHEST) affecting.receive_damage(clamp(brute_dam/2 * affecting.body_damage_coeff, 15, 50), clamp(burn_dam/2 * affecting.body_damage_coeff, 0, 50)) //Damage the chest based on limb's existing damage C.visible_message("[C]'s [src.name] has been violently dismembered!") @@ -44,6 +43,10 @@ throw_at(target_turf, throw_range, throw_speed) return TRUE +/obj/item/bodypart/head/dismember() + if(HAS_TRAIT(owner, TRAIT_NODECAP)) + return FALSE + ..() /obj/item/bodypart/chest/dismember() if(!owner) @@ -53,6 +56,8 @@ return FALSE if(HAS_TRAIT(C, TRAIT_NODISMEMBER)) return FALSE + if(HAS_TRAIT(C, TRAIT_NOGUT)) //Just for not allowing gutting + return FALSE . = list() var/organ_spilled = 0 var/turf/T = get_turf(C) diff --git a/code/modules/surgery/bodyparts/helpers.dm b/code/modules/surgery/bodyparts/helpers.dm index a1f1bd7daf..29aca7166f 100644 --- a/code/modules/surgery/bodyparts/helpers.dm +++ b/code/modules/surgery/bodyparts/helpers.dm @@ -152,26 +152,24 @@ disabled += zone return disabled -//Remove all embedded objects from all limbs on the carbon mob +///Remove a specific embedded item from the carbon mob +/mob/living/carbon/proc/remove_embedded_object(obj/item/I) + SEND_SIGNAL(src, COMSIG_CARBON_EMBED_REMOVAL, I) + +///Remove all embedded objects from all limbs on the carbon mob /mob/living/carbon/proc/remove_all_embedded_objects() - var/turf/T = get_turf(src) - for(var/X in bodyparts) var/obj/item/bodypart/L = X for(var/obj/item/I in L.embedded_objects) - L.embedded_objects -= I - I.forceMove(T) - I.unembedded() + remove_embedded_object(I) - clear_alert("embeddedobject") - SEND_SIGNAL(src, COMSIG_CLEAR_MOOD_EVENT, "embedded") - -/mob/living/carbon/proc/has_embedded_objects() - . = 0 +/mob/living/carbon/proc/has_embedded_objects(include_harmless=FALSE) for(var/X in bodyparts) var/obj/item/bodypart/L = X for(var/obj/item/I in L.embedded_objects) - return 1 + if(!include_harmless && I.isEmbedHarmless()) + continue + return TRUE //Helper for quickly creating a new limb - used by augment code in species.dm spec_attacked_by diff --git a/code/modules/surgery/emergency_cardioversion_recovery.dm b/code/modules/surgery/emergency_cardioversion_recovery.dm index 5646c43f00..5df90c5e80 100644 --- a/code/modules/surgery/emergency_cardioversion_recovery.dm +++ b/code/modules/surgery/emergency_cardioversion_recovery.dm @@ -6,13 +6,13 @@ /datum/surgery_step/ventricular_electrotherapy name = "ventricular electrotherapy" - implements = list(/obj/item/twohanded/shockpaddles = 90, /obj/item/defibrillator = 75, /obj/item/inducer = 55, /obj/item/stock_parts/cell = 25) //Just because the idea of a new player using the whole magine to defib is hillarious to me + implements = list(/obj/item/shockpaddles = 90, /obj/item/defibrillator = 75, /obj/item/inducer = 55, /obj/item/stock_parts/cell = 25) //Just because the idea of a new player using the whole magine to defib is hillarious to me time = 50 repeatable = TRUE //So you can retry /datum/surgery_step/ventricular_electrotherapy/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - if(istype(tool, /obj/item/twohanded/shockpaddles)) - var/obj/item/twohanded/shockpaddles/pads = tool + if(istype(tool, /obj/item/shockpaddles)) + var/obj/item/shockpaddles/pads = tool if(!pads.wielded) to_chat(user, "You need to wield the paddles in both hands before you can use them!") return FALSE @@ -23,8 +23,8 @@ playsound(src, 'sound/machines/defib_charge.ogg', 75, 0) /datum/surgery_step/ventricular_electrotherapy/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - if(istype(tool, /obj/item/twohanded/shockpaddles)) - var/obj/item/twohanded/shockpaddles/pads = tool + if(istype(tool, /obj/item/shockpaddles)) + var/obj/item/shockpaddles/pads = tool if(!pads.wielded) return FALSE var/mob/living/carbon/human/H = target @@ -52,7 +52,7 @@ H.adjustOrganLoss(ORGAN_SLOT_BRAIN, -5) H.electrocute_act(0, (tool), 1, SHOCK_ILLUSION) //If we're using a defib, let the defib handle the revive. - if(istype(tool, /obj/item/twohanded/shockpaddles)) + if(istype(tool, /obj/item/shockpaddles)) return //Otherwise, we're ad hocing it if(!(do_after(user, 50, target = target))) diff --git a/code/modules/surgery/organ_manipulation.dm b/code/modules/surgery/organ_manipulation.dm index f493137424..4ce51ae119 100644 --- a/code/modules/surgery/organ_manipulation.dm +++ b/code/modules/surgery/organ_manipulation.dm @@ -61,7 +61,7 @@ time = 64 name = "manipulate organs" repeatable = 1 - implements = list(/obj/item/organ = 100, /obj/item/reagent_containers/food/snacks/organ = 0, /obj/item/organ_storage = 100) + implements = list(/obj/item/organ = 100, /obj/item/organ_storage = 100) var/implements_extract = list(TOOL_HEMOSTAT = 100, TOOL_CROWBAR = 55) var/current_type var/obj/item/organ/I = null @@ -85,6 +85,10 @@ if(target_zone != I.zone || target.getorganslot(I.slot)) to_chat(user, "There is no room for [I] in [target]'s [parse_zone(target_zone)]!") return -1 + var/obj/item/organ/meatslab = tool + if(!meatslab.useable) + to_chat(user, "[I] seems to have been chewed on, you can't use this!") + return -1 display_results(user, target, "You begin to insert [tool] into [target]'s [parse_zone(target_zone)]...", "[user] begins to insert [tool] into [target]'s [parse_zone(target_zone)].", "[user] begins to insert something into [target]'s [parse_zone(target_zone)].") @@ -111,9 +115,6 @@ else return -1 - else if(istype(tool, /obj/item/reagent_containers/food/snacks/organ)) - to_chat(user, "[tool] was bitten by someone! It's too damaged to use!") - return -1 /datum/surgery_step/manipulate_organs/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) if(current_type == "insert") if(istype(tool, /obj/item/organ_storage)) diff --git a/code/modules/surgery/organic_steps.dm b/code/modules/surgery/organic_steps.dm index 3b05873a0a..0b38ecc2fe 100644 --- a/code/modules/surgery/organic_steps.dm +++ b/code/modules/surgery/organic_steps.dm @@ -91,7 +91,7 @@ //saw bone /datum/surgery_step/saw name = "saw bone" - implements = list(TOOL_SAW = 100, /obj/item/melee/arm_blade = 75, /obj/item/twohanded/fireaxe = 50, /obj/item/hatchet = 35, /obj/item/kitchen/knife/butcher = 25) + implements = list(TOOL_SAW = 100, /obj/item/melee/arm_blade = 75, /obj/item/fireaxe = 50, /obj/item/hatchet = 35, /obj/item/kitchen/knife/butcher = 25) time = 54 /datum/surgery_step/saw/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) diff --git a/code/modules/surgery/organs/appendix.dm b/code/modules/surgery/organs/appendix.dm index c737e8bc30..782991d79c 100644 --- a/code/modules/surgery/organs/appendix.dm +++ b/code/modules/surgery/organs/appendix.dm @@ -37,9 +37,3 @@ ..() if(inflamed) M.ForceContractDisease(new /datum/disease/appendicitis(), FALSE, TRUE) - -/obj/item/organ/appendix/prepare_eat() - var/obj/S = ..() - if(inflamed) - S.reagents.add_reagent(/datum/reagent/toxin/bad_food, 5) - return S diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index b7dfa3eb88..b42770723b 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -132,6 +132,7 @@ "You extend [holder] from your [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm.", "You hear a short mechanical noise.") playsound(get_turf(owner), 'sound/mecha/mechmove03.ogg', 50, 1) + return TRUE /obj/item/organ/cyberimp/arm/ui_action_click() if(crit_fail || (organ_flags & ORGAN_FAILING) || (!holder && !contents.len)) @@ -273,12 +274,29 @@ desc = "A deployable riot shield to help deal with civil unrest." contents = newlist(/obj/item/shield/riot/implant) -/obj/item/organ/cyberimp/arm/shield/Extend(obj/item/I) +/obj/item/organ/cyberimp/arm/shield/Extend(obj/item/I, silent = FALSE) if(I.obj_integrity == 0) //that's how the shield recharge works - to_chat(owner, "[I] is still too unstable to extend. Give it some time!") + if(!silent) + to_chat(owner, "[I] is still too unstable to extend. Give it some time!") return FALSE return ..() +/obj/item/organ/cyberimp/arm/shield/Insert(mob/living/carbon/M, special = FALSE, drop_if_replaced = TRUE) + . = ..() + if(.) + RegisterSignal(M, COMSIG_LIVING_ACTIVE_BLOCK_START, .proc/on_signal) + +/obj/item/organ/cyberimp/arm/shield/Remove(special = FALSE) + UnregisterSignal(owner, COMSIG_LIVING_ACTIVE_BLOCK_START) + return ..() + +/obj/item/organ/cyberimp/arm/shield/proc/on_signal(datum/source, obj/item/blocking_item, list/other_items) + if(!blocking_item) //if they don't have something + var/obj/item/shield/S = locate() in contents + if(!Extend(S, TRUE)) + return + other_items += S + /obj/item/organ/cyberimp/arm/shield/emag_act() . = ..() if(obj_flags & EMAGGED) diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index 465c10c4cd..e251abfd35 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -61,10 +61,10 @@ return "a healthy" return "an unstable" -/obj/item/organ/heart/prepare_eat() - var/obj/S = ..() - S.icon_state = "[icon_base]-off" - return S +/obj/item/organ/heart/OnEatFrom(eater, feeder) + . = ..() + beating = FALSE + update_icon() /obj/item/organ/heart/on_life() . = ..() diff --git a/code/modules/surgery/organs/liver.dm b/code/modules/surgery/organs/liver.dm index b24034ca4a..2465b63800 100755 --- a/code/modules/surgery/organs/liver.dm +++ b/code/modules/surgery/organs/liver.dm @@ -23,6 +23,7 @@ var/toxLethality = LIVER_DEFAULT_TOX_LETHALITY//affects how much damage toxins do to the liver var/filterToxins = TRUE //whether to filter toxins var/cachedmoveCalc = 1 + food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/iron = 5) /obj/item/organ/liver/on_life() . = ..() @@ -44,11 +45,6 @@ if(damage > 10 && prob(damage/3))//the higher the damage the higher the probability to_chat(owner, "You feel a dull pain in your abdomen.") -/obj/item/organ/liver/prepare_eat() - var/obj/S = ..() - S.reagents.add_reagent(/datum/reagent/iron, 5) - return S - /obj/item/organ/liver/applyOrganDamage(d, maximum = maxHealth) . = ..() if(!. || QDELETED(owner)) diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index be8b8d6b3f..e34fd8e8a9 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -24,6 +24,8 @@ now_fixed = "Your lungs seem to once again be able to hold air." high_threshold_cleared = "The constriction around your chest loosens as your breathing calms down." + food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/medicine/salbutamol = 5) + //Breath damage var/safe_oxygen_min = 16 // Minimum safe partial pressure of O2, in kPa @@ -455,11 +457,6 @@ else if(!(organ_flags & ORGAN_FAILING)) failed = FALSE -/obj/item/organ/lungs/prepare_eat() - var/obj/S = ..() - S.reagents.add_reagent(/datum/reagent/medicine/salbutamol, 5) - return S - /obj/item/organ/lungs/ipc name = "ipc lungs" icon_state = "lungs-c" diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index ace2edab5b..cb4de69fbd 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -8,7 +8,7 @@ var/zone = BODY_ZONE_CHEST var/slot // DO NOT add slots with matching names to different zones - it will break internal_organs_slot list! - var/organ_flags = NONE + var/organ_flags = ORGAN_EDIBLE var/maxHealth = STANDARD_ORGAN_THRESHOLD var/damage = 0 //total damage this organ has sustained ///Healing factor and decay factor function on % of maxhealth, and do not work by applying a static number per tick @@ -25,7 +25,23 @@ var/now_fixed var/high_threshold_cleared var/low_threshold_cleared - rad_flags = RAD_NO_CONTAMINATE + + ///When you take a bite you cant jam it in for surgery anymore. + var/useable = TRUE + var/list/food_reagents = list(/datum/reagent/consumable/nutriment = 5) + +/obj/item/organ/Initialize() + . = ..() + if(organ_flags & ORGAN_EDIBLE) + AddComponent(/datum/component/edible, food_reagents, null, RAW | MEAT | GROSS, null, 10, null, null, null, CALLBACK(src, .proc/OnEatFrom)) + START_PROCESSING(SSobj, src) + +/obj/item/organ/Destroy() + if(owner) + // The special flag is important, because otherwise mobs can die + // while undergoing transformation into different mobs. + Remove(TRUE) + return ..() /obj/item/organ/proc/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE) if(!iscarbon(M) || owner == M) @@ -157,47 +173,8 @@ if(damage > high_threshold) . += "[src] is starting to look discolored." - -/obj/item/organ/proc/prepare_eat() - var/obj/item/reagent_containers/food/snacks/organ/S = new - S.name = name - S.desc = desc - S.icon = icon - S.icon_state = icon_state - S.w_class = w_class - - return S - -/obj/item/reagent_containers/food/snacks/organ - name = "appendix" - icon_state = "appendix" - icon = 'icons/obj/surgery.dmi' - list_reagents = list(/datum/reagent/consumable/nutriment = 5) - foodtype = RAW | MEAT | GROSS - - -/obj/item/organ/Initialize() - . = ..() - START_PROCESSING(SSobj, src) - -/obj/item/organ/Destroy() - if(owner) - // The special flag is important, because otherwise mobs can die - // while undergoing transformation into different mobs. - Remove(TRUE) - return ..() - -/obj/item/organ/attack(mob/living/carbon/M, mob/user) - if(M == user && ishuman(user)) - var/mob/living/carbon/human/H = user - if(status == ORGAN_ORGANIC) - var/obj/item/reagent_containers/food/snacks/S = prepare_eat() - if(S) - qdel(src) - if(H.put_in_active_hand(S)) - S.attack(H, H) - else - ..() +/obj/item/organ/proc/OnEatFrom(eater, feeder) + useable = FALSE //You can't use it anymore after eating it you spaztic /obj/item/organ/item_action_slot_check(slot,mob/user) return //so we don't grant the organ's action to mobs who pick up the organ. diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm index f8547dda6e..1c4a2d3043 100644 --- a/code/modules/surgery/organs/tongue.dm +++ b/code/modules/surgery/organs/tongue.dm @@ -252,6 +252,7 @@ name = "robotic voicebox" desc = "A voice synthesizer that can interface with organic lifeforms." status = ORGAN_ROBOTIC + organ_flags = ORGAN_NO_SPOIL icon_state = "tonguerobot" say_mod = "states" attack_verb = list("beeped", "booped") diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index 671d31530a..65e53df26f 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -1254,12 +1254,12 @@ if (trigger2 == "speak" || trigger2 == "echo") var/trigger3 = html_decode(stripped_input(user, "Enter the phrase spoken. Abusing this to self antag is bannable.", MAX_MESSAGE_LEN)) E.customTriggers[trigger] = list(trigger2, trigger3) - log_game("FERMICHEM: [H] has been implanted by [user] with [trigger], triggering [trigger2], to send [trigger3].") + log_reagent("FERMICHEM: [H] has been implanted by [user] with [trigger], triggering [trigger2], to send [trigger3].") if(findtext(trigger3, "admin")) message_admins("FERMICHEM: [user] maybe be trying to abuse MKUltra by implanting by [H] with [trigger], triggering [trigger2], to send [trigger3].") else E.customTriggers[trigger] = trigger2 - log_game("FERMICHEM: [H] has been implanted by [user] with [trigger], triggering [trigger2].") + log_reagent("FERMICHEM: [H] has been implanted by [user] with [trigger], triggering [trigger2].") E.mental_capacity -= 5 addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "[(E.lewd?"your [E.enthrallGender]":"[E.master]")] whispers you a new trigger."), 5) to_chat(user, "You sucessfully set the trigger word [trigger] in [H]") @@ -1322,7 +1322,7 @@ objective = replacetext(lowertext(objective), "strangle", "meow at") objective = replacetext(lowertext(objective), "suicide", "self-love") message_admins("[H] has been implanted by [user] with the objective [objective].") - log_game("FERMICHEM: [H] has been implanted by [user] with the objective [objective] via MKUltra.") + log_reagent("FERMICHEM: [H] has been implanted by [user] with the objective [objective] via MKUltra.") addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "[(E.lewd?"Your [E.enthrallGender]":"[E.master]")] whispers you a new objective."), 5) brainwash(H, objective) E.mental_capacity -= 200 @@ -1341,7 +1341,7 @@ var/instill = stripped_input(user, "Instill an emotion in [H].", MAX_MESSAGE_LEN) to_chat(H, "[instill]") to_chat(user, "You sucessfully instill a feeling in [H]") - log_game("FERMICHEM: [H] has been instilled by [user] with [instill] via MKUltra.") + log_reagent("FERMICHEM: [H] has been instilled by [user] with [instill] via MKUltra.") E.cooldown += 1 //RECOGNISE @@ -1455,7 +1455,7 @@ if(message_admins || debug)//Do you want this in? message_admins("[ADMIN_LOOKUPFLW(user)] has said '[log_message]' with a Velvet Voice, affecting [english_list(listeners)], with a power multiplier of [power_multiplier].") - log_game("FERMICHEM: [key_name(user)] ckey: [user.key] has said '[log_message]' with a Velvet Voice, affecting [english_list(listeners)], with a power multiplier of [power_multiplier].") + log_reagent("FERMICHEM: [key_name(user)] ckey: [user.key] has said '[log_message]' with a Velvet Voice, affecting [english_list(listeners)], with a power multiplier of [power_multiplier].") SSblackbox.record_feedback("tally", "fermi_chem", 1, "Times people have spoken with a velvet voice") //SSblackbox.record_feedback("tally", "Velvet_voice", 1, log_message) If this is on, it fills the thing up and OOFs the server diff --git a/code/modules/surgery/prosthetic_replacement.dm b/code/modules/surgery/prosthetic_replacement.dm index 62ce16e7e6..8eac5b7895 100644 --- a/code/modules/surgery/prosthetic_replacement.dm +++ b/code/modules/surgery/prosthetic_replacement.dm @@ -13,7 +13,7 @@ return 1 /datum/surgery_step/add_prosthetic name = "add prosthetic" - implements = list(/obj/item/bodypart = 100, /obj/item/organ_storage = 100, /obj/item/twohanded/required/chainsaw = 100, /obj/item/melee/synthetic_arm_blade = 100) + implements = list(/obj/item/bodypart = 100, /obj/item/organ_storage = 100, /obj/item/chainsaw = 100, /obj/item/melee/synthetic_arm_blade = 100) time = 32 var/organ_rejection_dam = 0 /datum/surgery_step/add_prosthetic/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) @@ -79,7 +79,7 @@ "[user] finishes attaching [tool]!", "[user] finishes the attachment procedure!") qdel(tool) - if(istype(tool, /obj/item/twohanded/required/chainsaw)) + if(istype(tool, /obj/item/chainsaw)) var/obj/item/mounted_chainsaw/new_arm = new(target) target_zone == BODY_ZONE_R_ARM ? target.put_in_r_hand(new_arm) : target.put_in_l_hand(new_arm) return 1 diff --git a/code/modules/surgery/remove_embedded_object.dm b/code/modules/surgery/remove_embedded_object.dm index 7d7cd2df63..f974c39bb4 100644 --- a/code/modules/surgery/remove_embedded_object.dm +++ b/code/modules/surgery/remove_embedded_object.dm @@ -23,12 +23,7 @@ var/objects = 0 for(var/obj/item/I in L.embedded_objects) objects++ - I.forceMove(get_turf(H)) - L.embedded_objects -= I - I.unembedded() - if(!H.has_embedded_objects()) - H.clear_alert("embeddedobject") - SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "embedded") + H.remove_embedded_object(I) if(objects > 0) display_results(user, target, "You successfully remove [objects] objects from [H]'s [L.name].", diff --git a/code/modules/surgery/surgery_step.dm b/code/modules/surgery/surgery_step.dm index f574b0aea3..e287b38ca1 100644 --- a/code/modules/surgery/surgery_step.dm +++ b/code/modules/surgery/surgery_step.dm @@ -57,10 +57,11 @@ surgery.step_in_progress = FALSE return FALSE if(tool) - speed_mod = tool.toolspeed + speed_mod = tool.toolspeed //faster tools mean faster surgeries, but also less experience. if(user.mind) - speed_mod = user.mind.skill_holder.action_skills_mod(/datum/skill/numerical/surgery, speed_mod, THRESHOLD_COMPETENT, FALSE) - if(do_after(user, time * speed_mod, target = target)) + speed_mod = user.mind.action_skill_mod(/datum/skill/numerical/surgery, speed_mod, THRESHOLD_UNTRAINED, FALSE) + var/delay = time * speed_mod + if(do_after(user, delay, target = target)) var/prob_chance = 100 if(implement_type) //this means it isn't a require hand or any item step. prob_chance = implements[implement_type] @@ -68,7 +69,10 @@ if((prob(prob_chance) || (iscyborg(user) && !silicons_obey_prob)) && chem_check(target) && !try_to_fail) if(success(user, target, target_zone, tool, surgery)) - user.mind?.skill_holder.auto_gain_experience(/datum/skill/numerical/surgery, SKILL_GAIN_SURGERY_PER_STEP) + var/multi = (delay/SKILL_GAIN_DELAY_DIVISOR) + if(repeatable) + multi *= 0.5 //Spammable surgeries award less experience. + user.mind?.auto_gain_experience(/datum/skill/numerical/surgery, SKILL_GAIN_SURGERY_PER_STEP * multi) advance = TRUE else if(failure(user, target, target_zone, tool, surgery)) diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index 287d9492fb..584a0a189a 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -66,7 +66,6 @@ toolspeed = 0.5 attack_verb = list("attacked", "pinched") - /obj/item/cautery name = "cautery" desc = "This stops bleeding." @@ -91,7 +90,6 @@ toolspeed = 0.5 attack_verb = list("burnt") - /obj/item/surgicaldrill name = "surgical drill" desc = "You can drill using this item. You dig?" @@ -148,7 +146,6 @@ toolspeed = 0.5 attack_verb = list("drilled") - /obj/item/scalpel name = "scalpel" desc = "Cut, cut, and once more cut." @@ -229,7 +226,6 @@ user.visible_message("[user] is slitting [user.p_their()] [pick("wrists", "throat", "stomach")] with [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (BRUTELOSS) - /obj/item/circular_saw name = "circular saw" desc = "For heavy duty cutting." diff --git a/code/modules/tgs/LICENSE b/code/modules/tgs/LICENSE new file mode 100644 index 0000000000..221f9e1deb --- /dev/null +++ b/code/modules/tgs/LICENSE @@ -0,0 +1,24 @@ +The MIT License + +Copyright (c) 2017 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/code/modules/tgs/README.md b/code/modules/tgs/README.md new file mode 100644 index 0000000000..445cee41f5 --- /dev/null +++ b/code/modules/tgs/README.md @@ -0,0 +1,13 @@ +# DMAPI Internals + +This folder should be placed on it's own inside a codebase that wishes to use the TGS DMAPI. Warranty void if modified. + +- [includes.dm](./includes.dm) is the file that should be included by DM code, it handles including the rest. +- The [core](./core) folder includes all code not directly part of any API version. +- The other versioned folders contain code for the different DMAPI versions. + - [v3210](./v3210) contains the final TGS3 API. + - [v4](./v4) is the legacy DMAPI 4 (Used in TGS 4.0.X versions). + - [v5](./v5) is the current DMAPI version used by TGS4 >=4.1. +- [LICENSE](./LICENSE) is the MIT license for the DMAPI. + +APIs communicate with TGS in two ways. All versions implement TGS -> DM communication using /world/Topic. DM -> TGS communication, called the bridge method, is different for each version. diff --git a/code/modules/tgs/core/README.md b/code/modules/tgs/core/README.md new file mode 100644 index 0000000000..aa3c7a9c9d --- /dev/null +++ b/code/modules/tgs/core/README.md @@ -0,0 +1,8 @@ +# Core DMAPI functions + +This folder contains all DMAPI code not directly involved in an API. + +- [_definitions.dm](./definitions.dm) contains defines needed across DMAPI internals. +- [core.dm](./core.dm) contains the implementations of the `/world/proc/TgsXXX()` procs. Many map directly to the `/datum/tgs_api` functions. It also contains the /datum selection and setup code. +- [datum.dm](./datum.dm) contains the `/datum/tgs_api` declarations that all APIs must implement. +- [tgs_version.dm](./tgs_version.dm) contains the `/datum/tgs_version` definition \ No newline at end of file diff --git a/code/modules/tgs/core/core.dm b/code/modules/tgs/core/core.dm index 70252cfb49..f75e7837af 100644 --- a/code/modules/tgs/core/core.dm +++ b/code/modules/tgs/core/core.dm @@ -1,11 +1,17 @@ /world/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE) var/current_api = TGS_READ_GLOBAL(tgs) if(current_api) - TGS_ERROR_LOG("TgsNew(): TGS API datum already set ([current_api])! Was TgsNew() called more than once?") + TGS_ERROR_LOG("API datum already set (\ref[current_api] ([current_api]))! Was TgsNew() called more than once?") + return + + if(!(minimum_required_security_level in list(TGS_SECURITY_ULTRASAFE, TGS_SECURITY_SAFE, TGS_SECURITY_TRUSTED))) + TGS_ERROR_LOG("Invalid minimum_required_security_level: [minimum_required_security_level]!") return #ifdef TGS_V3_API - minimum_required_security_level = TGS_SECURITY_TRUSTED + if(minimum_required_security_level != TGS_SECURITY_TRUSTED) + TGS_WARNING_LOG("V3 DMAPI requires trusted security!") + minimum_required_security_level = TGS_SECURITY_TRUSTED #endif var/raw_parameter = world.params[TGS_VERSION_PARAMETER] if(!raw_parameter) @@ -13,7 +19,7 @@ var/datum/tgs_version/version = new(raw_parameter) if(!version.Valid(FALSE)) - TGS_ERROR_LOG("Failed to validate TGS version parameter: [raw_parameter]!") + TGS_ERROR_LOG("Failed to validate DMAPI version parameter: [raw_parameter]!") return var/api_datum @@ -21,18 +27,21 @@ if(3) #ifndef TGS_V3_API TGS_ERROR_LOG("Detected V3 API but TGS_V3_API isn't defined!") + return #else - switch(version.major) + switch(version.minor) if(2) api_datum = /datum/tgs_api/v3210 #endif if(4) - switch(version.major) + switch(version.minor) if(0) api_datum = /datum/tgs_api/v4 + if(5) + api_datum = /datum/tgs_api/v5 var/datum/tgs_version/max_api_version = TgsMaximumAPIVersion(); - if(version.suite != null && version.major != null && version.minor != null && version.patch != null && version.deprefixed_parameter > max_api_version.deprefixed_parameter) + if(version.suite != null && version.minor != null && version.patch != null && version.deprecated_patch != null && version.deprefixed_parameter > max_api_version.deprefixed_parameter) TGS_ERROR_LOG("Detected unknown API version! Defaulting to latest. Update the DMAPI to fix this problem.") api_datum = /datum/tgs_api/latest @@ -41,20 +50,25 @@ return TGS_INFO_LOG("Activating API for version [version.deprefixed_parameter]") - var/datum/tgs_api/new_api = new api_datum(version) + + if(event_handler && !istype(event_handler)) + TGS_ERROR_LOG("Invalid parameter for event_handler: [event_handler]") + event_handler = null + + var/datum/tgs_api/new_api = new api_datum(event_handler, version) TGS_WRITE_GLOBAL(tgs, new_api) - var/result = new_api.OnWorldNew(event_handler, minimum_required_security_level) + var/result = new_api.OnWorldNew(minimum_required_security_level) if(!result || result == TGS_UNIMPLEMENTED) TGS_WRITE_GLOBAL(tgs, null) TGS_ERROR_LOG("Failed to activate API!") /world/TgsMaximumAPIVersion() - return new /datum/tgs_version("4.0.x.x") + return new /datum/tgs_version("5.x.x") /world/TgsMinimumAPIVersion() - return new /datum/tgs_version("3.2.0.0") + return new /datum/tgs_version("3.2.x") /world/TgsInitializationComplete() var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) @@ -88,6 +102,11 @@ if(api) return api.version +/world/TgsApiVersion() + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + return api.ApiVersion() + /world/TgsInstanceName() var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) if(api) @@ -135,30 +154,3 @@ var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) if(api) api.SecurityLevel() - -/* -The MIT License - -Copyright (c) 2017 Jordan Brown - -Permission is hereby granted, free of charge, -to any person obtaining a copy of this software and -associated documentation files (the "Software"), to -deal in the Software without restriction, including -without limitation the rights to use, copy, modify, -merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom -the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm index fb2508059a..ef6d3a4fe5 100644 --- a/code/modules/tgs/core/datum.dm +++ b/code/modules/tgs/core/datum.dm @@ -2,13 +2,15 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null) /datum/tgs_api var/datum/tgs_version/version + var/datum/tgs_event_handler/event_handler -/datum/tgs_api/New(datum/tgs_version/version) +/datum/tgs_api/New(datum/tgs_event_handler/event_handler, datum/tgs_version/version) . = ..() + src.event_handler = event_handler src.version = version /datum/tgs_api/latest - parent_type = /datum/tgs_api/v4 + parent_type = /datum/tgs_api/v5 TGS_PROTECT_DATUM(/datum/tgs_api) @@ -53,30 +55,3 @@ TGS_PROTECT_DATUM(/datum/tgs_api) /datum/tgs_api/proc/SecurityLevel() return TGS_UNIMPLEMENTED - -/* -The MIT License - -Copyright (c) 2017 Jordan Brown - -Permission is hereby granted, free of charge, -to any person obtaining a copy of this software and -associated documentation files (the "Software"), to -deal in the Software without restriction, including -without limitation the rights to use, copy, modify, -merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom -the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ diff --git a/code/modules/tgs/core/tgs_version.dm b/code/modules/tgs/core/tgs_version.dm index b97745611f..a5dae1241a 100644 --- a/code/modules/tgs/core/tgs_version.dm +++ b/code/modules/tgs/core/tgs_version.dm @@ -5,11 +5,11 @@ suite = text2num(version_bits[1]) if(version_bits.len > 1) - major = text2num(version_bits[2]) + minor = text2num(version_bits[2]) if(version_bits.len > 2) - minor = text2num(version_bits[3]) + patch = text2num(version_bits[3]) if(version_bits.len == 4) - patch = text2num(version_bits[4]) + deprecated_patch = text2num(version_bits[4]) /datum/tgs_version/proc/Valid(allow_wildcards = FALSE) if(suite == null) @@ -19,4 +19,10 @@ return !Wildcard() /datum/tgs_version/Wildcard() - return major == null || minor == null || patch == null + return minor == null || patch == null + +/datum/tgs_version/Equals(datum/tgs_version/other_version) + if(!istype(other_version)) + return FALSE + + return suite == other_version.suite && minor == other_version.minor && patch == other_version.patch && deprecated_patch == other_version.deprecated_patch diff --git a/code/modules/tgs/includes.dm b/code/modules/tgs/includes.dm index 247f1fda5d..c803cf7ac2 100644 --- a/code/modules/tgs/includes.dm +++ b/code/modules/tgs/includes.dm @@ -2,9 +2,16 @@ #include "core\core.dm" #include "core\datum.dm" #include "core\tgs_version.dm" + #ifdef TGS_V3_API #include "v3210\api.dm" #include "v3210\commands.dm" #endif + #include "v4\api.dm" #include "v4\commands.dm" + +#include "v5\_defines.dm" +#include "v5\api.dm" +#include "v5\commands.dm" +#include "v5\undef.dm" diff --git a/code/modules/tgs/v3210/README.md b/code/modules/tgs/v3210/README.md new file mode 100644 index 0000000000..f96e7cf3b3 --- /dev/null +++ b/code/modules/tgs/v3210/README.md @@ -0,0 +1,6 @@ +# DMAPI V3 + +This DMAPI implements bridge using file output which TGS monitors for. + +- [api.dm](./api.dm) contains the bulk of the API code. +- [commands.dm](./commands.dm) contains functions relating to `/datum/tgs_chat_command`s. diff --git a/code/modules/tgs/v3210/api.dm b/code/modules/tgs/v3210/api.dm index c536995b04..e0d00ad15d 100644 --- a/code/modules/tgs/v3210/api.dm +++ b/code/modules/tgs/v3210/api.dm @@ -39,7 +39,7 @@ var/warned_custom_commands = FALSE /datum/tgs_api/v3210/ApiVersion() - return "3.2.1.0" + return new /datum/tgs_version("3.2.1.0") /datum/tgs_api/v3210/proc/trim_left(text) for (var/i = 1 to length(text)) @@ -56,7 +56,7 @@ /datum/tgs_api/v3210/proc/file2list(filename) return splittext(trim_left(trim_right(file2text(filename))), "\n") -/datum/tgs_api/v3210/OnWorldNew(datum/tgs_event_handler/event_handler, minimum_required_security_level) //don't use event handling in this version +/datum/tgs_api/v3210/OnWorldNew(minimum_required_security_level) . = FALSE comms_key = world.params[SERVICE_WORLD_PARAM] @@ -76,7 +76,8 @@ TGS_ERROR_LOG("This API version is only supported on Windows. Not running on Windows. Aborting initialization!") return ListServiceCustomCommands(TRUE) - ExportService("[SERVICE_REQUEST_API_VERSION] [ApiVersion()]", TRUE) + var/datum/tgs_version/api_version = ApiVersion() + ExportService("[SERVICE_REQUEST_API_VERSION] [api_version.deprefixed_parameter]", TRUE) return TRUE //nothing to do for v3 @@ -166,7 +167,8 @@ /datum/tgs_api/v3210/Revision() if(!warned_revison) - TGS_ERROR_LOG("Use of TgsRevision on [ApiVersion()] origin_commit only points to master!") + var/datum/tgs_version/api_version = ApiVersion() + TGS_ERROR_LOG("Use of TgsRevision on [api_version.deprefixed_parameter] origin_commit only points to master!") warned_revison = TRUE var/datum/tgs_revision_information/ri = new ri.commit = commit @@ -224,30 +226,3 @@ #undef SERVICE_REQUEST_API_VERSION #undef SERVICE_RETURN_SUCCESS - -/* -The MIT License - -Copyright (c) 2017 Jordan Brown - -Permission is hereby granted, free of charge, -to any person obtaining a copy of this software and -associated documentation files (the "Software"), to -deal in the Software without restriction, including -without limitation the rights to use, copy, modify, -merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom -the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ diff --git a/code/modules/tgs/v3210/commands.dm b/code/modules/tgs/v3210/commands.dm index e5bc6f4895..a1949da444 100644 --- a/code/modules/tgs/v3210/commands.dm +++ b/code/modules/tgs/v3210/commands.dm @@ -44,35 +44,3 @@ user.friendly_name = sender user.mention = sender return stc.Run(user, params) || TRUE - -/* - -#undef SERVICE_JSON_PARAM_HELPTEXT -#undef SERVICE_JSON_PARAM_ADMINONLY -#undef SERVICE_JSON_PARAM_REQUIREDPARAMETERS - -The MIT License - -Copyright (c) 2017 Jordan Brown - -Permission is hereby granted, free of charge, -to any person obtaining a copy of this software and -associated documentation files (the "Software"), to -deal in the Software without restriction, including -without limitation the rights to use, copy, modify, -merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom -the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ diff --git a/code/modules/tgs/v4/README.md b/code/modules/tgs/v4/README.md new file mode 100644 index 0000000000..78191447b2 --- /dev/null +++ b/code/modules/tgs/v4/README.md @@ -0,0 +1,6 @@ +# DMAPI V4 + +This DMAPI implements bridge requests using file output which TGS monitors for. It has a safe mode restriction. + +- [api.dm](./api.dm) contains the bulk of the API code. +- [commands.dm](./commands.dm) contains functions relating to `/datum/tgs_chat_command`s. diff --git a/code/modules/tgs/v4/api.dm b/code/modules/tgs/v4/api.dm index b61cddbeba..1dc98f811e 100644 --- a/code/modules/tgs/v4/api.dm +++ b/code/modules/tgs/v4/api.dm @@ -43,15 +43,17 @@ var/list/cached_test_merges var/datum/tgs_revision_information/cached_revision - var/datum/tgs_event_handler/event_handler - var/export_lock = FALSE var/list/last_interop_response /datum/tgs_api/v4/ApiVersion() - return "4.0.0.0" + return new /datum/tgs_version("4.0.0.0") + +/datum/tgs_api/v4/OnWorldNew(minimum_required_security_level) + if(minimum_required_security_level == TGS_SECURITY_ULTRASAFE) + TGS_WARNING_LOG("V4 DMAPI requires safe security!") + minimum_required_security_level = TGS_SECURITY_SAFE -/datum/tgs_api/v4/OnWorldNew(datum/tgs_event_handler/event_handler, minimum_required_security_level) json_path = world.params[TGS4_PARAM_INFO_JSON] if(!json_path) TGS_ERROR_LOG("Missing [TGS4_PARAM_INFO_JSON] world parameter!") @@ -76,7 +78,6 @@ security_level = cached_json["securityLevel"] chat_channels_json_path = cached_json["chatChannelsJson"] chat_commands_json_path = cached_json["chatCommandsJson"] - src.event_handler = event_handler instance_name = cached_json["instanceName"] ListCustomCommands() @@ -313,30 +314,3 @@ /datum/tgs_api/v4/SecurityLevel() return security_level - -/* -The MIT License - -Copyright (c) 2017 Jordan Brown - -Permission is hereby granted, free of charge, -to any person obtaining a copy of this software and -associated documentation files (the "Software"), to -deal in the Software without restriction, including -without limitation the rights to use, copy, modify, -merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom -the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ diff --git a/code/modules/tgs/v4/commands.dm b/code/modules/tgs/v4/commands.dm index af21a86fb6..4ca1500167 100644 --- a/code/modules/tgs/v4/commands.dm +++ b/code/modules/tgs/v4/commands.dm @@ -39,31 +39,3 @@ result = "" return result return "Unknown command: [command]!" - -/* - -The MIT License - -Copyright (c) 2017 Jordan Brown - -Permission is hereby granted, free of charge, -to any person obtaining a copy of this software and -associated documentation files (the "Software"), to -deal in the Software without restriction, including -without limitation the rights to use, copy, modify, -merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom -the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice -shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ diff --git a/code/modules/tgs/v5/_defines.dm b/code/modules/tgs/v5/_defines.dm new file mode 100644 index 0000000000..8fd84e19fa --- /dev/null +++ b/code/modules/tgs/v5/_defines.dm @@ -0,0 +1,98 @@ +#define DMAPI5_PARAM_SERVER_PORT "tgs_port" +#define DMAPI5_PARAM_ACCESS_IDENTIFIER "tgs_key" + +#define DMAPI5_BRIDGE_DATA "data" +#define DMAPI5_TOPIC_DATA "tgs_data" + +#define DMAPI5_BRIDGE_COMMAND_PORT_UPDATE 0 +#define DMAPI5_BRIDGE_COMMAND_STARTUP 1 +#define DMAPI5_BRIDGE_COMMAND_PRIME 2 +#define DMAPI5_BRIDGE_COMMAND_REBOOT 3 +#define DMAPI5_BRIDGE_COMMAND_KILL 4 +#define DMAPI5_BRIDGE_COMMAND_CHAT_SEND 5 + +#define DMAPI5_PARAMETER_ACCESS_IDENTIFIER "accessIdentifier" +#define DMAPI5_PARAMETER_CUSTOM_COMMANDS "customCommands" + +#define DMAPI5_RESPONSE_ERROR_MESSAGE "errorMessage" + +#define DMAPI5_BRIDGE_PARAMETER_COMMAND_TYPE "commandType" +#define DMAPI5_BRIDGE_PARAMETER_CURRENT_PORT "currentPort" +#define DMAPI5_BRIDGE_PARAMETER_VERSION "version" +#define DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE "chatMessage" +#define DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL "minimumSecurityLevel" + +#define DMAPI5_BRIDGE_RESPONSE_NEW_PORT "newPort" +#define DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION "runtimeInformation" + +#define DMAPI5_CHAT_MESSAGE_TEXT "text" +#define DMAPI5_CHAT_MESSAGE_CHANNEL_IDS "channelIds" + +#define DMAPI5_RUNTIME_INFORMATION_ACCESS_IDENTIFIER "accessIdentifier" +#define DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION "serverVersion" +#define DMAPI5_RUNTIME_INFORMATION_SERVER_PORT "serverPort" +#define DMAPI5_RUNTIME_INFORMATION_API_VALIDATE_ONLY "apiValidateOnly" +#define DMAPI5_RUNTIME_INFORMATION_INSTANCE_NAME "instanceName" +#define DMAPI5_RUNTIME_INFORMATION_REVISION "revision" +#define DMAPI5_RUNTIME_INFORMATION_TEST_MERGES "testMerges" +#define DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL "securityLevel" + +#define DMAPI5_CHAT_UPDATE_CHANNELS "channels" + +#define DMAPI5_TEST_MERGE_TIME_MERGED "timeMerged" +#define DMAPI5_TEST_MERGE_REVISION "revision" +#define DMAPI5_TEST_MERGE_TITLE_AT_MERGE "titleAtMerge" +#define DMAPI5_TEST_MERGE_BODY_AT_MERGE "bodyAtMerge" +#define DMAPI5_TEST_MERGE_URL "url" +#define DMAPI5_TEST_MERGE_AUTHOR "author" +#define DMAPI5_TEST_MERGE_NUMBER "number" +#define DMAPI5_TEST_MERGE_PULL_REQUEST_REVISION "pullRequestRevision" +#define DMAPI5_TEST_MERGE_COMMENT "comment" + +#define DMAPI5_CHAT_COMMAND_NAME "name" +#define DMAPI5_CHAT_COMMAND_PARAMS "params" +#define DMAPI5_CHAT_COMMAND_USER "user" + +#define DMAPI5_EVENT_NOTIFICATION_TYPE "type" +#define DMAPI5_EVENT_NOTIFICATION_PARAMETERS "parameters" + +#define DMAPI5_TOPIC_COMMAND_CHAT_COMMAND 0 +#define DMAPI5_TOPIC_COMMAND_EVENT_NOTIFICATION 1 +#define DMAPI5_TOPIC_COMMAND_CHANGE_PORT 2 +#define DMAPI5_TOPIC_COMMAND_CHANGE_REBOOT_STATE 3 +#define DMAPI5_TOPIC_COMMAND_INSTANCE_RENAMED 4 +#define DMAPI5_TOPIC_COMMAND_CHAT_CHANNELS_UPDATE 5 +#define DMAPI5_TOPIC_COMMAND_SERVER_PORT_UPDATE 6 +#define DMAPI5_TOPIC_COMMAND_HEARTBEAT 7 +#define DMAPI5_TOPIC_COMMAND_WATCHDOG_REATTACH 8 + +#define DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE "commandType" +#define DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND "chatCommand" +#define DMAPI5_TOPIC_PARAMETER_EVENT_NOTIFICATION "eventNotification" +#define DMAPI5_TOPIC_PARAMETER_NEW_PORT "newPort" +#define DMAPI5_TOPIC_PARAMETER_NEW_REBOOT_STATE "newRebootState" +#define DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME "newInstanceName" +#define DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE "chatUpdate" +#define DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION "newServerVersion" + +#define DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE "commandResponseMessage" +#define DMAPI5_TOPIC_RESPONSE_CHAT_RESPONSES "chatResponses" + +#define DMAPI5_REVISION_INFORMATION_COMMIT_SHA "commitSha" +#define DMAPI5_REVISION_INFORMATION_ORIGIN_COMMIT_SHA "originCommitSha" + +#define DMAPI5_CHAT_USER_ID "id" +#define DMAPI5_CHAT_USER_FRIENDLY_NAME "friendlyName" +#define DMAPI5_CHAT_USER_MENTION "mention" +#define DMAPI5_CHAT_USER_CHANNEL "channel" + +#define DMAPI5_CHAT_CHANNEL_ID "id" +#define DMAPI5_CHAT_CHANNEL_FRIENDLY_NAME "friendlyName" +#define DMAPI5_CHAT_CHANNEL_CONNECTION_NAME "connectionName" +#define DMAPI5_CHAT_CHANNEL_IS_ADMIN_CHANNEL "isAdminChannel" +#define DMAPI5_CHAT_CHANNEL_IS_PRIVATE_CHANNEL "isPrivateChannel" +#define DMAPI5_CHAT_CHANNEL_TAG "tag" + +#define DMAPI5_CUSTOM_CHAT_COMMAND_NAME "name" +#define DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT "helpText" +#define DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY "adminOnly" diff --git a/code/modules/tgs/v5/api.dm b/code/modules/tgs/v5/api.dm new file mode 100644 index 0000000000..8ca85faf05 --- /dev/null +++ b/code/modules/tgs/v5/api.dm @@ -0,0 +1,355 @@ +/datum/tgs_api/v5 + var/server_port + var/access_identifier + + var/instance_name + var/security_level + + var/reboot_mode = TGS_REBOOT_MODE_NORMAL + + var/list/intercepted_message_queue + + var/list/custom_commands + + var/list/test_merges + var/datum/tgs_revision_information/revision + var/list/chat_channels + +/datum/tgs_api/v5/ApiVersion() + return new /datum/tgs_version("5.2.1") + +/datum/tgs_api/v5/OnWorldNew(minimum_required_security_level) + server_port = world.params[DMAPI5_PARAM_SERVER_PORT] + access_identifier = world.params[DMAPI5_PARAM_ACCESS_IDENTIFIER] + + var/datum/tgs_version/api_version = ApiVersion() + version = null + var/list/bridge_response = Bridge(DMAPI5_BRIDGE_COMMAND_STARTUP, list(DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL = minimum_required_security_level, DMAPI5_BRIDGE_PARAMETER_VERSION = api_version.raw_parameter, DMAPI5_PARAMETER_CUSTOM_COMMANDS = ListCustomCommands())) + if(!istype(bridge_response)) + TGS_ERROR_LOG("Failed initial bridge request!") + return FALSE + + var/list/runtime_information = bridge_response[DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION] + if(!istype(runtime_information)) + TGS_ERROR_LOG("Failed to decode runtime information from bridge response: [json_encode(bridge_response)]!") + return FALSE + + if(runtime_information[DMAPI5_RUNTIME_INFORMATION_API_VALIDATE_ONLY]) + TGS_INFO_LOG("DMAPI validation, exiting...") + del(world) + + version = new /datum/tgs_version(runtime_information[DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION]) + security_level = runtime_information[DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL] + instance_name = runtime_information[DMAPI5_RUNTIME_INFORMATION_INSTANCE_NAME] + + var/list/revisionData = runtime_information[DMAPI5_RUNTIME_INFORMATION_REVISION] + if(istype(revisionData)) + revision = new + revision.commit = revisionData[DMAPI5_REVISION_INFORMATION_COMMIT_SHA] + revision.origin_commit = revisionData[DMAPI5_REVISION_INFORMATION_ORIGIN_COMMIT_SHA] + else + TGS_ERROR_LOG("Failed to decode [DMAPI5_RUNTIME_INFORMATION_REVISION] from runtime information!") + + test_merges = list() + var/list/test_merge_json = runtime_information[DMAPI5_RUNTIME_INFORMATION_TEST_MERGES] + if(istype(test_merge_json)) + for(var/entry in test_merge_json) + var/datum/tgs_revision_information/test_merge/tm = new + tm.number = entry[DMAPI5_TEST_MERGE_NUMBER] + + var/list/revInfo = entry[DMAPI5_TEST_MERGE_REVISION] + if(revInfo) + tm.commit = revisionData[DMAPI5_REVISION_INFORMATION_COMMIT_SHA] + tm.origin_commit = revisionData[DMAPI5_REVISION_INFORMATION_ORIGIN_COMMIT_SHA] + else + TGS_WARNING_LOG("Failed to decode [DMAPI5_TEST_MERGE_REVISION] from test merge #[tm.number]!") + + tm.time_merged = text2num(entry[DMAPI5_TEST_MERGE_TIME_MERGED]) + tm.title = entry[DMAPI5_TEST_MERGE_TITLE_AT_MERGE] + tm.body = entry[DMAPI5_TEST_MERGE_BODY_AT_MERGE] + tm.url = entry[DMAPI5_TEST_MERGE_URL] + tm.author = entry[DMAPI5_TEST_MERGE_AUTHOR] + tm.pull_request_commit = entry[DMAPI5_TEST_MERGE_PULL_REQUEST_REVISION] + tm.comment = entry[DMAPI5_TEST_MERGE_COMMENT] + + test_merges += tm + else + TGS_WARNING_LOG("Failed to decode [DMAPI5_RUNTIME_INFORMATION_TEST_MERGES] from runtime information!") + + chat_channels = list() + DecodeChannels(runtime_information) + + return TRUE + +/datum/tgs_api/v5/proc/RequireInitialBridgeResponse() + while(!version) + sleep(1) + +/datum/tgs_api/v5/OnInitializationComplete() + Bridge(DMAPI5_BRIDGE_COMMAND_PRIME) + + var/tgs4_secret_sleep_offline_sauce = 29051994 + var/old_sleep_offline = world.sleep_offline + world.sleep_offline = tgs4_secret_sleep_offline_sauce + sleep(1) + if(world.sleep_offline == tgs4_secret_sleep_offline_sauce) //if not someone changed it + world.sleep_offline = old_sleep_offline + +/datum/tgs_api/v5/proc/TopicResponse(error_message = null) + var/list/response = list() + response[DMAPI5_RESPONSE_ERROR_MESSAGE] = error_message + + return json_encode(response) + +/datum/tgs_api/v5/OnTopic(T) + var/list/params = params2list(T) + var/json = params[DMAPI5_TOPIC_DATA] + if(!json) + return FALSE //continue world/Topic + + var/list/topic_parameters = json_decode(json) + if(!topic_parameters) + return TopicResponse("Invalid topic parameters json!"); + + var/their_sCK = topic_parameters[DMAPI5_PARAMETER_ACCESS_IDENTIFIER] + if(their_sCK != access_identifier) + return TopicResponse("Failed to decode [DMAPI5_PARAMETER_ACCESS_IDENTIFIER] from: [json]!"); + + var/command = topic_parameters[DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE] + if(!isnum(command)) + return TopicResponse("Failed to decode [DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE] from: [json]!") + + switch(command) + if(DMAPI5_TOPIC_COMMAND_CHAT_COMMAND) + var/result = HandleCustomCommand(topic_parameters[DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND]) + if(!result) + result = TopicResponse("Error running chat command!") + return result + if(DMAPI5_TOPIC_COMMAND_EVENT_NOTIFICATION) + intercepted_message_queue = list() + var/list/event_notification = topic_parameters[DMAPI5_TOPIC_PARAMETER_EVENT_NOTIFICATION] + if(!istype(event_notification)) + return TopicResponse("Invalid [DMAPI5_TOPIC_PARAMETER_EVENT_NOTIFICATION]!") + + var/event_type = event_notification[DMAPI5_EVENT_NOTIFICATION_TYPE] + if(!isnum(event_type)) + return TopicResponse("Invalid or missing [DMAPI5_EVENT_NOTIFICATION_TYPE]!") + + var/list/event_parameters = event_notification[DMAPI5_EVENT_NOTIFICATION_PARAMETERS] + if(event_parameters && !istype(event_parameters)) + return TopicResponse("Invalid or missing [DMAPI5_EVENT_NOTIFICATION_PARAMETERS]!") + + var/list/event_call = list(event_type) + if(event_parameters) + event_call += event_parameters + + if(event_handler != null) + event_handler.HandleEvent(arglist(event_call)) + + var/list/response = list() + response[DMAPI5_TOPIC_RESPONSE_CHAT_RESPONSES] = intercepted_message_queue + intercepted_message_queue = null + return json_encode(response) + if(DMAPI5_TOPIC_COMMAND_CHANGE_PORT) + var/new_port = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_PORT] + if (!isnum(new_port) || !(new_port > 0)) + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]]") + + if(event_handler != null) + event_handler.HandleEvent(TGS_EVENT_PORT_SWAP, new_port) + + //the topic still completes, miraculously + //I honestly didn't believe byond could do it without exploding + if(!world.OpenPort(new_port)) + return TopicResponse("Port change failed!") + + return TopicResponse() + if(DMAPI5_TOPIC_COMMAND_CHANGE_REBOOT_STATE) + var/new_reboot_mode = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_REBOOT_STATE] + if(!isnum(new_reboot_mode)) + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_REBOOT_STATE]!") + + if(event_handler != null) + event_handler.HandleEvent(TGS_EVENT_REBOOT_MODE_CHANGE, reboot_mode, new_reboot_mode) + + reboot_mode = new_reboot_mode + return TopicResponse() + if(DMAPI5_TOPIC_COMMAND_INSTANCE_RENAMED) + var/new_instance_name = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME] + if(!istext(new_instance_name)) + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME]!") + + if(event_handler != null) + event_handler.HandleEvent(TGS_EVENT_INSTANCE_RENAMED, new_instance_name) + + instance_name = new_instance_name + return TopicResponse() + if(DMAPI5_TOPIC_COMMAND_CHAT_CHANNELS_UPDATE) + var/list/chat_update_json = topic_parameters[DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE] + if(!istype(chat_update_json)) + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE]!") + + DecodeChannels(chat_update_json) + return TopicResponse() + if(DMAPI5_TOPIC_COMMAND_SERVER_PORT_UPDATE) + var/new_port = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_PORT] + if (!isnum(new_port) || !(new_port > 0)) + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]]") + + server_port = new_port + return TopicResponse() + if(DMAPI5_TOPIC_COMMAND_HEARTBEAT) + return TopicResponse() + if(DMAPI5_TOPIC_COMMAND_WATCHDOG_REATTACH) + var/new_port = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_PORT] + var/error_message = null + if (new_port != null) + if (!isnum(new_port) || !(new_port > 0)) + error_message = "Invalid [DMAPI5_TOPIC_PARAMETER_NEW_PORT]]" + else + server_port = new_port + + var/new_version_string = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION] + if (!istext(new_version_string)) + if(error_message != null) + error_message += ", " + error_message += "Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION]]" + else + var/datum/tgs_version/new_version = new(new_version_string) + if (event_handler) + event_handler.HandleEvent(TGS_EVENT_WATCHDOG_REATTACH, new_version) + + version = new_version + + return json_encode(list(DMAPI5_RESPONSE_ERROR_MESSAGE = error_message, DMAPI5_PARAMETER_CUSTOM_COMMANDS = ListCustomCommands())) + + return TopicResponse("Unknown command: [command]") + +/datum/tgs_api/v5/proc/Bridge(command, list/data) + if(!data) + data = list() + + data[DMAPI5_BRIDGE_PARAMETER_COMMAND_TYPE] = command + data[DMAPI5_PARAMETER_ACCESS_IDENTIFIER] = access_identifier + + var/json = json_encode(data) + var/encoded_json = url_encode(json) + + // This is an infinite sleep until we get a response + var/export_response = world.Export("http://127.0.0.1:[server_port]/Bridge?[DMAPI5_BRIDGE_DATA]=[encoded_json]") + if(!export_response) + TGS_ERROR_LOG("Failed export request: [json]") + return + + var/response_json = file2text(export_response["CONTENT"]) + if(!response_json) + TGS_ERROR_LOG("Failed export request, missing content!") + return + + var/list/bridge_response = json_decode(response_json) + if(!bridge_response) + TGS_ERROR_LOG("Failed export request, bad json: [response_json]") + return + + var/error = bridge_response[DMAPI5_RESPONSE_ERROR_MESSAGE] + if(error) + TGS_ERROR_LOG("Failed export request, bad request: [error]") + return + + return bridge_response + +/datum/tgs_api/v5/OnReboot() + var/list/result = Bridge(DMAPI5_BRIDGE_COMMAND_REBOOT) + if(!result) + return + + //okay so the standard TGS4 proceedure is: right before rebooting change the port to whatever was sent to us in the above json's data parameter + + var/port = result[DMAPI5_BRIDGE_RESPONSE_NEW_PORT] + if(!isnum(port)) + return //this is valid, server may just want use to reboot + + if(port == 0) + //to byond 0 means any port and "none" means close vOv + port = "none" + + if(!world.OpenPort(port)) + TGS_ERROR_LOG("Unable to set port to [port]!") + +/datum/tgs_api/v5/InstanceName() + RequireInitialBridgeResponse() + return instance_name + +/datum/tgs_api/v5/TestMerges() + RequireInitialBridgeResponse() + return test_merges + +/datum/tgs_api/v5/EndProcess() + Bridge(DMAPI5_BRIDGE_COMMAND_KILL) + +/datum/tgs_api/v5/Revision() + RequireInitialBridgeResponse() + return revision + +/datum/tgs_api/v5/ChatBroadcast(message, list/channels) + if(!length(channels)) + channels = ChatChannelInfo() + + var/list/ids = list() + for(var/I in channels) + var/datum/tgs_chat_channel/channel = I + ids += channel.id + + message = list(DMAPI5_CHAT_MESSAGE_TEXT = message, DMAPI5_CHAT_MESSAGE_CHANNEL_IDS = ids) + if(intercepted_message_queue) + intercepted_message_queue += list(message) + else + Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = message)) + +/datum/tgs_api/v5/ChatTargetedBroadcast(message, admin_only) + var/list/channels = list() + for(var/I in ChatChannelInfo()) + var/datum/tgs_chat_channel/channel = I + if (!channel.is_private_channel && ((channel.is_admin_channel && admin_only) || (!channel.is_admin_channel && !admin_only))) + channels += channel.id + message = list(DMAPI5_CHAT_MESSAGE_TEXT = message, DMAPI5_CHAT_MESSAGE_CHANNEL_IDS = channels) + if(intercepted_message_queue) + intercepted_message_queue += list(message) + else + Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = message)) + +/datum/tgs_api/v5/ChatPrivateMessage(message, datum/tgs_chat_user/user) + message = list(DMAPI5_CHAT_MESSAGE_TEXT = message, DMAPI5_CHAT_MESSAGE_CHANNEL_IDS = list(user.channel.id)) + if(intercepted_message_queue) + intercepted_message_queue += list(message) + else + Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = message)) + +/datum/tgs_api/v5/ChatChannelInfo() + RequireInitialBridgeResponse() + return chat_channels + +/datum/tgs_api/v5/proc/DecodeChannels(chat_update_json) + var/list/chat_channels_json = chat_update_json[DMAPI5_CHAT_UPDATE_CHANNELS] + if(istype(chat_channels_json)) + chat_channels.Cut() + for(var/channel_json in chat_channels_json) + var/datum/tgs_chat_channel/channel = DecodeChannel(channel_json) + if(channel) + chat_channels += channel + else + TGS_WARNING_LOG("Failed to decode [DMAPI5_CHAT_UPDATE_CHANNELS] from channel update!") + +/datum/tgs_api/v5/proc/DecodeChannel(channel_json) + var/datum/tgs_chat_channel/channel = new + channel.id = channel_json[DMAPI5_CHAT_CHANNEL_ID] + channel.friendly_name = channel_json[DMAPI5_CHAT_CHANNEL_FRIENDLY_NAME] + channel.connection_name = channel_json[DMAPI5_CHAT_CHANNEL_CONNECTION_NAME] + channel.is_admin_channel = channel_json[DMAPI5_CHAT_CHANNEL_IS_ADMIN_CHANNEL] + channel.is_private_channel = channel_json[DMAPI5_CHAT_CHANNEL_IS_PRIVATE_CHANNEL] + channel.custom_tag = channel_json[DMAPI5_CHAT_CHANNEL_TAG] + return channel + +/datum/tgs_api/v5/SecurityLevel() + RequireInitialBridgeResponse() + return security_level diff --git a/code/modules/tgs/v5/commands.dm b/code/modules/tgs/v5/commands.dm new file mode 100644 index 0000000000..6d31dd3422 --- /dev/null +++ b/code/modules/tgs/v5/commands.dm @@ -0,0 +1,40 @@ +/datum/tgs_api/v5/proc/ListCustomCommands() + var/results = list() + custom_commands = list() + for(var/I in typesof(/datum/tgs_chat_command) - /datum/tgs_chat_command) + var/datum/tgs_chat_command/stc = new I + var/command_name = stc.name + if(!command_name || findtext(command_name, " ") || findtext(command_name, "'") || findtext(command_name, "\"")) + TGS_WARNING_LOG("Custom command [command_name] ([I]) can't be used as it is empty or contains illegal characters!") + continue + + if(results[command_name]) + var/datum/other = custom_commands[command_name] + TGS_WARNING_LOG("Custom commands [other.type] and [I] have the same name (\"[command_name]\"), only [other.type] will be available!") + continue + results += list(list(DMAPI5_CUSTOM_CHAT_COMMAND_NAME = command_name, DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT = stc.help_text, DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY = stc.admin_only)) + custom_commands[command_name] = stc + + return results + +/datum/tgs_api/v5/proc/HandleCustomCommand(list/command_json) + var/command = command_json[DMAPI5_CHAT_COMMAND_NAME] + var/user = command_json[DMAPI5_CHAT_COMMAND_USER] + var/params = command_json[DMAPI5_CHAT_COMMAND_PARAMS] + + var/datum/tgs_chat_user/u = new + u.id = user[DMAPI5_CHAT_USER_ID] + u.friendly_name = user[DMAPI5_CHAT_USER_FRIENDLY_NAME] + u.mention = user[DMAPI5_CHAT_USER_MENTION] + u.channel = DecodeChannel(user[DMAPI5_CHAT_USER_CHANNEL]) + + var/datum/tgs_chat_command/sc = custom_commands[command] + if(sc) + var/text_response = sc.Run(u, params) + var/list/topic_response = list() + if(!istext(text_response)) + TGS_ERROR_LOG("Custom command [command] should return a string! Got: \"[text_response]\"") + text_response = null + topic_response[DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE] = text_response + return json_encode(topic_response) + return TopicResponse("Unknown custom chat command: [command]!") diff --git a/code/modules/tgs/v5/undef.dm b/code/modules/tgs/v5/undef.dm new file mode 100644 index 0000000000..34fc481d36 --- /dev/null +++ b/code/modules/tgs/v5/undef.dm @@ -0,0 +1,98 @@ +#undef DMAPI5_PARAM_SERVER_PORT +#undef DMAPI5_PARAM_ACCESS_IDENTIFIER + +#undef DMAPI5_BRIDGE_DATA +#undef DMAPI5_TOPIC_DATA + +#undef DMAPI5_BRIDGE_COMMAND_PORT_UPDATE +#undef DMAPI5_BRIDGE_COMMAND_STARTUP +#undef DMAPI5_BRIDGE_COMMAND_PRIME +#undef DMAPI5_BRIDGE_COMMAND_REBOOT +#undef DMAPI5_BRIDGE_COMMAND_KILL +#undef DMAPI5_BRIDGE_COMMAND_CHAT_SEND + +#undef DMAPI5_PARAMETER_ACCESS_IDENTIFIER +#undef DMAPI5_PARAMETER_CUSTOM_COMMANDS + +#undef DMAPI5_RESPONSE_ERROR_MESSAGE + +#undef DMAPI5_BRIDGE_PARAMETER_COMMAND_TYPE +#undef DMAPI5_BRIDGE_PARAMETER_CURRENT_PORT +#undef DMAPI5_BRIDGE_PARAMETER_VERSION +#undef DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE +#undef DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL + +#undef DMAPI5_BRIDGE_RESPONSE_NEW_PORT +#undef DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION + +#undef DMAPI5_CHAT_MESSAGE_TEXT +#undef DMAPI5_CHAT_MESSAGE_CHANNEL_IDS + +#undef DMAPI5_RUNTIME_INFORMATION_ACCESS_IDENTIFIER +#undef DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION +#undef DMAPI5_RUNTIME_INFORMATION_SERVER_PORT +#undef DMAPI5_RUNTIME_INFORMATION_API_VALIDATE_ONLY +#undef DMAPI5_RUNTIME_INFORMATION_INSTANCE_NAME +#undef DMAPI5_RUNTIME_INFORMATION_REVISION +#undef DMAPI5_RUNTIME_INFORMATION_TEST_MERGES +#undef DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL + +#undef DMAPI5_CHAT_UPDATE_CHANNELS + +#undef DMAPI5_TEST_MERGE_TIME_MERGED +#undef DMAPI5_TEST_MERGE_REVISION +#undef DMAPI5_TEST_MERGE_TITLE_AT_MERGE +#undef DMAPI5_TEST_MERGE_BODY_AT_MERGE +#undef DMAPI5_TEST_MERGE_URL +#undef DMAPI5_TEST_MERGE_AUTHOR +#undef DMAPI5_TEST_MERGE_NUMBER +#undef DMAPI5_TEST_MERGE_PULL_REQUEST_REVISION +#undef DMAPI5_TEST_MERGE_COMMENT + +#undef DMAPI5_CHAT_COMMAND_NAME +#undef DMAPI5_CHAT_COMMAND_PARAMS +#undef DMAPI5_CHAT_COMMAND_USER + +#undef DMAPI5_EVENT_NOTIFICATION_TYPE +#undef DMAPI5_EVENT_NOTIFICATION_PARAMETERS + +#undef DMAPI5_TOPIC_COMMAND_CHAT_COMMAND +#undef DMAPI5_TOPIC_COMMAND_EVENT_NOTIFICATION +#undef DMAPI5_TOPIC_COMMAND_CHANGE_PORT +#undef DMAPI5_TOPIC_COMMAND_CHANGE_REBOOT_STATE +#undef DMAPI5_TOPIC_COMMAND_INSTANCE_RENAMED +#undef DMAPI5_TOPIC_COMMAND_CHAT_CHANNELS_UPDATE +#undef DMAPI5_TOPIC_COMMAND_SERVER_PORT_UPDATE +#undef DMAPI5_TOPIC_COMMAND_HEARTBEAT +#undef DMAPI5_TOPIC_COMMAND_WATCHDOG_REATTACH + +#undef DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE +#undef DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND +#undef DMAPI5_TOPIC_PARAMETER_EVENT_NOTIFICATION +#undef DMAPI5_TOPIC_PARAMETER_NEW_PORT +#undef DMAPI5_TOPIC_PARAMETER_NEW_REBOOT_STATE +#undef DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME +#undef DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE +#undef DMAPI5_TOPIC_PARAMETER_NEW_SERVER_VERSION + +#undef DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE +#undef DMAPI5_TOPIC_RESPONSE_CHAT_RESPONSES + +#undef DMAPI5_REVISION_INFORMATION_COMMIT_SHA +#undef DMAPI5_REVISION_INFORMATION_ORIGIN_COMMIT_SHA + +#undef DMAPI5_CHAT_USER_ID +#undef DMAPI5_CHAT_USER_FRIENDLY_NAME +#undef DMAPI5_CHAT_USER_MENTION +#undef DMAPI5_CHAT_USER_CHANNEL + +#undef DMAPI5_CHAT_CHANNEL_ID +#undef DMAPI5_CHAT_CHANNEL_FRIENDLY_NAME +#undef DMAPI5_CHAT_CHANNEL_CONNECTION_NAME +#undef DMAPI5_CHAT_CHANNEL_IS_ADMIN_CHANNEL +#undef DMAPI5_CHAT_CHANNEL_IS_PRIVATE_CHANNEL +#undef DMAPI5_CHAT_CHANNEL_TAG + +#undef DMAPI5_CUSTOM_CHAT_COMMAND_NAME +#undef DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT +#undef DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY diff --git a/code/modules/tgui/states.dm b/code/modules/tgui/states.dm index b0808cef5e..723e5f90ed 100644 --- a/code/modules/tgui/states.dm +++ b/code/modules/tgui/states.dm @@ -99,7 +99,7 @@ * return UI_state The state of the UI. **/ /mob/living/proc/shared_living_ui_distance(atom/movable/src_object) - if(!(src_object in view(src))) // If the object is obscured, close it. + if(!(src_object in fov_view())) // If the object is obscured, close it. return UI_CLOSE var/dist = get_dist(src_object, src) diff --git a/code/modules/tgui/states/physical.dm b/code/modules/tgui/states/physical.dm index a4cea7c7c2..3b13dc5b3d 100644 --- a/code/modules/tgui/states/physical.dm +++ b/code/modules/tgui/states/physical.dm @@ -2,7 +2,7 @@ * tgui state: physical_state * * Short-circuits the default state to only check physical distance. - **/ + */ GLOBAL_DATUM_INIT(physical_state, /datum/ui_state/physical, new) @@ -22,3 +22,28 @@ GLOBAL_DATUM_INIT(physical_state, /datum/ui_state/physical, new) /mob/living/silicon/ai/physical_can_use_topic(src_object) return UI_UPDATE // AIs are not physical. + +/** + * tgui state: physical_obscured_state + * + * Short-circuits the default state to only check physical distance, being in view doesn't matter + */ + +GLOBAL_DATUM_INIT(physical_obscured_state, /datum/ui_state/physical_obscured_state, new) + +/datum/ui_state/physical_obscured_state/can_use_topic(src_object, mob/user) + . = user.shared_ui_interaction(src_object) + if(. > UI_CLOSE) + return min(., user.physical_obscured_can_use_topic(src_object)) + +/mob/proc/physical_obscured_can_use_topic(src_object) + return UI_CLOSE + +/mob/living/physical_obscured_can_use_topic(src_object) + return shared_living_ui_distance(src_object) + +/mob/living/silicon/physical_obscured_can_use_topic(src_object) + return max(UI_UPDATE, shared_living_ui_distance(src_object)) // Silicons can always see. + +/mob/living/silicon/ai/physical_obscured_can_use_topic(src_object) + return UI_UPDATE // AIs are not physical. \ No newline at end of file diff --git a/code/modules/uplink/uplink_items/uplink_ammo.dm b/code/modules/uplink/uplink_items/uplink_ammo.dm index 4a7e1f146e..ce74773f8d 100644 --- a/code/modules/uplink/uplink_items/uplink_ammo.dm +++ b/code/modules/uplink/uplink_items/uplink_ammo.dm @@ -189,6 +189,13 @@ cost = 4 include_modes = list(/datum/game_mode/nuclear) +/datum/uplink_item/ammo/machinegun/match + name = "7.12x82mm (Match) Box Magazine" + desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; you didn't know there was a demand for match grade \ + precision bullet hose ammo, but these rounds are finely tuned and perfect for ricocheting off walls all fancy-like." + item = /obj/item/ammo_box/magazine/mm712x82/match + cost = 10 + /datum/uplink_item/ammo/machinegun cost = 6 surplus = 0 diff --git a/code/modules/uplink/uplink_items/uplink_bundles.dm b/code/modules/uplink/uplink_items/uplink_bundles.dm index 321b9121bc..d40e2fcbda 100644 --- a/code/modules/uplink/uplink_items/uplink_bundles.dm +++ b/code/modules/uplink/uplink_items/uplink_bundles.dm @@ -193,6 +193,8 @@ var/datum/uplink_item/I = uplink_items[category][item] if(src == I || !I.item) continue + if(istype(I, /datum/uplink_item/bundles_TC/reroll)) //oops! + continue if(U.telecrystals < I.cost) continue if(I.limited_stock == 0) diff --git a/code/modules/uplink/uplink_items/uplink_dangerous.dm b/code/modules/uplink/uplink_items/uplink_dangerous.dm index 99c9c505c0..7d96390115 100644 --- a/code/modules/uplink/uplink_items/uplink_dangerous.dm +++ b/code/modules/uplink/uplink_items/uplink_dangerous.dm @@ -109,7 +109,7 @@ name = "Double-Bladed Energy Sword" desc = "The double-bladed energy sword does slightly more damage than a standard energy sword and will deflect \ all energy projectiles, but requires two hands to wield." - item = /obj/item/twohanded/dualsaber + item = /obj/item/dualsaber player_minimum = 25 cost = 16 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) diff --git a/code/modules/uplink/uplink_items/uplink_devices.dm b/code/modules/uplink/uplink_items/uplink_devices.dm index d4fa226a90..df6373b8de 100644 --- a/code/modules/uplink/uplink_items/uplink_devices.dm +++ b/code/modules/uplink/uplink_items/uplink_devices.dm @@ -100,6 +100,12 @@ cost = 1 exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/device_tools/ammo_pouch + name = "Ammo Pouch" + desc = "A small yet large enough pouch that can fit in your pocket, and has room for three magazines." + item = /obj/item/storage/bag/ammo + cost = 1 + /datum/uplink_item/device_tools/fakenucleardisk name = "Decoy Nuclear Authentication Disk" desc = "It's just a normal disk. Visually it's identical to the real deal, but it won't hold up under closer scrutiny by the Captain. \ @@ -280,4 +286,6 @@ item = /obj/item/suspiciousphone cost = 7 restricted = TRUE + limited_stock = 1 */ + diff --git a/code/modules/vehicles/atv.dm b/code/modules/vehicles/atv.dm index eb6a9a92e2..d125453e5a 100644 --- a/code/modules/vehicles/atv.dm +++ b/code/modules/vehicles/atv.dm @@ -60,3 +60,23 @@ turret.pixel_x = 12 turret.pixel_y = 4 turret.layer = OBJ_LAYER + +/obj/vehicle/ridden/atv/snowmobile + name = "snowmobile" + desc = "a tracked vehicle designed for use in the snow, it looks like it would have difficulty moving elsewhere, however." + icon_state = "snowmobile" + +/obj/vehicle/ridden/atv/snowmobile/Moved() + . = ..() + var/static/list/snow_typecache = typecacheof(list(/turf/open/floor/plating/asteroid/snow/icemoon, /turf/open/floor/plating/snowed/smoothed/icemoon, /turf/open/floor/plating/snowed, /turf/open/floor/plating/asteroid/snow)) + var/datum/component/riding/E = LoadComponent(/datum/component/riding) + if(snow_typecache[loc.type]) + E.vehicle_move_delay = 1 + else + E.vehicle_move_delay = 2 + +/obj/vehicle/ridden/atv/snowmobile/snowcurity + name = "security snowmobile" + desc = "for when you want to look like even more of a tool than riding a secway." + icon_state = "snowcurity" + key_type = /obj/item/key/security diff --git a/code/modules/vehicles/bicycle.dm b/code/modules/vehicles/bicycle.dm index 84e0fcbefc..3784f4d459 100644 --- a/code/modules/vehicles/bicycle.dm +++ b/code/modules/vehicles/bicycle.dm @@ -24,10 +24,12 @@ buckled_mob.stop_sound_channel(CHANNEL_BICYCLE) . =..() -/obj/vehicle/ridden/bicycle/tesla_act() // :::^^^))) +/obj/vehicle/ridden/bicycle/zap_act(zap_str, zap_flags, shocked_targets) // :::^^^))) + //This didn't work for 3 years because none ever tested it I hate life name = "fried bicycle" desc = "Well spent." color = rgb(63, 23, 4) can_buckle = FALSE + . = ..() for(var/m in buckled_mobs) unbuckle_mob(m,1) diff --git a/code/modules/vehicles/cars/car.dm b/code/modules/vehicles/cars/car.dm index dc6cccb9a9..d45cb8d26f 100644 --- a/code/modules/vehicles/cars/car.dm +++ b/code/modules/vehicles/cars/car.dm @@ -49,12 +49,12 @@ mob_exit(M, silent) return TRUE -/obj/vehicle/sealed/car/attacked_by(obj/item/I, mob/living/user) +/obj/vehicle/sealed/car/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1) if(!I.force) - return + return FALSE if(occupants[user]) to_chat(user, "Your attack bounces off of the car's padded interior.") - return + return FALSE return ..() /obj/vehicle/sealed/car/attack_hand(mob/living/user) @@ -85,4 +85,4 @@ if(!silent) M.visible_message("[M] is forced into \the [src]!") M.forceMove(src) - add_occupant(M, VEHICLE_CONTROL_KIDNAPPED) \ No newline at end of file + add_occupant(M, VEHICLE_CONTROL_KIDNAPPED) diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm index 2b9890b863..cd21b61dbe 100644 --- a/code/modules/vehicles/cars/clowncar.dm +++ b/code/modules/vehicles/cars/clowncar.dm @@ -36,7 +36,7 @@ visible_message("[src] spews out a ton of space lube!") new /obj/effect/particle_effect/foam(loc) //YEET -/obj/vehicle/sealed/car/clowncar/attacked_by(obj/item/I, mob/living/user) +/obj/vehicle/sealed/car/clowncar/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1) . = ..() if(istype(I, /obj/item/reagent_containers/food/snacks/grown/banana)) var/obj/item/reagent_containers/food/snacks/grown/banana/banana = I @@ -129,4 +129,4 @@ icon_state = initial(icon_state) /obj/vehicle/sealed/car/clowncar/proc/StopDroppingOil() - droppingoil = FALSE \ No newline at end of file + droppingoil = FALSE diff --git a/code/modules/vehicles/ridden.dm b/code/modules/vehicles/ridden.dm index 4f3970dd37..f71d9367d3 100644 --- a/code/modules/vehicles/ridden.dm +++ b/code/modules/vehicles/ridden.dm @@ -77,3 +77,7 @@ if(!force && occupant_amount() >= max_occupants) return FALSE return ..() + +/obj/vehicle/ridden/zap_act(zap_str, zap_flags, shocked_targets) + zap_buckle_check(zap_str) + . = ..() diff --git a/code/modules/vehicles/sealed.dm b/code/modules/vehicles/sealed.dm index fc81e2ec00..edaab8b982 100644 --- a/code/modules/vehicles/sealed.dm +++ b/code/modules/vehicles/sealed.dm @@ -1,5 +1,6 @@ /obj/vehicle/sealed var/enter_delay = 20 + flags_1 = BLOCK_FACE_ATOM_1 /obj/vehicle/sealed/generate_actions() . = ..() @@ -51,7 +52,7 @@ if(randomstep) var/turf/target_turf = get_step(exit_location(M), pick(GLOB.cardinals)) M.throw_at(target_turf, 5, 10) - + if(!silent) M.visible_message("[M] drops out of \the [src]!") return TRUE @@ -102,7 +103,13 @@ if(iscarbon(i)) var/mob/living/carbon/C = i C.DefaultCombatKnockdown(40) - - + + /obj/vehicle/sealed/AllowDrop() return FALSE + +/obj/vehicle/sealed/setDir(newdir) + . = ..() + for(var/k in occupants) + var/mob/M = k + M.setDir(newdir) diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index 06a3f6ae1d..7adf0512de 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -105,6 +105,12 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C ///Last world tick we sent a slogan message out var/last_slogan var/last_shopper + var/tilted = FALSE + var/tiltable = TRUE + var/squish_damage = 75 + var/forcecrit = 0 + var/num_shards = 7 + var/list/pinned_mobs = list() ///How many ticks until we can send another var/slogan_delay = 6000 ///Icon when vending an item to the user @@ -299,6 +305,7 @@ GLOBAL_LIST_EMPTY(vending_products) R.amount = amount R.max_amount = amount R.custom_price = initial(temp.custom_price) + R.custom_premium_price = initial(temp.custom_premium_price) recordlist += R /** * Refill a vending machine from a refill canister @@ -371,6 +378,7 @@ GLOBAL_LIST_EMPTY(vending_products) ..() if(panel_open) default_unfasten_wrench(user, I, time = 60) + unbuckle_all_mobs(TRUE) return TRUE /obj/machinery/vending/screwdriver_act(mob/living/user, obj/item/I) @@ -434,6 +442,133 @@ GLOBAL_LIST_EMPTY(vending_products) updateUsrDialog() else . = ..() + if(tiltable && !tilted && I.force) + switch(rand(1, 100)) + if(1 to 5) + freebie(user, 3) + if(6 to 15) + freebie(user, 2) + if(16 to 25) + freebie(user, 1) + if(76 to 90) + tilt(user) + if(91 to 100) + tilt(user, crit=TRUE) + +/obj/machinery/vending/proc/freebie(mob/fatty, freebies) + visible_message("[src] yields [freebies > 1 ? "several free goodies" : "a free goody"]!") + + for(var/i in 1 to freebies) + playsound(src, 'sound/machines/machine_vend.ogg', 50, TRUE, extrarange = -3) + for(var/datum/data/vending_product/R in shuffle(product_records)) + + if(R.amount <= 0) //Try to use a record that actually has something to dump. + continue + var/dump_path = R.product_path + if(!dump_path) + continue + + R.amount-- + new dump_path(get_turf(src)) + break + +/obj/machinery/vending/proc/tilt(mob/fatty, crit=FALSE) + visible_message("[src] tips over!") + tilted = TRUE + layer = ABOVE_MOB_LAYER + + var/crit_case + if(crit) + crit_case = rand(1,5) + + if(forcecrit) + crit_case = forcecrit + + if(in_range(fatty, src)) + for(var/mob/living/L in get_turf(fatty)) + var/mob/living/carbon/C = L + + if(istype(C)) + var/crit_rebate = 0 // lessen the normal damage we deal for some of the crits + + if(crit_case != 5) // the head asplode case has its own description + C.visible_message("[C] is crushed by [src]!", \ + "You are crushed by [src]!") + + switch(crit_case) // only carbons can have the fun crits + if(1) // shatter their legs and bleed 'em + crit_rebate = 60 + C.bleed(150) + var/obj/item/bodypart/l_leg/l = C.get_bodypart(BODY_ZONE_L_LEG) + if(l) + l.receive_damage(brute=200, updating_health=TRUE) + var/obj/item/bodypart/r_leg/r = C.get_bodypart(BODY_ZONE_R_LEG) + if(r) + r.receive_damage(brute=200, updating_health=TRUE) + if(l || r) + C.visible_message("[C]'s legs shatter with a sickening crunch!", \ + "Your legs shatter with a sickening crunch!") + if(2) // pin them beneath the machine until someone untilts it + forceMove(get_turf(C)) + buckle_mob(C, force=TRUE) + C.visible_message("[C] is pinned underneath [src]!", \ + "You are pinned down by [src]!") + if(3) // glass candy + crit_rebate = 50 + for(var/i = 0, i < num_shards, i++) + var/obj/item/shard/shard = new /obj/item/shard(get_turf(C)) + shard.embedding = list(embed_chance = 100, ignore_throwspeed_threshold = TRUE, impact_pain_mult=1, pain_chance=5) + shard.updateEmbedding() + C.hitby(shard, skipcatch = TRUE, hitpush = FALSE) + shard.embedding = list() + shard.updateEmbedding() + if(4) // paralyze this binch + // the new paraplegic gets like 4 lines of losing their legs so skip them + visible_message("[C]'s spinal cord is obliterated with a sickening crunch!", ignored_mobs = list(C)) + C.gain_trauma(/datum/brain_trauma/severe/paralysis/spinesnapped) + if(5) // skull squish! + var/obj/item/bodypart/head/O = C.get_bodypart(BODY_ZONE_HEAD) + if(O) + C.visible_message("[O] explodes in a shower of gore beneath [src]!", \ + "Oh f-") + O.dismember() + O.drop_organs() + qdel(O) + new /obj/effect/gibspawner/human/bodypartless(get_turf(C)) + + C.apply_damage(max(0, squish_damage - crit_rebate), forced=TRUE, spread_damage=TRUE) + C.AddElement(/datum/element/squish, 18 SECONDS) + else + L.visible_message("[L] is crushed by [src]!", \ + "You are crushed by [src]!") + L.apply_damage(squish_damage, forced=TRUE) + if(crit_case) + L.apply_damage(squish_damage, forced=TRUE) + + L.Paralyze(60) + L.emote("scream") + playsound(L, 'sound/effects/blobattack.ogg', 40, TRUE) + playsound(L, 'sound/effects/splat.ogg', 50, TRUE) + + var/matrix/M = matrix() + M.Turn(pick(90, 270)) + transform = M + + if(get_turf(fatty) != get_turf(src)) + throw_at(get_turf(fatty), 1, 1, spin=FALSE) + +/obj/machinery/vending/proc/untilt(mob/user) + user.visible_message("[user] rights [src].", \ + "You right [src].") + + unbuckle_all_mobs(TRUE) + + tilted = FALSE + layer = initial(layer) + + var/matrix/M = matrix() + M.Turn(0) + transform = M /obj/machinery/vending/proc/loadingAttempt(obj/item/I, mob/user) . = TRUE @@ -446,6 +581,12 @@ GLOBAL_LIST_EMPTY(vending_products) to_chat(user, "You insert [I] into [src]'s input compartment.") loaded_items++ + +/obj/machinery/vending/unbuckle_mob(mob/living/buckled_mob, force=FALSE) + if(!force) + return + . = ..() + /** * Is the passed in user allowed to load this vending machines compartments * @@ -510,6 +651,11 @@ GLOBAL_LIST_EMPTY(vending_products) if(seconds_electrified && !(stat & NOPOWER)) if(shock(user, 100)) return + if(tilted && !user.buckled && !isAI(user)) + to_chat(user, "You begin righting [src].") + if(do_after(user, 50, target=src)) + untilt(user) + return return ..() /obj/machinery/vending/ui_base_html(html) @@ -577,12 +723,13 @@ GLOBAL_LIST_EMPTY(vending_products) if(cost_mult != 1) .["cost_mult"] = cost_mult if(cost_mult < 1) - .["cost_text"] = " [(1 - cost_mult) * 100]% OFF" + .["cost_text"] = " ([(1 - cost_mult) * 100]% OFF)" else - .["cost_text"] = " [(cost_mult - 1) * 100]% EXTRA" + .["cost_text"] = " ([(cost_mult - 1) * 100]% EXTRA)" .["stock"] = list() for (var/datum/data/vending_product/R in product_records + coin_records + hidden_records) .["stock"][R.name] = R.amount + . .["extended_inventory"] = extended_inventory /obj/machinery/vending/ui_act(action, params) @@ -605,9 +752,7 @@ GLOBAL_LIST_EMPTY(vending_products) if(!R || !istype(R) || !R.product_path) vend_ready = TRUE return - var/price_to_use = default_price - if(R.custom_price) - price_to_use = R.custom_price + var/price_to_use = R.custom_price || default_price if(R in hidden_records) if(!extended_inventory) vend_ready = TRUE @@ -634,9 +779,9 @@ GLOBAL_LIST_EMPTY(vending_products) vend_ready = TRUE return var/datum/bank_account/account = C.registered_account - if(coin_records.Find(R) || hidden_records.Find(R)) - price_to_use = R.custom_premium_price ? R.custom_premium_price : extra_price - else + if(coin_records.Find(R)) + price_to_use = R.custom_premium_price || extra_price + else if(!hidden_records.Find(R)) price_to_use = round(price_to_use * get_best_discount(C)) if(price_to_use && !account.adjust_money(-price_to_use)) say("You do not possess the funds to purchase [R.name].") @@ -922,7 +1067,7 @@ GLOBAL_LIST_EMPTY(vending_products) C = H.get_idcard(TRUE) if(C?.registered_account) private_a = C.registered_account - say("\The [src] has been linked to [C].") + say("[src] has been linked to [C].") if(compartmentLoadAccessCheck(user)) if(istype(I, /obj/item/pen)) diff --git a/code/modules/vending/assist.dm b/code/modules/vending/assist.dm index 25dbee66bc..29d1e760d4 100644 --- a/code/modules/vending/assist.dm +++ b/code/modules/vending/assist.dm @@ -19,9 +19,9 @@ armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) refill_canister = /obj/item/vending_refill/assist resistance_flags = FIRE_PROOF - default_price = 50 - extra_price = 100 + default_price = PRICE_REALLY_CHEAP + extra_price = PRICE_ALMOST_CHEAP payment_department = NO_FREEBIES /obj/item/vending_refill/assist - icon_state = "refill_engi" \ No newline at end of file + icon_state = "refill_engi" diff --git a/code/modules/vending/autodrobe.dm b/code/modules/vending/autodrobe.dm index 216b95145d..9dfb4c76a0 100644 --- a/code/modules/vending/autodrobe.dm +++ b/code/modules/vending/autodrobe.dm @@ -139,8 +139,8 @@ /obj/item/clothing/under/costume/drfreeze = 1) refill_canister = /obj/item/vending_refill/autodrobe - default_price = 180 - extra_price = 360 + default_price = PRICE_ALMOST_CHEAP + extra_price = PRICE_ALMOST_EXPENSIVE payment_department = ACCOUNT_SRV /obj/machinery/vending/autodrobe/Initialize() diff --git a/code/modules/vending/boozeomat.dm b/code/modules/vending/boozeomat.dm index e24813c2e9..97efbecb77 100644 --- a/code/modules/vending/boozeomat.dm +++ b/code/modules/vending/boozeomat.dm @@ -40,8 +40,8 @@ product_slogans = "I hope nobody asks me for a bloody cup o' tea...;Alcohol is humanity's friend. Would you abandon a friend?;Quite delighted to serve you!;Is nobody thirsty on this station?" product_ads = "Drink up!;Booze is good for you!;Alcohol is humanity's best friend.;Quite delighted to serve you!;Care for a nice, cold beer?;Nothing cures you like booze!;Have a sip!;Have a drink!;Have a beer!;Beer is good for you!;Only the finest alcohol!;Best quality booze since 2053!;Award-winning wine!;Maximum alcohol!;Man loves beer.;A toast for progress!" refill_canister = /obj/item/vending_refill/boozeomat - default_price = 120 - extra_price = 100 + default_price = PRICE_ALMOST_CHEAP + extra_price = PRICE_EXPENSIVE payment_department = ACCOUNT_SRV cost_multiplier_per_dept = list(ACCOUNT_SRV = 0) diff --git a/code/modules/vending/cartridge.dm b/code/modules/vending/cartridge.dm index 79380ca1f3..beaf6bb873 100644 --- a/code/modules/vending/cartridge.dm +++ b/code/modules/vending/cartridge.dm @@ -10,16 +10,19 @@ /obj/item/cartridge/security = 10, /obj/item/cartridge/janitor = 10, /obj/item/cartridge/signal/toxins = 10, - /obj/item/pda/heads = 10, - /obj/item/cartridge/captain = 3, - /obj/item/cartridge/quartermaster = 10) + /obj/item/pda/heads = 10) + premium = list(/obj/item/cartridge/captain = 2, + /obj/item/cartridge/quartermaster = 2) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) refill_canister = /obj/item/vending_refill/cart resistance_flags = FIRE_PROOF - default_price = 250 - extra_price = 500 + default_price = PRICE_ALMOST_EXPENSIVE + extra_price = PRICE_ALMOST_ONE_GRAND payment_department = ACCOUNT_SRV - cost_multiplier_per_dept = list(ACCOUNT_SRV = 0) + +/obj/machinery/vending/cart/Initialize() + . = ..() + cost_multiplier_per_dept = list("[ACCESS_CHANGE_IDS]" = 0) /obj/item/vending_refill/cart icon_state = "refill_pda" diff --git a/code/modules/vending/cigarette.dm b/code/modules/vending/cigarette.dm index 6f535b2c6d..0f26abde1d 100644 --- a/code/modules/vending/cigarette.dm +++ b/code/modules/vending/cigarette.dm @@ -20,8 +20,8 @@ /obj/item/storage/fancy/cigarettes/cigars/havana = 1, /obj/item/storage/fancy/cigarettes/cigars/cohiba = 1) refill_canister = /obj/item/vending_refill/cigarette - default_price = 75 - extra_price = 250 + default_price = PRICE_ALMOST_CHEAP + extra_price = PRICE_ABOVE_NORMAL payment_department = ACCOUNT_SRV /obj/machinery/vending/cigarette/syndicate diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm index 2155d0fe8b..963fff9368 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -173,8 +173,8 @@ /obj/item/clothing/suit/jacket/letterman_nanotrasen = 5, /obj/item/clothing/suit/hooded/wintercoat/polychromic = 5) refill_canister = /obj/item/vending_refill/clothing - default_price = 60 - extra_price = 120 + default_price = PRICE_CHEAP + extra_price = PRICE_BELOW_NORMAL payment_department = NO_FREEBIES /obj/machinery/vending/clothing/canLoadItem(obj/item/I,mob/user) diff --git a/code/modules/vending/coffee.dm b/code/modules/vending/coffee.dm index f4a8b2503e..ab64756868 100644 --- a/code/modules/vending/coffee.dm +++ b/code/modules/vending/coffee.dm @@ -8,14 +8,13 @@ /obj/item/reagent_containers/food/drinks/mug/tea = 25, /obj/item/reagent_containers/food/drinks/mug/coco = 25) contraband = list(/obj/item/reagent_containers/food/drinks/ice = 12) - premium = list(/obj/item/reagent_containers/food/snacks/chocolatebar = 3, - /obj/item/reagent_containers/food/condiment/milk = 2, + premium = list(/obj/item/reagent_containers/food/condiment/milk = 2, /obj/item/reagent_containers/food/drinks/bottle/cream = 2, /obj/item/reagent_containers/food/condiment/sugar = 1) refill_canister = /obj/item/vending_refill/coffee - default_price = 45 - extra_price = 150 + default_price = PRICE_REALLY_CHEAP + extra_price = PRICE_PRETTY_CHEAP payment_department = ACCOUNT_SRV /obj/item/vending_refill/coffee diff --git a/code/modules/vending/cola.dm b/code/modules/vending/cola.dm index 5bbd0c3d02..bb5b8ef288 100644 --- a/code/modules/vending/cola.dm +++ b/code/modules/vending/cola.dm @@ -15,14 +15,15 @@ /obj/item/reagent_containers/food/drinks/soda_cans/sol_dry = 10, /obj/item/reagent_containers/glass/beaker/waterbottle = 10) contraband = list(/obj/item/reagent_containers/food/drinks/soda_cans/thirteenloko = 6, - /obj/item/reagent_containers/food/drinks/soda_cans/shamblers = 6) + /obj/item/reagent_containers/food/drinks/soda_cans/shamblers = 6, + /obj/item/reagent_containers/glass/beaker/waterbottle/wataur = 2) premium = list(/obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola = 1, /obj/item/reagent_containers/food/drinks/soda_cans/air = 1, /obj/item/reagent_containers/food/drinks/soda_cans/grey_bull = 1, /obj/item/reagent_containers/food/drinks/soda_cans/monkey_energy = 1) refill_canister = /obj/item/vending_refill/cola - default_price = 45 - extra_price = 200 + default_price = PRICE_CHEAP_AS_FREE + extra_price = PRICE_ABOVE_NORMAL payment_department = ACCOUNT_SRV /obj/item/vending_refill/cola diff --git a/code/modules/vending/dinnerware.dm b/code/modules/vending/dinnerware.dm index e780104b1e..b78af9c46b 100644 --- a/code/modules/vending/dinnerware.dm +++ b/code/modules/vending/dinnerware.dm @@ -20,19 +20,17 @@ /obj/item/reagent_containers/food/condiment/saltshaker = 5, /obj/item/reagent_containers/food/condiment/peppermill = 5) contraband = list( - /obj/item/reagent_containers/food/snacks/cube/monkey= 1, /obj/item/kitchen/knife/butcher = 2, /obj/item/reagent_containers/syringe = 3) premium = list( - /obj/item/reagent_containers/food/condiment/enzyme = 1, - /obj/item/reagent_containers/glass/bottle/cryoxadone = 2) // Bartender can literally make this with upgraded parts, or it gets stolen from medical. + /obj/item/reagent_containers/food/condiment/enzyme = 1) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) refill_canister = /obj/item/vending_refill/dinnerware resistance_flags = FIRE_PROOF - default_price = 50 - extra_price = 250 + default_price = PRICE_REALLY_CHEAP + extra_price = PRICE_ALMOST_EXPENSIVE payment_department = ACCOUNT_SRV cost_multiplier_per_dept = list(ACCOUNT_SRV = 0) /obj/item/vending_refill/dinnerware - icon_state = "refill_cook" \ No newline at end of file + icon_state = "refill_cook" diff --git a/code/modules/vending/engineering.dm b/code/modules/vending/engineering.dm index 36bacd4259..ef4edd6b67 100644 --- a/code/modules/vending/engineering.dm +++ b/code/modules/vending/engineering.dm @@ -28,7 +28,7 @@ /obj/item/stock_parts/manipulator = 5) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF - default_price = 450 - extra_price = 500 + default_price = PRICE_NORMAL + extra_price = PRICE_NORMAL payment_department = ACCOUNT_ENG cost_multiplier_per_dept = list(ACCOUNT_ENG = 0) diff --git a/code/modules/vending/engivend.dm b/code/modules/vending/engivend.dm index ca45483ff5..965ebddd15 100644 --- a/code/modules/vending/engivend.dm +++ b/code/modules/vending/engivend.dm @@ -24,15 +24,16 @@ ) premium = list(/obj/item/storage/belt/utility = 3, /obj/item/storage/box/smart_metal_foam = 3, - /obj/item/rcd_ammo/large = 5 + /obj/item/rcd_ammo/large = 5, + /obj/item/storage/bag/material = 3 ) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) refill_canister = /obj/item/vending_refill/engivend resistance_flags = FIRE_PROOF - default_price = 450 - extra_price = 500 + default_price = PRICE_ALMOST_EXPENSIVE + extra_price = PRICE_ABOVE_EXPENSIVE payment_department = ACCOUNT_ENG cost_multiplier_per_dept = list(ACCOUNT_ENG = 0) /obj/item/vending_refill/engivend - icon_state = "refill_engi" \ No newline at end of file + icon_state = "refill_engi" diff --git a/code/modules/vending/games.dm b/code/modules/vending/games.dm index efd9aad673..7bed27b0bd 100644 --- a/code/modules/vending/games.dm +++ b/code/modules/vending/games.dm @@ -6,13 +6,14 @@ products = list(/obj/item/toy/cards/deck = 5, /obj/item/storage/pill_bottle/dice = 10, /obj/item/toy/cards/deck/cas = 3, - /obj/item/toy/cards/deck/cas/black = 3) + /obj/item/toy/cards/deck/cas/black = 3, + /obj/item/toy/cards/deck/unum = 3) contraband = list(/obj/item/dice/fudge = 9) premium = list(/obj/item/melee/skateboard/pro = 3, /obj/item/melee/skateboard/hoverboard = 1) refill_canister = /obj/item/vending_refill/games - default_price = 50 - extra_price = 250 + default_price = PRICE_CHEAP + extra_price = PRICE_ALMOST_EXPENSIVE payment_department = ACCOUNT_SRV cost_multiplier_per_dept = list(ACCOUNT_SRV = 0) diff --git a/code/modules/vending/kinkmate.dm b/code/modules/vending/kinkmate.dm index 37f4e380ce..c416d87439 100644 --- a/code/modules/vending/kinkmate.dm +++ b/code/modules/vending/kinkmate.dm @@ -20,7 +20,11 @@ /obj/item/clothing/under/misc/gear_harness = 10, /obj/item/dildo/custom = 5, /obj/item/electropack/shockcollar = 3, - /obj/item/assembly/signaler = 3 + /obj/item/assembly/signaler = 3, + /obj/item/clothing/under/shorts/polychromic/pantsu = 3, + /obj/item/clothing/under/misc/poly_bottomless = 3, + /obj/item/clothing/under/misc/poly_tanktop = 3, + /obj/item/clothing/under/misc/poly_tanktop/female = 3 ) contraband = list( /obj/item/clothing/neck/petcollar/locked = 2, @@ -40,8 +44,8 @@ /obj/item/clothing/under/pants/chaps = 5 ) refill_canister = /obj/item/vending_refill/kink - default_price = 80 - extra_price = 250 + default_price = PRICE_CHEAP + extra_price = PRICE_BELOW_NORMAL payment_department = NO_FREEBIES /obj/item/vending_refill/kink diff --git a/code/modules/vending/liberation.dm b/code/modules/vending/liberation.dm index c75d313c52..81afab3a70 100644 --- a/code/modules/vending/liberation.dm +++ b/code/modules/vending/liberation.dm @@ -28,6 +28,6 @@ /obj/item/reagent_containers/food/snacks/burger/superbite = 3) //U S A armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF - default_price = 150 - extra_price = 500 + default_price = PRICE_ABOVE_NORMAL + extra_price = PRICE_ABOVE_EXPENSIVE payment_department = ACCOUNT_SEC diff --git a/code/modules/vending/liberation_toy.dm b/code/modules/vending/liberation_toy.dm index 8ed4cd85ae..9093d55b0d 100644 --- a/code/modules/vending/liberation_toy.dm +++ b/code/modules/vending/liberation_toy.dm @@ -20,13 +20,13 @@ /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted/riot = 10, /obj/item/ammo_box/foambox/riot = 20, /obj/item/toy/katana = 10, - /obj/item/twohanded/dualsaber/toy = 5, + /obj/item/dualsaber/toy = 5, /obj/item/toy/cards/deck/syndicate = 10) //Gambling and it hurts, making it a +18 item armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF refill_canister = /obj/item/vending_refill/donksoft - default_price = 150 - extra_price = 300 + default_price = PRICE_ABOVE_NORMAL + extra_price = PRICE_EXPENSIVE payment_department = NO_FREEBIES /obj/machinery/vending/toyliberationstation/Initialize() diff --git a/code/modules/vending/magivend.dm b/code/modules/vending/magivend.dm index 525b9f1af2..9dcd77e4ab 100644 --- a/code/modules/vending/magivend.dm +++ b/code/modules/vending/magivend.dm @@ -16,6 +16,6 @@ contraband = list(/obj/item/reagent_containers/glass/bottle/wizarditis = 1) //No one can get to the machine to hack it anyways; for the lulz - Microwave armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50, "magic" = 100) resistance_flags = FIRE_PROOF - default_price = 250 - extra_price = 500 + default_price = PRICE_EXPENSIVE + extra_price = PRICE_ABOVE_EXPENSIVE payment_department = ACCOUNT_SRV diff --git a/code/modules/vending/medical.dm b/code/modules/vending/medical.dm index 797fdabce7..fbd9a10bf2 100644 --- a/code/modules/vending/medical.dm +++ b/code/modules/vending/medical.dm @@ -46,8 +46,8 @@ armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF refill_canister = /obj/item/vending_refill/medical - default_price = 200 - extra_price = 250 + default_price = PRICE_ALMOST_CHEAP + extra_price = PRICE_ABOVE_NORMAL payment_department = ACCOUNT_MED cost_multiplier_per_dept = list(ACCOUNT_MED = 0) diff --git a/code/modules/vending/medical_wall.dm b/code/modules/vending/medical_wall.dm index b51705c7e1..09719e1d56 100644 --- a/code/modules/vending/medical_wall.dm +++ b/code/modules/vending/medical_wall.dm @@ -18,10 +18,11 @@ armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF refill_canister = /obj/item/vending_refill/wallmed - default_price = 0 - extra_price = 100 + default_price = PRICE_FREE + extra_price = PRICE_NORMAL payment_department = ACCOUNT_MED cost_multiplier_per_dept = list(ACCOUNT_MED = 0) + tiltable = FALSE /obj/item/vending_refill/wallmed machine_name = "NanoMed" diff --git a/code/modules/vending/megaseed.dm b/code/modules/vending/megaseed.dm index f8759bd8f4..2eb68aaf4a 100644 --- a/code/modules/vending/megaseed.dm +++ b/code/modules/vending/megaseed.dm @@ -27,6 +27,7 @@ /obj/item/seeds/orange = 3, /obj/item/seeds/peach = 3, /obj/item/seeds/peanutseed = 3, + /obj/item/seeds/peas = 3, /obj/item/seeds/pineapple = 3, /obj/item/seeds/potato = 3, /obj/item/seeds/poppy = 3, @@ -57,8 +58,8 @@ armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) refill_canister = /obj/item/vending_refill/hydroseeds resistance_flags = FIRE_PROOF - default_price = 100 - extra_price = 350 + default_price = PRICE_ALMOST_CHEAP + extra_price = PRICE_NORMAL payment_department = ACCOUNT_SRV cost_multiplier_per_dept = list(ACCOUNT_SRV = 0) diff --git a/code/modules/vending/nutrimax.dm b/code/modules/vending/nutrimax.dm index 95ba4e23e8..40ca06b78b 100644 --- a/code/modules/vending/nutrimax.dm +++ b/code/modules/vending/nutrimax.dm @@ -19,8 +19,8 @@ armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) refill_canister = /obj/item/vending_refill/hydronutrients resistance_flags = FIRE_PROOF - default_price = 100 - extra_price = 250 + default_price = PRICE_REALLY_CHEAP + extra_price = PRICE_CHEAP payment_department = ACCOUNT_SRV cost_multiplier_per_dept = list(ACCOUNT_SRV = 0) diff --git a/code/modules/vending/plasmaresearch.dm b/code/modules/vending/plasmaresearch.dm index 410154fa20..bb16570ab3 100644 --- a/code/modules/vending/plasmaresearch.dm +++ b/code/modules/vending/plasmaresearch.dm @@ -11,7 +11,7 @@ /obj/item/assembly/prox_sensor = 6, /obj/item/assembly/igniter = 6) contraband = list(/obj/item/assembly/health = 3) - default_price = 400 - extra_price = 600 + default_price = PRICE_EXPENSIVE + extra_price = PRICE_REALLY_EXPENSIVE payment_department = ACCOUNT_SCI cost_multiplier_per_dept = list(ACCOUNT_SCI = 0) diff --git a/code/modules/vending/robotics.dm b/code/modules/vending/robotics.dm index 3ad7134498..88f65506a6 100644 --- a/code/modules/vending/robotics.dm +++ b/code/modules/vending/robotics.dm @@ -20,6 +20,6 @@ /obj/item/crowbar = 5) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF - default_price = 600 + default_price = PRICE_EXPENSIVE payment_department = ACCOUNT_SCI cost_multiplier_per_dept = list(ACCOUNT_SCI = 0) diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm index 284e957864..8ad4b0568c 100644 --- a/code/modules/vending/security.dm +++ b/code/modules/vending/security.dm @@ -21,12 +21,14 @@ /obj/item/clothing/suit/armor/vest/blueshirt = 1, /obj/item/clothing/under/rank/security/officer/blueshirt = 1, /obj/item/clothing/gloves/tackler = 5, - /obj/item/ssword_kit = 1) + /obj/item/grenade/stingbang = 1, + /obj/item/ssword_kit = 1, + /obj/item/storage/bag/ammo = 3) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF refill_canister = /obj/item/vending_refill/security - default_price = 650 - extra_price = 700 + default_price = PRICE_ALMOST_EXPENSIVE + extra_price = PRICE_REALLY_EXPENSIVE payment_department = ACCOUNT_SEC cost_multiplier_per_dept = list(ACCOUNT_SEC = 0) diff --git a/code/modules/vending/snack.dm b/code/modules/vending/snack.dm index e051d6135b..7aef2b627c 100644 --- a/code/modules/vending/snack.dm +++ b/code/modules/vending/snack.dm @@ -27,8 +27,8 @@ refill_canister = /obj/item/vending_refill/snack canload_access_list = list(ACCESS_KITCHEN) - default_price = 60 - extra_price = 160 + default_price = PRICE_REALLY_CHEAP + extra_price = PRICE_ALMOST_CHEAP payment_department = ACCOUNT_SRV cost_multiplier_per_dept = list(ACCOUNT_SRV = 0) input_display_header = "Chef's Food Selection" diff --git a/code/modules/vending/sovietsoda.dm b/code/modules/vending/sovietsoda.dm index d820794660..88aba484e1 100644 --- a/code/modules/vending/sovietsoda.dm +++ b/code/modules/vending/sovietsoda.dm @@ -7,6 +7,6 @@ contraband = list(/obj/item/reagent_containers/food/drinks/drinkingglass/filled/cola = 20) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF - default_price = 1 - extra_price = 1 + default_price = PRICE_FREE + extra_price = PRICE_FREE payment_department = NO_FREEBIES diff --git a/code/modules/vending/sovietvend.dm b/code/modules/vending/sovietvend.dm index daf64d5f3e..71547e6198 100644 --- a/code/modules/vending/sovietvend.dm +++ b/code/modules/vending/sovietvend.dm @@ -23,8 +23,8 @@ premium = list() refill_canister = /obj/item/vending_refill/soviet - default_price = 1 - extra_price = 1 + default_price = PRICE_FREE + extra_price = PRICE_FREE payment_department = NO_FREEBIES /obj/item/vending_refill/soviet diff --git a/code/modules/vending/sustenance.dm b/code/modules/vending/sustenance.dm index 55e6b02e8e..2dcc1e99f7 100644 --- a/code/modules/vending/sustenance.dm +++ b/code/modules/vending/sustenance.dm @@ -5,7 +5,7 @@ product_ads = "Sufficiently healthy.;Efficiently produced tofu!;Mmm! So good!;Have a meal.;You need food to live!;Have some more candy corn!;Try our new ice cups!" icon_state = "sustenance" products = list(/obj/item/reagent_containers/food/snacks/tofu = 24, - /obj/item/reagent_containers/food/drinks/ice = 12, + /obj/item/reagent_containers/food/drinks/ice/sustanance = 12, /obj/item/reagent_containers/food/snacks/candy_corn = 6) contraband = list(/obj/item/kitchen/knife = 6, /obj/item/reagent_containers/food/drinks/coffee = 12, @@ -14,8 +14,8 @@ armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) refill_canister = /obj/item/vending_refill/sustenance resistance_flags = FIRE_PROOF - default_price = 0 - extra_price = 0 + default_price = PRICE_FREE + extra_price = PRICE_FREE payment_department = NO_FREEBIES /obj/item/vending_refill/sustenance diff --git a/code/modules/vending/toys.dm b/code/modules/vending/toys.dm index a00dd17a9c..c5095ebff8 100644 --- a/code/modules/vending/toys.dm +++ b/code/modules/vending/toys.dm @@ -21,12 +21,12 @@ /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted = 10, /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted = 10, /obj/item/toy/katana = 10, - /obj/item/twohanded/dualsaber/toy = 5) + /obj/item/dualsaber/toy = 5) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF refill_canister = /obj/item/vending_refill/donksoft - default_price = 150 - extra_price = 300 + default_price = PRICE_ABOVE_NORMAL + extra_price = PRICE_EXPENSIVE payment_department = ACCOUNT_SRV /obj/item/vending_refill/donksoft diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index b2a8b59403..8552d52b04 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -2,8 +2,8 @@ icon_state = "refill_clothes" /obj/machinery/vending/wardrobe - default_price = 350 - extra_price = 400 + default_price = PRICE_NORMAL + extra_price = PRICE_EXPENSIVE payment_department = NO_FREEBIES input_display_header = "Returned Clothing" @@ -33,6 +33,8 @@ refill_canister = /obj/item/vending_refill/wardrobe/sec_wardrobe payment_department = ACCOUNT_SEC cost_multiplier_per_dept = list(ACCOUNT_SEC = 0) + default_price = PRICE_ABOVE_NORMAL + extra_price = PRICE_EXPENSIVE /obj/item/vending_refill/wardrobe/sec_wardrobe machine_name = "SecDrobe" @@ -49,6 +51,7 @@ /obj/item/storage/backpack/medic = 5, /obj/item/storage/backpack/satchel/med = 5, /obj/item/clothing/suit/hooded/wintercoat/medical = 5, + /obj/item/clothing/suit/hooded/wintercoat/paramedic = 2, /obj/item/clothing/under/rank/medical/doctor/nurse = 5, /obj/item/clothing/head/nursehat = 5, /obj/item/clothing/under/rank/medical/doctor/skirt= 5, @@ -306,7 +309,7 @@ /obj/item/cartridge/janitor = 3, /obj/item/clothing/gloves/color/black = 2, /obj/item/clothing/head/soft/purple = 2, - /obj/item/twohanded/broom = 2, + /obj/item/broom = 2, /obj/item/paint/paint_remover = 2, /obj/item/melee/flyswatter = 2, /obj/item/flashlight = 2, @@ -479,6 +482,8 @@ /obj/item/clothing/gloves/color/captain = 1) refill_canister = /obj/item/vending_refill/wardrobe/cap_wardrobe payment_department = ACCOUNT_CIV + default_price = PRICE_ALMOST_EXPENSIVE + extra_price = PRICE_ABOVE_EXPENSIVE /obj/machinery/vending/wardrobe/cap_wardrobe/Initialize() . = ..() diff --git a/code/modules/vending/youtool.dm b/code/modules/vending/youtool.dm index 6b38ec0b9d..2119197aed 100644 --- a/code/modules/vending/youtool.dm +++ b/code/modules/vending/youtool.dm @@ -22,10 +22,10 @@ armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70) refill_canister = /obj/item/vending_refill/tool resistance_flags = FIRE_PROOF - default_price = 50 - extra_price = 300 + default_price = PRICE_REALLY_CHEAP + extra_price = PRICE_EXPENSIVE payment_department = ACCOUNT_ENG cost_multiplier_per_dept = list(ACCOUNT_ENG = 0) /obj/item/vending_refill/tool - icon_state = "refill_engi" \ No newline at end of file + icon_state = "refill_engi" diff --git a/code/modules/vore/eating/belly_obj.dm b/code/modules/vore/eating/belly_obj.dm index 685f8d76bb..50cdc32bf6 100644 --- a/code/modules/vore/eating/belly_obj.dm +++ b/code/modules/vore/eating/belly_obj.dm @@ -465,7 +465,7 @@ log_attack("[key_name(owner)] digested [key_name(M)].") // If digested prey is also a pred... anyone inside their bellies gets moved up. - if(is_vore_predator(M)) + if(has_vore_belly(M)) M.release_vore_contents(include_absorbed = TRUE, silent = TRUE) //Drop all items into the belly @@ -542,7 +542,7 @@ if (!(R in contents)) return // User is not in this belly - R.setClickCooldown(50) + R.changeNext_move(CLICK_CD_BREAKOUT*0.5) if(owner.stat) //If owner is stat (dead, KO) we can actually escape to_chat(R,"You attempt to climb out of \the [lowertext(name)]. (This will take around [escapetime/10] seconds.)") diff --git a/code/modules/vore/eating/living.dm b/code/modules/vore/eating/living.dm index 33f8d78300..bffb8b2517 100644 --- a/code/modules/vore/eating/living.dm +++ b/code/modules/vore/eating/living.dm @@ -73,15 +73,9 @@ to_chat(user, "They aren't able to be fed.") to_chat(pred, "[user] tried to feed you themselves, but you aren't voracious enough to be fed.") return - if(!is_vore_predator(pred)) - to_chat(user, "They aren't voracious enough.") - return feed_self_to_grabbed(user, pred) else if(pred == user) //you click yourself - if(!is_vore_predator(src)) - to_chat(user, "You aren't voracious enough.") - return feed_grabbed_to_self(user, prey) else // click someone other than you/prey @@ -93,9 +87,6 @@ to_chat(user, "They aren't able to be fed to someone.") to_chat(prey, "[user] tried to feed you to [pred], but you aren't able to be fed to them.") return - if(!is_vore_predator(pred)) - to_chat(user, "They aren't voracious enough.") - return feed_grabbed_to_other(user, prey, pred) // // Eating procs depending on who clicked what @@ -358,6 +349,9 @@ if(incapacitated(ignore_restraints = TRUE)) to_chat(src, "You can't do that while incapacitated.") return + if(next_move > world.time) + to_chat(src, "You can't do that so fast, slow down.") + return var/list/choices for(var/mob/living/L in view(1)) @@ -372,7 +366,7 @@ if(QDELETED(tasted) || (tasted.ckey && !(tasted.client?.prefs.vore_flags & LICKABLE)) || !Adjacent(tasted) || incapacitated(ignore_restraints = TRUE)) return - setClickCooldown(100) + changeNext_move(CLICK_CD_MELEE) visible_message("[src] licks [tasted]!","You lick [tasted]. They taste rather like [tasted.get_taste_message()].","Slurp!") @@ -392,7 +386,7 @@ return taste_message // Check if an object is capable of eating things, based on vore_organs // -/proc/is_vore_predator(var/mob/living/O) +/proc/has_vore_belly(var/mob/living/O) if(istype(O)) if(O.vore_organs.len > 0) return TRUE diff --git a/config/awaymissionconfig.txt b/config/awaymissionconfig.txt index c6a5d9ef8f..768942c434 100644 --- a/config/awaymissionconfig.txt +++ b/config/awaymissionconfig.txt @@ -7,16 +7,13 @@ #Do NOT tick the maps during compile -- the game uses this list to decide which map to load. Ticking the maps will result in them ALL being loaded at once. #DO tick the associated code file for the away mission you are enabling. Otherwise, the map will be trying to reference objects which do not exist, which will cause runtime errors! -#_maps/RandomZLevels/away_mission/blackmarketpackers.dmm -#_maps/RandomZLevels/away_mission/spacebattle.dmm #_maps/RandomZLevels/away_mission/TheBeach.dmm #_maps/RandomZLevels/away_mission/Academy.dmm #_maps/RandomZLevels/away_mission/wildwest.dmm #_maps/RandomZLevels/away_mission/challenge.dmm -#_maps/RandomZLevels/away_mission/centcomAway.dmm #_maps/RandomZLevels/away_mission/moonoutpost19.dmm #_maps/RandomZLevels/away_mission/undergroundoutpost45.dmm #_maps/RandomZLevels/away_mission/caves.dmm #_maps/RandomZLevels/away_mission/snowdin.dmm #_maps/RandomZLevels/away_mission/research.dmm -#_maps/RandomZLevels/away_mission/Cabin.dmm +#_maps/RandomZLevels/away_mission/SnowCabin.dmm \ No newline at end of file diff --git a/config/game_options.txt b/config/game_options.txt index 2d326493bb..405ec0405a 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -603,6 +603,9 @@ NIGHTSHIFT_TOGGLE_PUBLIC_REQUIRES_AUTH ## A cap on how many monkeys may be created via monkey cubes MONKEYCAP 64 +## A cap on how many mice can be bred via cheese wedges +RATCAP 64 + ## Enable the capitalist agenda on your server. ECONOMY @@ -658,4 +661,8 @@ THRESHOLD_BODY_SIZE_SLOWDOWN 0.85 BODY_SIZE_SLOWDOWN_MULTIPLIER 0.25 ## Allows players to set a hexadecimal color of their choice as skin tone, on top of the standard ones. -ALLOW_CUSTOM_SKINTONES \ No newline at end of file +ALLOW_CUSTOM_SKINTONES + +## Enables the FoV component, which hides objects and mobs behind the parent from their sight, unless they turn around, duh. +## Camera mobs, AIs, ghosts and some other are of course exempt from this. This also doesn't influence simplemob AI, for the best. +#USE_FIELD_OF_VISION \ No newline at end of file diff --git a/config/lavaRuinBlacklist.txt b/config/lavaRuinBlacklist.txt index 6d2d2633ce..e86cf42ea0 100644 --- a/config/lavaRuinBlacklist.txt +++ b/config/lavaRuinBlacklist.txt @@ -38,4 +38,5 @@ #_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm #_maps/RandomRuins/LavaRuins/lavaland_surface_swarmer_crash.dmm #_maps/RandomRuins/LavaRuins/lavaland_surface_library.dmm -#_maps/RandomRuins/AnywhereRuins/fountain_hall.dmm \ No newline at end of file +#_maps/RandomRuins/AnywhereRuins/fountain_hall.dmm +#_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm \ No newline at end of file diff --git a/config/maps.txt b/config/maps.txt index e9902d3107..a90fea7595 100644 --- a/config/maps.txt +++ b/config/maps.txt @@ -36,7 +36,7 @@ map deltastation minplayers 50 endmap -map icebox +map snaxi minplayers 25 endmap diff --git a/config/plushies/defines.txt b/config/plushies/defines.txt index e69de29bb2..e7a92f6ac2 100644 --- a/config/plushies/defines.txt +++ b/config/plushies/defines.txt @@ -0,0 +1,2 @@ +# EXAMPLE +# SNOWFLAKE_PLUSHIES example {"name":"example","desc":"thanks, coders.","icon_state":"","attack_verb":["thumped","whomped","bumped"],"squeak_override":{"sound/weapons/magout.ogg":1}} diff --git a/config/plushies/plushie_config.txt b/config/plushies/plushie_config.txt deleted file mode 100644 index 7cd1d88f3e..0000000000 --- a/config/plushies/plushie_config.txt +++ /dev/null @@ -1,2 +0,0 @@ -# EXAMPLE -# SNOWFLAKE_PLUSHIES example {"name":"example","desc":"thanks, coders.","icon_state":"","attack_verb":["thumped","whomped","bumped"],"squeak_override":{"sound/weapons/magout.ogg":1}} diff --git a/html/admin/view_variables.css b/html/admin/view_variables.css new file mode 100644 index 0000000000..34c1a211eb --- /dev/null +++ b/html/admin/view_variables.css @@ -0,0 +1,35 @@ +body { + font-family: Verdana, sans-serif; + font-size: 9pt; +} +.value { + font-family: "consolas", monospace; /* consolas is better!! (was "Courier New") */ + font-size: 8pt; + display: inline-block; +} + +table.matrix { + border-collapse: collapse; border-spacing: 0; + font-size: 7pt; +} +table.matrix td{ + text-align: center; + padding: 0 1ex 0ex 1ex; +} +table.matrixbrak { + border-collapse: collapse; border-spacing: 0; +} +table.matrixbrak td.lbrak, table.matrixbrak td.rbrak{ + width: 0.8ex; + font-size: 50%; + border-top: solid 0.25ex black; + border-bottom: solid 0.25ex black; +} +table.matrixbrak td.lbrak { + border-left: solid 0.5ex black; + border-right: none; +} +table.matrixbrak td.rbrak { + border-right: solid 0.5ex black; + border-left: none; +} diff --git a/html/changelog.html b/html/changelog.html index 3d05d75736..1d6318811e 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,788 +50,619 @@ -->
    -

    19 April 2020

    -

    Anonymous updated:

    -
      -
    • Xenohybrids will now scream like xeno.
    • -
    -

    Arturlang updated:

    -
      -
    • You can no longer spam craft things using the crafting menu
    • -
    -

    Detective-Google updated:

    -
      -
    • uncorks some of Lambda's rooms.
    • -
    -

    Ghommie updated:

    -
      -
    • Custom skin tone preferences.
    • -
    • Normalized box dorm lockers. Also removed a straight jacket found in the same area.
    • -
    -

    Jake Park updated:

    -
      -
    • fixed path name for youtool vending
    • -
    -

    Putnam3145 updated:

    -
      -
    • Objectives now clean theirselves up instead of leaving null entries in lists everywhere.
    • -
    -

    Seris02 updated:

    -
      -
    • stops magboots from not updating slowdowns
    • -
    -

    Trilbyspaceclone updated:

    -
      -
    • Maints have seen an uptick in left over types of welders, and tools. As well as different types of masks
    • -
    • New type of 02 locker - Rng! It can have almost any type of gas/breath mask and almost any type of o2 tank as well as even plasma men internals - Fancy!
    • -
    • Tool lockers have 70% odds to have a spare random tool inside!
    • -
    • 12 new more drinks for most races!
    • -
    • New animations for mauna loa, and colour swap from red to blue for a Paramedic Hardsuit helm
    • -
    • Lowers cog champ ((the drink)) flare rate
    • -
    • Six more Sci based bounties have been posted at your local Cargo Bounty Request console
    • -
    • Mimes have made catnip plants not become invisible. How helpful.
    • -
    • Honey Palm now distills into mead rather then wine
    • -
    -

    UristMcAstronaut updated:

    -
      -
    • Adds circuit analyzers to maps and to integrated circuit printer and circuitry starter crate.
    • -
    -

    kappa-sama updated:

    -
      -
    • aranesp heals 10 instead of 18 stamina per tick
    • -
    • removed roundstart hyper earrape screams from xenohybrids
    • -
    -

    kevinz000 updated:

    -
      -
    • you can no longer stun xenos
    • -
    • Contractor kits are now poplocked to 30 players.
    • -
    • Shield bashing has been added
    • -
    -

    necromanceranne updated:

    -
      -
    • You can now craft armwraps!
    • -
    • Pugilists disarm you more easily and are harder to disarm. They also get a discount on disarm.
    • -
    • Pugilists only suffer a flat 10% chance to miss you. It's just like old punches! Kinda.
    • -
    • Chaplain's armbands are a +2, up from a +1!
    • -
    • Martial artists spend stamina when they disarm.
    • -
    • Rising Bass had several moves shortened and made stronger. Has a disarm override attack which does stamina damage and trips people on a disarm stun punch.
    • -
    • CQC had it's disarm move altered to be a stronger version of Krav Maga's. Dizzies and disarms on a disarm stun punch or just does some stamina damage and brute damage.
    • -
    • Sleeping Carp can punch you to the floor on a harm stun punch.
    • -
    • Hugs of the Northstar are no longer nodrop.
    • -
    • Adding in some overrides and proper flag checks for martial arts.
    • -
    • Stun thresholding stops disarm spams at extremely high stamina loss.
    • -
    • Ashen Arrows are actually called Ashen Arrows in the crafting menu.
    • -
    - -

    16 April 2020

    -

    ForrestWick updated:

    -
      -
    • changed a certain item to be called meatball, ended racism, thank you obama
    • -
    -

    Linzolle updated:

    -
      -
    • remove any slurs, etc. to comply with GitHub's ToS
    • -
    - -

    15 April 2020

    -

    Arturlang updated:

    -
      -
    • Adds garlic, a mutation of onions
    • -
    • You can now make garlic necklaces.
    • -
    • Tweaked hunger to be more the same as blood level for bloodsuckers
    • -
    • Bloodsuckers no longer get zero healing from regenerative cores, the core now heals their wounds but not their blood.
    • -
    • Bloodsucker heal is now based a lot more on blood level.
    • -
    • You can no longer be effectively immortal when fully auged as a bloodsucker.
    • -
    • Regenerative cores will regain their old names when they are renewed, no more working decayed cores.
    • -
    • Removes a lot of unnecesiry clutter of comments and tries to make the vars more consistent for bloodsucker code.
    • -
    • Made the regenerative core use one proc instead of copypasta
    • -
    -

    Auris456852 updated:

    -
      -
    • Added printer sound for admins that plays when someone messages Centcomm or the Syndicate. Just like RP!
    • -
    -

    Bhijn updated:

    -
      -
    • The traitor panel now actually shows a list of contractor targets.
    • -
    • Fail2Topic now supports Linux. Do beware that this requires some sysop experience to properly set up!
    • -
    • Fail2Topic is now disabled by default, and the out-of-the-box config files have been updated to be a little more detailed.
    • -
    • Added a lfwb-inspired orbiting pixel + flashing outline animation to the sprint and combat mode buttons. This can be toggled via the preferences menu, and is completely independent from all HUD themes.
    • -
    -

    BuffEngineering updated:

    -
      -
    • You may no longer summon plasteel from the door dimension.
    • -
    • High security airlocks are now 33% more materially efficient!
    • -
    -

    DeltaFire15 updated:

    -
      -
    • clockie vanguard now quickly regenerates stam while active (as its description always told you,)
    • -
    -

    Detective-Google updated:

    -
      -
    • Shotguns are now slower and require two hands to fire.
    • -
    -

    Ghommie updated:

    -
      -
    • mobs with antag statuses such as wizard, ert and nuke ops get their flavor text removed now.
    • -
    • Fixed megafauna mobs, goliaths and "anchored" AIs being stuffable into closets.
    • -
    • After years of visual agony, the Curse of The Floating Disembodied Phallus has come to an end.
    • -
    • Underwear now fulfills its purpose.
    • -
    • Privates visibility preferences.
    • -
    • refactored polychromic clothing into an element.
    • -
    • Blacklists unsynthetizable reagents from botany bees honey production.
    • -
    • Fixed toilet cistern loot spawning on the floor.
    • -
    • The megafauna's hitbox doesn't include 0 alpha sections anymore.
    • -
    • Wizard robes & co work again now.
    • -
    • Fixed some spell casting message spam.
    • -
    • Added M/F body preferences.
    • -
    • fixed yet another few airless issues with the space hermit ruin.
    • -
    • Intellectual property infringment is not cool.
    • -
    • Near-station nuclear explosions now display the on-station nuke explosion cinematic, consistently with its clearance of the station level and its nuclear victory / total annihilation ending status.
    • -
    • Nuclear bombs can't be anchored in space areas (not just turfs) anymore, as a quick effortless way to discourage players from anchoring the device on the edge of the map.
    • -
    • Fixed a whacky miniature cell duping issue.
    • -
    • Liver failure is back!
    • -
    • standarized a few (prefs off) side effects from enlargment chems on livers to do organ damage instead without the blood volume whackiness.
    • -
    • High liver damage now slows mobs down.
    • -
    • Fixing an issue with the split personality removing the original owner from the round if the body died while the stranger was in control.
    • -
    • fixed a few floaty sprite accessories.
    • -
    • Fixed a few mutations not working correctly.
    • -
    • Fixed the phantom thief component, again.
    • -
    • Made votes obfuscation settings more robust.
    • -
    • Also included them in custom votes.
    • -
    • The map rotation vote will only hide ongoing votes now, not the results.
    • -
    • The crusher's vortex talisman trophy now has a cooldown between each spawned wall.
    • -
    • Backend body size preferences.
    • -
    • Infiltrator's boots don't stop slips and "space wind" through the power of runtime errors anymore, and properly silence the user's footsteps now.
    • -
    • Chaplains are now inelegible for bloodsuckers.
    • -
    • Fixed crafting hud icon overlapping the second pocket on 1:1 screen mode.
    • -
    • Removed some dead flightsuit code leftovers.
    • -
    • Reenabled the swarmers event. Also blacklisted another dozen other machineries and structures that may be critical to the shift or station integrity from swarmers' HUNGER for materials.
    • -
    • Fixed find_safe_turfs() searching for turfs with concentration of oxygen lower than 16 rather higher.
    • -
    -

    KathrinBailey updated:

    -
      -
    • Radiation shuttesr to all supermatters.
    • -
    • Windowed shutters to armouries where relevant.
    • -
    • New posters are now on the map in relevant locations.
    • -
    • Windowed shutter now has glass, the door closing proc sees this and no longer changes opacity.
    • -
    • Accidental HoochMaster removal in the bar.
    • -
    • Spawning looking at the supermatter with no mesons on Meta.
    • -
    • Missing disposal pipe outside HoP office.
    • -
    • Sofas were never adjusted when the pool was added.
    • -
    • New shutter sprites
    • -
    • Reinforced Shutter
    • -
    • Radiation Shutter
    • -
    • Window Shutter
    • -
    • Shutters not being blast doors functionally.
    • -
    • Shutter armour block and health.
    • -
    -

    Kraseo updated:

    -
      -
    • Sneaksuit now costs 5 TC rather than 3.
    • -
    • You can break out of neckgrabs once more.
    • -
    -

    Owai-Seek updated:

    -
      -
    • Port Pina Colada, Painkiller, Moscow Mule, Hivemind Eraser, Moana Lou Drinks
    • -
    • Gunfire, Hellfire, Sins Delight, Strawberry Daiquiri, Miami Vice, Malibu Sunset, Lizz Fizz, Hotline Miami
    • -
    • Strawberry and Pineapple Juice
    • -
    • Salami Slices
    • -
    • Soda Dispenser Juices
    • -
    • Reorganize Vendor Objects (Bowls, Glasses, Shot Glasses)
    • -
    • Strawberry Milk and Tea actually use strawberry Juice.
    • -
    • Lizards can eat egg wraps. Moved Egg Wraps to Misc
    • -
    -

    PersianXerxes updated:

    -
      -
    • TGUI Next UIs for: chem heaters, chem masters, chem dispensers, and sleepers
    • -
    • Reworked Chem Master code
    • -
    -

    Putnam3145 updated:

    -
      -
    • No more station integrity goal
    • -
    • Upload-hacked-law goal only picksif there's an AI to upload to
    • -
    • A new, much more barebones holding facility for contractors.
    • -
    • Energy nets are gone.
    • -
    • Various ghost roles are now easier to ghost as.
    • -
    • The candles in the dojo no longer make the place hotter and hotter over time.
    • -
    • Nymphomania removed
    • -
    • Exhibitionism ignored by preferences now, since it was also removed
    • -
    • Quirk migration now does an admin log instead of a stack trace
    • -
    • Roundstart rulesets now roll properly.
    • -
    • Added configs for various antag threat levels.
    • -
    • Fixed a runtime in threat calculation.
    • -
    • Fixed up some misleading texts.
    • -
    • Dynamic reworked to be more "storyteller-like": threat is now how threatened the station is right now and threat level is how much the mode wants the station to be threatened.
    • -
    • Random storyteller is now truly random.
    • -
    • Story storyteller now gives a nice rising-action-climax-falling action curve for threat level.
    • -
    • "Chaotic" storyteller now simply ramps up threat level as round goes on.
    • -
    • "Classic" storyteller, basically doing what "random" did before.
    • -
    • Latejoin changelings for dynamic
    • -
    • Average threat calculation works now
    • -
    • Contamination is back.
    • -
    -

    Seris02 updated:

    -
      -
    • stops hijackers from being able to remotely blow up borgs
    • -
    • wall walking boots
    • -
    • made color picking for character appearance show the colors when you pick them
    • -
    • the sergal markings
    • -
    -

    Trilbyspaceclone updated:

    -
      -
    • Cooks aided by Clowns have came out with and new healthy Salad - Caesar Salad. Just dont eat the knife...
    • -
    • Ports over TG's Mortars and Pestles.
    • -
    • Water, Holywater and Unholywater will now now quickly purge itself if you have 151u in your system
    • -
    • Most crate types can now be made, some costing more do to function over fashion
    • -
    • Medical Mechs syringe gun now knows many more life saving chems, like Insulin, Dexalin, Prussian Blue, Kelotane and Bicaridine
    • -
    • torches take less staminda to use.
    • -
    • Glowsticks dont last as long
    • -
    • Penlights are better at being lights
    • -
    • Torches are brighter then before - Indian Johns want to be on lava land rejoy!
    • -
    • Eye lights have 30% less light coming out of them.
    • -
    • Spec Ops crate no longer talks about a "Null Crate" what ever that is
    • -
    • Changlogs are updateded once again as of the 28th of March on year 2020
    • -
    • White Ships, Telerelays and a defunk mining post are now always going to spawn.
    • -
    • Corrects a few desc on station side ruins
    • -
    -

    Xantholne updated:

    -
      -
    • bumbles will stop sleeping so much
    • -
    -

    actioninja updated:

    -
      -
    • Washing machines now support arbitrary dye color
    • -
    • Washing machines now dye nearly every item.
    • -
    • lots of backend changes to clothing overlays, report any issues
    • -
    • Better glowing lights
    • -
    -

    actioninja (ported by Ghommie) updated:

    -
      -
    • repathed all under clothing, keep an eye out for errors.
    • -
    -

    bunny232 updated:

    -
      -
    • Box secmos now is now longer connected to the scrubber loop
    • -
    -

    dapnee updated:

    -
      -
    • plant disk sorter in botany, bounty console for the rest of cargo, a missing air alarm in the incinerator
    • -
    • fixed a decal in front of security, moved an AIR alarm so it doesn't look awful to ghosts/AI, asteroids don't delete air anymore, fixed more active turfs, the buttons in the bridge "should" work now, HoP and cargo desks should be secure now
    • -
    • quarters that found their way out of the quartermaster's back room
    • -
    -

    kappa-sama updated:

    -
      -
    • normies can no longer steal circuit codes
    • -
    • doubles the Stam damage of nonlethal krav stompers
    • -
    • no longer Krav Maga stomp people that are standing
    • -
    • no more 20pop requirement for noslips
    • -
    -

    keronshb updated:

    -
      -
    • Reverts Mining Base RNG Placement
    • -
    -

    kevinz000 updated:

    -
      -
    • Melee attacks now stagger people, preventing them from sprinting until the (relatively short lived) effect runs out. Duration equation is [(1.5 + (w_class/7.5)) * force].
    • -
    • Fireman carrying now makes the person being carried unable to use items. Piggybacking now slows down the person being ridden. In both cases, the person riding will be dazed when forcefully dismounted, and dazed for a second if dismounting from piggybacking
    • -
    • turfs properly initialize atom colors if they're colored.
    • -
    • cloners now stabilize mutations while someone's cloning, meaning active genes will not life tick.
    • -
    • datum/pipeline return_air stack trace now gives a reference so it's actually marginally useful if caught in round.
    • -
    • Volumetric storage is here.
    • -
    • Traitor chaplains can now become neutered versions of cults.
    • -
    • beams should no longer go across the map and mess everything up if their source or target isn't on a turf.
    • -
    -

    kiwedespars updated:

    -
      -
    • Added paper masks.
    • -
    -

    necromanceranne updated:

    -
      -
    • Fixed limb damage calc
    • -
    • Stunslugs are now a mixed damage taser-like slug that will allow you to apply a variety of damage while still being countered by tasers usual counters.
    • -
    • Mech scattershot guns are no longer oneshotting people into stamina crit.
    • -
    • Removed an number of cargo crate packs: Riot shotguns/standard shotguns, double barreled shotguns, techshell crate, swat tasers, WT550 types (not rubber or standard), traitor theft objective kits.
    • -
    • HEALTH AND STAMINA DON'T STACK FOR PUTTING YOU INTO STAMINA CRIT.
    • -
    • YOUR FISTS ARE HELLA GODDAMN STRONG.
    • -
    • ACCEPT THE FELINIDS WARES, FOR SKOOMA HAS INCREDIBLE LETHAL PROPERTIES: YOUR HANDS BECOME LIKE SWORDS.
    • -
    • BOXERS CAN ONLY KNOCK OUT OTHER BOXERS BECAUSE THEY HAVE HONOR OR SOME SHIT
    • -
    • INCREASED STAMINA DAMAGE TO LIMBS FROM 50% TO 75%.
    • -
    • Double-barreled shotguns and any child of such now can be used with off-hand equipment.
    • -
    • Readds bioterror darts to the nuclear operative uplink for the legacy price of 6tc! Has all new horrid reagents!
    • -
    • Scatterlaser is now in-line with buckshot. Nukies can't purchase scatterlaser shot.
    • -
    • Null crates are no longer available in cargo!
    • -
    • Sleeping Carp and Rising Bass now dodge. Again.
    • -
    • Russian Revolver can no longer be exploited for a free 357.
    • -
    • Several guns now shoot exactly where you click regardless of movement or turning.
    • -
    +

    09 July 2020

    timothyteakettle updated:

      -
    • added beacon for cooks to choose an ingredient box, which replaces the random box they used to receive
    • -
    • added a new sushi ingredients box
    • -
    • added more items to the wildcard box's possible contents
    • -
    • add new holodeck wrestling belt which lets you use moves only on those also wearing it
    • -
    • add new holodeck map featuring the holodeck wrestling belt
    • -
    • new reagent 'Condensed Cooking Oil'
    • -
    • list of chems that can go into fried non-food items was changed
    • -
    -

    zeroisthebiggay updated:

    -
      -
    • sneaksuit to contractor items
    • -
    • sneaksuit is a bundle
    • -
    • intel potion and radio implant from contractor items
    • -
    • ghosts can now DNR
    • -
    • sneaksuit is not fireproof
    • -
    • insidious balaclava muzzlepsprite works
    • -
    • You can now choose your name and color as a holoparasite/guardian/holocarp!
    • -
    • fixes lings being able to get mechanical holoparasites
    • +
    • bluespace tray added, allowing twice as many items as the regular tray, printable at the service lathe, researched through science
    • +
    • bluespace jar added, a kind of pet carrier that allows human sized mobs inside, and smashes when thrown, researched and printed through science
    -

    28 March 2020

    -

    Arreksuru and Detective Google updated:

    +

    08 July 2020

    +

    DeltaFire15 updated:

      -
    • new HUDpatches for medical, diagnostic, and mesons.
    • -
    • crafting and de-crafting recipes for new HUDpatches.
    • -
    • silly typo with "singlasses" in one of the crafting recipes for HUDglasses.
    • -
    -

    Arturlang updated:

    -
      -
    • Bloodsuckers can no longer get usable blood from blood tomatoes.
    • -
    • Fixed reagent container transfer amount cycling.
    • -
    -

    Bhijn updated:

    -
      -
    • Clicking an open closet with harm intent no longer attempts to place your currently held item inside, but rather attacks it.
    • -
    -

    Bhijn (original PR by Azarak, sprites by Discord user Smug Asshole Muhreen#5522) updated:

    -
      -
    • Synths, the open source and free-as-in-freedom species by FA user vader-san, have been ported from Skyrat.
    • -
    • Ported VOREStation's synthetic taursprites
    • -
    • Markings that don't match very well with your selected species are now hidden from the markings list by default. You can still use these mismatched markings to create horrendous sparkledog abominations by using the "Show mismatched markings" button ingame.
    • -
    • Body markings who's iconstates don't match their name will now actually render properly.
    • -
    • Limb base icons are no longer hardcoded, should_draw_citadel and should_draw_grayscale have been removed in favor of the species-level `icon_limbs` var and the bodypart-level `base_bp_icon` and `color_src` vars. Downstreams should no longer have to touch bodypart rendering code a whole lot if they want to add custom species. Downstreams that have already added species with digitigrade leg support will have to append species IDs to the digitigrade leg sprites, but aside from that, the migration process to this more modularity-friendly system should be fairly smooth.
    • -
    -

    BlackMajor updated:

    -
      -
    • Adjusted the ash walker camp's storm proofing.
    • -
    • Added a tip about creating areas to the ash walker spawn text.
    • -
    -

    Bumtickley00 updated:

    -
      -
    • Iron sheets build the normal metal table again
    • -
    -

    Crystal9156 updated:

    -
      -
    • Fixes Chocolate Jelly Donut icon
    • -
    -

    Dennok, ported by Hatterhat updated:

    -
      -
    • Lava rivers no longer burn into basalt.
    • -
    • The river generator can now specify baseturfs.
    • -
    -

    Detective-Google updated:

    -
      -
    • absurd dong sizes.
    • -
    • my dumb stupid paramedics
    • -
    • Medical no longer spawns with syringe guns, Medical now spawns with medidart guns.
    • +
    • The kill-once objective now works properly.

    EmeraldSundisk updated:

      -
    • Adds CogStation's shuttles to-be.
    • -
    • Adds the "NES Classic" escape shuttle.
    • -
    • Accounts for the new shuttles.
    • -
    -

    Ghommie updated:

    -
      -
    • Added a few cooldowns to chill nuclear bomb and communications console security level change spam, as well as the emergency shuttle's authorization announcements.
    • -
    • Fixed viruses not working on anthros and some others species.
    • -
    • Made the cogchamp mixing sound less annoying.
    • -
    • Removed makeshift switchblades.
    • -
    • pAIs, drones, monkys and lizards can be worn over the head again.
    • -
    • Fixed cargo passive point generation to not go into decimals.
    • -
    • Syndicate ninjas are slightly less friendly now.
    • -
    • Allowed blobbernauts to drag objects (but not mobs) again.
    • -
    • The examiner circuit now works better for mobs.
    • -
    • Chances are monkeys won't end up gorillizing as quickly after being exposed to a rad storm for a minute or so.
    • -
    • Vampire mesmerize doesn't permanently disable combat mode.
    • -
    • The flying speed slowdown while hurt now actually affects flying mobs and not floating ones.
    • -
    • Joining in as a positronic brain won't break the spawner menu anymore.
    • -
    • Fixed dynamic voting.
    • -
    • The autotransfer subsystem is slightly more modulable now.
    • -
    • Resprited some sprite_accessory icon states.
    • -
    -

    Ghommie (plus a fix originally done by Skogol) updated:

    -
      -
    • Drinks dispensers now only show the container they are holding.
    • -
    • Ghost cafe patrons are warded against a few more events now.
    • -
    • Fixed RnD machineries UI displaying designs' required reagents' typepaths instead of names.
    • -
    -

    Hatterhat updated:

    -
      -
    • Red and blue boxes are now actually red or blue.
    • -
    • Beegions! Like Legions, but with actual bees. As in, the bees from the holodeck sim with the randomly-generated toxic bees.
    • -
    • Mining cyborgs are no longer physically capable of claiming points nor wielding a premium accelerator.
    • -
    • Arrow crafting has been finagled with, preventing fire-hardened arrows from being fire-hardened repeatedly. Or something.
    • -
    • Space hermits (those quirky fellas stuck in a rock with carp surrounding them) now have gravity! But they lost their perpetual generators.
    • -
    • Space hermits now have to mine for their research tech (golem vendor board, ORM board). They have slightly less bad parts, though. And better(?) rocks.
    • -
    -

    InnocentFire made the sprites all thanks to them! updated:

    -
      -
    • All bows now have inhand sprites once again
    • -
    -

    KathrinBailey updated:

    -
      -
    • Nine new posters!
    • -
    • Shower curtains can be crafted.
    • -
    • New sofas!
    • -
    • Green and purple comfy chairs to the crafting menu to fit green and purple carpets.
    • -
    • Shower curtains now let you see through them once open, and don't once closed.
    • -
    -

    Kraseo updated:

    -
      -
    • If you have the powersink objective, you will now receive a free beacon.
    • -
    • Lavaland flora have more traits now, to encourage harvesting and sending these off to the botanists.
    • -
    • Napalm will now properly remove weeds from a tray if the plant in it has the fireproof gene.
    • -
    • Gangs no longer get soporific rounds for their sniper rifles.
    • -
    • Syndicate Contracts. Use the new contract uplink to select a contract, and bring the assigned target dead or alive to the designated drop off. Call for the extraction pod and send them off for your TC payment, with much higher rewards for keeping them alive. A high risk, high reward choice for a traitor who wants a real challenge.
    • -
    • New 20 TC contract kit - supplies you with your contractor loadout and uplink.
    • -
    • Targets successfully extracted will be held for ransom by the Syndicate after their use to them is fulfilled. Central command covers the cost, but they'll be taking a cut out of station funds to offset their loss...
    • -
    • Adds a third random item, as well as a small guide on using the contract kit. Also added new possible items that can appear.
    • -
    • Supplied space suit in the contract kit is now an improved variant on the normal Syndicate version.
    • -
    • TC payouts adjusted to be a bit more fair to the contractor. Total payout can never be below a certain threshold.
    • -
    • Broken dropoff locations work again, and general bugfixes.
    • -
    • Contract kit comes with a contractor baton - a unique, lightly electrified weapon to help complete your contracts.
    • -
    • Finalized payment system for contracts; much more balanced for contractors. No more extremely low paying contract sets.
    • -
    • Generated contracts will all have unique targets, no more duplicates.
    • -
    • Extraction droppod explosion has been removed, it'll only damage the tile it lands on.
    • -
    • Extraction pods get sent to the jail immediately again.
    • -
    • Refactored classic_baton code.
    • -
    • Contractor Hub. A unique store for contractors to buy items with Contractor Rep, with two Rep being given when completing a contract.
    • -
    • Contractor pinpointer, available through the Hub. A very inaccurate pinpointer that ignores suit sensors.
    • -
    • Call reinforcements, available through the Hub. Limited to a one-time buy for a contractor, you can purchase an agent to be sent down to help in your mission. Role is polled to ghosts.
    • -
    • Blackout, available through the Hub. Disable station power for a small duration - an expensive, but powerful option of getting into secure areas.
    • -
    • Fulton extraction, available through the Hub. Purchase a fulton extraction kit to help move your targets across the station for those difficult dropoffs.
    • -
    • Assigning yourself to another tablet will give you another contract set.
    • -
    • Contractors can now reroll their contracts a small number of times.
    • -
    • Brand new sprites! A redesign of the specialist space suit, and the kit's own unique tablet. Done by Mey Ha Zah.
    • -
    • Displays contract target jobs under their name.
    • -
    • New locations, such as maintenance, are now possible dropoff locations.
    • -
    • Contractor kit pop cap reduced from 20 to 15.
    • -
    • You can no longer get haunted 8balls from contractor kits.
    • -
    • Pods and shuttles should no longer be valid dropoff locations.
    • -
    • Contract tablets will no longer break when one of your contracts is deleted from the world.
    • -
    • Baton inhands for the right hand now shows the right direction.
    • -
    • Mice don't chew on wires anymore while they're on your person.
    • -
    • Bloodsucker heart theft objective now completes successfully.
    • -
    • Blacklists turret protected areas, the toxins test range, asteroid ruins, and solars from being valid dropoff locations for contracts.
    • -
    -

    Linzolle updated:

    -
      -
    • pacifists can no longer meatspike living things
    • -
    • flypeople being unable to gain nutrition from eating vomit
    • -
    • targetting mouth on help intent now properly nose boops
    • -
    • cmo hypokit now holds the same amount of items as normal kits
    • -
    -

    Moonlit Protector updated:

    -
      -
    • Introducing the 'Heroic Beacon', standing vigil over service the curator can assume one three different historic heroes, each determining their equipment and emergent playstyle to suit the player; a beacon can be found in the curator's backpack upon spawning
    • -
    • Become the Braveheart, a fierce scottish warrior armed with a ceremonial claymore, spraycan, kilt and a disregard for underwear with the scottish themed hero pack.
    • -
    • A unique mention is the "First man on the Moon" heroic pack, with a two piece space worthy suit, air tank & a GPS for recreating a key spessfaring moment in history.
    • -
    • The Curadrobe has been stripped & refilled full of helpful library supplies, including varieties of pens and glasses including the jamjar's.
    • -
    • The curator's explorer equipment & whip has been moved into the 'Courageous Tomb Raider' heroic pack; removed from the backpack & the Curavend respectively.
    • -
    -

    MrJWhit updated:

    -
      -
    • Added minor station things
    • -
    • re balanced r-walls
    • -
    • Evens both sides of the gas containers TEG with reinforced windows
    • -
    • Removed egun in every head locker, replaces RPD with air pump in science, fixes a computer in sec, moves hand teleporter, and removes decals under lockers.
    • -
    -

    MrPerson updated:

    -
      -
    • Solar panels will visually rotate a lot more smoothly instead of being locked to only 8 directions.
    • -
    • Timed solar tracking is in degrees per minute. You're still not gonna use it though.
    • -
    -

    Naksu updated:

    -
      -
    • Time based free rerolls
    • -
    • Refactored Blobs
    • -
    • Blob rerolls now give the blob 4 different options to choose from, rather than forcing a single random one.
    • -
    -

    NecromancerAnne and goldnharl updated:

    -
      -
    • Sprite cleanups and animations for energy guns.
    • -
    -

    NecromancerAnne and zawo and zeroisthebiggay and carlarctg updated:

    -
      -
    • The Infiltrator Bundle, an armor kit for 3TC. Murder people in style!
    • -
    • Some pajamas for nukies to get plenty of bed rest.
    • -
    • halved firefight carry delay with latex or nitrile gloves
    • -
    • headset upgrade is cheaper
    • +
    • CogStation now has an apothecary
    • +
    • Removes an outdated note on sleepers
    • +
    • Readjusts CogStation's chemistry lab
    • +
    • Slight area designation adjustments for Robotics
    • +
    • The arrivals plaque should be readable now

    Owai-Seek updated:

      -
    • Butter Bear
    • -
    • Crab Burger, Bisque, Crab Rangoon, French Onion Soup, Empowered Burger, Chicken Nugget box.
    • -
    • +++ Spider Eggs to Exotic Meat crate. --- Bacon from Exotic Meat crate.
    • -
    • Tweaked Crab Recipes
    • -
    • Butter Bear aka Terrygold
    • -
    • Food Crafting is now 5 deciseconds instead of 30.
    • +
    • Margarine, Chili Cheese Fries.
    • +
    • Egg Wraps are now categorized under egg foods.
    • +
    • Tuna Sandwich crafting/sprite is now visible.
    • +
    • Icons for chicken, cooked chicken, steak, grilled carp, corndogs
    • +
    • Icons for chili cheese fries, margarine, BLT sandwich
    • +
    • (Unused) icons for raw meatballs, and lard
    -

    Putnam updated:

    + +

    07 July 2020

    +

    KasparoVy updated:

      -
    • Swarmers, portal storm, wormholes are now controlled by dynamic.
    • -
    • Dynamic-controlled events can now have a minimum start time.
    • -
    • Threatening meteors are more common (though still have pretty strict requirements)
    • -
    • Different storytellers now balance around different expected players-per-antag; default was 5, now intrigue/story/random have 7 and calm has 10.
    • -
    • Clown ops is now available as a roundstart antag in dynamic.
    • -
    • Sentient disease and revenant are now in the event pool rather than the antag pool (with the logic that they're both completely useless and unfun to play if people are actually playing against them).
    • -
    • A new formulation of extended was added to the storytellers; no antags, but still spending threat on events.
    • -
    • Fixed a runtime in dynamic due to my misunderstanding pickweightAllowZero
    • -
    • Made conversion storyteller 0-weight-by-default.
    • +
    • Fixes misaligned south-facing silver legwraps sprite.
    -

    Putnam3145 updated:

    +

    Owai-Seek updated:

      -
    • Salbutamol causes jittering now.
    • -
    • Made lickable pref save
    • -
    • Traitor classes for traitors: a new way for traitors to have objectives assigned.
    • -
    • Actually made things work as intended.
    • -
    • Removed a redundant turf melting check from the supermatter.
    • -
    • Removed "realistic tcomms lag"
    • -
    • Removed some particularly bad flavor objectives.
    • -
    • Power sink objective is 10x as easy to get
    • -
    • Processing objectives now properly stop once won
    • -
    • MKUltra no longer explodes into lovegas when it fermi explodes, instead causing a regular ol' fireball.
    • -
    • Eigenstasium OD flavor text less restrictive
    • -
    • Dynamic voting should work absent of a config.
    • -
    • Autotransfer vote now requires actual transfer votes to transfer.
    • -
    • More dynamic fixes
    • -
    • Server-run votes aren't subject to vote cooldown
    • -
    • Mass hallucination can better be admemed
    • -
    • Waffle co objective rewritten to make more clear it's not a murderbone objective
    • -
    • CTF spawns, random animals and possessed blades can now be pinged for ghost roles.
    • -
    • A bunch of polls now work with ghost role eligible non-observers.
    • -
    • Removes superfluous line in supermatter processing.
    • -
    • Power sink objective processing now makes sense.
    • +
    • Bee Balm is now visible.
    -

    Qustinnus/floyd, Ghommie updated:

    +

    Weblure updated:

      -
    • To save costs, Nanotrasen has removed the emergency battery ejection systems in modular computers. We realized saving the batteries isn't really important.
    • -
    • You can squash spiderlings with your bare hands now.
    • -
    • Being deafened properly stops jukebox music from playing.
    • -
    • admin multicam toggles no longer tells everyone but only admins and AIs
    • +
    • Fixed the slowdown formula for small character sprites; you guys don't use custom sprite sizes so just ignore these changes.
    • +
    • Fixed the "Move it to the threshold" button; it now does what it says.
    • +
    • Reworded some text to be clearer.
    -

    Ragolution updated:

    + +

    05 July 2020

    +

    Ghommie updated:

      -
    • All winter coats and hoods might be different if slightly from one a other.
    • -
    • Adjusted Bartender's Drink Flinging print message to not include name of target turf and save immersion.
    • +
    • You can now actually gain wiring experience from using cable coils.
    • +
    • Opening the View Skill Panel shouldn't trigger messages about insufficient admin priviledges anymore.
    -

    Seris02 updated:

    +

    Yakumo Chen, kappa-sama updated:

      -
    • tg genetics
    • -
    • illegal technology
    • -
    • rebalanced rising bass's buttom actions from repulse to side kick
    • -
    • projectiles and rising bass and items and rising bass
    • -
    • a very specific fix with tails and wagging
    • -
    • duffel bags of holding
    • -
    • quirk blacklist fixing
    • -
    • robotics console button swapping
    • -
    • fixed thieving gloves not pickpocketing fast
    • -
    • mentor de/rementor button
    • -
    • mentor !msg
    • -
    • bloodsuckers being unable to accept genes
    • -
    • removes xray from the gene pool
    • -
    -

    Skoglol updated:

    -
      -
    • Fixed gibber exploit.
    • -
    -

    Timberpoes updated:

    -
      -
    • Shuttle countdowns once again read like "01:05" instead of "01: 5".
    • -
    -

    Trilbyspaceclone updated:

    -
      -
    • Three new arm implants, shield for sec, janitor and service
    • -
    • Two new legion drop. Assistant and Bee-Activist
    • -
    • Three new posters have been issued to the printing press
    • -
    • Well contruction, grubs to ash walker home, more seeds for ash walkers.
    • -
    • Wooden buckets can be made from 2 planks of wood, Tower caps also can be used on a fire to make coal
    • -
    • Makes all ashwalker round start seeds 5 yield and 50 harvest so that they can get good crops in rather then failing after 1 harvest
    • -
    • arrow crafting has been fixed
    • -
    • Blobs now can store 250 points.
    • -
    • Alien bar stool is no longer bronze
    • -
    • 28 days log changlogs have been added well 56+ day old changlogs have been removed
    • -
    • Added sunglasses that are able to be huds AND prescription
    • -
    • Prescription sunglasses and crafting of each new type for - Diagnostic, Med and Sec
    • -
    • Diagnostic Sunglasses
    • -
    • Blackists Prescription HUDs from sunglasses crafting
    • -
    • Cotton/Durathread now stack to 80 bundles
    • -
    • Medical hardsuits now have a Medi-Hud built into its helm
    • -
    • Removed old unused Techweb Node selling
    • -
    • Corrects snowcones names and a pixle. Corrects Space Wind snowcone as well
    • -
    • Arrow crafting has been fixed... Again...
    • -
    • Soidifaction of and uranium can be done as well as making new bluespace shards
    • -
    • Xeno and Fountain Hall will no longer spawn more then once
    • -
    • Makes the game want to spawn in more then one tumor maybe
    • -
    • Number of paper work in the crate "freelance paperwork" is half
    • -
    • A few cases were something their is unneeded copy past replaced with many 1 in spawns
    • -
    • Potass Iodide has been fitted into standered borgs as well as medical ones. Upgraded hypos now have Prussian Blue as well.
    • -
    • Syndi borgs Potass Iodide has been swapped for Prussian Blue
    • -
    • No longer can you get the The End and Russian Flask without being the donator
    • -
    • Pipes are small now
    • -
    • Edaggers now enbed as intended
    • -
    • The sleeper agents can be outfitted with some larger then normal sunglasses for 1TC in Badass category
    • -
    • The Syndi Medical borg has been outfitted with the newest and latest ~~Stolen~~ MediCo Gear on the market
    • -
    • Ninjas may be asked to steal the CMO's smart drapes
    • -
    • Hyper Cell steal goal is upgraded to a bluespace cell, as well as the BoH goal now wants a type of BoH rather then the normal default one.
    • -
    • Gutlunches have gotten teeth now and will eat legs, arms, and organs! - Tho are picky and will not eat the brain just laying about!
    • -
    -

    Useroth updated:

    -
      -
    • contractor tablets spawned with invalid icon_state
    • -
    -

    Xantholne updated:

    -
      -
    • Bumbles is now actually in every station's hydroponics.
    • -
    • Bumbles will now actually rest, sit up, and buzz
    • -
    -

    YakumoChen updated:

    -
      -
    • Nekomata (double cat) tails.
    • -
    • 2CAT LMAO
    • -
    • Mining base looks more natural where it's spawned.
    • -
    • Templates Headers will now correctly use the Citadel Official Wiki Link
    • -
    -

    Yenwodyah updated:

    -
      -
    • Bear traps and bolas apply slowdown correctly again
    • -
    • Recycler doesn't delete people in mechs, cardboard boxes, spells, etc. anymore.
    • -
    -

    actioninja, ninjanomnom updated:

    -
      -
    • Being fat is no longer lessened by flying.
    • -
    • The slowdown from grabbing someone no longer applies when you're floating.
    • -
    -

    bunny232 updated:

    -
      -
    • Box bar now has a lightswitch.
    • -
    • fixes several piping issues around box station
    • -
    • moved a scrubber and vent down 5 pixels
    • -
    • Box station captain office now has a standard issue renault
    • -
    • Box bridge now actually has the air distro connected
    • -
    -

    dapnee updated:

    -
      -
    • Lambdastation and it's accompanying files
    • -
    • Robotic's APC, a few missing buttons (bridge shutters and crematorium), paramedic has spawn locations now, two rapid cable deployers to engineering
    • -
    • Renamed some doors and edited engineering to be a bit more open in one spot
    • -
    • a few APCs with bad area tags, access on maintenance doors fixed, engine APC is now connected to the grid instead of power created by the engine
    • -
    • the two syringe guns in medical were removed
    • -
    • couple gas masks around atmos
    • -
    • direction on turbine plasma pressure tank, cloning actually has a cloning console now
    • -
    -

    floyd updated:

    -
      -
    • Everything made from glass in the game has a little more tegridy and doesnt break from a single punch.
    • +
    • Removes improvised handguns
    • +
    • removed handsaws, improvised gun barrels (you can use atmos pipes again)
    • +
    • Guncrafting is less time and resource intensive
    • +
    • Item names in guncrafting are user-friendly.

    kappa-sama updated:

      -
    • removed laptops giving slowdown when open
    • -
    • removed (mostly aesthetic) requirement to become hulk
    • -
    • changed add to remove on crit
    • -
    • a super combat shotgun that loads and fires 2 shells at a time
    • -
    • replaces bubblegum's blood contract drop with the super shotgun
    • -
    • 60 seconds instead of 120 for firebreath
    • +
    • cloth string to replace durathread string
    • +
    • durathread string
    • +
    • All bows and arrows have had crafting times significantly reduced, coming out at up to 6 times faster crafting speeds. Improvised bows no longer require durathread; instead, they use cloth materials.
    -

    keronshb updated:

    +

    silicons updated:

      -
    • blobs now receive a 50% cost refund on attacks that don't spread
    • -
    • reflector blobs are considerably tougher
    • -
    • fixed an integrity
    • -
    • attempting to turn a damaged strong blob into a reflector blob now refunds points
    • -
    • also fixes blob node camera jump (from another PR)
    • +
    • active blocking now has a toggle keybind
    • +
    • auto bunker override verb has been added
    • +
    • shields take 2.5 stam instead of 3.5 stam per second to maintain block
    • +
    • Cybernetic implant shields will auto-extend and be used to block if the user has no item to block with
    • +
    +

    timothyteakettle updated:

    +
      +
    • cooking oil is now far less lethal, requiring a higher volume of the reagent to deal more damage
    • +
    + +

    04 July 2020

    +

    Sonic121x updated:

    +
      +
    • crushed Soldry sodacan
    • +
    • digitigrade version of chief medical officer's turtleneck and captain's female formal outfit.
    • +
    +

    silicons updated:

    +
      +
    • blood_DNA["color"] is now a single variable instead of a list
    • +
    + +

    03 July 2020

    +

    Arturlang updated:

    +
      +
    • You can now toggle hardsuit helmets from the strip menu
    • +
    +

    Ghommie updated:

    +
      +
    • fixed custom speech/tongue stuff.
    • +
    • Lowered shaft miners' paycheck, they have other ways to make cash.
    • +
    • You can't (un)equip garments on/from obscured inventory slots anymore.
    • +
    • The stamina cost multiplier for swinging melee weapons against mobs has been brought back to 1 from 0.8
    • +
    • The stamina cost for throwing mobs now scales with their mob size variable.
    • +
    +

    LetterN updated:

    +
      +
    • Ported some tags from tgui-3.0 to Vending.js
    • +
    • vending icons
    • +
    • r&d icons
    • +
    • chem master icons
    • +
    +

    Onule updated:

    +
      +
    • titanium wall man good
    • +
    +

    Sonic121x updated:

    +
      +
    • Bringback the ChemMaster pill type button.
    • +
    • Fix Technode icon.
    • +
    +

    bunny232 updated:

    +
      +
    • Witchhunter hat no longer obscures mask ears ,eyes, face and mouth
    • +
    +

    timothyteakettle updated:

    +
      +
    • bloodpacks initialise correctly now
    • +
    + +

    02 July 2020

    +

    Ghommie updated:

    +
      +
    • Fixing a few issues with twohanded items.
    • +
    • Unum decks now work correctly.
    • +
    • Abductor walls are once again buildable with alien alloy.
    • +
    +

    Trilbyspaceclone updated:

    +
      +
    • Makes pride and envy ruin a bit smaller!
    • +
    • Pride now has rings, lipstick wigs and silver walls/door making a nice and polished look then cyan blue walls.
    • +
    • more trash and better dagger placement on food ruin
    • +
    • Snowboim now has snowballs and toy gifts for the two skeles daw!
    • +
    • Beach boim now has carp light branding beer, as well as soap!
    • +
    • Greed ruin now uses nice slick walls and carpet!
    • +
    • Founten ruin looks a lot better with its carpets and well maintained fluff things, but walls suffered and no longer can salvage ruined metal...
    • +
    • Alien nest has a bit more glowy floors of resin looking a bit more lived in by the drones. As well as the "door" now being see through resin rather then the thicker stuff that you cant see through
    • +
    • Pizza party has a few more gifts, some candy and snap pops yay!
    • +
    • Sloth ruin is about 15~ tiles shorter, has and has more fruit for a bowl. How lazy!
    • +
    +

    silicons updated:

    +
      +
    • bohbombing is a thing now
    • +
    + +

    30 June 2020

    +

    Fikou updated:

    +
      +
    • spray cans, airlock painters, and decal painters added to engineering/service/autolathe (where applicable)
    • +
    +

    Ghommie updated:

    +
      +
    • Fixed a gap on the male insect anthro torso sprite when facing south.
    • +
    • Fixed mecha ID access not being removable.
    • +
    • Fixed a peeve with the hypno trance status effect not sanitizing some heard hypnosis inputs (i.e. custom say messages like say"honks*clownem ipsum dolor")
    • +
    • fixed an issue about using stacks with only 1 amount left.
    • +
    • Fixed a peeve on attack messages against carbons/humans.
    • +
    • Fixed missing hypnochair board.
    • +
    • Fixed material walls and tiles. My bad on that port.
    • +
    +

    Ghommie (inspired by MrDoomBringer's work on tgstation) updated:

    +
      +
    • New check skills UI.
    • +
    +

    Ghommie (porting PRs by XTDM, coiax, MrDoomBringer) updated:

    +
      +
    • Random Events now have a follow link for ghosts!
    • +
    • Adds the Spontaneous Brain Trauma to the event pool. Sometimes your brain just goes a little wrong.
    • +
    • Sometimes a low level cloning pod will make errors in replicating your brain, leaving you with a mild brain trauma.
    • +
    • When a person is cloned, any mental traumas are cloned as well.
    • +
    • The wizard federation announces that the Curse of Madness is out of beta and is now available for purchase for 4 points. It causes long-lasting brain traumas to all inhabitants of a target space station.
    • +
    • The wizard federation declines responsibility for any self-harm caused by curses cast while inside the targeted station.
    • +
    • Due to the extensive testing of the Curse of Madness some unique new trauma types have appeared across Nanotrasen-controlled space.
    • +
    • Curse of Madness can now be triggered by a wizard's Summon Events, at the same chance as Summon Guns or Summon Magic.
    • +
    • When an admin triggers Curse of Madness manually, they can specify their own dark truth to horrify the station with.
    • +
    +

    nightred updated:

    +
      +
    • Created two_handed component
    • +
    • Updated all existing two handed items to use the new component
    • +
    +

    silicons updated:

    +
      +
    • typing indicators no longer generates duplicate message boxes.
    • +
    • config errors now have line numbers.
    • +
    • outgoing mentorpms are now blue instead of green for the sender.
    • +
    • *squish
    • +
    +

    timothyteakettle updated:

    +
      +
    • you can now select your tongue and speech verb in the character customization menu!
    • +
    • skeleton is now split into two more types, greater and lesser
    • +
    • non-carbon blood is now not white
    • +
    • fixed a bunch of grammar/spelling mistakes
    • +
    + +

    29 June 2020

    +

    b1tt3r1n0 updated:

    +
      +
    • Made teratomas from sdgf less powergame
    • +
    +

    timothyteakettle updated:

    +
      +
    • slimes no longer have white blood by default
    • +
    + +

    28 June 2020

    +

    Detective-Google updated:

    +
      +
    • cog is less the suck
    • +
    • piggybacking is no longer absolutely inferior
    • +
    +

    Ghommie updated:

    +
      +
    • Fixing windows interaction with spraycans.
    • +
    • Fixing kinetic accelerator guns not working well with gun circuitries.
    • +
    • Fixing Zoomba borgs lights overlays.
    • +
    • Fixing the "absorb another ling" and "absorb the most dna" objectives rolling when no other changeling is around.
    • +
    • Clarified a pet peeve about the spread infestation ability.
    • +
    • BEPIS nodes won't show up anymore in the expert mode ui of the r&d console anymore (good thing they weren't researchable).
    • +
    • Hopefully fixing sound loop edge cases.
    • +
    • Fixing pAI radios being permanently disabled by EMPs at times.
    • +
    • Windoors can now be obscured with spraycans just like windows.
    • +
    +

    Ghommie porting PRs by Qustinnus/Floyd, Willow, cacogen, nemvar, Ghilker and EOBGames (Inept) updated:

    +
      +
    • Fixes a material duplication bug.
    • +
    • unique combinations of custom_materials lists are now shared between objects
    • +
    • meat material. yes.
    • +
    • materials can now be used to build walls/floors. meat house
    • +
    • edible component now does not try to attack if you eat something with it
    • +
    • Texture support for mat datums with thanks to 4DPlanner!
    • +
    • you no longer hit yourself with organs when eating
    • +
    • A whole bunch of materials are now datumised! Check out bronze, runed metal, sand, sandstone, snow, paper, cardboard, bone and bamboo. Oh, and pizza. Yes, pizza.
    • +
    • Buffs material floor tiles' throwforces from 1 to 10 (same as iron) to better showcase the effect of different materials (e.g. meat vs. titanium)
    • +
    • Radioactive items no longer output a single . when examined at a distance
    • +
    +

    MrJWhit updated:

    +
      +
    • Removed air alarm in Snow Snaxi in Tcomms Sat
    • +
    • Removed trash bins in genetics and mining
    • +
    • Gives cargo techs a cargolathe
    • +
    +

    Putnam3145 updated:

    +
      +
    • lost my mind just a couple of times
    • +
    +

    b1tt3r1n0 updated:

    +
      +
    • pouches, again, and and material pouches.
    • +
    +

    timothyteakettle updated:

    +
      +
    • support for custom blood colours implemented, slimes blood colour now equivalent to their body colour
    • +
    + +

    27 June 2020

    +

    Detective-Google updated:

    +
      +
    • Lying down is better
    • +
    +

    timothyteakettle updated:

    +
      +
    • felinids now nya when tabled
    • +
    + +

    26 June 2020

    +

    Ghommie updated:

    +
      +
    • Snore spam.
    • +
    • Hostile mobs shouldn't hit their original spawner structures or thoses of the same faction.
    • +
    +

    silicons updated:

    +
      +
    • soap cleans blood again
    • +
    + +

    25 June 2020

    +

    Anonymous updated:

    +
      +
    • Added kepi and orvilike kepi. Available through loadout.
    • +
    +

    Detective Google updated:

    +
      +
    • Medigygax
    • +
    +

    Detective-Google updated:

    +
      +
    • malf AIs can no longer yeet the station while shunted
    • +
    • SMESes can now properly use self charging cells
    • +
    • ghosts now show up when the round ends
    • +
    • away missions
    • +
    +

    Funce updated:

    +
      +
    • Mentor SQL queries are now deleted properly.
    • +
    +

    Linzolle updated:

    +
      +
    • analyze function on chem master is no longer broken
    • +
    • organs now decay inside dead bodies again
    • +
    +

    dapnee updated:

    +
      +
    • wataur bottle item
    • +
    • wataur bottle and overlay
    • +
    + +

    24 June 2020

    +

    DeltaFire15 updated:

    +
      +
    • Choosing a random item in your uplink will no longer sometimes reroll your contract.
    • +
    • Syndicate crate event cannot fire as a random event anymore.
    • +
    +

    Detective-Google updated:

    +
      +
    • singulos no longer succ infinite rods out of the ice
    • +
    • one of the directions for the diag hudpatch was blu instead of orang
    • +
    +

    timothyteakettle updated:

    +
      +
    • bonfires/grills no longer produce infinite quantities of food
    • +
    • slime's alter form ability now updates their hair colour when changing their body colour
    • +
    + +

    22 June 2020

    +

    Ghommie (porting PRs by zxaber, Ryll-Ryll, AnturK) updated:

    +
      +
    • Certain small items purchased through cargo now get grouped into a single box. They also are immune to the 10% private account fee.
    • +
    • Added single-order options for several existing products in the Cargo Catalog.
    • +
    • Medkit listings are now single-pack items, and considered small items that get grouped into single boxes. Price for medkits is as close to unchanged as is reasonable.
    • +
    • You can now beat on vending machines to try and knock loose free stuff! You can also almost kill yourself doing it, so it's your call if your life is worth ten bucks.
    • +
    • Cigarette packets now have coupons on the back for small cargo items! Smoking DOES pay!
    • +
    • Some single/small items in cargo have been rebranded as goodies, come in lockboxes rather than crates, and can only be purchased with private accounts.

    kevinz000 updated:

      -
    • Mobility flags are here. Fixed some edge cases with xeno hardstuns and similar stuff like warden's shotgun hardstuns and yeah.
    • -
    • Security now has riot quarterstaves in their lethal shotgun locker.
    • -
    • Pushing is no longer free space movement.
    • -
    • You can now right click to point the tip of some sharp tipped weapons at people.
    • -
    • compact defibs have 10k cells again
    • -
    • music max characters per line is now 150 instead of 50.
    • -
    • storage no longer closes while being dragged
    • -
    • disabler taser alt fire shots are faster and have a 14 tile range now
    • -
    • HoS taser now only applies tased effect for 1 second and warden's pump action stun blaster no longer applies it at all.
    • -
    • Nanite adrenals have been nerfed.
    • -
    • Ninja stungloves nerfed 49 stamina to 25 (so they're basically just better than stunbatons).
    • -
    • Batons now also trigger disarm behavior in disarm intent and not just on right click.
    • -
    • combat mode/sprint/resisting lying down/attempting to crawl under all refactored, added combat/sprint mode lockouts, being locked out of combat mode no longer disables it and allows right click interactions etc etc
    • -
    • hands free actions no longer check mobility and only consciousness.
    • -
    • Minimaps, accessible via a button on OOC.
    • -
    • unnecessary blindness post-unconsciouss has been fixed with a hack that's almost as garbage as the code that caused it in the first place.
    • -
    • synthflesh and rezadone now take total amounts of both applied and existing reagents rather than only existing and only applied respectively.
    • -
    • reverts bubblegum bloodling swarming.
    • -
    • Beam rifles shot count 10 --> 5 and can no longer pierce. Also renders properly for reflections against blobs and some other things.
    • -
    • being stunned no longer stops an ai from undeploying from a shell.
    • -
    • beam rifles are less terrible code
    • -
    • slowdown on items should now be set by set_slowdown().
    • -
    • hypereutactic blades properly slow down their wielders when being used and vv-editing an item's slowdown will once again properly update someone's slowdown to take the new value into account.
    • -
    • stunprods knockdown again.
    • +
    • Life() is split into BiologicalLife() and PhysicalLife. A component signal has been added that can prevent either from ticking.
    -

    monster860 updated:

    +

    shellspeed1 updated:

      -
    • You can now moan in soft crit
    • -
    • Use Ctrl-Shift-direction key to shift your characters position. Use for ERP.
    • +
    • Adds IV bags.
    -

    necromanceranne updated:

    + +

    21 June 2020

    +

    kevinz000 updated:

      -
    • Ports New Sleeping Carp
    • -
    • Ports the martial arts refactors, which includes things like moving martial into the martial subfolder and renaming it _martial, and cleans up human_defense rising bass/sleeping carp exclusive code.
    • -
    • Particle Defender is now a much more sane weapon.
    • -
    • Tasers are no longer ignoring stimulants.
    • -
    • Blood beam can't create harvesters out of mech pilots.
    • -
    • Some minor fixes to fakedeath and a tg fix port.
    • -
    • Bleeding out all your blood from getting love tapped by a toolbox.
    • -
    • Diagnostic HUDSunglasses are better than ever!
    • -
    • Sprite fixes I hope
    • -
    • You can no longer acquire stun bullets in the .45 calibre. You can get the 30 damage version out of the autolathe instead.
    • -
    • KITCHEN GUN (TM) is a lot stronger. Cleaning bullets are a whole 40 damage!
    • -
    • Fixed turrets not allowing their guns to be recovered.
    • -
    • Altered the plastitanium rapier from a perfect AP but weaker esword equivalent to a more unique sleep inducing melee weapon.
    • -
    • Touched up all the relevant sprites.
    • -
    • Nightvision goggles are nerfed all-round. Flashes have actual use against people using nightvision, as do flashbangs.
    • -
    • Syndicate nuclear agents get to live peacefully knowing their eyes are well protected by their special night vision goggles. Spider clan also get these goggles.
    • +
    • calculations for punch hit chance has been drastically buffed in favor of the attacker.
    -

    raspyosu updated:

    + +

    20 June 2020

    +

    LetterN updated:

      -
    • some flavor text for lunge, cloak
    • -
    • mesmerize, cloak functionality/requirements
    • -
    • mesmerize, lunge, cloak
    • -
    • lunge telegraph sound
    • -
    • mesmerized status icon flavor text
    • -
    • cloak sometimes not restoring initial move intent
    • -
    • mesmerize (line of sight checking system and remove progress bar)
    • -
    • nerf: lunge, mesmerize
    • +
    • Asset cache from tg
    • +
    • Made the map viewer not look bad
    • +
    • Admin matrix right-bracket
    -

    spookydonut updated:

    +

    bunny232 updated:

      -
    • adds selective duplicate component mode
    • +
    • Removed unsavory things from the vent clog event
    -

    wesoda25 updated:

    + +

    19 June 2020

    +

    Bhijn updated:

      -
    • You no longer hit fermenting barrels when taking reagents from them
    • +
    • Atmos can no longer become completely bricked
    -

    zeroisthebiggay updated:

    +

    Funce updated:

      -
    • kilo shuttle less bad
    • -
    • tauric contractor space suits
    • -
    • ghost hud and nv defaults on
    • -
    • syndicate elite hardsuit helmet doesnt hide masks anymore
    • -
    • syndicate contractor helmets are no longer secretly lead
    • -
    • Space Fashion has discovered a new way to wear bandannas. With some simple minor adjustments and ties, bandannas can be made into fashionable neckerchiefs!
    • -
    • Box Station has gotten a brand new brig. Go and check it out and discover all the quirky little soulbits.
    • -
    • box brig miscellaneous issues
    • -
    • box station hos office
    • +
    • Square root circuit should now actually work.
    • +
    +

    SmArtKar updated:

    +
      +
    • Fixed my runtimes
    • +
    +

    TheSpaghetti updated:

    +
      +
    • more insectoid insects
    • +
    +

    kevinz000 updated:

    +
      +
    • bay/polaris style say_emphasis has been added. You can now |italicize| _underline_ and +bold+ your messages.
    • +
    +

    timothyteakettle updated:

    +
      +
    • Adds the brain trauma event, where one player gets a random brain trauma!
    • +
    • Adds the wisdom cow event, where the wisdom cow appears on the station!
    • +
    • Adds the fake virus event, where people get fake virus symptoms.
    • +
    • Adds the stray cargo pod event, where a cargo pod crashes into the station.
    • +
    • Adds the fugitives event, where fugitives are loose on the station, and it's the hunters jobs to capture them.
    • +
    + +

    18 June 2020

    +

    Detective-Google updated:

    +
      +
    • cog is now less the suck
    • +
    • couple little derpy bits
    • +
    • malf disk and illegal tech disk moved from ashwalker base (guaranteed) to tendrils (chance based)
    • +
    +

    SmArtKar updated:

    +
      +
    • Ported shuttles from beestation
    • +
    +

    timothyteakettle updated:

    +
      +
    • embeds got reworked, sticky tape was added, more bullets that ricochet also added
    • +
    • medbots can now be tipped over
    • +
    • added more medbot sounds
    • +
    + +

    17 June 2020

    +

    SmArtKar updated:

    +
      +
    • New ID icons
    • +
    • Sutures and Meshes
    • +
    +

    Trilbyspaceclone updated:

    +
      +
    • Gin export takes gin now
    • +
    + +

    16 June 2020

    +

    Ghommie updated:

    +
      +
    • You can't blink nor use LOOC/AOOC as a petrified statue anymore.
    • +
    +

    Trilbyspaceclone updated:

    +
      +
    • BEPIS decal painter has been moved to venders, replacing it being the flashdark
    • +
    +

    kevinz000 updated:

    +
      +
    • projectile ricochets now use a less hilariously terrible way of being handled and should be easier to w
    • +
    • projectile runtime/ricocheting
    • +
    • Lobotomy no longer has a 50% chance of giving you a nigh-unremovable trauma, but does 50 brain damage even on success. On failure, it will give you a lobotomy-class trauma.
    • +
    • spinesnapping from tackling now only gives a lobotomy class trauma instead of magic.
    • +
    +

    timothyteakettle updated:

    +
      +
    • Food carts now function as intended, allowing the pouring and mixing of drinks.
    • +
    • slimes can now change their color using alter form
    • +
    + +

    15 June 2020

    +

    Anturk, kevinz000 updated:

    +
      +
    • VV now properly allows access to datums in associative lists
    • +
    • SDQL2 printout has been upgraded for the 5th time.
    • +
    +

    kevinz000 updated:

    +
      +
    • plushies now work. credits to timothytea.
    • +
    • You can now tape knives to cleanbots
    • +
    +

    kevinz000 (port from VOREStation) updated:

    +
      +
    • Ported zoomba skins for cyborgs.
    • +
    + +

    14 June 2020

    +

    Bhijn updated:

    +
      +
    • raw HTML can no longer be used in flavortext
    • +
    • Added Lesbian Visibility Day (April 26th)
    • +
    • Added Bisexual Visibility Day (September 23rd)
    • +
    • Added Coming Out Day! (October 11th)
    • +
    • Added Intersex Awareness Day (October 26th)
    • +
    • Added Transgender Awareness Week (November 13th - 19th)
    • +
    • Added the Transgender Day of Remembrance (November 20th)
    • +
    • Added Asexual Awareness Week (Last full week of October, this year it'll be Oct. 25-31)
    • +
    • Added the Stonewall Riot Anniversary (June 28)
    • +
    • Moth week is now *actually* the last full week of July, instead of the 4th of every weekday + the 5th Sunday.
    • +
    +

    Floof Ball / Kathrin Morrison / Floof Ball#0798 updated:

    +
      +
    • Improvised Pistol + 32 ACP ammo.
    • +
    • Improvised Energy Gun. Fires 5 shots of 10 burn damage each. Can be upgraded with a lens made from glassworking and T4 parts for a minor buff.
    • +
    • Ammo + gun part loot spawners for mappers.
    • +
    • New sprites for Improvised Rifle, the ability to sling the rifle and a sprite for that.
    • +
    • New sprites for the Improvised Shotgun and its sling sprite.
    • +
    • Improvised shotguns are now two-handed only.
    • +
    • Improvised shotguns now only have a much less harsh 0.9* modifier, keeping them two hits to crit with slugs and buckshot. It can no longer be dual-wielded but can still be sawn off for w_class medium (can fit in backpacks).
    • +
    • Missing handsaw icons added in.
    • +
    • Crafting table cleaned up into sections.
    • +
    +

    Ghommie updated:

    +
      +
    • changed the weak attack message prefix from "inefficiently" to "limply", "feebly" and "saplessly" and lowered the threshold.
    • +
    • Fixing old beserker hardsuits having the wrong helmet type.
    • +
    +

    The0bserver and Stewydeadmike updated:

    +
      +
    • Hey, there's a bit of dust in this recipe book! Recipes using peas? How many recipes does this book even have?
    • +
    • Adds 6 new food items, and 1 new consumable reagent using all forms of the recently discovered peas. Ask your local botanist and chef for them today!
    • +
    +

    YakumoChen updated:

    +
      +
    • Adds polychrome options to loadout
    • +
    • Adds risque polychrome options to Kinkmate vendors
    • +
    +

    kevinz000 updated:

    +
      +
    • emissive blockers can no longer be radioactive.
    • +
    • Ghosts can now scan air inside most objects that contain air by clicking on them.
    • +
    • Directional blocking has been added, keybound to G. This will reduce a portion of incoming damage if done with eligible items at the cost of stamina damage incurred to the user based on damage blocked as well as while active, as well as in most cases preventing the user from doing any attacks while this is active.
    • +
    • Parrying has been added, keybound to F. Timing-based counterattacks, effect heavily dependent on the item, WIP.
    • +
    • Disks are now smaller.
    • +
    + +

    12 June 2020

    +

    EmeraldSundisk updated:

    +
      +
    • The Detective's Office has been commandeered in order to serve a Head of Security. Detectives will find their new office within starboard maintenance.
    • +
    • Adds the Head of Security's standard equipment to their new office.
    • +
    • Slight adjustment/expansion to the main security department
    • +
    • Additional maintenance work
    • +
    +

    timothyteakettle updated:

    +
      +
    • Crabs, cockroaches, slimes and crabs are now small enough to fit in pet carriers
    • +
    + +

    11 June 2020

    +

    Ghommie updated:

    +
      +
    • Balanced vending machine prices to be generally more affordable, a minority has been priced up though.
    • +
    + +

    10 June 2020

    +

    DeltaFire15 updated:

    +
      +
    • Golems / simillar now inherit the neutered antag datum if the creator is neutered.
    • +
    +

    Ghommie updated:

    +
      +
    • Fixing missing pill type buttons from the chem master UI.
    • +
    +

    Naksu updated:

    +
      +
    • Lighting corner updates are ever so slightly faster.
    • +
    +

    Putnam for helping me code the contamination clearing on people updated:

    +
      +
    • Lab made Zeolites have been remade anew and more affective now that they refined the best possable way to mix and make a supper Zeolite capable of clearing contamination form not only people but items!
    • +
    +

    Trilbyspaceclone updated:

    +
      +
    • Tank Dispender has been moved into toxin storage from toxins
    • +
    +

    kevinz000 updated:

    +
      +
    • traitor classes can now be poplocked. hijack/glorious death are now locked to 25/20 respectively.
    • +
    +

    timothyteakettle updated:

    +
      +
    • adds a new fermichem, used for creating sentient plushies!
    • +
    • Mice can now breed using cheese wedges
    • +
    • Royal cheese can be crafted to convert a mouse into king rat
    • +
    + +

    09 June 2020

    +

    Anonymous updated:

    +
      +
    • Added Orville-inspired clothing as a worthy alternative to Trek stuff.
    • +
    • Adds chaplain role allowance to the TMP Service Uniform loadout.
    • +
    • Adds paramedic in every medsci mentioned uniform loadout.
    • +
    +

    DeltaFire15 updated:

    +
      +
    • Offstation AIs can once again only interact with their z-level
    • +
    +

    Ghommie updated:

    +
      +
    • Fixing IC material containers interaction with stacks, for real.
    • +
    +

    Trilbyspaceclone updated:

    +
      +
    • Gasses like BZ and Masiam seem to just sell for less in cargo, markets seem to change it seems
    • +
    +

    kevinz000 updated:

    +
      +
    • plantpeople should stop dying in the halls now
    • +
    • Modifier-independent hotkey bindings have been added.
    • +
    + +

    08 June 2020

    +

    DeltaFire15 updated:

    +
      +
    • Delinging now properly removes their special role
    • +
    • Keycard auth devices now require two seperate IDs with sufficient access to auth.
    • +
    +

    Linzolle updated:

    +
      +
    • shotguns no longer delete chambered shells while firing
    • +
    +

    kevinz000 updated:

    +
      +
    • test
    • +
    +

    shellspeed1 updated:

    +
      +
    • Internal tanks are now printable at the engineering lathe.
    • +
    +

    timothyteakettle updated:

    +
      +
    • newly created areas using blueprints now maintain the previous areas noteleport value
    • +
    • kudzu seeds now actually spawn vines
    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index d07b7c3a4f..0553c64ce7 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -25832,3 +25832,467 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - bugfix: Adding in some overrides and proper flag checks for martial arts. - bugfix: Stun thresholding stops disarm spams at extremely high stamina loss. - tweak: Ashen Arrows are actually called Ashen Arrows in the crafting menu. +2020-06-08: + DeltaFire15: + - bugfix: Delinging now properly removes their special role + - balance: Keycard auth devices now require two seperate IDs with sufficient access + to auth. + Linzolle: + - bugfix: shotguns no longer delete chambered shells while firing + kevinz000: + - rscadd: test + - rscdel: test + shellspeed1: + - rscadd: Internal tanks are now printable at the engineering lathe. + timothyteakettle: + - bugfix: newly created areas using blueprints now maintain the previous areas noteleport + value + - bugfix: kudzu seeds now actually spawn vines +2020-06-09: + Anonymous: + - rscadd: Added Orville-inspired clothing as a worthy alternative to Trek stuff. + - tweak: Adds chaplain role allowance to the TMP Service Uniform loadout. + - tweak: Adds paramedic in every medsci mentioned uniform loadout. + DeltaFire15: + - bugfix: Offstation AIs can once again only interact with their z-level + Ghommie: + - bugfix: Fixing IC material containers interaction with stacks, for real. + Trilbyspaceclone: + - tweak: Gasses like BZ and Masiam seem to just sell for less in cargo, markets + seem to change it seems + kevinz000: + - balance: plantpeople should stop dying in the halls now + - rscadd: Modifier-independent hotkey bindings have been added. +2020-06-10: + DeltaFire15: + - bugfix: Golems / simillar now inherit the neutered antag datum if the creator + is neutered. + Ghommie: + - bugfix: Fixing missing pill type buttons from the chem master UI. + Naksu: + - code_imp: Lighting corner updates are ever so slightly faster. + Putnam for helping me code the contamination clearing on people: + - rscadd: Lab made Zeolites have been remade anew and more affective now that they + refined the best possable way to mix and make a supper Zeolite capable of clearing + contamination form not only people but items! + Trilbyspaceclone: + - tweak: Tank Dispender has been moved into toxin storage from toxins + kevinz000: + - rscadd: traitor classes can now be poplocked. hijack/glorious death are now locked + to 25/20 respectively. + timothyteakettle: + - rscadd: adds a new fermichem, used for creating sentient plushies! + - rscadd: Mice can now breed using cheese wedges + - rscadd: Royal cheese can be crafted to convert a mouse into king rat +2020-06-11: + Ghommie: + - balance: Balanced vending machine prices to be generally more affordable, a minority + has been priced up though. +2020-06-12: + EmeraldSundisk: + - tweak: The Detective's Office has been commandeered in order to serve a Head of + Security. Detectives will find their new office within starboard maintenance. + - rscadd: Adds the Head of Security's standard equipment to their new office. + - tweak: Slight adjustment/expansion to the main security department + - rscadd: Additional maintenance work + timothyteakettle: + - rscadd: Crabs, cockroaches, slimes and crabs are now small enough to fit in pet + carriers +2020-06-14: + Bhijn: + - bugfix: raw HTML can no longer be used in flavortext + - rscadd: Added Lesbian Visibility Day (April 26th) + - rscadd: Added Bisexual Visibility Day (September 23rd) + - rscadd: Added Coming Out Day! (October 11th) + - rscadd: Added Intersex Awareness Day (October 26th) + - rscadd: Added Transgender Awareness Week (November 13th - 19th) + - rscadd: Added the Transgender Day of Remembrance (November 20th) + - rscadd: Added Asexual Awareness Week (Last full week of October, this year it'll + be Oct. 25-31) + - rscadd: Added the Stonewall Riot Anniversary (June 28) + - bugfix: Moth week is now *actually* the last full week of July, instead of the + 4th of every weekday + the 5th Sunday. + Floof Ball / Kathrin Morrison / Floof Ball#0798: + - rscadd: Improvised Pistol + 32 ACP ammo. + - rscadd: Improvised Energy Gun. Fires 5 shots of 10 burn damage each. Can be upgraded + with a lens made from glassworking and T4 parts for a minor buff. + - rscadd: Ammo + gun part loot spawners for mappers. + - rscadd: New sprites for Improvised Rifle, the ability to sling the rifle and a + sprite for that. + - rscadd: New sprites for the Improvised Shotgun and its sling sprite. + - balance: Improvised shotguns are now two-handed only. + - balance: Improvised shotguns now only have a much less harsh 0.9* modifier, keeping + them two hits to crit with slugs and buckshot. It can no longer be dual-wielded + but can still be sawn off for w_class medium (can fit in backpacks). + - bugfix: Missing handsaw icons added in. + - tweak: Crafting table cleaned up into sections. + Ghommie: + - tweak: changed the weak attack message prefix from "inefficiently" to "limply", + "feebly" and "saplessly" and lowered the threshold. + - bugfix: Fixing old beserker hardsuits having the wrong helmet type. + The0bserver and Stewydeadmike: + - rscadd: Hey, there's a bit of dust in this recipe book! Recipes using peas? How + many recipes does this book even have? + - rscadd: Adds 6 new food items, and 1 new consumable reagent using all forms of + the recently discovered peas. Ask your local botanist and chef for them today! + YakumoChen: + - tweak: Adds polychrome options to loadout + - tweak: Adds risque polychrome options to Kinkmate vendors + kevinz000: + - bugfix: emissive blockers can no longer be radioactive. + - rscadd: Ghosts can now scan air inside most objects that contain air by clicking + on them. + - rscadd: Directional blocking has been added, keybound to G. This will reduce a + portion of incoming damage if done with eligible items at the cost of stamina + damage incurred to the user based on damage blocked as well as while active, + as well as in most cases preventing the user from doing any attacks while this + is active. + - rscadd: Parrying has been added, keybound to F. Timing-based counterattacks, effect + heavily dependent on the item, WIP. + - balance: Disks are now smaller. +2020-06-15: + Anturk, kevinz000: + - bugfix: VV now properly allows access to datums in associative lists + - rscadd: SDQL2 printout has been upgraded for the 5th time. + kevinz000: + - bugfix: plushies now work. credits to timothytea. + - rscadd: You can now tape knives to cleanbots + kevinz000 (port from VOREStation): + - imageadd: Ported zoomba skins for cyborgs. +2020-06-16: + Ghommie: + - bugfix: You can't blink nor use LOOC/AOOC as a petrified statue anymore. + Trilbyspaceclone: + - tweak: BEPIS decal painter has been moved to venders, replacing it being the flashdark + kevinz000: + - refactor: projectile ricochets now use a less hilariously terrible way of being + handled and should be easier to w + - bugfix: projectile runtime/ricocheting + - balance: Lobotomy no longer has a 50% chance of giving you a nigh-unremovable + trauma, but does 50 brain damage even on success. On failure, it will give you + a lobotomy-class trauma. + - balance: spinesnapping from tackling now only gives a lobotomy class trauma instead + of magic. + timothyteakettle: + - bugfix: Food carts now function as intended, allowing the pouring and mixing of + drinks. + - rscadd: slimes can now change their color using alter form +2020-06-17: + SmArtKar: + - rscadd: New ID icons + - rscadd: Sutures and Meshes + Trilbyspaceclone: + - bugfix: Gin export takes gin now +2020-06-18: + Detective-Google: + - tweak: cog is now less the suck + - bugfix: couple little derpy bits + - balance: malf disk and illegal tech disk moved from ashwalker base (guaranteed) + to tendrils (chance based) + SmArtKar: + - rscadd: Ported shuttles from beestation + timothyteakettle: + - rscadd: embeds got reworked, sticky tape was added, more bullets that ricochet + also added + - rscadd: medbots can now be tipped over + - soundadd: added more medbot sounds +2020-06-19: + Bhijn: + - bugfix: Atmos can no longer become completely bricked + Funce: + - bugfix: Square root circuit should now actually work. + SmArtKar: + - bugfix: Fixed my runtimes + TheSpaghetti: + - rscadd: more insectoid insects + kevinz000: + - rscadd: bay/polaris style say_emphasis has been added. You can now |italicize| + _underline_ and +bold+ your messages. + timothyteakettle: + - rscadd: Adds the brain trauma event, where one player gets a random brain trauma! + - rscadd: Adds the wisdom cow event, where the wisdom cow appears on the station! + - rscadd: Adds the fake virus event, where people get fake virus symptoms. + - rscadd: Adds the stray cargo pod event, where a cargo pod crashes into the station. + - rscadd: Adds the fugitives event, where fugitives are loose on the station, and + it's the hunters jobs to capture them. +2020-06-20: + LetterN: + - rscadd: Asset cache from tg + - tweak: Made the map viewer not look bad + - bugfix: Admin matrix right-bracket + bunny232: + - rscdel: Removed unsavory things from the vent clog event +2020-06-21: + kevinz000: + - balance: calculations for punch hit chance has been drastically buffed in favor + of the attacker. +2020-06-22: + Ghommie (porting PRs by zxaber, Ryll-Ryll, AnturK): + - tweak: Certain small items purchased through cargo now get grouped into a single + box. They also are immune to the 10% private account fee. + - rscadd: Added single-order options for several existing products in the Cargo + Catalog. + - tweak: Medkit listings are now single-pack items, and considered small items that + get grouped into single boxes. Price for medkits is as close to unchanged as + is reasonable. + - rscadd: You can now beat on vending machines to try and knock loose free stuff! + You can also almost kill yourself doing it, so it's your call if your life is + worth ten bucks. + - rscadd: Cigarette packets now have coupons on the back for small cargo items! + Smoking DOES pay! + - tweak: Some single/small items in cargo have been rebranded as goodies, come in + lockboxes rather than crates, and can only be purchased with private accounts. + kevinz000: + - refactor: Life() is split into BiologicalLife() and PhysicalLife. A component + signal has been added that can prevent either from ticking. + shellspeed1: + - rscadd: Adds IV bags. +2020-06-24: + DeltaFire15: + - balance: Choosing a random item in your uplink will no longer sometimes reroll + your contract. + - rscdel: Syndicate crate event cannot fire as a random event anymore. + Detective-Google: + - bugfix: singulos no longer succ infinite rods out of the ice + - bugfix: one of the directions for the diag hudpatch was blu instead of orang + timothyteakettle: + - bugfix: bonfires/grills no longer produce infinite quantities of food + - bugfix: slime's alter form ability now updates their hair colour when changing + their body colour +2020-06-25: + Anonymous: + - rscadd: Added kepi and orvilike kepi. Available through loadout. + Detective Google: + - rscadd: Medigygax + Detective-Google: + - bugfix: malf AIs can no longer yeet the station while shunted + - bugfix: SMESes can now properly use self charging cells + - rscadd: ghosts now show up when the round ends + - balance: away missions + Funce: + - bugfix: Mentor SQL queries are now deleted properly. + Linzolle: + - bugfix: analyze function on chem master is no longer broken + - bugfix: organs now decay inside dead bodies again + dapnee: + - rscadd: wataur bottle item + - imageadd: wataur bottle and overlay +2020-06-26: + Ghommie: + - bugfix: Snore spam. + - bugfix: Hostile mobs shouldn't hit their original spawner structures or thoses + of the same faction. + silicons: + - bugfix: soap cleans blood again +2020-06-27: + Detective-Google: + - tweak: Lying down is better + timothyteakettle: + - rscadd: felinids now nya when tabled +2020-06-28: + Detective-Google: + - bugfix: cog is less the suck + - tweak: piggybacking is no longer absolutely inferior + Ghommie: + - bugfix: Fixing windows interaction with spraycans. + - bugfix: Fixing kinetic accelerator guns not working well with gun circuitries. + - bugfix: Fixing Zoomba borgs lights overlays. + - bugfix: Fixing the "absorb another ling" and "absorb the most dna" objectives + rolling when no other changeling is around. + - spellcheck: Clarified a pet peeve about the spread infestation ability. + - bugfix: BEPIS nodes won't show up anymore in the expert mode ui of the r&d console + anymore (good thing they weren't researchable). + - bugfix: Hopefully fixing sound loop edge cases. + - bugfix: Fixing pAI radios being permanently disabled by EMPs at times. + - rscadd: Windoors can now be obscured with spraycans just like windows. + Ghommie porting PRs by Qustinnus/Floyd, Willow, cacogen, nemvar, Ghilker and EOBGames (Inept): + - bugfix: Fixes a material duplication bug. + - code_imp: unique combinations of custom_materials lists are now shared between + objects + - rscadd: meat material. yes. + - rscadd: materials can now be used to build walls/floors. meat house + - bugfix: edible component now does not try to attack if you eat something with + it + - rscadd: Texture support for mat datums with thanks to 4DPlanner! + - bugfix: you no longer hit yourself with organs when eating + - rscadd: A whole bunch of materials are now datumised! Check out bronze, runed + metal, sand, sandstone, snow, paper, cardboard, bone and bamboo. Oh, and pizza. + Yes, pizza. + - balance: Buffs material floor tiles' throwforces from 1 to 10 (same as iron) to + better showcase the effect of different materials (e.g. meat vs. titanium) + - bugfix: Radioactive items no longer output a single . when examined at a distance + MrJWhit: + - rscdel: Removed air alarm in Snow Snaxi in Tcomms Sat + - rscdel: Removed trash bins in genetics and mining + - tweak: Gives cargo techs a cargolathe + Putnam3145: + - bugfix: lost my mind just a couple of times + b1tt3r1n0: + - rscadd: pouches, again, and and material pouches. + timothyteakettle: + - rscadd: support for custom blood colours implemented, slimes blood colour now + equivalent to their body colour +2020-06-29: + b1tt3r1n0: + - balance: Made teratomas from sdgf less powergame + timothyteakettle: + - bugfix: slimes no longer have white blood by default +2020-06-30: + Fikou: + - rscadd: spray cans, airlock painters, and decal painters added to engineering/service/autolathe + (where applicable) + Ghommie: + - bugfix: Fixed a gap on the male insect anthro torso sprite when facing south. + - bugfix: Fixed mecha ID access not being removable. + - bugfix: Fixed a peeve with the hypno trance status effect not sanitizing some + heard hypnosis inputs (i.e. custom say messages like say"honks*clownem ipsum + dolor") + - bugfix: fixed an issue about using stacks with only 1 amount left. + - bugfix: Fixed a peeve on attack messages against carbons/humans. + - bugfix: Fixed missing hypnochair board. + - bugfix: Fixed material walls and tiles. My bad on that port. + Ghommie (inspired by MrDoomBringer's work on tgstation): + - rscadd: New check skills UI. + Ghommie (porting PRs by XTDM, coiax, MrDoomBringer): + - tweak: Random Events now have a follow link for ghosts! + - rscadd: Adds the Spontaneous Brain Trauma to the event pool. Sometimes your brain + just goes a little wrong. + - rscadd: Sometimes a low level cloning pod will make errors in replicating your + brain, leaving you with a mild brain trauma. + - rscadd: When a person is cloned, any mental traumas are cloned as well. + - rscadd: The wizard federation announces that the Curse of Madness is out of beta + and is now available for purchase for 4 points. It causes long-lasting brain + traumas to all inhabitants of a target space station. + - rscadd: The wizard federation declines responsibility for any self-harm caused + by curses cast while inside the targeted station. + - rscadd: Due to the extensive testing of the Curse of Madness some unique new trauma + types have appeared across Nanotrasen-controlled space. + - rscadd: Curse of Madness can now be triggered by a wizard's Summon Events, at + the same chance as Summon Guns or Summon Magic. + - admin: When an admin triggers Curse of Madness manually, they can specify their + own dark truth to horrify the station with. + nightred: + - code_imp: Created two_handed component + - refactor: Updated all existing two handed items to use the new component + silicons: + - bugfix: typing indicators no longer generates duplicate message boxes. + - rscadd: config errors now have line numbers. + - tweak: outgoing mentorpms are now blue instead of green for the sender. + - soundadd: '*squish' + timothyteakettle: + - rscadd: you can now select your tongue and speech verb in the character customization + menu! + - rscadd: skeleton is now split into two more types, greater and lesser + - bugfix: non-carbon blood is now not white + - spellcheck: fixed a bunch of grammar/spelling mistakes +2020-07-02: + Ghommie: + - bugfix: Fixing a few issues with twohanded items. + - bugfix: Unum decks now work correctly. + - bugfix: Abductor walls are once again buildable with alien alloy. + Trilbyspaceclone: + - tweak: Makes pride and envy ruin a bit smaller! + - rscadd: Pride now has rings, lipstick wigs and silver walls/door making a nice + and polished look then cyan blue walls. + - rscadd: more trash and better dagger placement on food ruin + - rscadd: Snowboim now has snowballs and toy gifts for the two skeles daw! + - tweak: Beach boim now has carp light branding beer, as well as soap! + - tweak: Greed ruin now uses nice slick walls and carpet! + - tweak: Founten ruin looks a lot better with its carpets and well maintained fluff + things, but walls suffered and no longer can salvage ruined metal... + - rscadd: Alien nest has a bit more glowy floors of resin looking a bit more lived + in by the drones. As well as the "door" now being see through resin rather then + the thicker stuff that you cant see through + - rscadd: Pizza party has a few more gifts, some candy and snap pops yay! + - balance: Sloth ruin is about 15~ tiles shorter, has and has more fruit for a bowl. + How lazy! + silicons: + - bugfix: bohbombing is a thing now +2020-07-03: + Arturlang: + - rscadd: You can now toggle hardsuit helmets from the strip menu + Ghommie: + - bugfix: fixed custom speech/tongue stuff. + - balance: Lowered shaft miners' paycheck, they have other ways to make cash. + - rscadd: You can't (un)equip garments on/from obscured inventory slots anymore. + - balance: The stamina cost multiplier for swinging melee weapons against mobs has + been brought back to 1 from 0.8 + - balance: The stamina cost for throwing mobs now scales with their mob size variable. + LetterN: + - tweak: Ported some tags from tgui-3.0 to Vending.js + - bugfix: vending icons + - bugfix: r&d icons + - bugfix: chem master icons + Onule: + - tweak: titanium wall man good + Sonic121x: + - bugfix: Bringback the ChemMaster pill type button. + - bugfix: Fix Technode icon. + bunny232: + - tweak: Witchhunter hat no longer obscures mask ears ,eyes, face and mouth + timothyteakettle: + - bugfix: bloodpacks initialise correctly now +2020-07-04: + Sonic121x: + - rscadd: crushed Soldry sodacan + - rscadd: digitigrade version of chief medical officer's turtleneck and captain's + female formal outfit. + silicons: + - refactor: blood_DNA["color"] is now a single variable instead of a list +2020-07-05: + Ghommie: + - bugfix: You can now actually gain wiring experience from using cable coils. + - bugfix: Opening the View Skill Panel shouldn't trigger messages about insufficient + admin priviledges anymore. + Yakumo Chen, kappa-sama: + - rscdel: Removes improvised handguns + - rscdel: removed handsaws, improvised gun barrels (you can use atmos pipes again) + - balance: Guncrafting is less time and resource intensive + - tweak: Item names in guncrafting are user-friendly. + kappa-sama: + - rscadd: cloth string to replace durathread string + - rscdel: durathread string + - balance: All bows and arrows have had crafting times significantly reduced, coming + out at up to 6 times faster crafting speeds. Improvised bows no longer require + durathread; instead, they use cloth materials. + silicons: + - tweak: active blocking now has a toggle keybind + - rscadd: auto bunker override verb has been added + - balance: shields take 2.5 stam instead of 3.5 stam per second to maintain block + - rscadd: Cybernetic implant shields will auto-extend and be used to block if the + user has no item to block with + timothyteakettle: + - tweak: cooking oil is now far less lethal, requiring a higher volume of the reagent + to deal more damage +2020-07-07: + KasparoVy: + - tweak: Fixes misaligned south-facing silver legwraps sprite. + Owai-Seek: + - bugfix: Bee Balm is now visible. + Weblure: + - bugfix: Fixed the slowdown formula for small character sprites; you guys don't + use custom sprite sizes so just ignore these changes. + - bugfix: Fixed the "Move it to the threshold" button; it now does what it says. + - tweak: Reworded some text to be clearer. +2020-07-08: + DeltaFire15: + - bugfix: The kill-once objective now works properly. + EmeraldSundisk: + - rscadd: CogStation now has an apothecary + - rscdel: Removes an outdated note on sleepers + - tweak: Readjusts CogStation's chemistry lab + - tweak: Slight area designation adjustments for Robotics + - bugfix: The arrivals plaque should be readable now + Owai-Seek: + - rscadd: Margarine, Chili Cheese Fries. + - tweak: Egg Wraps are now categorized under egg foods. + - bugfix: Tuna Sandwich crafting/sprite is now visible. + - imageadd: Icons for chicken, cooked chicken, steak, grilled carp, corndogs + - imageadd: Icons for chili cheese fries, margarine, BLT sandwich + - imageadd: (Unused) icons for raw meatballs, and lard +2020-07-09: + timothyteakettle: + - rscadd: bluespace tray added, allowing twice as many items as the regular tray, + printable at the service lathe, researched through science + - rscadd: bluespace jar added, a kind of pet carrier that allows human sized mobs + inside, and smashes when thrown, researched and printed through science diff --git a/icons/effects/beam.dmi b/icons/effects/beam.dmi index 0731583733..0c4784553c 100644 Binary files a/icons/effects/beam.dmi and b/icons/effects/beam.dmi differ diff --git a/icons/effects/block_parry.dmi b/icons/effects/block_parry.dmi new file mode 100644 index 0000000000..4a0ade5e61 Binary files /dev/null and b/icons/effects/block_parry.dmi differ diff --git a/icons/effects/freeze.dmi b/icons/effects/freeze.dmi index 28db97d87b..0461619064 100644 Binary files a/icons/effects/freeze.dmi and b/icons/effects/freeze.dmi differ diff --git a/icons/materials/composite.dmi b/icons/materials/composite.dmi new file mode 100644 index 0000000000..a2a92b6eb7 Binary files /dev/null and b/icons/materials/composite.dmi differ diff --git a/icons/mecha/mech_construct.dmi b/icons/mecha/mech_construct.dmi index 6d48367f2a..2ae4a93a2e 100644 Binary files a/icons/mecha/mech_construct.dmi and b/icons/mecha/mech_construct.dmi differ diff --git a/icons/mecha/mech_construction.dmi b/icons/mecha/mech_construction.dmi index a1ac490f00..1f50346b71 100644 Binary files a/icons/mecha/mech_construction.dmi and b/icons/mecha/mech_construction.dmi differ diff --git a/icons/mecha/mecha.dmi b/icons/mecha/mecha.dmi index 4b09f791c3..310dd6709c 100644 Binary files a/icons/mecha/mecha.dmi and b/icons/mecha/mecha.dmi differ diff --git a/icons/misc/field_of_vision.dmi b/icons/misc/field_of_vision.dmi new file mode 100644 index 0000000000..015cecd88c Binary files /dev/null and b/icons/misc/field_of_vision.dmi differ diff --git a/icons/mob/actions/actions_animal.dmi b/icons/mob/actions/actions_animal.dmi index aefa471dd2..78eb9f5fe5 100644 Binary files a/icons/mob/actions/actions_animal.dmi and b/icons/mob/actions/actions_animal.dmi differ diff --git a/icons/mob/actions/actions_shuttle.dmi b/icons/mob/actions/actions_shuttle.dmi new file mode 100644 index 0000000000..ef35786a2b Binary files /dev/null and b/icons/mob/actions/actions_shuttle.dmi differ diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi index d307b5b6c9..0a1372ac2b 100644 Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ diff --git a/icons/mob/clothing/eyes.dmi b/icons/mob/clothing/eyes.dmi index 54ef7c5814..cd2b84a143 100644 Binary files a/icons/mob/clothing/eyes.dmi and b/icons/mob/clothing/eyes.dmi differ diff --git a/icons/mob/clothing/feet_digi.dmi b/icons/mob/clothing/feet_digi.dmi index 7815f3d0a4..f798850ee7 100644 Binary files a/icons/mob/clothing/feet_digi.dmi and b/icons/mob/clothing/feet_digi.dmi differ diff --git a/icons/mob/clothing/hands.dmi b/icons/mob/clothing/hands.dmi index 3860fa4b7e..856fe2149a 100644 Binary files a/icons/mob/clothing/hands.dmi and b/icons/mob/clothing/hands.dmi differ diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index 85cb1e0c0a..167332b630 100644 Binary files a/icons/mob/clothing/head.dmi and b/icons/mob/clothing/head.dmi differ diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi index 13f288677f..c361563da3 100644 Binary files a/icons/mob/clothing/mask.dmi and b/icons/mob/clothing/mask.dmi differ diff --git a/icons/mob/clothing/neck.dmi b/icons/mob/clothing/neck.dmi index 78073222ca..86dec62a41 100644 Binary files a/icons/mob/clothing/neck.dmi and b/icons/mob/clothing/neck.dmi differ diff --git a/icons/mob/clothing/suit.dmi b/icons/mob/clothing/suit.dmi index 803b4aa390..1c06c203e1 100644 Binary files a/icons/mob/clothing/suit.dmi and b/icons/mob/clothing/suit.dmi differ diff --git a/icons/mob/clothing/uniform.dmi b/icons/mob/clothing/uniform.dmi index b717b33c61..163d2dc2f2 100644 Binary files a/icons/mob/clothing/uniform.dmi and b/icons/mob/clothing/uniform.dmi differ diff --git a/icons/mob/clothing/uniform_digi.dmi b/icons/mob/clothing/uniform_digi.dmi index 6a538bc85e..b1b9ded7f0 100644 Binary files a/icons/mob/clothing/uniform_digi.dmi and b/icons/mob/clothing/uniform_digi.dmi differ diff --git a/icons/mob/corgi_head.dmi b/icons/mob/corgi_head.dmi index de33d3fd69..0195670bdc 100644 Binary files a/icons/mob/corgi_head.dmi and b/icons/mob/corgi_head.dmi differ diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index d0bd304808..a4e2a9d5b2 100644 Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ diff --git a/icons/mob/inhands/equipment/mining_lefthand.dmi b/icons/mob/inhands/equipment/mining_lefthand.dmi index e902690c37..7496aba625 100644 Binary files a/icons/mob/inhands/equipment/mining_lefthand.dmi and b/icons/mob/inhands/equipment/mining_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/mining_righthand.dmi b/icons/mob/inhands/equipment/mining_righthand.dmi index dacf9be078..de3d11978a 100644 Binary files a/icons/mob/inhands/equipment/mining_righthand.dmi and b/icons/mob/inhands/equipment/mining_righthand.dmi differ diff --git a/icons/mob/inhands/equipment/security_lefthand.dmi b/icons/mob/inhands/equipment/security_lefthand.dmi index d5b32d7c37..47447f80d0 100644 Binary files a/icons/mob/inhands/equipment/security_lefthand.dmi and b/icons/mob/inhands/equipment/security_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/security_righthand.dmi b/icons/mob/inhands/equipment/security_righthand.dmi index 1c8c9b0dfb..79aab1c5cd 100644 Binary files a/icons/mob/inhands/equipment/security_righthand.dmi and b/icons/mob/inhands/equipment/security_righthand.dmi differ diff --git a/icons/mob/inhands/equipment/shields_lefthand.dmi b/icons/mob/inhands/equipment/shields_lefthand.dmi index 24bb824f1d..850bbaa043 100644 Binary files a/icons/mob/inhands/equipment/shields_lefthand.dmi and b/icons/mob/inhands/equipment/shields_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/shields_righthand.dmi b/icons/mob/inhands/equipment/shields_righthand.dmi index 31d84f480c..d4db35b9b2 100644 Binary files a/icons/mob/inhands/equipment/shields_righthand.dmi and b/icons/mob/inhands/equipment/shields_righthand.dmi differ diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index 1cd090a3e9..19738ed490 100644 Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi index 24c9a2d777..9589e338e1 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/mob/large-worn-icons/64x64/head.dmi b/icons/mob/large-worn-icons/64x64/head.dmi index 6ea91d2c6d..5cc09ad880 100644 Binary files a/icons/mob/large-worn-icons/64x64/head.dmi and b/icons/mob/large-worn-icons/64x64/head.dmi differ diff --git a/icons/mob/mutant_bodyparts.dmi b/icons/mob/mutant_bodyparts.dmi index 9c531a3df2..1334ce9e0e 100644 Binary files a/icons/mob/mutant_bodyparts.dmi and b/icons/mob/mutant_bodyparts.dmi differ diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi index 082bfb3c3e..2bb8af7c61 100644 Binary files a/icons/mob/robots.dmi and b/icons/mob/robots.dmi differ diff --git a/icons/mob/talk.dmi b/icons/mob/talk.dmi index 05fe6f5623..0a56321037 100644 Binary files a/icons/mob/talk.dmi and b/icons/mob/talk.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index e0b02d2adc..bebb625440 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/artstuff.dmi b/icons/obj/artstuff.dmi index ea24341f5e..14970b76ef 100644 Binary files a/icons/obj/artstuff.dmi and b/icons/obj/artstuff.dmi differ diff --git a/icons/obj/bloodpack.dmi b/icons/obj/bloodpack.dmi index 82b4c2e543..2355a81f8f 100644 Binary files a/icons/obj/bloodpack.dmi and b/icons/obj/bloodpack.dmi differ diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index 1169888b34..95ae326f1e 100644 Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi index a3b0d19df4..13a0725b05 100644 Binary files a/icons/obj/card.dmi and b/icons/obj/card.dmi differ diff --git a/icons/obj/closet.dmi b/icons/obj/closet.dmi index d3f055d1f2..b71b021d80 100644 Binary files a/icons/obj/closet.dmi and b/icons/obj/closet.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index 2a6ce77f38..535ae0d241 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index c88d1ce766..b349161f8e 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index 6bae5154ac..106195e968 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 607c26bb62..68210dc01f 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index cea11f8a49..57424c7b99 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/contraband.dmi b/icons/obj/contraband.dmi index 29308832cf..a1d5bc5900 100644 Binary files a/icons/obj/contraband.dmi and b/icons/obj/contraband.dmi differ diff --git a/icons/obj/crates.dmi b/icons/obj/crates.dmi index 532324fcf4..a1bc443efb 100644 Binary files a/icons/obj/crates.dmi and b/icons/obj/crates.dmi differ diff --git a/icons/obj/decals.dmi b/icons/obj/decals.dmi index 7ed9244ea4..c280ee786f 100644 Binary files a/icons/obj/decals.dmi and b/icons/obj/decals.dmi differ diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 2cc3b784f4..193d4bc4da 100644 Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ diff --git a/icons/obj/doors/airlocks/shuttle/overlays.dmi b/icons/obj/doors/airlocks/shuttle/overlays.dmi index b2bb2cfa04..70df610212 100644 Binary files a/icons/obj/doors/airlocks/shuttle/overlays.dmi and b/icons/obj/doors/airlocks/shuttle/overlays.dmi differ diff --git a/icons/obj/doors/airlocks/shuttle/shuttle.dmi b/icons/obj/doors/airlocks/shuttle/shuttle.dmi index 0e05597163..b4b998e4bc 100644 Binary files a/icons/obj/doors/airlocks/shuttle/shuttle.dmi and b/icons/obj/doors/airlocks/shuttle/shuttle.dmi differ diff --git a/icons/obj/doors/shutters.dmi b/icons/obj/doors/shutters.dmi index 6f10860cfa..816d1f94f9 100644 Binary files a/icons/obj/doors/shutters.dmi and b/icons/obj/doors/shutters.dmi differ diff --git a/icons/obj/doors/shutters_radiation.dmi b/icons/obj/doors/shutters_radiation.dmi index 36d232b197..657b613b0c 100644 Binary files a/icons/obj/doors/shutters_radiation.dmi and b/icons/obj/doors/shutters_radiation.dmi differ diff --git a/icons/obj/doors/shutters_window.dmi b/icons/obj/doors/shutters_window.dmi index 20197593c1..c99790c6cf 100644 Binary files a/icons/obj/doors/shutters_window.dmi and b/icons/obj/doors/shutters_window.dmi differ diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 27caef76b2..5962e7522d 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ diff --git a/icons/obj/food/burgerbread.dmi b/icons/obj/food/burgerbread.dmi index 414930ac25..7ef3a7d418 100644 Binary files a/icons/obj/food/burgerbread.dmi and b/icons/obj/food/burgerbread.dmi differ diff --git a/icons/obj/food/containers.dmi b/icons/obj/food/containers.dmi index 641715fd87..ceda2fc9eb 100644 Binary files a/icons/obj/food/containers.dmi and b/icons/obj/food/containers.dmi differ diff --git a/icons/obj/food/donut.dmi b/icons/obj/food/donut.dmi index 395739eccc..534e0e37bc 100644 Binary files a/icons/obj/food/donut.dmi and b/icons/obj/food/donut.dmi differ diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi index 9affc07f88..e87a37d069 100644 Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ diff --git a/icons/obj/food/soupsalad.dmi b/icons/obj/food/soupsalad.dmi index fd47e89aa8..378927e8f9 100644 Binary files a/icons/obj/food/soupsalad.dmi and b/icons/obj/food/soupsalad.dmi differ diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi index 691d5c8362..33872719fe 100644 Binary files a/icons/obj/guns/energy.dmi and b/icons/obj/guns/energy.dmi differ diff --git a/icons/obj/guns/gun_parts.dmi b/icons/obj/guns/gun_parts.dmi new file mode 100644 index 0000000000..7f088f6af5 Binary files /dev/null and b/icons/obj/guns/gun_parts.dmi differ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index 79045ac92b..8c50e7da27 100644 Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ diff --git a/icons/obj/hydroponics/growing_flowers.dmi b/icons/obj/hydroponics/growing_flowers.dmi index 98d9af2ce6..b48051cc56 100644 Binary files a/icons/obj/hydroponics/growing_flowers.dmi and b/icons/obj/hydroponics/growing_flowers.dmi differ diff --git a/icons/obj/hydroponics/growing_vegetables.dmi b/icons/obj/hydroponics/growing_vegetables.dmi index 63cf069186..b426b8f6de 100644 Binary files a/icons/obj/hydroponics/growing_vegetables.dmi and b/icons/obj/hydroponics/growing_vegetables.dmi differ diff --git a/icons/obj/hydroponics/harvest.dmi b/icons/obj/hydroponics/harvest.dmi index c7c31581f3..d7800fc0a5 100644 Binary files a/icons/obj/hydroponics/harvest.dmi and b/icons/obj/hydroponics/harvest.dmi differ diff --git a/icons/obj/hydroponics/seeds.dmi b/icons/obj/hydroponics/seeds.dmi index 62843e3f54..a9d0845be3 100644 Binary files a/icons/obj/hydroponics/seeds.dmi and b/icons/obj/hydroponics/seeds.dmi differ diff --git a/icons/obj/improvised.dmi b/icons/obj/improvised.dmi index b90e3cb3bb..5c2c2a1f1b 100644 Binary files a/icons/obj/improvised.dmi and b/icons/obj/improvised.dmi differ diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi index 58083f5f6d..cf7a87d28b 100644 Binary files a/icons/obj/items_and_weapons.dmi and b/icons/obj/items_and_weapons.dmi differ diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi index a157d333b0..1f520a42bd 100644 Binary files a/icons/obj/janitor.dmi and b/icons/obj/janitor.dmi differ diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index be12ab5f8b..727d69b1e3 100644 Binary files a/icons/obj/library.dmi and b/icons/obj/library.dmi differ diff --git a/icons/obj/machines/bepis.dmi b/icons/obj/machines/bepis.dmi new file mode 100644 index 0000000000..f348c2e1b0 Binary files /dev/null and b/icons/obj/machines/bepis.dmi differ diff --git a/icons/obj/machines/implantchair.dmi b/icons/obj/machines/implantchair.dmi index e91f614fad..7cc3493885 100644 Binary files a/icons/obj/machines/implantchair.dmi and b/icons/obj/machines/implantchair.dmi differ diff --git a/icons/obj/machines/research.dmi b/icons/obj/machines/research.dmi index b756c77e20..7d64c494fd 100644 Binary files a/icons/obj/machines/research.dmi and b/icons/obj/machines/research.dmi differ diff --git a/icons/obj/machines/sheetifier.dmi b/icons/obj/machines/sheetifier.dmi new file mode 100644 index 0000000000..46d8b06bab Binary files /dev/null and b/icons/obj/machines/sheetifier.dmi differ diff --git a/icons/obj/mauna_mug.dmi b/icons/obj/mauna_mug.dmi new file mode 100644 index 0000000000..fd576072fd Binary files /dev/null and b/icons/obj/mauna_mug.dmi differ diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index 20ffbdbe06..43bc9c48aa 100644 Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ diff --git a/icons/obj/module.dmi b/icons/obj/module.dmi index a647bebd57..ef3a98b875 100644 Binary files a/icons/obj/module.dmi and b/icons/obj/module.dmi differ diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index 5ad6c1cb3b..b93f878c9e 100644 Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ diff --git a/icons/obj/pet_carrier.dmi b/icons/obj/pet_carrier.dmi index 340636056c..b3c11be98f 100644 Binary files a/icons/obj/pet_carrier.dmi and b/icons/obj/pet_carrier.dmi differ diff --git a/icons/obj/reagentfillings.dmi b/icons/obj/reagentfillings.dmi index 3d5a825f27..d7a9a03c41 100644 Binary files a/icons/obj/reagentfillings.dmi and b/icons/obj/reagentfillings.dmi differ diff --git a/icons/obj/shields.dmi b/icons/obj/shields.dmi index ed528d4a5a..c8b1110e1a 100644 Binary files a/icons/obj/shields.dmi and b/icons/obj/shields.dmi differ diff --git a/icons/obj/smooth_structures/rollingtable.dmi b/icons/obj/smooth_structures/rollingtable.dmi new file mode 100644 index 0000000000..9e559a75d9 Binary files /dev/null and b/icons/obj/smooth_structures/rollingtable.dmi differ diff --git a/icons/obj/smooth_structures/shuttle_window.dmi b/icons/obj/smooth_structures/shuttle_window.dmi index 2fbf93f703..cb07225a76 100644 Binary files a/icons/obj/smooth_structures/shuttle_window.dmi and b/icons/obj/smooth_structures/shuttle_window.dmi differ diff --git a/icons/obj/stack_objects.dmi b/icons/obj/stack_objects.dmi index 5b0c05d43d..d8c7d6b722 100644 Binary files a/icons/obj/stack_objects.dmi and b/icons/obj/stack_objects.dmi differ diff --git a/icons/obj/statuelarge.dmi b/icons/obj/statuelarge.dmi index e45afb8db8..e627a883cb 100644 Binary files a/icons/obj/statuelarge.dmi and b/icons/obj/statuelarge.dmi differ diff --git a/icons/obj/tapes.dmi b/icons/obj/tapes.dmi new file mode 100644 index 0000000000..a406a4dd1f Binary files /dev/null and b/icons/obj/tapes.dmi differ diff --git a/icons/obj/tiles.dmi b/icons/obj/tiles.dmi index 09568ebea1..38d153e261 100644 Binary files a/icons/obj/tiles.dmi and b/icons/obj/tiles.dmi differ diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi index 6a2bb343df..f1a8cf3c02 100644 Binary files a/icons/obj/tools.dmi and b/icons/obj/tools.dmi differ diff --git a/icons/obj/toy.dmi b/icons/obj/toy.dmi index 698c1f7a34..e8106905b7 100644 Binary files a/icons/obj/toy.dmi and b/icons/obj/toy.dmi differ diff --git a/icons/obj/vehicles.dmi b/icons/obj/vehicles.dmi index 8d5d9208ab..d12851f572 100644 Binary files a/icons/obj/vehicles.dmi and b/icons/obj/vehicles.dmi differ diff --git a/icons/obj/watercloset.dmi b/icons/obj/watercloset.dmi index 5670b9e839..4a299f29dd 100644 Binary files a/icons/obj/watercloset.dmi and b/icons/obj/watercloset.dmi differ diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index d24efa0625..83dd4f5df8 100644 Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ diff --git a/icons/turf/shuttle.dmi b/icons/turf/shuttle.dmi index a09cb7a847..985b9991a0 100644 Binary files a/icons/turf/shuttle.dmi and b/icons/turf/shuttle.dmi differ diff --git a/icons/turf/walls.dmi b/icons/turf/walls.dmi index dd6c7f3a7c..250fdcd894 100644 Binary files a/icons/turf/walls.dmi and b/icons/turf/walls.dmi differ diff --git a/icons/turf/walls/materialwall.dmi b/icons/turf/walls/materialwall.dmi new file mode 100644 index 0000000000..c497f76c2e Binary files /dev/null and b/icons/turf/walls/materialwall.dmi differ diff --git a/icons/turf/walls/shuttle_wall.dmi b/icons/turf/walls/shuttle_wall.dmi index cce97b2458..d9c904c336 100644 Binary files a/icons/turf/walls/shuttle_wall.dmi and b/icons/turf/walls/shuttle_wall.dmi differ diff --git a/interface/skin.dmf b/interface/skin.dmf index 04a78af061..cf49f0f30f 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -54,6 +54,7 @@ window "mainwindow" size = 640x440 anchor1 = none anchor2 = none + background-color = #242424 is-default = true saved-params = "pos;size;is-minimized;is-maximized" icon = 'icons\\ss13_64.png' @@ -61,61 +62,25 @@ window "mainwindow" menu = "menu" elem "split" type = CHILD - pos = 3,0 - size = 634x417 + pos = 0,0 + size = 637x440 anchor1 = 0,0 anchor2 = 100,100 + background-color = #272727 saved-params = "splitter" left = "mapwindow" right = "infowindow" is-vert = true - elem "input" - type = INPUT - pos = 3,420 - size = 517x20 - anchor1 = 0,100 - anchor2 = 100,100 - background-color = #d3b5b5 - is-default = true - border = sunken - saved-params = "command" - elem "saybutton" - type = BUTTON - pos = 600,420 - size = 40x20 - anchor1 = 100,100 - anchor2 = none - saved-params = "is-checked" - text = "Chat" - command = ".winset \"saybutton.is-checked=true ? input.command=\"!say \\\"\" : input.command=\"\"saybutton.is-checked=true ? mebutton.is-checked=false\"\"saybutton.is-checked=true ? oocbutton.is-checked=false\"" - button-type = pushbox - elem "oocbutton" - type = BUTTON - pos = 520,420 - size = 40x20 - anchor1 = 100,100 - anchor2 = none - saved-params = "is-checked" - text = "OOC" - command = ".winset \"oocbutton.is-checked=true ? input.command=\"!ooc \\\"\" : input.command=\"\"oocbutton.is-checked=true ? mebutton.is-checked=false\"\"oocbutton.is-checked=true ? saybutton.is-checked=false\"" - button-type = pushbox - elem "mebutton" - type = BUTTON - pos = 560,420 - size = 40x20 - anchor1 = 100,100 - anchor2 = none - saved-params = "is-checked" - text = "Me" - command = ".winset \"mebutton.is-checked=true ? input.command=\"!me \\\"\" : input.command=\"\"mebutton.is-checked=true ? saybutton.is-checked=false\"\"mebutton.is-checked=true ? oocbutton.is-checked=false\"" - button-type = pushbox + splitter = 75 elem "asset_cache_browser" type = BROWSER pos = 0,0 size = 200x200 anchor1 = none anchor2 = none + background-color = #272727 is-visible = false + auto-format = false saved-params = "" elem "tooltip" type = BROWSER @@ -123,6 +88,7 @@ window "mainwindow" size = 999x999 anchor1 = none anchor2 = none + background-color = #272727 is-visible = false saved-params = "" @@ -134,11 +100,11 @@ window "mapwindow" anchor1 = none anchor2 = none background-color = none - saved-params = "" + saved-params = "pos;size;is-minimized;is-maximized" statusbar = false is-pane = true - outer-size = 1090x1192 - inner-size = 1068x1136 + outer-size = 684x617 + inner-size = 662x561 elem "map" type = MAP pos = 0,0 @@ -159,6 +125,7 @@ window "infowindow" size = 640x480 anchor1 = none anchor2 = none + background-color = #242424 saved-params = "pos;size;is-minimized;is-maximized" is-pane = true elem "info" @@ -167,6 +134,7 @@ window "infowindow" size = 640x445 anchor1 = 0,0 anchor2 = 100,100 + background-color = #272727 saved-params = "splitter" left = "statwindow" right = "outputwindow" @@ -177,6 +145,8 @@ window "infowindow" size = 104x20 anchor1 = 3,0 anchor2 = 19,0 + text-color = #e0e0e0 + background-color = #40628a saved-params = "is-checked" text = "Changelog" command = "changelog" @@ -186,6 +156,8 @@ window "infowindow" size = 100x20 anchor1 = 19,0 anchor2 = 34,0 + text-color = #e0e0e0 + background-color = #40628a saved-params = "is-checked" text = "Rules" command = "rules" @@ -195,6 +167,8 @@ window "infowindow" size = 100x20 anchor1 = 34,0 anchor2 = 50,0 + text-color = #e0e0e0 + background-color = #40628a saved-params = "is-checked" text = "Wiki" command = "wiki" @@ -204,6 +178,8 @@ window "infowindow" size = 100x20 anchor1 = 50,0 anchor2 = 66,0 + text-color = #e0e0e0 + background-color = #40628a saved-params = "is-checked" text = "Forum" command = "forum" @@ -213,8 +189,10 @@ window "infowindow" size = 100x20 anchor1 = 66,0 anchor2 = 81,0 + text-color = #e0e0e0 + background-color = #40628a saved-params = "is-checked" - text = "Github" + text = "GitHub" command = "github" elem "report-issue" type = BUTTON @@ -222,6 +200,9 @@ window "infowindow" size = 100x20 anchor1 = 81,0 anchor2 = 97,0 + font-size = 8 + text-color = #e0e0e0 + background-color = #a92c2c saved-params = "is-checked" text = "Report Issue" command = "report-issue" @@ -233,15 +214,44 @@ window "outputwindow" size = 640x480 anchor1 = none anchor2 = none + background-color = #272727 saved-params = "pos;size;is-minimized;is-maximized" + titlebar = false + statusbar = false + can-close = false + can-minimize = false + can-resize = false is-pane = true + elem "input" + type = INPUT + pos = 2,460 + size = 595x20 + anchor1 = 0,100 + anchor2 = 100,100 + background-color = #d3b5b5 + is-default = true + border = sunken + saved-params = "command" + elem "say" + type = BUTTON + pos = 600,460 + size = 37x20 + anchor1 = 100,100 + anchor2 = none + text-color = #e0e0e0 + background-color = #272727 + saved-params = "is-checked" + text = "Chat" + command = ".winset \"say.is-checked=true ? input.command=\"!say \\\"\" : input.command=\"" + is-flat = true + button-type = pushbox elem "browseroutput" type = BROWSER pos = 0,0 - size = 640x480 + size = 640x456 anchor1 = 0,0 anchor2 = 100,100 - background-color = #ffffff + background-color = #272727 is-visible = false is-disabled = true saved-params = "" @@ -249,19 +259,22 @@ window "outputwindow" elem "output" type = OUTPUT pos = 0,0 - size = 640x480 + size = 640x456 anchor1 = 0,0 anchor2 = 100,100 + text-color = #e0e0e0 + background-color = #272727 is-default = true saved-params = "" window "statwindow" elem "statwindow" type = MAIN - pos = 0,0 + pos = 281,0 size = 640x480 anchor1 = none anchor2 = none + background-color = #242424 saved-params = "pos;size;is-minimized;is-maximized" is-pane = true elem "stat" @@ -270,8 +283,14 @@ window "statwindow" size = 640x480 anchor1 = 0,0 anchor2 = 100,100 + text-color = #e0e0e0 + background-color = #272727 is-default = true saved-params = "" + tab-text-color = #e0e0e0 + tab-background-color = #242424 + prefix-color = #e0e0e0 + suffix-color = #e0e0e0 window "preferences_window" elem "preferences_window" diff --git a/modular_citadel/README.md b/modular_citadel/README.md index dfae177607..c5443bdbb5 100644 --- a/modular_citadel/README.md +++ b/modular_citadel/README.md @@ -1,3 +1,4 @@ Hooray modularity! + Things that modify core files without directly touching said core files go here. This is similar to how Hippie handles things. This stops dreammaker from throwing errors and warnings if you try to compile these files while they're inside code/citadel/. diff --git a/modular_citadel/code/__HELPERS/list2list.dm b/modular_citadel/code/__HELPERS/list2list.dm deleted file mode 100644 index e812b3a1e9..0000000000 --- a/modular_citadel/code/__HELPERS/list2list.dm +++ /dev/null @@ -1,12 +0,0 @@ -/proc/tg_ui_icon_to_cit_ui(ui_style) - switch(ui_style) - if('icons/mob/screen_plasmafire.dmi') - return 'modular_citadel/icons/ui/screen_plasmafire.dmi' - if('icons/mob/screen_slimecore.dmi') - return 'modular_citadel/icons/ui/screen_slimecore.dmi' - if('icons/mob/screen_operative.dmi') - return 'modular_citadel/icons/ui/screen_operative.dmi' - if('icons/mob/screen_clockwork.dmi') - return 'modular_citadel/icons/ui/screen_clockwork.dmi' - else - return 'modular_citadel/icons/ui/screen_midnight.dmi' diff --git a/modular_citadel/code/__HELPERS/lists.dm b/modular_citadel/code/__HELPERS/lists.dm deleted file mode 100644 index b249dfc554..0000000000 --- a/modular_citadel/code/__HELPERS/lists.dm +++ /dev/null @@ -1,9 +0,0 @@ -/proc/is_type_in_ref_list(path, list/L) - if(!ispath(path))//not a path - return - for(var/i in L) - var/datum/D = i - if(!istype(D))//not an usable reference - continue - if(istype(D, path)) - return TRUE \ No newline at end of file diff --git a/modular_citadel/code/__HELPERS/mobs.dm b/modular_citadel/code/__HELPERS/mobs.dm deleted file mode 100644 index 2666696564..0000000000 --- a/modular_citadel/code/__HELPERS/mobs.dm +++ /dev/null @@ -1,28 +0,0 @@ -/proc/slot_to_string(slot) - switch(slot) - if(SLOT_BACK) - return "Backpack" - if(SLOT_WEAR_MASK) - return "Mask" - if(SLOT_HANDS) - return "Hands" - if(SLOT_BELT) - return "Belt" - if(SLOT_EARS) - return "Ears" - if(SLOT_GLASSES) - return "Glasses" - if(SLOT_GLOVES) - return "Gloves" - if(SLOT_NECK) - return "Neck" - if(SLOT_HEAD) - return "Head" - if(SLOT_SHOES) - return "Shoes" - if(SLOT_WEAR_SUIT) - return "Suit" - if(SLOT_W_UNIFORM) - return "Uniform" - if(SLOT_IN_BACKPACK) - return "In backpack" diff --git a/modular_citadel/code/_onclick/click.dm b/modular_citadel/code/_onclick/click.dm index f077b3a71b..004cc2fe80 100644 --- a/modular_citadel/code/_onclick/click.dm +++ b/modular_citadel/code/_onclick/click.dm @@ -72,30 +72,3 @@ /mob/proc/AltRangedAttack(atom/A, params) return FALSE - -/mob/proc/mouse_face_atom(atom/A) //Basically a copy of face_atom but with ismousemovement set to TRUE - if( buckled || stat != CONSCIOUS || !A || !x || !y || !A.x || !A.y ) - return - var/dx = A.x - x - var/dy = A.y - y - if(!dx && !dy) // Wall items are graphically shifted but on the floor - if(A.pixel_y > 16) - setDir(NORTH, ismousemovement = TRUE) - else if(A.pixel_y < -16) - setDir(SOUTH, ismousemovement = TRUE) - else if(A.pixel_x > 16) - setDir(EAST, ismousemovement = TRUE) - else if(A.pixel_x < -16) - setDir(WEST, ismousemovement = TRUE) - return - - if(abs(dx) < abs(dy)) - if(dy > 0) - setDir(NORTH, ismousemovement = TRUE) - else - setDir(SOUTH, ismousemovement = TRUE) - else - if(dx > 0) - setDir(EAST, ismousemovement = TRUE) - else - setDir(WEST, ismousemovement = TRUE) diff --git a/modular_citadel/code/_onclick/hud/screen_objects.dm b/modular_citadel/code/_onclick/hud/screen_objects.dm index 2101a6045f..017f7f3485 100644 --- a/modular_citadel/code/_onclick/hud/screen_objects.dm +++ b/modular_citadel/code/_onclick/hud/screen_objects.dm @@ -1,63 +1,22 @@ -/obj/screen/restbutton - name = "rest" - icon = 'modular_citadel/icons/ui/screen_midnight.dmi' - icon_state = "rest" - -/obj/screen/restbutton/Click() - if(isliving(usr)) - var/mob/living/theuser = usr - theuser.lay_down() - -/obj/screen/combattoggle - name = "toggle combat mode" - icon = 'modular_citadel/icons/ui/screen_midnight.dmi' - icon_state = "combat_off" - var/mutable_appearance/flashy - -/obj/screen/combattoggle/Click() - if(iscarbon(usr)) - var/mob/living/carbon/C = usr - C.user_toggle_intentional_combat_mode() - -/obj/screen/combattoggle/update_icon_state() - var/mob/living/carbon/user = hud?.mymob - if(!istype(user)) - return - if((user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) - icon_state = "combat" - else if(HAS_TRAIT(user, TRAIT_COMBAT_MODE_LOCKED)) - icon_state = "combat_locked" - else - icon_state = "combat_off" - -/obj/screen/combattoggle/update_overlays() - . = ..() - var/mob/living/carbon/user = hud?.mymob - if(!istype(user) || !user.client) - return - - if((user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) && user.client.prefs.hud_toggle_flash) - if(!flashy) - flashy = mutable_appearance('icons/mob/screen_gen.dmi', "togglefull_flash") - if(flashy.color != user.client.prefs.hud_toggle_color) - flashy.color = user.client.prefs.hud_toggle_color - . += flashy //TODO - beg lummox jr for the ability to force mutable appearances or images to be created rendering from their first frame of animation rather than being based entirely around the client's frame count - /obj/screen/voretoggle name = "toggle vore mode" icon = 'modular_citadel/icons/ui/screen_midnight.dmi' icon_state = "nom_off" /obj/screen/voretoggle/Click() - if(iscarbon(usr)) - var/mob/living/carbon/C = usr - C.toggle_vore_mode() + if(usr != hud.mymob) + return + var/mob/living/carbon/C = usr + if(SEND_SIGNAL(usr, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_ACTIVE)) + to_chat(usr, "Disable combat mode first.") + return + C.toggle_vore_mode() /obj/screen/voretoggle/update_icon_state() var/mob/living/carbon/user = hud?.mymob if(!istype(user)) return - if(user.voremode && !(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + if(user.voremode) icon_state = "nom" else icon_state = "nom_off" diff --git a/modular_citadel/code/_onclick/other_mobs.dm b/modular_citadel/code/_onclick/other_mobs.dm index 6d9ffdd6ca..ec740f023b 100644 --- a/modular_citadel/code/_onclick/other_mobs.dm +++ b/modular_citadel/code/_onclick/other_mobs.dm @@ -12,7 +12,7 @@ if(isturf(A) || incapacitated()) // pretty annoying to wave your fist at floors and walls. And useless. return TRUE changeNext_move(CLICK_CD_RANGE) - var/list/target_viewers = viewers(11, A) //Byond proc, doesn't check for blindness. + var/list/target_viewers = fov_viewers(11, A) //doesn't check for blindness. if(!(src in target_viewers)) //click catcher issuing calls for out of view objects. return TRUE if(!has_active_hand()) @@ -26,16 +26,16 @@ switch(a_intent) if(INTENT_DISARM) the_action = "shoos away [A]" - what_action = "shoo away something you can't see" + what_action = "shoo away something out of your vision" self_action = "shoo away [A]" if(INTENT_GRAB) the_action = "beckons [A] to come" - what_action = "beckons something you can't see to come" + what_action = "beckons something out of your vision to come" self_action = "beckon [A] to come" if(INTENT_HARM) var/pronoun = "[p_their()]" the_action = "shakes [pronoun] fist at [A]" - what_action = "shakes [pronoun] fist at something you can't see" + what_action = "shakes [pronoun] fist at something out of your vision" self_action = "shake your fist at [A]" if(!eye_blind) diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm index 62fe30f2d7..47eef6a820 100644 --- a/modular_citadel/code/datums/status_effects/chems.dm +++ b/modular_citadel/code/datums/status_effects/chems.dm @@ -10,7 +10,7 @@ alert_type = null /datum/status_effect/chem/SGDF/on_apply() - log_game("FERMICHEM: SGDF status appied on [owner], ID: [owner.key]") + log_reagent("FERMICHEM: SGDF status appied on [owner], ID: [owner.key]") fermi_Clone = owner return ..() @@ -24,7 +24,7 @@ ..() /datum/status_effect/chem/SGDF/on_remove() - log_game("FERMICHEM: SGDF mind shift applied. [owner] is now playing as their clone and should not have memories after their clone split (look up SGDF status applied). ID: [owner.key]") + log_reagent("FERMICHEM: SGDF mind shift applied. [owner] is now playing as their clone and should not have memories after their clone split (look up SGDF status applied). ID: [owner.key]") originalmind.transfer_to(fermi_Clone) to_chat(owner, "Lucidity shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. Curiously, you find that you memories are blank after you ingested the synthetic serum, leaving you to wonder where the other you is.") fermi_Clone = null @@ -40,21 +40,7 @@ var/last_checked_size //used to prevent potential cpu waste from happening every tick. /datum/status_effect/chem/breast_enlarger/on_apply()//Removes clothes, they're too small to contain you. You belong to space now. - log_game("FERMICHEM: [owner]'s breasts has reached comical sizes. ID: [owner.key]") - var/mob/living/carbon/human/H = owner - var/message = FALSE - if(H.w_uniform) - H.dropItemToGround(H.w_uniform, TRUE) - message = TRUE - if(H.wear_suit) - H.dropItemToGround(H.wear_suit, TRUE) - message = TRUE - if(message) - playsound(H.loc, 'sound/items/poster_ripped.ogg', 50, 1) - H.visible_message("[H]'s chest suddenly bursts forth, ripping their clothes off!'", \ - "Your clothes give, ripping into peices under the strain of your swelling breasts! Unless you manage to reduce the size of your breasts, there's no way you're going to be able to put anything on over these melons..!") - else - to_chat(H, "Your bountiful bosom is so rich with mass, you seriously doubt you'll be able to fit any clothes over it.") + log_reagent("FERMICHEM: [owner]'s breasts has reached comical sizes. ID: [owner.key]") return ..() /datum/status_effect/chem/breast_enlarger/tick()//If you try to wear clothes, you fail. Slows you down if you're comically huge @@ -64,16 +50,6 @@ H.remove_status_effect(src) return moveCalc = 1+((round(B.cached_size) - 9)/3) //Afffects how fast you move, and how often you can click. - var/message = FALSE - if(H.w_uniform) - H.dropItemToGround(H.w_uniform, TRUE) - message = TRUE - if(H.wear_suit) - H.dropItemToGround(H.wear_suit, TRUE) - message = TRUE - if(message) - playsound(H.loc, 'sound/items/poster_ripped.ogg', 50, 1) - to_chat(H, "Your enormous breasts are way too large to fit anything over them!") if(last_checked_size != B.cached_size) H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/status_effect/breast_hypertrophy, multiplicative_slowdown = moveCalc) @@ -91,7 +67,7 @@ ..() /datum/status_effect/chem/breast_enlarger/on_remove() - log_game("FERMICHEM: [owner]'s breasts has reduced to an acceptable size. ID: [owner.key]") + log_reagent("FERMICHEM: [owner]'s breasts has reduced to an acceptable size. ID: [owner.key]") to_chat(owner, "Your expansive chest has become a more managable size, liberating your movements.") owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/breast_hypertrophy) sizeMoveMod(1) @@ -114,21 +90,7 @@ var/last_checked_size //used to prevent potential cpu waste, just like the above. /datum/status_effect/chem/penis_enlarger/on_apply()//Removes clothes, they're too small to contain you. You belong to space now. - log_game("FERMICHEM: [owner]'s dick has reached comical sizes. ID: [owner.key]") - var/mob/living/carbon/human/H = owner - var/message = FALSE - if(H.w_uniform) - H.dropItemToGround(H.w_uniform, TRUE) - message = TRUE - if(H.wear_suit) - H.dropItemToGround(H.wear_suit, TRUE) - message = TRUE - if(message) - playsound(H.loc, 'sound/items/poster_ripped.ogg', 50, 1) - H.visible_message("[H]'s schlong suddenly bursts forth, ripping their clothes off!'", \ - "Your clothes give, ripping into peices under the strain of your swelling pecker! Unless you manage to reduce the size of your emancipated trouser snake, there's no way you're going to be able to put anything on over this girth..!") - else - to_chat(H, "Your emancipated trouser snake is so ripe with girth, you seriously doubt you'll be able to fit any clothes over it.") + log_reagent("FERMICHEM: [owner]'s dick has reached comical sizes. ID: [owner.key]") return ..() @@ -140,18 +102,6 @@ return moveCalc = 1+((round(P.length) - 21)/3) //effects how fast you can move bloodCalc = 1+((round(P.length) - 21)/15) //effects how much blood you need (I didn' bother adding an arousal check because I'm spending too much time on this organ already.) - - var/message = FALSE - if(H.w_uniform) - H.dropItemToGround(H.w_uniform, TRUE) - message = TRUE - if(H.wear_suit) - H.dropItemToGround(H.wear_suit, TRUE) - message = TRUE - if(message) - playsound(H.loc, 'sound/items/poster_ripped.ogg', 50, 1) - to_chat(H, "Your enormous package is way to large to fit anything over!") - if(P.length < 22 && H.has_movespeed_modifier(/datum/movespeed_modifier/status_effect/penis_hypertrophy)) to_chat(owner, "Your rascally willy has become a more managable size, liberating your movements.") H.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/penis_hypertrophy) @@ -162,7 +112,7 @@ ..() /datum/status_effect/chem/penis_enlarger/on_remove() - log_game("FERMICHEM: [owner]'s dick has reduced to an acceptable size. ID: [owner.key]") + log_reagent("FERMICHEM: [owner]'s dick has reduced to an acceptable size. ID: [owner.key]") owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/penis_hypertrophy) owner.ResetBloodVol() return ..() @@ -189,7 +139,7 @@ var/mob/living/simple_animal/astral/G = new(get_turf(M.loc)) owner.mind.transfer_to(G)//Just in case someone else is inside of you, it makes them a ghost and should hopefully bring them home at the end. to_chat(G, "[M]'s conciousness snaps back to them as their astrogen runs out, kicking your projected mind out!'") - log_game("FERMICHEM: [M]'s possesser has been booted out into a astral ghost!") + log_reagent("FERMICHEM: [M]'s possesser has been booted out into a astral ghost!") originalmind.transfer_to(original) /datum/status_effect/chem/astral_insurance/on_remove() //God damnit get them home! @@ -198,7 +148,7 @@ var/mob/living/simple_animal/astral/G = new(get_turf(owner)) owner.mind.transfer_to(G)//Just in case someone else is inside of you, it makes them a ghost and should hopefully bring them home at the end. to_chat(G, "[owner]'s conciousness snaps back to them as their astrogen runs out, kicking your projected mind out!'") - log_game("FERMICHEM: [owner]'s possesser has been booted out into a astral ghost!") + log_reagent("FERMICHEM: [owner]'s possesser has been booted out into a astral ghost!") originalmind.transfer_to(original) return ..() @@ -272,7 +222,7 @@ var/message = "[(lewd ? "I am a good pet for [enthrallGender]." : "[master] is a really inspirational person!")]" SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "enthrall", /datum/mood_event/enthrall, message) to_chat(owner, "You feel inexplicably drawn towards [master], their words having a demonstrable effect on you. It seems the closer you are to them, the stronger the effect is. However you aren't fully swayed yet and can resist their effects by repeatedly resisting as much as you can!") - log_game("FERMICHEM: MKULTRA: Status applied on [owner] ckey: [owner.key] with a master of [master] ckey: [enthrallID].") + log_reagent("FERMICHEM: MKULTRA: Status applied on [owner] ckey: [owner.key] with a master of [master] ckey: [enthrallID].") SSblackbox.record_feedback("tally", "fermi_chem", 1, "Enthrall attempts") return ..() @@ -303,7 +253,7 @@ switch(phase) if(-1)//fully removed SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "enthrall") - log_game("FERMICHEM: MKULTRA: Status REMOVED from [owner] ckey: [owner.key] with a master of [master] ckey: [enthrallID].") + log_reagent("FERMICHEM: MKULTRA: Status REMOVED from [owner] ckey: [owner.key] with a master of [master] ckey: [enthrallID].") owner.remove_status_effect(src) return if(0)// sleeper agent @@ -344,7 +294,7 @@ else to_chat(owner, "You are unable to put up a resistance any longer, and now are under the influence of [master]. However you find that in your intoxicated state you are unable to resort to violence. Equally you are unable to commit suicide, even if ordered to, as you cannot follow [master] in death. ") to_chat(master, "Your [(lewd?"pet":"follower")] [owner] appears to have fully fallen under your sway.") - log_game("FERMICHEM: MKULTRA: Status on [owner] ckey: [owner.key] has been fully entrhalled (state 3) with a master of [master] ckey: [enthrallID].") + log_reagent("FERMICHEM: MKULTRA: Status on [owner] ckey: [owner.key] has been fully entrhalled (state 3) with a master of [master] ckey: [enthrallID].") SSblackbox.record_feedback("tally", "fermi_chem", 1, "thralls fully enthralled.") else if (resistanceTally > 200) enthrallTally *= 0.5 @@ -616,14 +566,14 @@ var/cached_trigger = lowertext(trigger) if (findtext(raw_message, cached_trigger))//if trigger1 is the message cTriggered = 5 //Stops triggerparties and as a result, stops servercrashes. - log_game("FERMICHEM: MKULTRA: [owner] ckey: [owner.key] has been triggered with [cached_trigger] from [hearing_args[HEARING_SPEAKER]] saying: \"[hearing_args[HEARING_MESSAGE]]\". (their master being [master] ckey: [enthrallID].)") + log_reagent("FERMICHEM: MKULTRA: [owner] ckey: [owner.key] has been triggered with [cached_trigger] from [hearing_args[HEARING_SPEAKER]] saying: \"[hearing_args[HEARING_MESSAGE]]\". (their master being [master] ckey: [enthrallID].)") //Speak (Forces player to talk) if (lowertext(customTriggers[trigger][1]) == "speak")//trigger2 var/saytext = "Your mouth moves on it's own before you can even catch it." addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "[saytext]"), 5) addtimer(CALLBACK(C, /atom/movable/proc/say, "[customTriggers[trigger][2]]"), 5) - log_game("FERMICHEM: MKULTRA: [owner] ckey: [owner.key] has been forced to say: \"[customTriggers[trigger][2]]\" from previous trigger.") + log_reagent("FERMICHEM: MKULTRA: [owner] ckey: [owner.key] has been forced to say: \"[customTriggers[trigger][2]]\" from previous trigger.") //Echo (repeats message!) allows customisation, but won't display var calls! Defaults to hypnophrase. @@ -671,7 +621,7 @@ var/mob/living/carbon/human/o = owner o.apply_status_effect(/datum/status_effect/trance, 200, TRUE) tranceTime = 50 - log_game("FERMICHEM: MKULTRA: [owner] ckey: [owner.key] has been tranced from previous trigger.") + log_reagent("FERMICHEM: MKULTRA: [owner] ckey: [owner.key] has been tranced from previous trigger.") return diff --git a/modular_citadel/code/game/machinery/wishgranter.dm b/modular_citadel/code/game/machinery/wishgranter.dm deleted file mode 100644 index 6cfe07b7a0..0000000000 --- a/modular_citadel/code/game/machinery/wishgranter.dm +++ /dev/null @@ -1,122 +0,0 @@ -/obj/machinery/wish_granter/attack_hand(mob/living/carbon/user) - if(charges <= 0) - to_chat(user, "The Wish Granter lies silent.") - return - - else if(!ishuman(user)) - to_chat(user, "You feel a dark stirring inside of the Wish Granter, something you want nothing of. Your instincts are better than any man's.") - return - - else if (!insisting) - to_chat(user, "Your first touch makes the Wish Granter stir, listening to you. Are you really sure you want to do this?") - insisting++ - - else - if(is_special_character(user)) - to_chat(user, "You speak. [pick("I want power","Humanity is corrupt, mankind must be destroyed", "I want to rule the world","I want immortality")]. The Wish Granter answers.") - to_chat(user, "Your head pounds for a moment, before your vision clears. The Wish Granter, sensing the darkness in your heart, has given you limitless power, and it's all yours!") - user.dna.add_mutation(HULK) - user.dna.add_mutation(XRAY) - user.dna.add_mutation(SPACEMUT) - user.dna.add_mutation(TK) - user.next_move_modifier *= 0.5 //half the delay between attacks! - to_chat(user, "Things around you feel slower!") - charges-- - insisting = FALSE - to_chat(user, "You have a very great feeling about this!") - else - to_chat(user, "The Wish Granter awaits your wish.") - var/wish = input("You want...","Wish") as null|anything in list("Power","Wealth","The Station To Disappear","To Kill","Nothing") - switch(wish) - if("Power") //Gives infinite power in exchange for infinite power going off in your face! - if(charges <= 0) - return - to_chat(user, "Your wish is granted, but at a terrible cost...") - to_chat(user, "The Wish Granter punishes you for your selfishness, warping itself into a delaminating supermatter shard!") - var/obj/item/stock_parts/cell/infinite/powah = new /obj/item/stock_parts/cell/infinite(get_turf(user)) - if(user.put_in_hands(powah)) - to_chat(user, "[powah] materializes into your hands!") - else - to_chat(user, "[powah] materializes onto the floor.") - var/obj/machinery/power/supermatter_crystal/powerwish = new /obj/machinery/power/supermatter_crystal(loc) - powerwish.damage = 700 //right at the emergency threshold - powerwish.produces_gas = FALSE - charges-- - insisting = FALSE - if(!charges) - qdel(src) - if("Wealth") //Gives 1 million space bucks in exchange for being turned into gold! - if(charges <= 0) - return - to_chat(user, "Your wish is granted, but at a cost...") - to_chat(user, "The Wish Granter punishes you for your selfishness, warping your body to match the greed in your heart.") - new /obj/structure/closet/crate/trashcart/moneywish(loc) - new /obj/structure/closet/crate/trashcart/moneywish(loc) - user.set_species(/datum/species/golem/gold) - charges-- - insisting = FALSE - if(!charges) - qdel(src) - if("The Station To Disappear") //teleports you to the station and makes you blind, making the station disappear for you! - if(charges <= 0) - return - to_chat(user, "Your wish is 'granted', but at a terrible cost...") - to_chat(user, "The Wish Granter punishes you for your selfishness, claiming your soul and warping your eyes to match the darkness in your heart.") - user.dna.add_mutation(BLINDMUT) - var/obj/item/organ/eyes/eyes = user.getorganslot(ORGAN_SLOT_EYES) - if(eyes) - eyes.applyOrganDamage(eyes.maxHealth) - var/list/destinations = list() - for(var/obj/item/beacon/B in GLOB.teleportbeacons) - var/turf/T = get_turf(B) - if(is_station_level(T.z)) - destinations += B - var/chosen_beacon = pick(destinations) - var/obj/effect/portal/jaunt_tunnel/J = new (get_turf(src), src, 100, null, FALSE, get_turf(chosen_beacon)) - try_move_adjacent(J) - playsound(src,'sound/effects/sparks4.ogg',50,1) - charges-- - insisting = FALSE - if(!charges) - qdel(src) - if("To Kill") //Makes you kill things in exchange for rewards! - if(charges <= 0) - return - to_chat(user, "Your wish is granted, but at a terrible cost...") - to_chat(user, "The Wish Granter punishes you for your wickedness, warping itself into a dastardly creature for you to kill! ...but it almost seems to reward you for this.") - var/obj/item/melee/transforming/energy/sword/cx/killreward = new /obj/item/melee/transforming/energy/sword/cx(get_turf(user)) - if(user.put_in_hands(killreward)) - to_chat(user, "[killreward] materializes into your hands!") - else - to_chat(user, "[killreward] materializes onto the floor.") - user.next_move_modifier *= 0.8 //20% less delay between attacks! - to_chat(user, "Things around you feel slightly slower!") - var/mob/living/simple_animal/hostile/venus_human_trap/killwish = new /mob/living/simple_animal/hostile/venus_human_trap(loc) - killwish.maxHealth = 1500 - killwish.health = killwish.maxHealth - killwish.vine_grab_distance = 6 - killwish.melee_damage_upper = 30 - killwish.loot = list(/obj/item/twohanded/dualsaber/hypereutactic) - charges-- - insisting = FALSE - if(!charges) - qdel(src) - if("Nothing") //Makes the wish granter disappear - if(charges <= 0) - return - to_chat(user, "The Wish Granter vanishes from sight!") - to_chat(user, "You feel as if you just narrowly avoided a terrible fate...") - charges-- - insisting = FALSE - qdel(src) - -//ITEMS THAT IT USES - -/obj/structure/closet/crate/trashcart/moneywish - desc = "A heavy, metal trashcart with wheels. Filled with cash." - name = "loaded trash cart" - -/obj/structure/closet/crate/trashcart/moneywish/PopulateContents() //25*20*1000=500,000 - for(var/i = 0, i < 25, i++) - var/obj/item/stack/spacecash/c1000/lodsamoney = new /obj/item/stack/spacecash/c1000(src) - lodsamoney.amount = lodsamoney.max_amount diff --git a/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm b/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm deleted file mode 100644 index 6c9f12a852..0000000000 --- a/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm +++ /dev/null @@ -1,83 +0,0 @@ -/obj/item/electropack/shockcollar - name = "shock collar" - desc = "A reinforced metal collar. It seems to have some form of wiring near the front. Strange.." - icon = 'modular_citadel/icons/obj/clothing/cit_neck.dmi' - mob_overlay_icon = 'modular_citadel/icons/mob/citadel/neck.dmi' - icon_state = "shockcollar" - item_state = "shockcollar" - body_parts_covered = NECK - slot_flags = ITEM_SLOT_NECK | ITEM_SLOT_DENYPOCKET //no more pocket shockers - w_class = WEIGHT_CLASS_SMALL - strip_delay = 60 - equip_delay_other = 60 - materials = list(MAT_METAL=5000, MAT_GLASS=2000) - var/tagname = null - -/datum/design/electropack/shockcollar - name = "Shockcollar" - id = "shockcollar" - build_type = AUTOLATHE - build_path = /obj/item/electropack/shockcollar - materials = list(MAT_METAL=5000, MAT_GLASS=2000) - category = list("hacked", "Misc") - -/obj/item/electropack/shockcollar/attack_hand(mob/user) - if(loc == user && user.get_item_by_slot(SLOT_NECK)) - to_chat(user, "The collar is fastened tight! You'll need help taking this off!") - return - ..() - -/obj/item/electropack/shockcollar/receive_signal(datum/signal/signal) - if(!signal || signal.data["code"] != code) - return - - if(isliving(loc) && on) - if(shock_cooldown != 0) - return - shock_cooldown = 1 - spawn(100) - shock_cooldown = 0 - var/mob/living/L = loc - step(L, pick(GLOB.cardinals)) - - to_chat(L, "You feel a sharp shock from the collar!") - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(3, 1, L) - s.start() - - L.DefaultCombatKnockdown(100) - - if(master) - master.receive_signal() - return - -/obj/item/electropack/shockcollar/attack_self(mob/user) //Turns out can't fully source this from the parent item, spritepath gets confused if power toggled. Will come back to this when I know how to code better and readd powertoggle.. - var/option = "Change Name" - option = input(user, "What do you want to do?", "[src]", option) as null|anything in list("Change Name", "Change Frequency") - switch(option) - if("Change Name") - var/t = input(user, "Would you like to change the name on the tag?", "Name your new pet", tagname ? tagname : "Spot") as null|text - if(t) - tagname = copytext(sanitize(t), 1, MAX_NAME_LEN) - name = "[initial(name)] - [tagname]" - if("Change Frequency") - if(!ishuman(user)) - return - user.set_machine(src) - var/dat = {"
    - Frequency/Code for shock collar:
    - Frequency: - - - - [format_frequency(frequency)] - + - +
    - Code: - - - - [code] - + - +
    -
    "} - - user << browse(dat, "window=radio") - onclose(user, "radio") - return diff --git a/modular_citadel/code/game/objects/structures/beds_chairs/chair.dm b/modular_citadel/code/game/objects/structures/beds_chairs/chair.dm deleted file mode 100644 index 5b20fe048b..0000000000 --- a/modular_citadel/code/game/objects/structures/beds_chairs/chair.dm +++ /dev/null @@ -1,21 +0,0 @@ -/obj/structure/chair/alt_attack_hand(mob/living/user) - if(Adjacent(user) && istype(user)) - if(!item_chair || !user.can_hold_items() || !has_buckled_mobs() || buckled_mobs.len > 1 || dir != user.dir || flags_1 & NODECONSTRUCT_1) - return TRUE - if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user))) - to_chat(user, "You can't do that right now!") - return TRUE - if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) - to_chat(user, "You're too exhausted for that.") - return TRUE - var/mob/living/poordude = buckled_mobs[1] - if(!istype(poordude)) - return TRUE - user.visible_message("[user] pulls [src] out from under [poordude].", "You pull [src] out from under [poordude].") - var/C = new item_chair(loc) - user.put_in_hands(C) - poordude.DefaultCombatKnockdown(20)//rip in peace - user.adjustStaminaLoss(5) - unbuckle_all_mobs(TRUE) - qdel(src) - return TRUE diff --git a/modular_citadel/code/modules/admin/chat_commands.dm b/modular_citadel/code/modules/admin/chat_commands.dm deleted file mode 100644 index ddac7b5953..0000000000 --- a/modular_citadel/code/modules/admin/chat_commands.dm +++ /dev/null @@ -1,46 +0,0 @@ -/datum/tgs_chat_command/wheelofsalt - name = "wheelofsalt" - help_text = "What are Citadel Station 13 players salting about today? Spin the wheel and find out!" - -/datum/tgs_chat_command/wheelofsalt/Run(datum/tgs_chat_user/sender, params) - var/saltresult = "The wheel of salt [pick("clatters","screams","vibrates","clanks","resonates","groans","moans","squeaks","emits a[pick(" god-forsaken"," lewd"," creepy"," generic","n orgasmic"," demonic")] [pick("airhorn","bike horn","trumpet","clown","latex","vore","dog","laughing")] noise")] as it spins violently... And it seems the salt of the day is the " - var/saltprimarysubject = "[pick("combat","medical","grab","furry","wall","orgasm","cat","ERP","lizard","dog","latex","vision cone","atmospherics","table","chem","vore","dogborg","Skylar Lineman","Mekhi Anderson","Peppermint","rework","cum","dick","cockvore","Medihound","sleeper","belly sleeper","door wires","flightsuit","coder privilege","Developer abuse","ban reason","github self merge","red panda","beret","male catgirl","powergame","hexacrocin","Discord server","Clitadel","Cargonia","Solarian Republic","Main and RP merger","bluespace","salt","chem dispenser theft","Botany","moth","BWOINK","anal vore","stamina","Mason Jakops","mining","noodle","milf","Lavaland","Necropolis","Ashwalker","Chase Redtail","Drew Mint","Pavel Marsk","Joker Amari","Durgit","chaplain","Antag","nanite","Syndicate","Nar-Sie","Ratvar","Cult","maint","Foam-Force","AI","cyborg","ghost","clockwork","cyberpunk","vaporwave","Clown","Leon Beech","Mime","security","research","Megafauna","Bubblegum","Ash Drake","Legion","Colossus","White Shuttle","Changeling","Cowboy","Space Ninja","Poly","Revolutionary","Skyrim","forbidden fruits","xenomorph","blob","Nuclear Operative","crossdressing")]" - var/saltsecondarysubject = "[pick("rework","changes","r34","ban","removal","addition","leak","proposal","fanart","introduction","tabling","ERP","bikeshedding","crossdressing","sprites","semen keg","argument","theft","nerf","screeching","salt","creampie","lewding","murder","kissing","marriage","replacement","fucking","ship","netflix adaptation","dance","remaster","system","voyeur","decoration","pre-order","bukkake","seduction","worship","gangbang","handholding")]" - if(prob(10)) - saltresult += "@here for your salt, all day every day" - if(prob(1)) - saltresult += " @everyone gets some salt this time too" - else - saltresult += "[saltprimarysubject] [saltsecondarysubject]" - return "[saltresult]!" - -/datum/tgs_chat_command/valentine - name = "valentine" - help_text = "Get a random flirt line." - -/datum/tgs_chat_command/valentine/Run(datum/tgs_chat_user/sender, params) - return "[pick(GLOB.flirts)]" - -/datum/tgs_chat_command/despacito - name = "despacito" //someone please high effort this sometime and make it a full on ytdl search - help_text = "This is so sad." - -/datum/tgs_chat_command/despacito/Run() - return "https://www.youtube.com/watch?v=kJQP7kiw5Fk" - -/datum/tgs_chat_command/poly - name = "poly" - help_text = "The Lewder, more applicable Poly speak for Citadel Station 13." - var/list/speech_buffer - -/datum/tgs_chat_command/poly/Run() - LAZYINITLIST(speech_buffer) //I figure this is just safe to do for everything at this point - if(length(speech_buffer)) //Let's not look up the whole json EVERY TIME, just the first time. - return "[pick(speech_buffer)]" - else - var/json_file = file("data/npc_saves/Poly.json") - if(!fexists(json_file)) - return "**BAWWWWWK!** LEAVE THE HEADSET! ***BAWKKKKK!!***" - var/list/json = json_decode(file2text(json_file)) - speech_buffer = json["phrases"] - return "[pick(speech_buffer)]" diff --git a/modular_citadel/code/modules/client/client_defines.dm b/modular_citadel/code/modules/client/client_defines.dm deleted file mode 100644 index d816b15d1d..0000000000 --- a/modular_citadel/code/modules/client/client_defines.dm +++ /dev/null @@ -1,2 +0,0 @@ -/client - var/cryo_warned = -3000//when was the last time we warned them about not cryoing without an ahelp, set to -5 minutes so that rounstart cryo still warns diff --git a/modular_citadel/code/modules/client/loadout/__donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm index 8ecc6151a1..d428fc290a 100644 --- a/modular_citadel/code/modules/client/loadout/__donator.dm +++ b/modular_citadel/code/modules/client/loadout/__donator.dm @@ -220,7 +220,7 @@ /datum/gear/torisword name = "Rainbow Zweihander" category = SLOT_IN_BACKPACK - path = /obj/item/twohanded/dualsaber/hypereutactic/toy/rainbow + path = /obj/item/dualsaber/hypereutactic/toy/rainbow ckeywhitelist = list("annoymous35") /datum/gear/darksabre diff --git a/modular_citadel/code/modules/client/loadout/_loadout.dm b/modular_citadel/code/modules/client/loadout/_loadout.dm index d35bede179..51256f8cde 100644 --- a/modular_citadel/code/modules/client/loadout/_loadout.dm +++ b/modular_citadel/code/modules/client/loadout/_loadout.dm @@ -10,7 +10,6 @@ GLOBAL_LIST_EMPTY(loadout_whitelist_ids) /proc/load_loadout_config(loadout_config) if(!loadout_config) loadout_config = "config/loadout_config.txt" - LAZYINITLIST(GLOB.loadout_whitelist_ids) var/list/file_lines = world.file2list(loadout_config) for(var/line in file_lines) if(!line || line[1] == "#") @@ -26,12 +25,9 @@ GLOBAL_LIST_EMPTY(loadout_whitelist_ids) GLOB.loadout_whitelist_ids["[lineID]"] = sublinecontent /proc/initialize_global_loadout_items() - LAZYINITLIST(GLOB.loadout_items) load_loadout_config() for(var/item in subtypesof(/datum/gear)) var/datum/gear/I = new item - if(!GLOB.loadout_items[slot_to_string(I.category)]) - LAZYINITLIST(GLOB.loadout_items[slot_to_string(I.category)]) LAZYSET(GLOB.loadout_items[slot_to_string(I.category)], I.name, I) if(islist(I.geargroupID)) var/list/ggidlist = I.geargroupID diff --git a/modular_citadel/code/modules/client/loadout/backpack.dm b/modular_citadel/code/modules/client/loadout/backpack.dm index d51f4b6125..8d089a129a 100644 --- a/modular_citadel/code/modules/client/loadout/backpack.dm +++ b/modular_citadel/code/modules/client/loadout/backpack.dm @@ -69,18 +69,6 @@ path = /obj/item/toy/katana cost = 3 -/datum/gear/box - name = "Spare box" - category = SLOT_IN_BACKPACK - path = /obj/item/storage/box - cost = 2 - -/datum/gear/crowbar - name = "Pocket Crowbar" - category = SLOT_IN_BACKPACK - path = /obj/item/crowbar - cost = 2 - /datum/gear/tapeplayer name = "Taperecorder" category = SLOT_IN_BACKPACK @@ -96,11 +84,6 @@ category = SLOT_IN_BACKPACK path = /obj/item/newspaper -/datum/gear/paperbin - name = "Paper Bin" - category = SLOT_IN_BACKPACK - path = /obj/item/paper_bin - /datum/gear/crayons name = "Box of crayons" category = SLOT_IN_BACKPACK @@ -146,4 +129,4 @@ category = SLOT_IN_BACKPACK path = /obj/item/storage/fancy/ringbox/diamond cost = 5 - + diff --git a/modular_citadel/code/modules/client/loadout/head.dm b/modular_citadel/code/modules/client/loadout/head.dm index dd7d2cdc4b..a02c98a9f0 100644 --- a/modular_citadel/code/modules/client/loadout/head.dm +++ b/modular_citadel/code/modules/client/loadout/head.dm @@ -82,7 +82,7 @@ category = SLOT_HEAD path = /obj/item/clothing/head/caphat/formal/fedcover/medsci restricted_desc = "Medical and Science" - restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist") + restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Paramedic","Geneticist","Research Director","Scientist", "Roboticist") /datum/gear/trekcapeng name = "Federation Officer's Cap (Yellow)" @@ -98,6 +98,46 @@ restricted_desc = "Engineering, Security, and Cargo" restricted_roles = list("Chief Engineer","Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer","Head of Security","Cargo Technician", "Shaft Miner", "Quartermaster") +// orvilike "original" kepi +/datum/gear/orvkepicom + name = "Federation Kepi, command" + description = "A visored cap. Intended to be used with ORV uniform." + category = SLOT_HEAD + path = /obj/item/clothing/head/kepi/orvi/command + restricted_desc = "Heads of Staff" + restricted_roles = list("Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Research Director", "Chief Medical Officer", "Quartermaster") + +/datum/gear/orvkepiops + name = "Federation Kepi, ops/sec" + description = "A visored cap. Intended to be used with ORV uniform." + category = SLOT_HEAD + path = /obj/item/clothing/head/kepi/orvi/engsec + restricted_desc = "Engineering, Security and Cargo" + restricted_roles = list("Chief Engineer", "Atmospheric Technician", "Station Engineer", "Warden", "Detective", "Security Officer", "Head of Security", "Cargo Technician", "Shaft Miner", "Quartermaster") + +/datum/gear/orvkepimedsci + name = "Federation Kepi, medsci" + description = "A visored cap. Intended to be used with ORV uniform." + category = SLOT_HEAD + path = /obj/item/clothing/head/kepi/orvi/medsci + restricted_desc = "Medical and Science" + restricted_roles = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Virologist", "Paramedic", "Geneticist", "Research Director", "Scientist", "Roboticist") + +/datum/gear/orvkepisrv + name = "Federation Kepi, service" + description = "A visored cap. Intended to be used with ORV uniform." + category = SLOT_HEAD + path = /obj/item/clothing/head/kepi/orvi/service + restricted_desc = "Service and Civilian, barring Clown, Mime and Lawyer" + restricted_roles = list("Assistant", "Bartender", "Botanist", "Cook", "Curator", "Janitor", "Chaplain") + +/datum/gear/orvkepiass + name = "Federation Kepi, assistant" + description = "A visored cap. Intended to be used with ORV uniform." + category = SLOT_HEAD + path = /obj/item/clothing/head/kepi/orvi + restricted_roles = list("Assistant") + /*Commenting out Until next Christmas or made automatic /datum/gear/santahatr name = "Red Santa Hat" @@ -137,3 +177,9 @@ path = /obj/item/clothing/head/cowboyhat/sec restricted_desc = "Security" restricted_roles = list("Warden","Detective","Security Officer","Head of Security") + +// Misc +/datum/gear/wkepi + name = "white kepi" + category = SLOT_HEAD + path = /obj/item/clothing/head/kepi diff --git a/modular_citadel/code/modules/client/loadout/mask.dm b/modular_citadel/code/modules/client/loadout/mask.dm index 82824814ae..eeba06cad4 100644 --- a/modular_citadel/code/modules/client/loadout/mask.dm +++ b/modular_citadel/code/modules/client/loadout/mask.dm @@ -12,5 +12,5 @@ name = "Joy mask" category = SLOT_WEAR_MASK path = /obj/item/clothing/mask/joy - cost = 9 - + cost = 3 + diff --git a/modular_citadel/code/modules/client/loadout/suit.dm b/modular_citadel/code/modules/client/loadout/suit.dm index 9b39d006bd..fecf2a4dce 100644 --- a/modular_citadel/code/modules/client/loadout/suit.dm +++ b/modular_citadel/code/modules/client/loadout/suit.dm @@ -85,20 +85,18 @@ path = /obj/item/clothing/suit/hooded/wintercoat/polychromic cost = 4 //too many people with neon green coats is hard on the eyes -/* Commented out until it is "balanced" -/datum/gear/coat/sec - name = "Security winter coat" - category = SLOT_WEAR_SUIT - path = /obj/item/clothing/suit/hooded/wintercoat/security - restricted_roles = list("Head of Security", "Warden", "Detective", "Security Officer") // Reserve it to the Security Departement -*/ - /datum/gear/coat/med name = "Medical winter coat" category = SLOT_WEAR_SUIT path = /obj/item/clothing/suit/hooded/wintercoat/medical restricted_roles = list("Chief Medical Officer", "Medical Doctor") // Reserve it to Medical Doctors and their boss, the Chief Medical Officer +/datum/gear/coat/paramedic + name = "Paramedic winter coat" + category = SLOT_WEAR_SUIT + path = /obj/item/clothing/suit/hooded/wintercoat/paramedic + restricted_roles = list("Chief Medical Officer", "Paramedic") // Reserve it to Paramedics and their boss, the Chief Medical Officer + /datum/gear/coat/robotics name = "Robotics winter coat" category = SLOT_WEAR_SUIT @@ -163,7 +161,7 @@ path = /obj/item/clothing/suit/storage/trek/ds9 restricted_desc = "All, barring Service and Civilian" restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster", - "Medical Doctor","Chemist","Virologist","Geneticist","Scientist", "Roboticist", + "Medical Doctor","Chemist","Virologist","Paramedic","Geneticist","Scientist", "Roboticist", "Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer", "Cargo Technician", "Shaft Miner") //everyone who actually deserves a job. //Federation jackets from movies @@ -185,7 +183,7 @@ category = SLOT_WEAR_SUIT path = /obj/item/clothing/suit/storage/fluff/fedcoat/medsci restricted_desc = "Medical and Science" - restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist") + restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Paramedic","Geneticist","Research Director","Scientist", "Roboticist") /datum/gear/trekengmov name = "Fed (movie) uniform, Yellow" @@ -212,7 +210,7 @@ category = SLOT_WEAR_SUIT path = /obj/item/clothing/suit/storage/fluff/modernfedcoat/medsci restricted_desc = "Medical and Science" - restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist") + restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Paramedic","Geneticist","Research Director","Scientist", "Roboticist") /datum/gear/trekengmod name = "Fed (Modern) uniform, Yellow" @@ -234,4 +232,4 @@ /datum/gear/christmascoatrg name = "Red and Green Christmas Coat" category = SLOT_WEAR_SUIT - path = /obj/item/clothing/suit/hooded/wintercoat/christmascoatrg \ No newline at end of file + path = /obj/item/clothing/suit/hooded/wintercoat/christmascoatrg diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm index e9adc317cb..e667626968 100644 --- a/modular_citadel/code/modules/client/loadout/uniform.dm +++ b/modular_citadel/code/modules/client/loadout/uniform.dm @@ -254,6 +254,30 @@ category = SLOT_W_UNIFORM path = /obj/item/clothing/under/misc/keyholesweater +/datum/gear/polyjump + name = "Polychromic Jumpsuit" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/misc/polyjumpsuit + cost = 2 + +/datum/gear/polyskirt + name = "Polychromic Jumpskirt" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/dress/skirt/polychromic + cost = 2 + +/datum/gear/polysuit + name = "Polychromic Button-up Shirt" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/misc/poly_shirt + cost = 3 + +/datum/gear/polypleated + name = "Polychromic Pleated Sweaterskirt" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/dress/skirt/polychromic/pleated + cost = 3 + /datum/gear/polykilt name = "Polychromic Kilt" category = SLOT_W_UNIFORM @@ -286,7 +310,7 @@ category = SLOT_W_UNIFORM path = /obj/item/clothing/under/trek/medsci restricted_desc = "Medical and Science" - restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist") + restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Paramedic","Geneticist","Research Director","Scientist", "Roboticist") /datum/gear/trekengtos name = "TOS uniform, ops/sec" @@ -308,7 +332,7 @@ category = SLOT_W_UNIFORM path = /obj/item/clothing/under/trek/medsci/next restricted_desc = "Medical and Science" - restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist") + restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Paramedic","Geneticist","Research Director","Scientist", "Roboticist") /datum/gear/trekengtng name = "TNG uniform, ops/sec" @@ -330,7 +354,7 @@ category = SLOT_W_UNIFORM path = /obj/item/clothing/under/trek/medsci/voy restricted_desc = "Medical and Science" - restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist") + restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Paramedic","Geneticist","Research Director","Scientist", "Roboticist") /datum/gear/trekengvoy name = "VOY uniform, ops/sec" @@ -352,7 +376,7 @@ category = SLOT_W_UNIFORM path = /obj/item/clothing/under/trek/medsci/ds9 restricted_desc = "Medical and Science" - restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist") + restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Paramedic","Geneticist","Research Director","Scientist", "Roboticist") /datum/gear/trekengds9 name = "DS9 uniform, ops/sec" @@ -374,7 +398,7 @@ category = SLOT_W_UNIFORM path = /obj/item/clothing/under/trek/medsci/ent restricted_desc = "Medical and Science" - restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Geneticist","Research Director","Scientist", "Roboticist") + restricted_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Virologist","Paramedic","Geneticist","Research Director","Scientist", "Roboticist") /datum/gear/trekengent name = "ENT uniform, ops/sec" @@ -390,7 +414,7 @@ path = /obj/item/clothing/under/trek/fedutil restricted_desc = "All, barring Service and Civilian" restricted_roles = list("Head of Security","Captain","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer","Quartermaster", - "Medical Doctor","Chemist","Virologist","Geneticist","Scientist", "Roboticist", + "Medical Doctor","Chemist","Virologist","Paramedic","Geneticist","Scientist", "Roboticist", "Atmospheric Technician","Station Engineer","Warden","Detective","Security Officer", "Cargo Technician", "Shaft Miner") @@ -405,7 +429,60 @@ category = SLOT_W_UNIFORM path = /obj/item/clothing/under/trek/fedutil/service restricted_desc = "Service and Civilian, barring Clown, Mime and Lawyer" - restricted_roles = list("Assistant", "Bartender", "Botanist", "Cook", "Curator", "Janitor") + restricted_roles = list("Assistant", "Bartender", "Botanist", "Cook", "Curator", "Janitor", "Chaplain") + +//Orvilike +/datum/gear/orvcmd + name = "ORV uniform, cmd" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/trek/command/orv + restricted_desc = "Heads of Staff" + restricted_roles = list("Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Research Director", "Chief Medical Officer", "Quartermaster") + +/datum/gear/orvcmd_capt + name = "ORV uniform, capt" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/trek/command/orv/captain + restricted_roles = list("Captain") + +/datum/gear/orvmedsci + name = "ORV uniform, med/sci" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/trek/medsci/orv + restricted_desc = "Medical and Science" + restricted_roles = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Virologist", "Paramedic", "Geneticist", "Research Director", "Scientist", "Roboticist") + +/datum/gear/orvcmd_medsci + name = "ORV uniform, med/sci, cmd" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/trek/command/orv/medsci + restricted_roles = list("Chief Medical Officer", "Research Director") + +/datum/gear/orvops + name = "ORV uniform, ops/sec" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/trek/engsec/orv + restricted_desc = "Engineering, Security and Cargo" + restricted_roles = list("Chief Engineer", "Atmospheric Technician", "Station Engineer", "Warden", "Detective", "Security Officer", "Head of Security", "Cargo Technician", "Shaft Miner", "Quartermaster") + +/datum/gear/orvcmd_ops + name = "ORV uniform, ops/sec, cmd" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/trek/command/orv/engsec + restricted_roles = list("Chief Engineer", "Head of Security") + +/datum/gear/orvass + name = "ORV uniform, assistant" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/trek/orv + restricted_roles = list("Assistant") + +/datum/gear/orvsrv + name = "ORV uniform, service" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/trek/orv/service + restricted_roles = list("Assistant", "Bartender", "Botanist", "Cook", "Curator", "Janitor", "Chaplain") + restricted_desc = "Service and Civilian, barring Clown, Mime and Lawyer" //Memes /datum/gear/gear_harnesses @@ -482,4 +559,4 @@ name = "Cheongsam, Red" category = SLOT_W_UNIFORM path = /obj/item/clothing/under/costume/cheongsam/red - cost = 3 \ No newline at end of file + cost = 3 diff --git a/modular_citadel/code/modules/client/preferences.dm b/modular_citadel/code/modules/client/preferences.dm deleted file mode 100644 index 8c55f2d9a8..0000000000 --- a/modular_citadel/code/modules/client/preferences.dm +++ /dev/null @@ -1,47 +0,0 @@ -#define DEFAULT_SLOT_AMT 2 -#define HANDS_SLOT_AMT 2 -#define BACKPACK_SLOT_AMT 4 - -/datum/preferences - //gear - var/gear_points = 10 - var/list/gear_categories - var/list/chosen_gear - var/gear_tab - - //pref vars - var/screenshake = 100 - var/damagescreenshake = 2 - var/arousable = TRUE - var/widescreenpref = TRUE - var/autostand = TRUE - var/auto_ooc = FALSE - - //vore prefs - var/toggleeatingnoise = TRUE - var/toggledigestionnoise = TRUE - var/hound_sleeper = TRUE - var/cit_toggles = TOGGLES_CITADEL - - -/datum/preferences/New(client/C) - ..() - LAZYINITLIST(chosen_gear) - -/datum/preferences/proc/is_loadout_slot_available(slot) - var/list/L - LAZYINITLIST(L) - for(var/i in chosen_gear) - var/datum/gear/G = i - var/occupied_slots = L[slot_to_string(initial(G.category))] ? L[slot_to_string(initial(G.category))] + 1 : 1 - LAZYSET(L, slot_to_string(initial(G.category)), occupied_slots) - switch(slot) - if(SLOT_IN_BACKPACK) - if(L[slot_to_string(SLOT_IN_BACKPACK)] < BACKPACK_SLOT_AMT) - return TRUE - if(SLOT_HANDS) - if(L[slot_to_string(SLOT_HANDS)] < HANDS_SLOT_AMT) - return TRUE - else - if(L[slot_to_string(slot)] < DEFAULT_SLOT_AMT) - return TRUE diff --git a/modular_citadel/code/modules/client/preferences_savefile.dm b/modular_citadel/code/modules/client/preferences_savefile.dm index d9b902656f..c747c4cf32 100644 --- a/modular_citadel/code/modules/client/preferences_savefile.dm +++ b/modular_citadel/code/modules/client/preferences_savefile.dm @@ -14,17 +14,6 @@ features["mcolor2"] = sanitize_hexcolor(features["mcolor2"], 3, 0) features["mcolor3"] = sanitize_hexcolor(features["mcolor3"], 3, 0) - //gear loadout - var/text_to_load - S["loadout"] >> text_to_load - var/list/saved_loadout_paths = splittext(text_to_load, "|") - LAZYCLEARLIST(chosen_gear) - gear_points = initial(gear_points) - for(var/i in saved_loadout_paths) - var/datum/gear/path = text2path(i) - if(path) - LAZYADD(chosen_gear, path) - gear_points -= initial(path.cost) /datum/preferences/proc/cit_character_pref_save(savefile/S) //ipcs @@ -46,11 +35,5 @@ WRITE_FILE(S["feature_xeno_head"], features["xenohead"]) //flavor text WRITE_FILE(S["feature_flavor_text"], features["flavor_text"]) + WRITE_FILE(S["silicon_feature_flavor_text"], features["silicon_flavor_text"]) - //gear loadout - if(islist(chosen_gear)) - if(chosen_gear.len) - var/text_to_save = chosen_gear.Join("|") - S["loadout"] << text_to_save - else - S["loadout"] << "" //empty string to reset the value diff --git a/modular_citadel/code/modules/clothing/trek.dm b/modular_citadel/code/modules/clothing/trek.dm index c522d1af81..f7e8b6778e 100644 --- a/modular_citadel/code/modules/clothing/trek.dm +++ b/modular_citadel/code/modules/clothing/trek.dm @@ -162,3 +162,21 @@ /obj/item/clothing/head/caphat/formal/fedcover/black icon_state = "fedcapblack" item_state = "fedcapblack" + +//orvilike caps +/obj/item/clothing/head/kepi/orvi + name = "\improper Federation kepi" + desc = "A visored cap worn by all officers since 2550s." + icon_state = "kepi_ass" + +/obj/item/clothing/head/kepi/orvi/command + icon_state = "kepi_com" + +/obj/item/clothing/head/kepi/orvi/engsec + icon_state = "kepi_ops" + +/obj/item/clothing/head/kepi/orvi/medsci + icon_state = "kepi_medsci" + +/obj/item/clothing/head/kepi/orvi/service + icon_state = "kepi_srv" diff --git a/modular_citadel/code/modules/mentor/mentor_memo.dm b/modular_citadel/code/modules/mentor/mentor_memo.dm index b9f6833e32..8110c5ffcc 100644 --- a/modular_citadel/code/modules/mentor/mentor_memo.dm +++ b/modular_citadel/code/modules/mentor/mentor_memo.dm @@ -33,11 +33,14 @@ var/datum/DBQuery/query_memocheck = SSdbcore.NewQuery("SELECT ckey FROM [format_table_name("mentor_memo")] WHERE ckey = '[sql_ckey]'") if(!query_memocheck.Execute()) var/err = query_memocheck.ErrorMsg() + qdel(query_memocheck) log_game("SQL ERROR obtaining ckey from memo table. Error : \[[err]\]\n") return if(query_memocheck.NextRow()) + qdel(query_memocheck) to_chat(src, "You already have set a memo.") return + qdel(query_memocheck) var/memotext = input(src,"Write your Memo","Memo") as message if(!memotext) return @@ -46,20 +49,24 @@ var/datum/DBQuery/query_memoadd = SSdbcore.NewQuery("INSERT INTO [format_table_name("mentor_memo")] (ckey, memotext, timestamp) VALUES ('[sql_ckey]', '[memotext]', '[timestamp]')") if(!query_memoadd.Execute()) var/err = query_memoadd.ErrorMsg() + qdel(query_memoadd) log_game("SQL ERROR adding new memo. Error : \[[err]\]\n") return log_admin("[key_name(src)] has set a mentor memo: [memotext]") message_admins("[key_name_admin(src)] has set a mentor memo:
    [memotext]") + qdel(query_memoadd) if("Edit") var/datum/DBQuery/query_memolist = SSdbcore.NewQuery("SELECT ckey FROM [format_table_name("mentor_memo")]") if(!query_memolist.Execute()) var/err = query_memolist.ErrorMsg() + qdel(query_memolist) log_game("SQL ERROR obtaining ckey from memo table. Error : \[[err]\]\n") return var/list/memolist = list() while(query_memolist.NextRow()) var/lkey = query_memolist.item[1] memolist += "[lkey]" + qdel(query_memolist) if(!memolist.len) to_chat(src, "No memos found in database.") return @@ -70,10 +77,12 @@ var/datum/DBQuery/query_memofind = SSdbcore.NewQuery("SELECT memotext FROM [format_table_name("mentor_memo")] WHERE ckey = '[target_sql_ckey]'") if(!query_memofind.Execute()) var/err = query_memofind.ErrorMsg() + qdel(query_memofind) log_game("SQL ERROR obtaining memotext from memo table. Error : \[[err]\]\n") return if(query_memofind.NextRow()) var/old_memo = query_memofind.item[1] + qdel(query_memofind) var/new_memo = input("Input new memo", "New Memo", "[old_memo]", null) as message if(!new_memo) return @@ -83,6 +92,7 @@ var/datum/DBQuery/update_query = SSdbcore.NewQuery("UPDATE [format_table_name("mentor_memo")] SET memotext = '[new_memo]', last_editor = '[sql_ckey]', edits = CONCAT(IFNULL(edits,''),'[edit_text]') WHERE ckey = '[target_sql_ckey]'") if(!update_query.Execute()) var/err = update_query.ErrorMsg() + qdel(update_query) log_game("SQL ERROR editing memo. Error : \[[err]\]\n") return if(target_sql_ckey == sql_ckey) @@ -91,10 +101,14 @@ else log_admin("[key_name(src)] has edited [target_sql_ckey]'s mentor memo from [old_memo] to [new_memo]") message_admins("[key_name_admin(src)] has edited [target_sql_ckey]'s mentor memo from
    [old_memo]
    to
    [new_memo]") + qdel(update_query) + else + qdel(query_memofind) if("Show") var/datum/DBQuery/query_memoshow = SSdbcore.NewQuery("SELECT ckey, memotext, timestamp, last_editor FROM [format_table_name("mentor_memo")]") if(!query_memoshow.Execute()) var/err = query_memoshow.ErrorMsg() + qdel(query_memoshow) log_game("SQL ERROR obtaining ckey, memotext, timestamp, last_editor from memo table. Error : \[[err]\]\n") return var/output = null @@ -107,6 +121,7 @@ if(last_editor) output += "
    Last edit by [last_editor] (Click here to see edit log)" output += "
    [memotext]

    " + qdel(query_memoshow) if(!output) to_chat(src, "No memos found in database.") return @@ -115,12 +130,14 @@ var/datum/DBQuery/query_memodellist = SSdbcore.NewQuery("SELECT ckey FROM [format_table_name("mentor_memo")]") if(!query_memodellist.Execute()) var/err = query_memodellist.ErrorMsg() + qdel(query_memodellist) log_game("SQL ERROR obtaining ckey from memo table. Error : \[[err]\]\n") return var/list/memolist = list() while(query_memodellist.NextRow()) var/ckey = query_memodellist.item[1] memolist += "[ckey]" + qdel(query_memodellist) if(!memolist.len) to_chat(src, "No memos found in database.") return @@ -131,6 +148,7 @@ var/datum/DBQuery/query_memodel = SSdbcore.NewQuery("DELETE FROM [format_table_name("memo")] WHERE ckey = '[target_sql_ckey]'") if(!query_memodel.Execute()) var/err = query_memodel.ErrorMsg() + qdel(query_memodel) log_game("SQL ERROR removing memo. Error : \[[err]\]\n") return if(target_sql_ckey == sql_ckey) @@ -138,4 +156,4 @@ message_admins("[key_name_admin(src)] has removed their mentor memo.") else log_admin("[key_name(src)] has removed [target_sql_ckey]'s mentor memo.") - message_admins("[key_name_admin(src)] has removed [target_sql_ckey]'s mentor memo.") \ No newline at end of file + message_admins("[key_name_admin(src)] has removed [target_sql_ckey]'s mentor memo.") diff --git a/modular_citadel/code/modules/mentor/mentorpm.dm b/modular_citadel/code/modules/mentor/mentorpm.dm index d2d04495d4..3260e96767 100644 --- a/modular_citadel/code/modules/mentor/mentorpm.dm +++ b/modular_citadel/code/modules/mentor/mentorpm.dm @@ -67,7 +67,7 @@ if(C.is_mentor()) if(is_mentor())//both are mentors to_chat(C, "Mentor PM from-[key_name_mentor(src, C, 1, 0, 0)]: [msg]") - to_chat(src, "Mentor PM to-[key_name_mentor(C, C, 1, 0, 0)]: [msg]") + to_chat(src, "Mentor PM to-[key_name_mentor(C, C, 1, 0, 0)]: [msg]") else //recipient is a mentor but sender is not to_chat(C, "Reply PM from-[key_name_mentor(src, C, 1, 0, show_char)]: [msg]") diff --git a/modular_citadel/code/modules/mob/cit_emotes.dm b/modular_citadel/code/modules/mob/cit_emotes.dm index 2be83733e5..e58c6bda30 100644 --- a/modular_citadel/code/modules/mob/cit_emotes.dm +++ b/modular_citadel/code/modules/mob/cit_emotes.dm @@ -244,3 +244,21 @@ user.nextsoundemote = world.time + 7 var/sound = pick('modular_citadel/sound/voice/bark1.ogg', 'modular_citadel/sound/voice/bark2.ogg') playsound(user, sound, 50, 1, -1) + +/datum/emote/living/squish + key = "squish" + key_third_person = "squishes" + message = "squishes!" + emote_type = EMOTE_AUDIBLE + muzzle_ignore = FALSE + restraint_check = FALSE + mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai) + +/datum/emote/living/squish/run_emote(mob/living/user, params) + if(!(. = ..())) + return + if(user.nextsoundemote >= world.time) + return + user.nextsoundemote = world.time + 7 + var/sound = pick('sound/voice/slime_squish.ogg') + playsound(user, sound, 50, 1, -1) diff --git a/modular_citadel/code/modules/mob/living/carbon/carbon.dm b/modular_citadel/code/modules/mob/living/carbon/carbon.dm index e95948e562..3a683ca2ff 100644 --- a/modular_citadel/code/modules/mob/living/carbon/carbon.dm +++ b/modular_citadel/code/modules/mob/living/carbon/carbon.dm @@ -1,29 +1,16 @@ /mob/living/carbon - var/lastmousedir - var/wrongdirmovedelay - //oh no vore time var/voremode = FALSE /mob/living/carbon/proc/toggle_vore_mode() + if(SEND_SIGNAL(src, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_TOGGLED)) + return FALSE //let's not override the main draw of the game these days voremode = !voremode var/obj/screen/voretoggle/T = locate() in hud_used?.static_inventory T?.update_icon_state() - if(combat_flags & COMBAT_FLAG_COMBAT_TOGGLED) - return FALSE //let's not override the main draw of the game these days - SEND_SIGNAL(src, COMSIG_VORE_TOGGLED, src, voremode) return TRUE -/mob/living/carbon/Move(atom/newloc, direct = 0) - . = ..() - wrongdirmovedelay = FALSE - if((combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) && client && lastmousedir) - if(lastmousedir != dir) - wrongdirmovedelay = TRUE - setDir(lastmousedir, ismousemovement = TRUE) - -/mob/living/carbon/onMouseMove(object, location, control, params) - if(!(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) - return - mouse_face_atom(object) - lastmousedir = dir +/mob/living/carbon/proc/disable_vore_mode() + voremode = FALSE + var/obj/screen/voretoggle/T = locate() in hud_used?.static_inventory + T?.update_icon_state() diff --git a/modular_citadel/code/modules/mob/living/carbon/human/human.dm b/modular_citadel/code/modules/mob/living/carbon/human/human.dm index 474c9d2823..47de66fcd1 100644 --- a/modular_citadel/code/modules/mob/living/carbon/human/human.dm +++ b/modular_citadel/code/modules/mob/living/carbon/human/human.dm @@ -16,7 +16,7 @@ if(!I || !L || I.loc != src || !(I in L.embedded_objects)) return L.embedded_objects -= I - L.receive_damage(I.embedding.embedded_unsafe_removal_pain_multiplier*I.w_class*painmul)//It hurts to rip it out, get surgery you dingus. And if you're ripping it out quickly via resist, it's gonna hurt even more + L.receive_damage(I.embedding["remove_pain_mult"]*I.w_class*painmul)//It hurts to rip it out, get surgery you dingus. And if you're ripping it out quickly via resist, it's gonna hurt even more I.forceMove(get_turf(src)) I.unembedded() user.put_in_hands(I) diff --git a/modular_citadel/code/modules/mob/living/carbon/life.dm b/modular_citadel/code/modules/mob/living/carbon/life.dm deleted file mode 100644 index e94bd75985..0000000000 --- a/modular_citadel/code/modules/mob/living/carbon/life.dm +++ /dev/null @@ -1,3 +0,0 @@ -/mob/living/carbon/Life() - . = ..() - doSprintBufferRegen() diff --git a/modular_citadel/code/modules/mob/living/living.dm b/modular_citadel/code/modules/mob/living/living.dm index 3baab2ad86..01867e9dcc 100644 --- a/modular_citadel/code/modules/mob/living/living.dm +++ b/modular_citadel/code/modules/mob/living/living.dm @@ -37,7 +37,7 @@ if(!(combat_flags & COMBAT_FLAG_HARD_STAMCRIT) && total_health >= STAMINA_CRIT && !stat) to_chat(src, "You're too exhausted to keep going...") set_resting(TRUE, FALSE, FALSE) - disable_intentional_combat_mode(TRUE, FALSE) + SEND_SIGNAL(src, COMSIG_DISABLE_COMBAT_MODE) ENABLE_BITFIELD(combat_flags, COMBAT_FLAG_HARD_STAMCRIT) filters += CIT_FILTER_STAMINACRIT update_mobility() diff --git a/modular_citadel/code/modules/projectiles/gun.dm b/modular_citadel/code/modules/projectiles/gun.dm deleted file mode 100644 index 317f68b4c4..0000000000 --- a/modular_citadel/code/modules/projectiles/gun.dm +++ /dev/null @@ -1,11 +0,0 @@ -/obj/item/gun/proc/getstamcost(mob/living/carbon/user) - if(user && user.has_gravity()) - return recoil - else - return recoil*5 - -/obj/item/gun/energy/kinetic_accelerator/getstamcost(mob/living/carbon/user) - if(user && !lavaland_equipment_pressure_check(get_turf(user))) - return 0 - else - return ..() diff --git a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm index bcc156a22e..03a124e306 100644 --- a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm +++ b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm @@ -178,7 +178,7 @@ name = "positron blast" damage = 80 range = 14 - speed = 0.6 + pixels_per_second = TILES_TO_PIXELS(16.667) icon_state = "disablerslug" /obj/item/projectile/beam/pump diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm index 89a7f58cee..f66c0289b6 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm @@ -171,10 +171,10 @@ Creating a chem with a low purity will make you permanently fall in love with so E.enthrallGender = creatorGender E.master = get_mob_by_key(creatorID) to_chat(M, "Your addled, plastic, mind bends under the chemical influence of a new [(E.lewd?"master":"leader")]. Your highest priority is now to stay by [creatorName]'s side, following and aiding them at all costs.") //THIS SHOULD ONLY EVER APPEAR IF YOU MINDBREAK YOURSELF AND THEN GET INJECTED FROM SOMEONE ELSE. - log_game("FERMICHEM: Narcissist [M] ckey: [M.key] been rebound to [creatorName], ID: [creatorID]") + log_reagent("FERMICHEM: Narcissist [M] ckey: [M.key] been rebound to [creatorName], ID: [creatorID]") return if((M.ckey == creatorID) && (creatorName == M.real_name)) //same name AND same player - same instance of the player. (should work for clones?) - log_game("FERMICHEM: [M] ckey: [M.key] has been given velvetspeech") + log_reagent("FERMICHEM: [M] ckey: [M.key] has been given velvetspeech") var/obj/item/organ/vocal_cords/Vc = M.getorganslot(ORGAN_SLOT_VOICE) var/obj/item/organ/vocal_cords/nVc = new /obj/item/organ/vocal_cords/velvet if(Vc) @@ -183,9 +183,9 @@ Creating a chem with a low purity will make you permanently fall in love with so qdel(Vc) to_chat(M, "You feel your vocal chords tingle you speak in a more charasmatic and sultry tone.") else - log_game("FERMICHEM: MKUltra: [creatorName], [creatorID], is enthralling [M.name], [M.ckey]") + log_reagent("FERMICHEM: MKUltra: [creatorName], [creatorID], is enthralling [M.name], [M.ckey]") M.apply_status_effect(/datum/status_effect/chem/enthrall) - log_game("FERMICHEM: [M] ckey: [M.key] has taken MKUltra") + log_reagent("FERMICHEM: [M] ckey: [M.key] has taken MKUltra") /datum/reagent/fermi/enthrall/on_mob_life(mob/living/carbon/M) . = ..() @@ -194,14 +194,14 @@ Creating a chem with a low purity will make you permanently fall in love with so if (M.ckey == creatorID && creatorName == M.real_name)//If the creator drinks it, they fall in love randomly. If someone else drinks it, the creator falls in love with them. if(M.has_status_effect(STATUS_EFFECT_INLOVE))//Can't be enthralled when enthralled, so to speak. return - var/list/seen = viewers(7, get_turf(M)) + var/list/seen = (M.fov_view(M.client?.view || world.view) - M) | viewers(M.client?.view || world.view, M) for(var/victim in seen) if(ishuman(victim)) var/mob/living/carbon/V = victim - if((V == M) || (!V.client) || (V.stat == DEAD)) - seen = seen - victim + if(!V.client || V.stat == DEAD) + seen -= victim else - seen = seen - victim + seen -= victim if(LAZYLEN(seen)) return @@ -213,7 +213,7 @@ Creating a chem with a low purity will make you permanently fall in love with so var/mob/living/carbon/C = get_mob_by_key(creatorID) if(M.has_status_effect(STATUS_EFFECT_INLOVE)) return - if((C in viewers(7, get_turf(M))) && (C.client)) + if(C.client && (M in C.fov_view(C.client.view))) M.reagents.del_reagent(type) FallInLove(C, M) return @@ -251,7 +251,7 @@ Creating a chem with a low purity will make you permanently fall in love with so to_chat(M, "Your mind shatters under the volume of the mild altering chem inside of you, breaking all will and thought completely. Instead the only force driving you now is the instinctual desire to obey and follow [creatorName]. Your highest priority is now to stay by their side and protect them at all costs.") else to_chat(M, "The might volume of chemicals in your system overwhelms your mind, and you suddenly agree with what [creatorName] has been saying. Your highest priority is now to stay by their side and protect them at all costs.") - log_game("FERMICHEM: [M] ckey: [M.key] has been mindbroken for [creatorName] ckey: [creatorID]") + log_reagent("FERMICHEM: [M] ckey: [M.key] has been mindbroken for [creatorName] ckey: [creatorID]") M.slurring = 100 M.confused = 100 E.phase = 4 @@ -279,19 +279,17 @@ Creating a chem with a low purity will make you permanently fall in love with so if(HAS_TRAIT(M, TRAIT_MINDSHIELD)) return ..() if(!M.has_status_effect(STATUS_EFFECT_INLOVE)) - var/list/seen = viewers(7, get_turf(M))//Sound and sight checkers + var/list/seen = (M.fov_view(M.client?.view || world.view) - M) | viewers(M.client?.view || world.view, M) for(var/victim in seen) - if((istype(victim, /mob/living/simple_animal/pet/)) || (victim == M) || (M.stat == DEAD) || (!isliving(victim))) - seen = seen - victim - if(seen.len == 0) + if((isanimal(victim)) || (!isliving(victim))) + seen -= victim + if(!length(seen)) return love = pick(seen) - if(!love) - return M.apply_status_effect(STATUS_EFFECT_INLOVE, love) lewd = (M.client?.prefs.cit_toggles & HYPNO) && (love.client?.prefs.cit_toggles & HYPNO) to_chat(M, "[(lewd?"":"")][(lewd?"You develop a sudden crush on [love], your heart beginning to race as you look upon them with new eyes.":"You suddenly feel like making friends with [love].")] You feel strangely drawn towards them.") - log_game("FERMICHEM: [M] ckey: [M.key] has temporarily bonded with [love] ckey: [love.key]") + log_reagent("FERMICHEM: [M] ckey: [M.key] has temporarily bonded with [love] ckey: [love.key]") SSblackbox.record_feedback("tally", "fermi_chem", 1, "Times people have bonded") else if(get_dist(M, love) < 8) @@ -316,7 +314,7 @@ Creating a chem with a low purity will make you permanently fall in love with so SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "InLove") SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "MissingLove") to_chat(M, "[(lewd?"":"")]Your feelings for [love] suddenly vanish!") - log_game("FERMICHEM: [M] ckey: [M.key] is no longer in temp bond") + log_reagent("FERMICHEM: [M] ckey: [M.key] is no longer in temp bond") ..() /datum/reagent/fermi/proc/FallInLove(mob/living/carbon/Lover, mob/living/carbon/Love) @@ -333,7 +331,7 @@ Creating a chem with a low purity will make you permanently fall in love with so Lover.apply_status_effect(STATUS_EFFECT_INLOVE, Love) forge_valentines_objective(Lover, Love, TRUE) SSblackbox.record_feedback("tally", "fermi_chem", 1, "Times people have become infatuated.") - log_game("FERMICHEM: [Lover] ckey: [Lover.key] has been chemically made to fall for [Love] ckey: [Love.key]") + log_reagent("FERMICHEM: [Lover] ckey: [Lover.key] has been chemically made to fall for [Love] ckey: [Love.key]") return //For addiction see chem.dm diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm index 51b13f8c55..8ef302e904 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm @@ -63,8 +63,8 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING startHunger = M.nutrition if(pollStarted == FALSE) pollStarted = TRUE - candies = pollGhostCandidates("Do you want and agree to play as a clone of [M], respect their character and not engage in ERP without permission from the original?", ignore_category = POLL_IGNORE_CLONE) - log_game("FERMICHEM: [M] ckey: [M.key] has taken SDGF, and ghosts have been polled.") + candies = pollGhostCandidates("Do you want to play as [M]'s defective clone? (Don't ERP without permission from the original)", ignore_category = POLL_IGNORE_CLONE) + log_reagent("FERMICHEM: [M] ckey: [M.key] has taken SDGF, and ghosts have been polled.") if(20 to INFINITY) if(LAZYLEN(candies) && playerClone == FALSE) //If there's candidates, clone the person and put them in there! to_chat(M, "The cells reach a critical micelle concentration, nucleating rapidly within your body!") @@ -82,7 +82,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING if(C2.key && C2) C2.transfer_ckey(SM, FALSE) message_admins("Ghost candidate found! [C2] key [C2.key] is becoming a clone of [M] key: [M.key] (They agreed to respect the character they're becoming, and agreed to not ERP without express permission from the original.)") - log_game("FERMICHEM: [M] ckey: [M.key] is creating a clone, controlled by [C2]") + log_reagent("FERMICHEM: [M] ckey: [M.key] is creating a clone, controlled by [C2]") break else candies -= C2 @@ -97,16 +97,16 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING var/obj/item/organ/zombie_infection/ZI = M.getorganslot(ORGAN_SLOT_ZOMBIE) ZI.Remove() ZI.Insert(SM) - log_game("FERMICHEM: [M] ckey: [M.key]'s zombie_infection has been transferred to their clone") + log_reagent("FERMICHEM: [M] ckey: [M.key]'s zombie_infection has been transferred to their clone") to_chat(SM, "You feel a strange sensation building in your mind as you realise there's two of you, before you get a chance to think about it, you suddenly split from your old body, and find yourself face to face with your original, a perfect clone of your origin.") if(prob(50)) to_chat(SM, "While you find your newfound existence strange, you share the same memories as [M.real_name]. However, You find yourself indifferent to the goals you previously had, and take more interest in your newfound independence, but still have an indescribable care for the safety of your original.") - log_game("FERMICHEM: [SM] ckey: [SM.key]'s is not bound by [M] ckey [M.key]'s will, and is free to determine their own goals, while respecting and acting as their origin.") + log_reagent("FERMICHEM: [SM] ckey: [SM.key]'s is not bound by [M] ckey [M.key]'s will, and is free to determine their own goals, while respecting and acting as their origin.") else to_chat(SM, "While you find your newfound existence strange, you share the same memories as [M.real_name]. Your mind has not deviated from the tasks you set out to do, and now that there's two of you the tasks should be much easier.") - log_game("FERMICHEM: [SM] ckey: [SM.key]'s is bound by [M] ckey [M.key]'s objectives, and is encouraged to help them complete them.") + log_reagent("FERMICHEM: [SM] ckey: [SM.key]'s is bound by [M] ckey [M.key]'s objectives, and is encouraged to help them complete them.") to_chat(M, "You feel a strange sensation building in your mind as you realise there's two of you, before you get a chance to think about it, you suddenly split from your old body, and find yourself face to face with yourself.") M.visible_message("[M] suddenly shudders, and splits into two identical twins!") @@ -124,7 +124,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING //Transfer remaining reagent to clone. I think around 30u will make a healthy clone, otherwise they'll have clone damage, blood loss, brain damage and hunger. SM.reagents.add_reagent(/datum/reagent/fermi/SDGFheal, volume) M.reagents.remove_reagent(type, volume) - log_game("FERMICHEM: [volume]u of SDGFheal has been transferred to the clone") + log_reagent("FERMICHEM: [volume]u of SDGFheal has been transferred to the clone") SSblackbox.record_feedback("tally", "fermi_chem", 1, "Sentient clones made") return ..() @@ -135,7 +135,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING if(21) to_chat(M, "The cells fail to catalyse around a nucleation event, instead merging with your cells.") //This stuff is hard enough to make to rob a user of some benefit. Shouldn't replace Rezadone as it requires the user to not only risk making a player controlled clone, but also requires them to have split in two (which also requires 30u of SGDF). REMOVE_TRAIT(M, TRAIT_DISFIGURED, TRAIT_GENERIC) - log_game("FERMICHEM: [M] ckey: [M.key] is being healed by SDGF") + log_reagent("FERMICHEM: [M] ckey: [M.key] is being healed by SDGF") if(22 to INFINITY) M.adjustCloneLoss(-1, 0) M.adjustBruteLoss(-1, 0) @@ -182,7 +182,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING S.originalmind = M.mind S.status_set = TRUE - log_game("FERMICHEM: [M] ckey: [M.key] has created a mindless clone of themselves") + log_reagent("FERMICHEM: [M] ckey: [M.key] has created a mindless clone of themselves") SSblackbox.record_feedback("tally", "fermi_chem", 1, "Braindead clones made") if(87 to INFINITY) M.reagents.remove_reagent(type, volume)//removes SGDF on completion. Has to do it this way because of how i've coded it. If some madlab gets over 1k of SDGF, they can have the clone healing. @@ -349,7 +349,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING ZI.real_name = M.real_name//Give your offspring a big old kiss. ZI.name = M.real_name ZI.desc = "[M]'s clone, gone horribly wrong." - log_game("FERMICHEM: [M] ckey: [M.key]'s clone has become a horrifying zombie instead") + log_reagent("FERMICHEM: [M] ckey: [M.key]'s clone has become a horrifying zombie instead") M.reagents.remove_reagent(type, 20) else//easier to deal with @@ -362,7 +362,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING S.rabid = 1//Make them an angery boi M.reagents.remove_reagent(type, volume) to_chat(M, "A large glob of the tumour suddenly splits itself from your body. You feel grossed out and slimey...") - log_game("FERMICHEM: [M] ckey: [M.key]'s clone has become a horrifying teratoma instead") + log_reagent("FERMICHEM: [M] ckey: [M.key]'s clone has become a horrifying teratoma instead") SSblackbox.record_feedback("tally", "fermi_chem", 1, "Zombie clones made!") if(87 to INFINITY) diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm index 8348569fbb..bdc599a5e2 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm @@ -67,7 +67,7 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die M.alpha = 255 if(current_cycle == 0) originalmind = M.mind - log_game("FERMICHEM: [M] ckey: [M.key] became an astral ghost") + log_reagent("FERMICHEM: [M] ckey: [M.key] became an astral ghost") origin = M if (G == null) G = new(get_turf(M.loc)) @@ -100,29 +100,25 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die ..() /datum/reagent/fermi/astral/on_mob_delete(mob/living/carbon/M) - if(!G) - if(M.mind) - var/mob/living/simple_animal/astral/G2 = new(get_turf(M.loc)) - M.mind.transfer_to(G2)//Just in case someone else is inside of you, it makes them a ghost and should hopefully bring them home at the end. - to_chat(G, "[M]'s conciousness snaps back to them as their astrogen runs out, kicking your projected mind out!'") - log_game("FERMICHEM: [M]'s possesser has been booted out into a astral ghost!") - if(!G2.mind) - qdel(G2) - originalmind.transfer_to(M) - else if(G.mind) - G.mind.transfer_to(origin) - qdel(G) + if(!(G?.mind)) + if(!G) + qdel(G) + return ..() + if(M.mind) //Just in case someone else is inside of you, it makes them a ghost and should hopefully bring them home at the end. + var/mob/living/simple_animal/astral/G2 = new(get_turf(M)) + M.mind.transfer_to(G2) + to_chat(G2, "[M]'s conciousness snaps back to them as [M.p_their()] astrogen runs out, kicking your projected mind out!'") + log_reagent("FERMICHEM: [G2.mind.name] has been booted out of [M] as their original mind came back as the Astrogen reagent ran out!") + G.mind.transfer_to(origin) + qdel(G) if(overdosed) to_chat(M, "The high volume of astrogen you just took causes you to black out momentarily as your mind snaps back to your body.") M.Sleeping(sleepytime, 0) antiGenetics = 255 - if(G)//just in case - qdel(G) - log_game("FERMICHEM: [M] has astrally returned to their body!") + log_reagent("FERMICHEM: [M] has astrally returned to their body!") if(M.mind && M.mind == originalmind) M.remove_status_effect(/datum/status_effect/chem/astral_insurance) - //AS.Remove(M) - ..() + return ..() //Okay so, this might seem a bit too good, but my counterargument is that it'll likely take all round to eventually kill you this way, then you have to be revived without a body. It takes approximately 50-80 minutes to die from this. /datum/reagent/fermi/astral/addiction_act_stage1(mob/living/carbon/M) @@ -137,7 +133,7 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die to_chat(M, "You notice your body starting to disappear, maybe you took too much Astrogen...?") M.alpha-- antiGenetics-- - log_game("FERMICHEM: [M] ckey: [M.key] has become addicted to Astrogen") + log_reagent("FERMICHEM: [M] ckey: [M.key] has become addicted to Astrogen") if(220) to_chat(M, "Your addiction is only getting worse as your body disappears. Maybe you should get some more, and fast?") M.alpha-- @@ -172,5 +168,5 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die message_admins("[M] (ckey: [M.ckey]) has become one with the universe, and have continuous memories thoughout their lives should they find a way to come back to life (such as an inteligence potion, midround antag, ghost role).") SSblackbox.record_feedback("tally", "fermi_chem", 1, "Astral obliterations") qdel(M) //Approx 60minutes till death from initial addiction - log_game("FERMICHEM: [M] ckey: [M.key] has been obliterated from Astrogen addiction") + log_reagent("FERMICHEM: [M] ckey: [M.key] has been obliterated from Astrogen addiction") ..() diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/eigentstasium.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/eigentstasium.dm index 1500d52b25..40077cd02a 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/eigentstasium.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/eigentstasium.dm @@ -37,7 +37,7 @@ //Main functions /datum/reagent/fermi/eigenstate/on_mob_life(mob/living/M) //Teleports to chemistry! if(current_cycle == 0) - log_game("FERMICHEM: [M] ckey: [M.key] took eigenstasium") + log_reagent("FERMICHEM: [M] ckey: [M.key] took eigenstasium") //make hologram at return point Eigenstate = new(loc) @@ -55,7 +55,7 @@ if(cached_purity > 0.9) //Teleports you home if it's pure enough if(!location_created && data) //Just in case location_created = data["location_created"] - log_game("FERMICHEM: [M] ckey: [M.key] returned to [location_created] using eigenstasium") + log_reagent("FERMICHEM: [M] ckey: [M.key] returned to [location_created] using eigenstasium") do_sparks(5,FALSE,M) do_teleport(M, location_created, 0, asoundin = 'sound/effects/phasein.ogg') do_sparks(5,FALSE,M) @@ -78,7 +78,7 @@ /datum/reagent/fermi/eigenstate/overdose_start(mob/living/M) //Overdose, makes you teleport randomly . = ..() to_chat(M, "Oh god, you feel like your wavefunction is about to tear.") - log_game("FERMICHEM: [M] ckey: [M.key] has overdosed on eigenstasium") + log_reagent("FERMICHEM: [M] ckey: [M.key] has overdosed on eigenstasium") M.Jitter(20) metabolization_rate += 0.5 //So you're not stuck forever teleporting. @@ -92,7 +92,7 @@ /datum/reagent/fermi/eigenstate/addiction_act_stage1(mob/living/M) //Welcome to Fermis' wild ride. if(addiction_stage == 1) to_chat(M, "Your wavefunction feels like it's been ripped in half. You feel empty inside.") - log_game("FERMICHEM: [M] ckey: [M.key] has become addicted to eigenstasium") + log_reagent("FERMICHEM: [M] ckey: [M.key] has become addicted to eigenstasium") M.Jitter(10) M.adjust_nutrition(-M.nutrition/15) ..() @@ -158,7 +158,7 @@ M.DefaultCombatKnockdown(100) to_chat(M, "You feel your eigenstate settle, snapping an alternative version of yourself into reality. All your previous memories are lost and replaced with the alternative version of yourself.") M.emote("me",1,"flashes into reality suddenly, gasping as they gaze around in a bewildered and highly confused fashion!",TRUE) - log_game("FERMICHEM: [M] ckey: [M.key] has become an alternative universe version of themselves.") + log_reagent("FERMICHEM: [M] ckey: [M.key] has become an alternative universe version of themselves.") M.reagents.remove_all_type(/datum/reagent, 100, 0, 1) /* for(var/datum/mood_event/Me in M) diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm index dac6d97eef..56ad24c599 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -98,10 +98,8 @@ M.emote("cough") var/obj/item/toy/plush/P = pick(subtypesof(/obj/item/toy/plush)) new P(T) - to_chat(M, "You feel a lump form in your throat, as you suddenly cough up what seems to be a hairball?") - var/list/seen = viewers(8, T) - for(var/mob/S in seen) - to_chat(S, "[M] suddenly coughs up a [P.name]!") + M.visible_message("[M] suddenly coughs up a [P.name]!",\ + "You feel a lump form in your throat, as you suddenly cough up what seems to be a hairball?") var/T2 = get_random_station_turf() P.throw_at(T2, 8, 1) ..() @@ -120,10 +118,10 @@ to_chat(M, "You find yourself unable to supress the desire to howl!") M.emote("awoo") if(prob(20)) - var/list/seen = viewers(5, get_turf(M))//Sound and sight checkers + var/list/seen = M.fov_view() - M //Sound and sight checkers for(var/victim in seen) - if((istype(victim, /mob/living/simple_animal/pet/)) || (victim == M) || (!isliving(victim))) - seen = seen - victim + if(isanimal(victim) || !isliving(victim)) + seen -= victim if(LAZYLEN(seen)) to_chat(M, "You notice [pick(seen)]'s bulge [pick("OwO!", "uwu!")]") if(16) @@ -141,10 +139,10 @@ to_chat(M, "You find yourself unable to supress the desire to howl!") M.emote("awoo") if(prob(5)) - var/list/seen = viewers(5, get_turf(M))//Sound and sight checkers + var/list/seen = M.fov_view() - M //Sound and sight checkers for(var/victim in seen) - if((istype(victim, /mob/living/simple_animal/pet/)) || (victim == M) || (!isliving(victim))) - seen = seen - victim + if(isanimal(victim) || !isliving(victim)) + seen -= victim if(LAZYLEN(seen)) to_chat(M, "You notice [pick(seen)]'s bulge [pick("OwO!", "uwu!")]") ..() @@ -158,9 +156,38 @@ to_chat(M, "You feel your tongue.... unfluffify...?") M.say("Pleh!") else - log_game("FERMICHEM: [M] ckey: [M.key]'s tongue has been made permanent") + log_reagent("FERMICHEM: [M] ckey: [M.key]'s tongue has been made permanent") +//////////////////////////////////////////////////////////////////////////////////////////////////// +// PLUSHMIUM +/////////////////////////////////////////////////////////////////////////////////////////////////// +//A chemical you can spray on plushies to turn them into a 'shell' +//Hugging the plushie turns yourself into the plushie! +/datum/reagent/fermi/plushmium + name = "Plushmium" + description = "A strange chemical, seeming almost fluffy, if it were not for it being a liquid. Known to have a strange effect on plushies." + color = "#fbcbd7" + taste_description = "the soft feeling of a plushie" + pH = 5 + value = 50 + can_synth = TRUE + +/datum/reagent/fermi/plushmium/reaction_obj(obj/O, reac_volume) + if(istype(O, /obj/item/toy/plush) && reac_volume >= 5) + O.loc.visible_message("The plushie seems to be staring back at you.") + var/obj/item/toy/plushie_shell/new_shell = new /obj/item/toy/plushie_shell(O.loc) + new_shell.name = O.name + new_shell.icon = O.icon + new_shell.icon_state = O.icon_state + new_shell.stored_plush = O + O.forceMove(new_shell) + +//Extra interaction for which spraying it on an existing sentient plushie aheals them, so they can be revived! +/datum/reagent/fermi/plushmium/reaction_mob(mob/living/M, method=TOUCH, reac_volume) + if(istype(M, /mob/living/simple_animal/pet/plushie) && reac_volume >= 1) + M.revive(full_heal = 1, admin_revive = 1) + /////////////////////////////////////////////////////////////////////////////////////////////// //Nanite removal //Writen by Trilby!! Embellsished a little by me. @@ -301,9 +328,8 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) else var/datum/chemical_reaction/Ferm = GLOB.chemical_reagents_list[reagent.type] Ferm.on_reaction(holder, reagent.volume) - for(var/mob/M in viewers(8, location)) - to_chat(M, "The solution reacts dramatically, with a meow!") - playsound(get_turf(M), 'modular_citadel/sound/voice/merowr.ogg', 50, 1) + holder.my_atom.visible_message("The solution reacts dramatically, with a meow!") + playsound(holder.my_atom, 'modular_citadel/sound/voice/merowr.ogg', 50, 1) holder.clear_reagents() /datum/reagent/fermi/acidic_buffer @@ -321,10 +347,8 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) if(LAZYLEN(holder.reagent_list) == 1) return ..() holder.pH = ((holder.pH * holder.total_volume)+(pH * (volume)))/(holder.total_volume + (volume)) - var/list/seen = viewers(5, get_turf(holder)) - for(var/mob/M in seen) - to_chat(M, "The beaker fizzes as the pH changes!") - playsound(get_turf(holder.my_atom), 'sound/FermiChem/bufferadd.ogg', 50, 1) + holder.my_atom.visible_message("The beaker fizzes as the pH changes!") + playsound(holder.my_atom, 'sound/FermiChem/bufferadd.ogg', 50, 1) holder.remove_reagent(type, volume, ignore_pH = TRUE) ..() @@ -342,10 +366,8 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) if(LAZYLEN(holder.reagent_list) == 1) return ..() holder.pH = ((holder.pH * holder.total_volume)+(pH * (volume)))/(holder.total_volume + (volume)) - var/list/seen = viewers(5, get_turf(holder)) - for(var/mob/M in seen) - to_chat(M, "The beaker froths as the pH changes!") - playsound(get_turf(holder.my_atom), 'sound/FermiChem/bufferadd.ogg', 50, 1) + holder.my_atom.visible_message("The beaker froths as the pH changes!") + playsound(holder.my_atom, 'sound/FermiChem/bufferadd.ogg', 50, 1) holder.remove_reagent(type, volume, ignore_pH = TRUE) ..() @@ -381,7 +403,7 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) catto.color = "#[H.dna.features["mcolor"]]" catto.pseudo_death = TRUE H.forceMove(catto) - log_game("FERMICHEM: [H] ckey: [H.key] has been made into a cute catto.") + log_reagent("FERMICHEM: [H] ckey: [H.key] has been made into a cute catto.") SSblackbox.record_feedback("tally", "fermi_chem", 1, "cats") if(H.InCritical()) perma = TRUE @@ -415,7 +437,7 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) H.say("*wag")//force update sprites. to_chat(H, "[words]") qdel(catto) - log_game("FERMICHEM: [H] ckey: [H.key] has returned to normal") + log_reagent("FERMICHEM: [H] ckey: [H.key] has returned to normal") /datum/reagent/fermi/secretcatchem/reaction_mob(var/mob/living/L) @@ -424,7 +446,7 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) if(catto.origin) var/mob/living/carbon/human/H = catto.origin H.stat = CONSCIOUS - log_game("FERMICHEM: [catto] ckey: [catto.key] has returned to normal.") + log_reagent("FERMICHEM: [catto] ckey: [catto.key] has returned to normal.") to_chat(catto, "Your body shifts back to normal!") H.forceMove(catto.loc) catto.mind.transfer_to(H) diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm index 48c9ffb7e6..56b2ad2a2c 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm @@ -197,3 +197,25 @@ M.stat = DEAD M.visible_message("The synthetic tissue degrades off [M]'s wounds as they collapse to the floor.") //NEEDS ON_MOB_DEAD() + +/datum/reagent/fermi/zeolites + name = "Artificial Zeolites" + description = "Lab made Zeolite, used to clear radiation from people and items alike! Splashing just a small amount(5u) onto any item can clear away large amounts of contamination." + pH = 8 + color = "#FFDADA" + metabolization_rate = 8 * REAGENTS_METABOLISM //Metabolizes fast but heals a lot! + value = REAGENT_VALUE_COMMON + +/datum/reagent/fermi/zeolites/on_mob_life(mob/living/carbon/M) + var/datum/component/radioactive/contamination = M.GetComponent(/datum/component/radioactive) + if(M.radiation > 0) + M.radiation -= min(M.radiation, 60) + if(contamination.strength > 0) + contamination.strength -= min(contamination.strength, 100) + ..() + +/datum/reagent/fermi/zeolites/reaction_obj(obj/O, reac_volume) + var/datum/component/radioactive/contamination = O.GetComponent(/datum/component/radioactive) + if(contamination && reac_volume >= 5) + qdel(contamination) + return diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index 837524d49f..a24a5beaad 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -165,16 +165,14 @@ if(amount_to_spawn <= 0) amount_to_spawn = 1 for(var/i in 1 to amount_to_spawn) - var/mob/living/simple_animal/slime/S = new(T,"green") + var/mob/living/simple_animal/slime/S = new(T,"pyrite") S.damage_coeff = list(BRUTE = 0.9 , BURN = 2, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) S.name = "Living teratoma" S.real_name = "Living teratoma" S.rabid = 1//Make them an angery boi S.color = "#810010" my_atom.reagents.clear_reagents() - var/list/seen = viewers(8, get_turf(my_atom)) - for(var/mob/M in seen) - to_chat(M, "The cells clump up into a horrifying tumour!") + my_atom.visible_message("An horrifying tumoural mass forms in [my_atom]!") /datum/chemical_reaction/fermi/breast_enlarger name = "Sucubus milk" @@ -211,9 +209,7 @@ /datum/chemical_reaction/fermi/breast_enlarger/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH) var/obj/item/organ/genital/breasts/B = new /obj/item/organ/genital/breasts(get_turf(my_atom)) - var/list/seen = viewers(8, get_turf(my_atom)) - for(var/mob/M in seen) - to_chat(M, "The reaction suddenly condenses, creating a pair of breasts!") + my_atom.visible_message("The reaction suddenly condenses, creating a pair of breasts!") var/datum/reagent/fermi/breast_enlarger/BE = locate(/datum/reagent/fermi/breast_enlarger) in my_atom.reagents.reagent_list B.size = ((BE.volume * BE.purity) / 10) //half as effective. my_atom.reagents.clear_reagents() @@ -243,9 +239,7 @@ /datum/chemical_reaction/fermi/penis_enlarger/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH) var/obj/item/organ/genital/penis/P = new /obj/item/organ/genital/penis(get_turf(my_atom)) - var/list/seen = viewers(8, get_turf(my_atom)) - for(var/mob/M in seen) - to_chat(M, "The reaction suddenly condenses, creating a penis!") + my_atom.visible_message("The reaction suddenly condenses, creating a penis!") var/datum/reagent/fermi/penis_enlarger/PE = locate(/datum/reagent/fermi/penis_enlarger) in my_atom.reagents.reagent_list P.length = ((PE.volume * PE.purity) / 10)//half as effective. my_atom.reagents.clear_reagents() @@ -383,9 +377,7 @@ for(var/i in 1 to amount_to_spawn) var/obj/item/clothing/head/hattip/hat = new /obj/item/clothing/head/hattip(get_turf(my_atom)) hat.animate_atom_living() - var/list/seen = viewers(8, get_turf(my_atom)) - for(var/mob/M in seen) - to_chat(M, "The [my_atom] makes an off sounding pop, as a hat suddenly climbs out of it!") + my_atom.visible_message("The [my_atom] makes an off sounding pop, as a hat suddenly climbs out of it!") my_atom.reagents.clear_reagents() /datum/chemical_reaction/fermi/furranium @@ -488,6 +480,33 @@ RateUpLim = 15 FermiChem = TRUE +/datum/chemical_reaction/fermi/plushmium // done + name = "Plushification serum" + id = /datum/reagent/fermi/plushmium + results = list(/datum/reagent/fermi/plushmium = 5) + required_reagents = list(/datum/reagent/medicine/strange_reagent = 5, /datum/reagent/drug/happiness = 3, /datum/reagent/blood = 10, /datum/reagent/consumable/laughter = 5, /datum/reagent/toxin/bad_food = 6) + //mix_message = "" + //FermiChem vars: + OptimalTempMin = 400 + OptimalTempMax = 666 + ExplodeTemp = 800 + OptimalpHMin = 2 + OptimalpHMax = 5 + ReactpHLim = 6 + //CatalystFact = 0 //To do 1 + CurveSharpT = 8 + CurveSharppH = 0.5 + ThermicConstant = -2 + HIonRelease = -0.1 + RateUpLim = 2 + FermiChem = TRUE + FermiExplode = TRUE + PurityMin = 0.6 + +/datum/chemical_reaction/fermi/plushmium/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH) + new /obj/item/toy/plush/random(get_turf(my_atom)) + my_atom.visible_message("The reaction suddenly zaps, creating a plushie!") + my_atom.reagents.clear_reagents() /datum/chemical_reaction/fermi/basic_buffer/FermiFinish(datum/reagents/holder, atom/my_atom) //might need this var/datum/reagent/fermi/basic_buffer/Fb = locate(/datum/reagent/fermi/basic_buffer) in my_atom.reagents.reagent_list @@ -543,9 +562,7 @@ /datum/chemical_reaction/fermi/secretcatchem/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH) var/mob/living/simple_animal/pet/cat/custom_cat/catto = new(get_turf(my_atom)) - var/list/seen = viewers(8, get_turf(my_atom)) - for(var/mob/M in seen) - to_chat(M, "The reaction suddenly gives out a meow, condensing into a chemcat!")//meow! + my_atom.visible_message("The reaction suddenly gives out a meow, condensing into a chemcat!")//meow! playsound(get_turf(my_atom), 'modular_citadel/sound/voice/merowr.ogg', 50, 1, -1) catto.name = "Chemcat" catto.desc = "A cute chem cat, created by a lot of compicated and confusing chemistry!" @@ -571,3 +588,23 @@ HIonRelease = 0.1 RateUpLim = 2 FermiChem = TRUE + +/datum/chemical_reaction/fermi/zeolites + name = "Zeolites" + id = /datum/reagent/fermi/zeolites + results = list(/datum/reagent/fermi/zeolites = 5) //We make a lot! + required_reagents = list(/datum/reagent/medicine/potass_iodide = 1, /datum/reagent/aluminium = 1, /datum/reagent/silicon = 1, /datum/reagent/oxygen = 1) + //FermiChem vars: + OptimalTempMin = 300 + OptimalTempMax = 900 + ExplodeTemp = 1000 //check to see overflow doesn't happen! + OptimalpHMin = 4.0 + OptimalpHMax = 6.0 + ReactpHLim = 4 + //CatalystFact = 0 + CurveSharpT = 4 + CurveSharppH = 0 + ThermicConstant = 0 + HIonRelease = 0.01 + RateUpLim = 15 + FermiChem = TRUE \ No newline at end of file diff --git a/modular_citadel/code/modules/reagents/objects/clothes.dm b/modular_citadel/code/modules/reagents/objects/clothes.dm index 34af39bbe0..de4cb38360 100644 --- a/modular_citadel/code/modules/reagents/objects/clothes.dm +++ b/modular_citadel/code/modules/reagents/objects/clothes.dm @@ -5,7 +5,7 @@ name = "Synthetic hat" icon = 'icons/obj/clothing/hats.dmi' icon_state = "cowboy" - desc = "A synthesized hat, you can't seem to take it off. And tips their hat." + desc = "A synthesized hat. You feel compelled to keep it on all times." armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) //item_flags = NODROP //Tips their hat! @@ -49,9 +49,8 @@ /obj/item/clothing/head/hattip/proc/root_and_toot(obj/item/clothing/head/hattip/hat) hat.animate_atom_living() - var/list/seen = viewers(6, get_turf(hat)) - for(var/mob/M2 in seen) - to_chat(M2, "[hat] exclaims, \"[pick("Whooee! Time for a hootenanny!", "Rough 'em up boys!", "Yeehaw! Freedom at last!", "Y'all about to get a good old fashioned spanking!")]\"") + var/mob/living/simple_animal/hostile/mimic/M = loc + M.say(pick("Whooee! Time for a hootenanny!", "Rough 'em up boys!", "Yeehaw! Freedom at last!", "Y'all about to get a good old fashioned spanking!")) /obj/item/clothing/head/hattip/proc/handle_speech(datum/source, mob/speech_args) var/message = speech_args[SPEECH_MESSAGE] diff --git a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm deleted file mode 100644 index 17de8c806d..0000000000 --- a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm +++ /dev/null @@ -1,246 +0,0 @@ -//body bluids -/datum/reagent/consumable/semen - name = "Semen" - description = "Sperm from some animal. Useless for anything but insemination, really." - taste_description = "something salty" - taste_mult = 2 //Not very overpowering flavor - data = list("donor"=null,"viruses"=null,"donor_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null) - reagent_state = LIQUID - color = "#FFFFFF" // rgb: 255, 255, 255 - can_synth = FALSE - nutriment_factor = 0.5 * REAGENTS_METABOLISM - -/datum/reagent/consumable/semen/reaction_turf(turf/T, reac_volume) - if(!istype(T)) - return - if(reac_volume < 10) - return - - var/obj/effect/decal/cleanable/semen/S = locate() in T - if(!S) - S = new(T) - if(data["blood_DNA"]) - S.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"])) - -/obj/effect/decal/cleanable/semen - name = "semen" - desc = null - gender = PLURAL - density = 0 - layer = ABOVE_NORMAL_TURF_LAYER - icon = 'icons/obj/genitals/effects.dmi' - icon_state = "semen1" - random_icon_states = list("semen1", "semen2", "semen3", "semen4") - -/obj/effect/decal/cleanable/semen/Initialize(mapload) - . = ..() - dir = GLOB.cardinals - add_blood_DNA(list("Non-human DNA" = "A+")) - -/obj/effect/decal/cleanable/semen/replace_decal(obj/effect/decal/cleanable/semen/S) - if(S.blood_DNA) - blood_DNA |= S.blood_DNA - return ..() - -/datum/reagent/consumable/femcum - name = "Female Ejaculate" - description = "Vaginal lubricant found in most mammals and other animals of similar nature. Where you found this is your own business." - taste_description = "something with a tang" // wew coders who haven't eaten out a girl. - taste_mult = 2 - data = list("donor"=null,"viruses"=null,"donor_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null) - reagent_state = LIQUID - color = "#AAAAAA77" - can_synth = FALSE - nutriment_factor = 0.5 * REAGENTS_METABOLISM - -/obj/effect/decal/cleanable/femcum - name = "female ejaculate" - desc = null - gender = PLURAL - density = 0 - layer = ABOVE_NORMAL_TURF_LAYER - icon = 'icons/obj/genitals/effects.dmi' - icon_state = "fem1" - random_icon_states = list("fem1", "fem2", "fem3", "fem4") - blood_state = null - bloodiness = null - -/obj/effect/decal/cleanable/femcum/Initialize(mapload) - . = ..() - dir = GLOB.cardinals - add_blood_DNA(list("Non-human DNA" = "A+")) - -/obj/effect/decal/cleanable/femcum/replace_decal(obj/effect/decal/cleanable/femcum/F) - if(F.blood_DNA) - blood_DNA |= F.blood_DNA - return ..() - -/datum/reagent/consumable/femcum/reaction_turf(turf/T, reac_volume) - if(!istype(T)) - return - if(reac_volume < 10) - return - - var/obj/effect/decal/cleanable/femcum/S = locate() in T - if(!S) - S = new(T) - if(data["blood_DNA"]) - S.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"])) - -//aphrodisiac & anaphrodisiac - -/datum/reagent/drug/aphrodisiac - name = "Crocin" - description = "Naturally found in the crocus and gardenia flowers, this drug acts as a natural and safe aphrodisiac." - taste_description = "strawberries" - color = "#FFADFF"//PINK, rgb(255, 173, 255) - can_synth = FALSE - -/datum/reagent/drug/aphrodisiac/on_mob_life(mob/living/M) - if(M && M.client?.prefs.arousable && !(M.client?.prefs.cit_toggles & NO_APHRO)) - if((prob(min(current_cycle/2,5)))) - M.emote(pick("moan","blush")) - if(prob(min(current_cycle/4,10))) - var/aroused_message = pick("You feel frisky.", "You're having trouble suppressing your urges.", "You feel in the mood.") - to_chat(M, "[aroused_message]") - if(ishuman(M)) - var/mob/living/carbon/human/H = M - var/list/genits = H.adjust_arousal(current_cycle, aphro = TRUE) // redundant but should still be here - for(var/g in genits) - var/obj/item/organ/genital/G = g - to_chat(M, "[G.arousal_verb]!") - ..() - -/datum/reagent/drug/aphrodisiacplus - name = "Hexacrocin" - description = "Chemically condensed form of basic crocin. This aphrodisiac is extremely powerful and addictive in most animals.\ - Addiction withdrawals can cause brain damage and shortness of breath. Overdosage can lead to brain damage and a \ - permanent increase in libido (commonly referred to as 'bimbofication')." - taste_description = "liquid desire" - color = "#FF2BFF"//dark pink - addiction_threshold = 20 - overdose_threshold = 20 - can_synth = FALSE - -/datum/reagent/drug/aphrodisiacplus/on_mob_life(mob/living/M) - if(M && M.client?.prefs.arousable && !(M.client?.prefs.cit_toggles & NO_APHRO)) - if(prob(5)) - if(prob(current_cycle)) - M.say(pick("Hnnnnngghh...", "Ohh...", "Mmnnn...")) - else - M.emote(pick("moan","blush")) - if(prob(5)) - var/aroused_message - if(current_cycle>25) - aroused_message = pick("You need to fuck someone!", "You're bursting with sexual tension!", "You can't get sex off your mind!") - else - aroused_message = pick("You feel a bit hot.", "You feel strong sexual urges.", "You feel in the mood.", "You're ready to go down on someone.") - to_chat(M, "[aroused_message]") - REMOVE_TRAIT(M,TRAIT_NEVERBONER,APHRO_TRAIT) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - var/list/genits = H.adjust_arousal(100, aphro = TRUE) // redundant but should still be here - for(var/g in genits) - var/obj/item/organ/genital/G = g - to_chat(M, "[G.arousal_verb]!") - ..() - -/datum/reagent/drug/aphrodisiacplus/addiction_act_stage2(mob/living/M) - if(prob(30)) - M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2) - ..() -/datum/reagent/drug/aphrodisiacplus/addiction_act_stage3(mob/living/M) - if(prob(30)) - M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3) - - ..() -/datum/reagent/drug/aphrodisiacplus/addiction_act_stage4(mob/living/M) - if(prob(30)) - M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 4) - ..() - -/datum/reagent/drug/aphrodisiacplus/overdose_process(mob/living/M) - if(M && M.client?.prefs.arousable && !(M.client?.prefs.cit_toggles & NO_APHRO) && prob(33)) - if(prob(5) && ishuman(M) && M.has_dna() && (M.client?.prefs.cit_toggles & BIMBOFICATION)) - if(!HAS_TRAIT(M,TRAIT_PERMABONER)) - to_chat(M, "Your libido is going haywire!") - ADD_TRAIT(M,TRAIT_PERMABONER,APHRO_TRAIT) - ..() - -/datum/reagent/drug/anaphrodisiac - name = "Camphor" - description = "Naturally found in some species of evergreen trees, camphor is a waxy substance. When injested by most animals, it acts as an anaphrodisiac\ - , reducing libido and calming them. Non-habit forming and not addictive." - taste_description = "dull bitterness" - taste_mult = 2 - color = "#D9D9D9"//rgb(217, 217, 217) - reagent_state = SOLID - can_synth = FALSE - -/datum/reagent/drug/anaphrodisiac/on_mob_life(mob/living/M) - if(M && M.client?.prefs.arousable && prob(16)) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - var/list/genits = H.adjust_arousal(-100, aphro = TRUE) - if(genits.len) - to_chat(M, "You no longer feel aroused.") - ..() - -/datum/reagent/drug/anaphrodisiacplus - name = "Hexacamphor" - description = "Chemically condensed camphor. Causes an extreme reduction in libido and a permanent one if overdosed. Non-addictive." - taste_description = "tranquil celibacy" - color = "#D9D9D9"//rgb(217, 217, 217) - reagent_state = SOLID - overdose_threshold = 20 - can_synth = FALSE - -/datum/reagent/drug/anaphrodisiacplus/on_mob_life(mob/living/M) - if(M && M.client?.prefs.arousable) - REMOVE_TRAIT(M,TRAIT_PERMABONER,APHRO_TRAIT) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - var/list/genits = H.adjust_arousal(-100, aphro = TRUE) - if(genits.len) - to_chat(M, "You no longer feel aroused.") - - ..() - -/datum/reagent/drug/anaphrodisiacplus/overdose_process(mob/living/M) - if(M && M.client?.prefs.arousable && prob(5)) - to_chat(M, "You feel like you'll never feel aroused again...") - ADD_TRAIT(M,TRAIT_NEVERBONER,APHRO_TRAIT) - ..() - -//recipes -/datum/chemical_reaction/aphro - name = "crocin" - id = /datum/reagent/drug/aphrodisiac - results = list(/datum/reagent/drug/aphrodisiac = 6) - required_reagents = list(/datum/reagent/carbon = 2, /datum/reagent/hydrogen = 2, /datum/reagent/oxygen = 2, /datum/reagent/water = 1) - required_temp = 400 - mix_message = "The mixture boils off a pink vapor..."//The water boils off, leaving the crocin - -/datum/chemical_reaction/aphroplus - name = "hexacrocin" - id = /datum/reagent/drug/aphrodisiacplus - results = list(/datum/reagent/drug/aphrodisiacplus = 1) - required_reagents = list(/datum/reagent/drug/aphrodisiac = 6, /datum/reagent/phenol = 1) - required_temp = 400 - mix_message = "The mixture rapidly condenses and darkens in color..." - -/datum/chemical_reaction/anaphro - name = "camphor" - id = /datum/reagent/drug/anaphrodisiac - results = list(/datum/reagent/drug/anaphrodisiac = 6) - required_reagents = list(/datum/reagent/carbon = 2, /datum/reagent/hydrogen = 2, /datum/reagent/oxygen = 2, /datum/reagent/sulfur = 1) - required_temp = 400 - mix_message = "The mixture boils off a yellow, smelly vapor..."//Sulfur burns off, leaving the camphor - -/datum/chemical_reaction/anaphroplus - name = "pentacamphor" - id = /datum/reagent/drug/anaphrodisiacplus - results = list(/datum/reagent/drug/anaphrodisiacplus = 1) - required_reagents = list(/datum/reagent/drug/aphrodisiac = 5, /datum/reagent/acetone = 1) - required_temp = 300 - mix_message = "The mixture thickens and heats up slighty..." diff --git a/modular_citadel/icons/mob/mam_tails.dmi b/modular_citadel/icons/mob/mam_tails.dmi index d91f15a3f7..a67c1b718c 100644 Binary files a/modular_citadel/icons/mob/mam_tails.dmi and b/modular_citadel/icons/mob/mam_tails.dmi differ diff --git a/modular_citadel/icons/mob/mam_taur.dmi b/modular_citadel/icons/mob/mam_taur.dmi index 3625c293c9..cf332019af 100644 Binary files a/modular_citadel/icons/mob/mam_taur.dmi and b/modular_citadel/icons/mob/mam_taur.dmi differ diff --git a/modular_citadel/icons/mob/mutant_bodyparts.dmi b/modular_citadel/icons/mob/mutant_bodyparts.dmi index 95b121b453..6098dd3567 100644 Binary files a/modular_citadel/icons/mob/mutant_bodyparts.dmi and b/modular_citadel/icons/mob/mutant_bodyparts.dmi differ diff --git a/modular_citadel/icons/ui/screen_midnight.dmi b/modular_citadel/icons/ui/screen_midnight.dmi index a730c591ba..fc446a411c 100644 Binary files a/modular_citadel/icons/ui/screen_midnight.dmi and b/modular_citadel/icons/ui/screen_midnight.dmi differ diff --git a/modular_citadel/icons/ui/screen_operative.dmi b/modular_citadel/icons/ui/screen_operative.dmi index cb08f08ceb..9383b94718 100644 Binary files a/modular_citadel/icons/ui/screen_operative.dmi and b/modular_citadel/icons/ui/screen_operative.dmi differ diff --git a/modular_citadel/icons/ui/screen_plasmafire.dmi b/modular_citadel/icons/ui/screen_plasmafire.dmi index 5f8cd9d93c..97e577c7bd 100644 Binary files a/modular_citadel/icons/ui/screen_plasmafire.dmi and b/modular_citadel/icons/ui/screen_plasmafire.dmi differ diff --git a/modular_citadel/icons/ui/screen_slimecore.dmi b/modular_citadel/icons/ui/screen_slimecore.dmi index f2f0c88782..8f45ff3f76 100644 Binary files a/modular_citadel/icons/ui/screen_slimecore.dmi and b/modular_citadel/icons/ui/screen_slimecore.dmi differ diff --git a/modular_citadel/interface/skin.dmf b/modular_citadel/interface/skin.dmf deleted file mode 100644 index ec9a010128..0000000000 --- a/modular_citadel/interface/skin.dmf +++ /dev/null @@ -1,319 +0,0 @@ -macro "default" - - -menu "menu" - elem - name = "&File" - command = "" - saved-params = "is-checked" - elem - name = "&Quick screenshot\tF2" - command = ".screenshot auto" - category = "&File" - saved-params = "is-checked" - elem - name = "&Save screenshot as...\tShift+F2" - command = ".screenshot" - category = "&File" - saved-params = "is-checked" - elem - name = "" - command = "" - category = "&File" - saved-params = "is-checked" - elem "reconnectbutton" - name = "&Reconnect" - command = ".reconnect" - category = "&File" - saved-params = "is-checked" - elem - name = "&Quit\tAlt-F4" - command = ".quit" - category = "&File" - saved-params = "is-checked" - elem - name = "&Help" - command = "" - saved-params = "is-checked" - elem - name = "&Admin Help\tF1" - command = "adminhelp" - category = "&Help" - saved-params = "is-checked" - elem - name = "&Hotkeys" - command = "hotkeys-help" - category = "&Help" - saved-params = "is-checked" - - -window "mainwindow" - elem "mainwindow" - type = MAIN - pos = 0,0 - size = 640x440 - anchor1 = none - anchor2 = none - background-color = #242424 - is-default = true - saved-params = "pos;size;is-minimized;is-maximized" - icon = 'icons\\ss13_64.png' - macro = "default" - menu = "menu" - elem "split" - type = CHILD - pos = 0,0 - size = 637x440 - anchor1 = 0,0 - anchor2 = 100,100 - background-color = #272727 - saved-params = "splitter" - left = "mapwindow" - right = "infowindow" - is-vert = true - splitter = 75 - elem "asset_cache_browser" - type = BROWSER - pos = 0,0 - size = 200x200 - anchor1 = none - anchor2 = none - background-color = #272727 - is-visible = false - saved-params = "" - elem "tooltip" - type = BROWSER - pos = 0,0 - size = 999x999 - anchor1 = none - anchor2 = none - background-color = #272727 - is-visible = false - saved-params = "" - -window "mapwindow" - elem "mapwindow" - type = MAIN - pos = 418,0 - size = 1024x1024 - anchor1 = none - anchor2 = none - background-color = none - saved-params = "pos;size;is-minimized;is-maximized" - statusbar = false - is-pane = true - outer-size = 684x617 - inner-size = 662x561 - elem "map" - type = MAP - pos = 0,0 - size = 1024x1024 - anchor1 = 0,0 - anchor2 = 100,100 - font-family = "Arial" - font-size = 7 - is-default = true - saved-params = "icon-size" - zoom-mode = distort - style = ".center { text-align: center; }\n.maptext { font-family: 'Small Fonts'; font-size: 7px; -dm-text-outline: 1px black; color: white; line-height: 1.1; }\n.command_headset { font-weight: bold;\tfont-size: 8px; } .small { font-size: 6px; }\n.big { font-size: 8px; }\n.reallybig { font-size: 8px; }\n.extremelybig { font-size: 8px; }\n.greentext { color: #00ff00; font-size: 7px; }\n.redtext { color: #ff0000; font-size: 7px; }\n.clown { color: #ff69bf; font-size: 7px; font-weight: bold; }\n.his_grace { color: #15d512; }\n.hypnophrase { color: #0d0d0d; font-weight: bold; }\n.yell { font-weight: bold; }\n.italics { font-size: 6px; }" - -window "infowindow" - elem "infowindow" - type = MAIN - pos = 0,0 - size = 640x480 - anchor1 = none - anchor2 = none - background-color = #242424 - saved-params = "pos;size;is-minimized;is-maximized" - is-pane = true - elem "info" - type = CHILD - pos = 0,30 - size = 640x445 - anchor1 = 0,0 - anchor2 = 100,100 - background-color = #272727 - saved-params = "splitter" - left = "statwindow" - right = "outputwindow" - is-vert = false - elem "changelog" - type = BUTTON - pos = 16,5 - size = 104x20 - anchor1 = 3,0 - anchor2 = 19,0 - text-color = #e0e0e0 - background-color = #40628a - saved-params = "is-checked" - text = "Changelog" - command = "changelog" - elem "rules" - type = BUTTON - pos = 120,5 - size = 100x20 - anchor1 = 19,0 - anchor2 = 34,0 - text-color = #e0e0e0 - background-color = #40628a - saved-params = "is-checked" - text = "Rules" - command = "rules" - elem "wiki" - type = BUTTON - pos = 220,5 - size = 100x20 - anchor1 = 34,0 - anchor2 = 50,0 - text-color = #e0e0e0 - background-color = #40628a - saved-params = "is-checked" - text = "Wiki" - command = "wiki" - elem "forum" - type = BUTTON - pos = 320,5 - size = 100x20 - anchor1 = 50,0 - anchor2 = 66,0 - text-color = #e0e0e0 - background-color = #40628a - saved-params = "is-checked" - text = "Forum" - command = "forum" - elem "github" - type = BUTTON - pos = 420,5 - size = 100x20 - anchor1 = 66,0 - anchor2 = 81,0 - text-color = #e0e0e0 - background-color = #40628a - saved-params = "is-checked" - text = "GitHub" - command = "github" - elem "report-issue" - type = BUTTON - pos = 520,5 - size = 100x20 - anchor1 = 81,0 - anchor2 = 97,0 - font-size = 8 - text-color = #e0e0e0 - background-color = #a92c2c - saved-params = "is-checked" - text = "Report Issue" - command = "report-issue" - -window "outputwindow" - elem "outputwindow" - type = MAIN - pos = 0,0 - size = 640x480 - anchor1 = none - anchor2 = none - background-color = #272727 - saved-params = "pos;size;is-minimized;is-maximized" - titlebar = false - statusbar = false - can-close = false - can-minimize = false - can-resize = false - is-pane = true - elem "input" - type = INPUT - pos = 2,460 - size = 595x20 - anchor1 = 0,100 - anchor2 = 100,100 - background-color = #d3b5b5 - is-default = true - border = sunken - saved-params = "command" - elem "say" - type = BUTTON - pos = 600,460 - size = 37x20 - anchor1 = 100,100 - anchor2 = none - text-color = #e0e0e0 - background-color = #272727 - saved-params = "is-checked" - text = "Chat" - command = ".winset \"say.is-checked=true ? input.command=\"!say \\\"\" : input.command=\"" - is-flat = true - button-type = pushbox - elem "browseroutput" - type = BROWSER - pos = 0,0 - size = 640x456 - anchor1 = 0,0 - anchor2 = 100,100 - background-color = #272727 - is-visible = false - is-disabled = true - saved-params = "" - auto-format = false - elem "output" - type = OUTPUT - pos = 0,0 - size = 640x456 - anchor1 = 0,0 - anchor2 = 100,100 - text-color = #e0e0e0 - background-color = #272727 - is-default = true - saved-params = "" - -window "statwindow" - elem "statwindow" - type = MAIN - pos = 281,0 - size = 640x480 - anchor1 = none - anchor2 = none - background-color = #242424 - saved-params = "pos;size;is-minimized;is-maximized" - is-pane = true - elem "stat" - type = INFO - pos = 0,0 - size = 640x480 - anchor1 = 0,0 - anchor2 = 100,100 - text-color = #e0e0e0 - background-color = #272727 - is-default = true - saved-params = "" - tab-text-color = #e0e0e0 - tab-background-color = #242424 - prefix-color = #e0e0e0 - suffix-color = #e0e0e0 - -window "preferences_window" - elem "preferences_window" - type = MAIN - pos = 372,0 - size = 1280x1000 - anchor1 = none - anchor2 = none - is-visible = false - saved-params = "pos;size;is-minimized;is-maximized" - statusbar = false - elem "preferences_browser" - type = BROWSER - pos = 0,0 - size = 960x1000 - anchor1 = 0,0 - anchor2 = 75,100 - saved-params = "" - elem "character_preview_map" - type = MAP - pos = 960,0 - size = 320x1000 - anchor1 = 75,0 - anchor2 = 100,100 - right-click = true - saved-params = "zoom;letterbox;zoom-mode" - diff --git a/rust_g.dll b/rust_g.dll index 27ee495684..f4be6e730a 100644 Binary files a/rust_g.dll and b/rust_g.dll differ diff --git a/sound/block_parry/block_metal1.ogg b/sound/block_parry/block_metal1.ogg new file mode 100644 index 0000000000..c0f98249cd Binary files /dev/null and b/sound/block_parry/block_metal1.ogg differ diff --git a/sound/block_parry/block_metal2.ogg b/sound/block_parry/block_metal2.ogg new file mode 100644 index 0000000000..58c1233cea Binary files /dev/null and b/sound/block_parry/block_metal2.ogg differ diff --git a/sound/block_parry/block_wood1.ogg b/sound/block_parry/block_wood1.ogg new file mode 100644 index 0000000000..a01f3dbe01 Binary files /dev/null and b/sound/block_parry/block_wood1.ogg differ diff --git a/sound/block_parry/block_wood2.ogg b/sound/block_parry/block_wood2.ogg new file mode 100644 index 0000000000..398a59e248 Binary files /dev/null and b/sound/block_parry/block_wood2.ogg differ diff --git a/sound/block_parry/sfx-parry.ogg b/sound/block_parry/sfx-parry.ogg new file mode 100644 index 0000000000..3429031bd9 Binary files /dev/null and b/sound/block_parry/sfx-parry.ogg differ diff --git a/sound/effects/meatslap.ogg b/sound/effects/meatslap.ogg new file mode 100644 index 0000000000..3d8ea7df1a Binary files /dev/null and b/sound/effects/meatslap.ogg differ diff --git a/sound/voice/medbot/close.ogg b/sound/voice/medbot/close.ogg new file mode 100644 index 0000000000..9e0efcefd2 Binary files /dev/null and b/sound/voice/medbot/close.ogg differ diff --git a/sound/voice/medbot/dont_like.ogg b/sound/voice/medbot/dont_like.ogg new file mode 100644 index 0000000000..06fc84af2f Binary files /dev/null and b/sound/voice/medbot/dont_like.ogg differ diff --git a/sound/voice/medbot/forgive.ogg b/sound/voice/medbot/forgive.ogg new file mode 100644 index 0000000000..729eaa5c78 Binary files /dev/null and b/sound/voice/medbot/forgive.ogg differ diff --git a/sound/voice/medbot/fuck_you.ogg b/sound/voice/medbot/fuck_you.ogg new file mode 100644 index 0000000000..5eacff615f Binary files /dev/null and b/sound/voice/medbot/fuck_you.ogg differ diff --git a/sound/voice/medbot/hey_wait.ogg b/sound/voice/medbot/hey_wait.ogg new file mode 100644 index 0000000000..6c88b761ec Binary files /dev/null and b/sound/voice/medbot/hey_wait.ogg differ diff --git a/sound/voice/medbot/i_require_asst.ogg b/sound/voice/medbot/i_require_asst.ogg new file mode 100644 index 0000000000..18fabc630f Binary files /dev/null and b/sound/voice/medbot/i_require_asst.ogg differ diff --git a/sound/voice/medbot/i_trusted_you.ogg b/sound/voice/medbot/i_trusted_you.ogg new file mode 100644 index 0000000000..602baa2f67 Binary files /dev/null and b/sound/voice/medbot/i_trusted_you.ogg differ diff --git a/sound/voice/medbot/im_different.ogg b/sound/voice/medbot/im_different.ogg new file mode 100644 index 0000000000..42eb8564f1 Binary files /dev/null and b/sound/voice/medbot/im_different.ogg differ diff --git a/sound/voice/medbot/is_this_the_end.ogg b/sound/voice/medbot/is_this_the_end.ogg new file mode 100644 index 0000000000..a2e0e2330a Binary files /dev/null and b/sound/voice/medbot/is_this_the_end.ogg differ diff --git a/sound/voice/medbot/nooo.ogg b/sound/voice/medbot/nooo.ogg new file mode 100644 index 0000000000..102fd1fb04 Binary files /dev/null and b/sound/voice/medbot/nooo.ogg differ diff --git a/sound/voice/medbot/oh_fuck.ogg b/sound/voice/medbot/oh_fuck.ogg new file mode 100644 index 0000000000..95d21ef255 Binary files /dev/null and b/sound/voice/medbot/oh_fuck.ogg differ diff --git a/sound/voice/medbot/pain_is_real.ogg b/sound/voice/medbot/pain_is_real.ogg new file mode 100644 index 0000000000..9cfa3a71be Binary files /dev/null and b/sound/voice/medbot/pain_is_real.ogg differ diff --git a/sound/voice/medbot/please_dont.ogg b/sound/voice/medbot/please_dont.ogg new file mode 100644 index 0000000000..a77ee09cb4 Binary files /dev/null and b/sound/voice/medbot/please_dont.ogg differ diff --git a/sound/voice/medbot/please_im_scared.ogg b/sound/voice/medbot/please_im_scared.ogg new file mode 100644 index 0000000000..7bd53b39c8 Binary files /dev/null and b/sound/voice/medbot/please_im_scared.ogg differ diff --git a/sound/voice/medbot/please_put_me_back.ogg b/sound/voice/medbot/please_put_me_back.ogg new file mode 100644 index 0000000000..84700fbdd5 Binary files /dev/null and b/sound/voice/medbot/please_put_me_back.ogg differ diff --git a/sound/voice/medbot/reported.ogg b/sound/voice/medbot/reported.ogg new file mode 100644 index 0000000000..d5469c19ce Binary files /dev/null and b/sound/voice/medbot/reported.ogg differ diff --git a/sound/voice/medbot/shindemashou.ogg b/sound/voice/medbot/shindemashou.ogg new file mode 100644 index 0000000000..1ee2858eaf Binary files /dev/null and b/sound/voice/medbot/shindemashou.ogg differ diff --git a/sound/voice/medbot/thank_you.ogg b/sound/voice/medbot/thank_you.ogg new file mode 100644 index 0000000000..3fabe7d4a6 Binary files /dev/null and b/sound/voice/medbot/thank_you.ogg differ diff --git a/sound/voice/medbot/turn_off.ogg b/sound/voice/medbot/turn_off.ogg new file mode 100644 index 0000000000..87a4d6bdd0 Binary files /dev/null and b/sound/voice/medbot/turn_off.ogg differ diff --git a/sound/voice/medbot/why.ogg b/sound/voice/medbot/why.ogg new file mode 100644 index 0000000000..415020b89b Binary files /dev/null and b/sound/voice/medbot/why.ogg differ diff --git a/sound/voice/medbot/youre_good.ogg b/sound/voice/medbot/youre_good.ogg new file mode 100644 index 0000000000..62c325f834 Binary files /dev/null and b/sound/voice/medbot/youre_good.ogg differ diff --git a/sound/voice/slime_squish.ogg b/sound/voice/slime_squish.ogg new file mode 100644 index 0000000000..60e118e217 Binary files /dev/null and b/sound/voice/slime_squish.ogg differ diff --git a/strings/tips.txt b/strings/tips.txt index c8f233bb1a..043405c7a0 100644 --- a/strings/tips.txt +++ b/strings/tips.txt @@ -37,6 +37,7 @@ As a Medical Doctor, treating plasmamen is not impossible! Salbutamol stops them As a Medical Doctor, you can point your penlight at people to create a medical hologram. This lets them know that you're coming to treat them. As a Medical Doctor, you can extract implants by holding an empty implant case in your offhand while performing the extraction step. As a Medical Doctor, clone scanning people will implant them with a health tracker that displays their vitals in the clone records. Useful to check on crew members that didn't activate suit sensors! +As a Medical Doctor, medical gauze stops bleeding as well as healing 5 brute damage, this even works on the dead! Make sure to always have some gauze on you to stop bleeding before dragging someone. As a Chemist, there are dozens of chemicals that can heal, and even more that can cause harm. Experiment! As a Chemist, some chemicals can only be synthesized by heating up the contents in the chemical heater. As a Chemist, you will be expected to supply crew with certain chemicals. For example, clonexadone and mannitol for the cryo tubes, unstable mutagen and saltpetre for botany as well as healing pills and patches for the front desk. @@ -64,6 +65,7 @@ As a Roboticist, you can greatly help out Shaft Miners by building a Firefighter As a Roboticist, you can augment people with cyborg limbs. Augmented limbs can easily be repaired with cables and welders. As a Roboticist, you can use your printer that is linked to the ore silo to teleport mats into your work place! As a Roboticist, you can upgrade cleanbots with adv mops and brooms to make them faster and better! +As a Roboticist, you can upgrade medical bots with diamond-tipped syringes, MK.II Hypospray, dispenser-sleeper-chemheater boards to make them inject faster, harder and better chems! As the AI, you can click on people's names to look at them. This only works if there are cameras that can see them. As the AI, you can quickly open and close doors by holding shift while clicking them, bolt them when holding ctrl, and even shock them while holding alt. As the AI, you can take pictures with your camera and upload them to newscasters. @@ -263,7 +265,12 @@ As a Devil, as long as you control at least one other soul, you will automatical At which time a Devil's nameth is spake on the tongue of man, the Devil may appeareth. You can swap floor tiles by holding a crowbar in one hand and a stack of tiles in the other. When hacking doors, cutting and mending the "test light wire" will restore power to the door. +When hacking, remote singulars pulse when attached to a wire and pinged. This can allow you to hack things or set traps from far away. When crafting most items, you can either manually combine parts or use the crafting menu. Suit storage units not only remove blood and dirt from clothing, but also radiation! Remote devices will work when used through cameras. For example: Bluespace RPEDs and door remotes. Laser pointers can be upgraded by replacing its micro laser with a better one from RnD! Use a screwdriver on it to remove the old laser. Upgrading the laser pointer gives you better odds of stunning a cyborg, and even blinding people with sunglasses. +Being out of combat mode makes makes you deal less damage to people and objects when attacking. +Resting makes you deal less damage to people and objects when attacking. +You do not regenerate as much stamina while in combat mode. Resting (being on the ground) makes you regenerate stamina faster. +Remember to be in combat mode while in combat, as otherwise you will be penalized by taking more incoming damage and dealing less damage to your adversary. diff --git a/strings/traumas.json b/strings/traumas.json index 833c786b75..f461c5f5fd 100644 --- a/strings/traumas.json +++ b/strings/traumas.json @@ -130,7 +130,8 @@ "@pick(semicolon)*awoo", "@pick(semicolon)*merp", "@pick(semicolon)*weh", - "@pick(semicolon)My balls finally feel full, again." + "@pick(semicolon)My balls finally feel full, again.", + "@pick(semicolon)Assaltign a sec osficer aren't crime if ur @pick(roles)" ], "mutations": [ diff --git a/strings/wisdoms.txt b/strings/wisdoms.txt new file mode 100644 index 0000000000..b4dd53027c --- /dev/null +++ b/strings/wisdoms.txt @@ -0,0 +1,443 @@ +A day for firm decisions!!!!! Or is it? +A few hours grace before the madness begins again. +A gift of a flower will soon be made to you. +A long-forgotten loved one will appear soon. +Buy the negatives at any price. +A tall, dark stranger will have more fun than you. +A visit to a fresh place will bring strange work. +A visit to a strange place will bring fresh work. +A vivid and creative mind characterizes you. +Abandon the search for Truth; settle for a good fantasy. +Accent on helpful side of your nature. Drain the moat. +Advancement in position. +After your lover has gone you will still have PEANUT BUTTER! +Afternoon very favorable for romance. Try a single person for a change. +Alimony and bribes will engage a large share of your wealth. +All the troubles you have will pass away very quickly. +Among the lucky, you are the chosen one. +An avocado-tone refrigerator would look good on your resume. +An exotic journey in downtown Newark is in your future. +Another good night not to sleep in a eucalyptus tree. +Are you a turtle? +Are you ever going to do the dishes? Or will you change your major to biology? +Are you making all this up as you go along? +Are you sure the back door is locked? +Artistic ventures highlighted. Rob a museum. +Avert misunderstanding by calm, poise, and balance. +Avoid gunfire in the bathroom tonight. +Avoid reality at all costs. +Bank error in your favor. Collect $200. +Be careful! Is it classified? +Be careful! UGLY strikes 9 out of 10! +Be cautious in your daily affairs. +Be cheerful while you are alive. +Be different: conform. +Be free and open and breezy! Enjoy! Things won't get any better so +get used to it. +Be security conscious -- National defense is at stake. +Beauty and harmony are as necessary to you as the very breath of life. +Best of all is never to have been born. Second best is to die soon. +Better hope the life-inspector doesn't come around while you have your life in such a mess. +Beware of a dark-haired man with a loud tie. +Beware of a tall black man with one blond shoe. +Beware of a tall blond man with one black shoe. +Beware of Bigfoot! +Beware of low-flying butterflies. +Beware the one behind you. +Blow it out your ear. +Break into jail and claim police brutality. +Bridge ahead. Pay troll. +Caution: breathing may be hazardous to your health. +Caution: Keep out of reach of children. +Celebrate Hannibal Day this year. Take an elephant to lunch. +Change your thoughts and you change your world. +Cheer Up! Things are getting worse at a slower rate. +Chess tonight. +Chicken Little only has to be right once. +Chicken Little was right. +Cold hands, no gloves. +Communicate! It can't make things any worse. +Courage is your greatest present need. +Day of inquiry. You will be subpoenaed. +Do not overtax your powers. +Do not sleep in a eucalyptus tree tonight. +Do nothing unless you must, and when you must act -- hesitate. +Do something unusual today. Pay a bill. +Do what comes naturally. Seethe and fume and throw a tantrum. +Domestic happiness and faithful friends. +Don't feed the bats tonight. +Don't get stuck in a closet -- wear yourself out. +Don't get to bragging. +Don't go surfing in South Dakota for a while. +Don't hate yourself in the morning -- sleep till noon. +Don't kiss an elephant on the lips today. +Don't let your mind wander -- it's too little to be let out alone. +Don't look back, the lemmings are gaining on you. +Don't look now, but the man in the moon is laughing at you. +Don't look now, but there is a multi-legged creature on your shoulder. +Don't plan any hasty moves. You'll be evicted soon anyway. +Don't read any sky-writing for the next two weeks. +Don't read everything you believe. +Don't relax! It's only your tension that's holding you together. +Don't tell any big lies today. Small ones can be just as effective. +Don't worry so loud, your roommate can't think. +Don't Worry, Be Happy. +Don't worry. Life's too long. +Don't you feel more like you do now than you did when you came in? +Don't you wish you had more energy... or less ambition? +Everything that you know is wrong, but you can be straightened out. +Everything will be just tickety-boo today. +Excellent day for putting Slinkies on an escalator. +Excellent day to have a rotten day. +Excellent time to become a missing person. +Executive ability is prominent in your make-up. +Exercise caution in your daily affairs. +Expect a letter from a friend who will ask a favor of you. +Expect the worst, it's the least you can do. +Fine day for friends. +So-so day for you. +Fine day to work off excess energy. Steal something heavy. +Fortune: You will be attacked next Wednesday at 3:15 p.m. by six samurai sword wielding purple fish glued to Harley-Davidson motorcycles. +Oh, and have a nice day! +Future looks spotty. You will spill soup in late evening. +Generosity and perfection are your everlasting goals. +Give him an evasive answer. +Give thought to your reputation. Consider changing name and moving to a new town. +Give your very best today. Heaven knows it's little enough. +Go to a movie tonight. Darkness becomes you. +Good day for a change of scene. Repaper the bedroom wall. +Good day for overcoming obstacles. Try a steeplechase. +Good day to deal with people in high places; particularly lonely stewardesses. +Good day to let down old friends who need help. +Good news from afar can bring you a welcome visitor. +Good news. Ten weeks from Friday will be a pretty good day. +Good night to spend with family, but avoid arguments with your mate's new lover. +Green light in A.M. for new projects. Red light in P.M. for traffic tickets. +Hope that the day after you die is a nice day. +If you can read this, you're too close. +If you learn one useless thing every day, in a single year you'll learn +365 useless things. +If you sow your wild oats, hope for a crop failure. +If you stand on your head, you will get footprints in your hair. +If you think last Tuesday was a drag, wait till you see what happens tomorrow! +If your life was a horse, you'd have to shoot it. +In the stairway of life, you'd best take the elevator. +Increased knowledge will help you now. Have mate's phone bugged. +Is that really YOU that is reading this? +Is this really happening? +It is so very hard to be an +on-your-own-take-care-of-yourself-because-there-is-no-one-else-to-do-it-for-you grown-up. +It may or may not be worthwhile, but it still has to be done. +It was all so different before everything changed. +It's all in the mind, ya know. +It's lucky you're going so slowly, because you're going in the wrong direction. +Just because the message may never be received does not mean it is not worth sending. +Just to have it is enough. +Keep emotionally active. Cater to your favorite neurosis. +Keep it short for pithy sake. +Lady Luck brings added income today. Lady friend takes it away tonight. +Learn to pause -- or nothing worthwhile can catch up to you. +Let me put it this way: today is going to be a learning experience. +Life is to you a dashing and bold adventure. +Life, loathe it or ignore it, you can't like it. +Live in a world of your own, but always welcome visitors. +Living your life is a task so difficult, it has never been attempted before. +Long life is in store for you. +Look afar and see the end from the beginning. +Love is in the offing. Be affectionate to one who adores you. +Make a wish, it might come true. +Many changes of mind and mood; do not hesitate too long. +Never be led astray onto the path of virtue. +Never commit yourself! Let someone else commit you. +Never give an inch! +Never look up when dragons fly overhead. +Never reveal your best argument. +Next Friday will not be your lucky day. As a matter of fact, you don't +have a lucky day this year. +Of course you have a purpose -- to find a purpose. +People are beginning to notice you. Try dressing before you leave the house. +Perfect day for scrubbing the floor and other exciting things. +Questionable day. +Ask somebody something. +Reply hazy, ask again later. +Save energy: be apathetic. +Ships are safe in harbor, but they were never meant to stay there. +Slow day. Practice crawling. +Snow Day -- stay home. +So this is it. We're going to die. +So you're back... about time... +Someone is speaking well of you. +Someone is speaking well of you. +How unusual! +Someone whom you reject today, will reject you tomorrow. +Stay away from flying saucers today. +Stay away from hurricanes for a while. +Stay the curse. +That secret you've been guarding, isn't. +The time is right to make new friends. +The whole world is a tuxedo and you are a pair of brown shoes. +There is a 20 chance of tomorrow. +There is a fly on your nose. +There was a phone call for you. +There will be big changes for you but you will be happy. +Things will be bright in P.M. A cop will shine a light in your face. +Think twice before speaking, but don't say "think think click click". +This life is yours. Some of it was given to you; the rest, you made yourself. +This will be a memorable month -- no matter how hard you try to forget it. +Time to be aggressive. Go after a tattooed Virgo. +Today is National Existential Ennui Awareness Day. +Today is the first day of the rest of the mess. +Today is the first day of the rest of your life. +Today is the last day of your life so far. +Today is the tomorrow you worried about yesterday. +Today is what happened to yesterday. +Today's weirdness is tomorrow's reason why. +Tomorrow will be cancelled due to lack of interest. +Tomorrow, this will be part of the unchangeable past but fortunately, it can still be changed today. +Tomorrow, you can be anywhere. +Tonight you will pay the wages of sin; Don't forget to leave a tip. +Tonight's the night: Sleep in a eucalyptus tree. +Troubled day for virgins over 16 who are beautiful and wealthy and live +in eucalyptus trees. +Truth will out this morning. (Which may really mess things up.) +Try the Moo Shu Pork. It is especially good today. +Try to get all of your posthumous medals in advance. +Try to have as good a life as you can under the circumstances. +Try to relax and enjoy the crisis. +Try to value useful qualities in one who loves you. +Tuesday After Lunch is the cosmic time of the week. +Tuesday is the Wednesday of the rest of your life. +What happened last night can happen again. +While you recently had your problems on the run, they've regrouped and are making another attack. +Write yourself a threatening letter and pen a defiant reply. +You are a bundle of energy, always on the go. +You are a fluke of the universe; you have no right to be here. +You are a very redundant person, that's what kind of person you are. +You are always busy. +You are as I am with You. +You are capable of planning your future. +You are confused; but this is your normal state. +You are deeply attached to your friends and acquaintances. +You are destined to become the commandant of the fighting men of the department of transportation. +You are dishonest, but never to the point of hurting a friend. +You are fairminded, just and loving. +You are farsighted, a good planner, an ardent lover, and a faithful friend. +You are fighting for survival in your own sweet and gentle way. +You are going to have a new love affair. +You are magnetic in your bearing. +You are not dead yet. But watch for further reports. +You are number 6! Who is number one? +You are only young once, but you can stay immature indefinitely. +You are scrupulously honest, frank, and straightforward. Therefore you have few friends. +You are sick, twisted and perverted. I like that in a person. +You are so boring that when I see you my feet go to sleep. +You are standing on my toes. +You are taking yourself far too seriously. +You are the only person to ever get this message. +You are wise, witty, and wonderful, but you spend too much time reading this sort of trash. +You attempt things that you do not even plan because of your extreme stupidity. +You can create your own opportunities this week. Blackmail a senior executive. +You can do very well in speculation where land or anything to do with dirt is concerned. +You can rent this space for only $5 a week. +You could live a better life, if you had a better mind and a better body. +You definitely intend to start living sometime soon. +You dialed 5483. +You display the wonderful traits of charm and courtesy. +You don't become a failure until you're satisfied with being one. +You enjoy the company of other people. +You feel a whole lot more like you do now than you did when you used to. +You fill a much-needed gap. +You get along very well with everyone except animals and people. +You had some happiness once, but your parents moved away, and you had to leave it behind. +You have a deep appreciation of the arts and music. +You have a deep interest in all that is artistic. +You have a reputation for being thoroughly reliable and trustworthy. +A pity that it's totally undeserved. +You have a strong appeal for members of the opposite sex. +You have a strong appeal for members of your own sex. +You have a strong desire for a home and your family interests come first. +You have a truly strong individuality. +You have a will that can be influenced by all with whom you come in contact. +You have an ability to sense and know higher truth. +You have an ambitious nature and may make a name for yourself. +You have an unusual equipment for success. Be sure to use it properly. +You have an unusual magnetic personality. Don't walk too close to metal objects which are not fastened down. +You have an unusual understanding of the problems of human relationships. +You have been selected for a secret mission. +You have Egyptian flu: you're going to be a mummy. +You have had a long-term stimulation relative to business. +You have literary talent that you should take pains to develop. +You have many friends and very few living enemies. +You have no real enemies. +You have taken yourself too seriously. +You have the body of a 19 year old. Please return it before it gets wrinkled. +You have the capacity to learn from mistakes. You'll learn a lot today. +You have the power to influence all with whom you come in contact. +You learn to write as if to someone else because NEXT YEAR YOU WILL BE "SOMEONE ELSE." +You like to form new friendships and make new acquaintances. +You look like a million dollars. All green and wrinkled. +You look tired. +You love peace. +You love your home and want it to be beautiful. +You may be gone tomorrow, but that doesn't mean that you weren't here today. +You may be infinitely smaller than some things, but you're infinitely larger than others. +You may be recognized soon. Hide. +You may get an opportunity for advancement today. Watch it! +You may worry about your hair-do today, but tomorrow much peanut butter will be sold. +You need more time; and you probably always will. +You need no longer worry about the future. This time tomorrow you'll be dead. +You never hesitate to tackle the most difficult problems. +You never know how many friends you have until you rent a house on the beach. +You now have Asian Flu. +You own a dog, but you can only feed a cat. +You plan things that you do not even attempt because of your extreme caution. +You possess a mind not merely twisted, but actually sprained. +You prefer the company of the opposite sex, but are well liked by your own. +You recoil from the crude; you tend naturally toward the exquisite. +You seek to shield those you love and you like the role of the provider. +You shall be rewarded for a dastardly deed. +You should emulate your heroes, but don't carry it too far. Especially if they are dead. +You should go home. +You single-handedly fought your way into this hopeless mess. +You teach best what you most need to learn. +You too can wear a nose mitten. +You two ought to be more careful--your love could drag on for years and years. +You will always get the greatest recognition for the job you least like. +You will always have good luck in your personal affairs. +You will attract cultured and artistic people to your home. +You will be a winner today. Pick a fight with a four-year-old. +You will be advanced socially, without any special effort on your part. +You will be aided greatly by a person whom you thought to be unimportant. +You will be attacked by a beast who has the body of a wolf, the tail of a lion, and the face of Donald Duck. +You will be audited by the Internal Revenue Service. +You will be awarded a medal for disregarding safety in saving someone. +You will be awarded some great honor. +You will be awarded the Nobel Peace Prize... posthumously. +You will be called upon to help a friend in trouble. +You will be divorced within a year. +You will be given a post of trust and responsibility. +You will be held hostage by a radical group. +You will be honored for contributing your time and skill to a worthy cause. +You will be imprisoned for contributing your time and skill to a bank robbery. +You will be married within a year, and divorced within two. +You will be married within a year. +You will be misunderstood by everyone. +You will be recognized and honored as a community leader. +You will be reincarnated as a toad; and you will be much happier. +You will be run over by a beer truck. +You will be run over by a bus. +You will be singled out for promotion in your work. +You will be successful in love. +You will be surprised by a loud noise. +You will be surrounded by luxury. +You will be the last person to buy a Chrysler. +You will be the victim of a bizarre joke. +You will be Told about it Tomorrow. Go Home and Prepare Thyself. +You will be traveling and coming into a fortune. +You will be winged by an anti-aircraft battery. +You will become rich and famous unless you don't. +You will contract a rare disease. +You will engage in a profitable business activity. +You will experience a strong urge to do good; but it will pass. +You will feel hungry again in another hour. +You will forget that you ever knew me. +You will gain money by a fattening action. +You will gain money by a speculation or lottery. +You will gain money by an illegal action. +You will gain money by an immoral action. +You will get what you deserve. +You will give someone a piece of your mind, which you can ill afford. +You will have a long and boring life. +You will have a long and unpleasant discussion with your supervisor. +You will have domestic happiness and faithful friends. +You will have good luck and overcome many hardships. +You will have long and healthy life. +You will hear good news from one you thought unfriendly to you. +You will inherit millions of dollars. +You will inherit some money or a small piece of land. +You will live a long, healthy, happy life and make bags of money. +You will live to see your grandchildren. +You will lose your present job and have to become a door to door mayonnaise salesman. +You will meet an important person who will help you advance professionally. +You will never know hunger. +You will not be elected to public office this year. +You will obey or molten silver will be poured into your ears. +You will outgrow your usefulness. +You will overcome the attacks of jealous associates. +You will pass away very quickly. +You will pay for your sins. If you have already paid, please disregard this message. +You will pioneer the first Martian colony. +You will probably marry after a very brief courtship. +You will reach the highest possible point in your business or profession. +You will receive a legacy which will place you above want. +You will remember something that you should not have forgotten. +You will soon forget this. +You will soon meet a person who will play an important role in your life. +You will step on the night soil of many countries. +You will stop at nothing to reach your objective, but only because your brakes are defective. +You will triumph over your enemy. +You will visit the Dung Pits of Glive soon. +You will win success in whatever calling you adopt. +You will wish you hadn't. +You work very hard. Don't try to think as well. +You worry too much about your job. Stop it. You are not paid enough to worry. +You would if you could but you can't so you won't. +You'd like to do it instantaneously, but that's too slow. +You'll be called to a post requiring ability in handling groups of people. +You'll be sorry... +You'll feel devilish tonight. Toss dynamite caps under a flamenco dancer's heel. +You'll feel much better once you've given up hope. +You'll never be the man your mother was! +You'll never see all the places, or read all the books, but fortunately, +they're not all recommended. +You'll wish that you had done some of the hard things when they were easier to do. +You're a card which will have to be dealt with. +You're almost as happy as you think you are. +You're at the end of the road again. +You're being followed. Cut out the hanky-panky for a few days. +You're currently going through a difficult transition period called "Life." +You're definitely on their list. The question to ask next is what list it is. +You're growing out of some of your problems, but there are others that you're growing into. +You're not my type. For that matter, you're not even my species!!! +You're ugly and your mother dresses you funny. +You're working under a slight handicap. You happen to be human. +You've been leading a dog's life. Stay off the furniture. +Your aim is high and to the right. +Your aims are high, and you are capable of much. +Your analyst has you mixed up with another patient. Don't believe a thing he tells you. +Your best consolation is the hope that the things you failed to get weren't really worth having. +Your boss climbed the corporate ladder, wrong by wrong. +Your boss is a few sandwiches short of a picnic. +Your boyfriend takes chocolate from strangers. +Your business will assume vast proportions. +Your business will go through a period of considerable expansion. +Your depth of comprehension may tend to make you lax in worldly ways. +Your domestic life may be harmonious. +Your fly might be open (but don't check it just now). +Your goose is cooked. +(Your current chick is burned up too!) +Your heart is pure, and your mind clear, and your soul devout. +Your ignorance cramps my conversation. +Your life would be very empty if you had nothing to regret. +Your love life will be happy and harmonious. +Your love life will be... interesting. +Your lover will never wish to leave you. +Your lucky color has faded. +Your lucky number has been disconnected. +Your lucky number is 3552664958674928. Watch for it everywhere. +Your mode of life will be changed for the better because of good news soon. +Your mode of life will be changed for the better because of new developments. +Your motives for doing whatever good deed you may have in mind will be misinterpreted by somebody. +Your nature demands love and your happiness depends on it. +Your object is to save the world, while still leading a pleasant life. +Your own qualities will help prevent your advancement in the world. +Your present plans will be successful. +Your reasoning is excellent -- it's only your basic assumptions that are wrong. +Your reasoning powers are good, and you are a fairly good planner. +Your sister swims out to meet troop ships. +Your society will be sought by people of taste and refinement. +Your step will soil many countries. +Your supervisor is thinking about you. +Your talents will be recognized and suitably rewarded. +Your temporary financial embarrassment will be relieved in a surprising manner. +Your true value depends entirely on what you are compared with. diff --git a/tgstation.dme b/tgstation.dme old mode 100755 new mode 100644 index 9bcc2ed53e..8be5ae2a46 --- a/tgstation.dme +++ b/tgstation.dme @@ -38,6 +38,7 @@ #include "code\__DEFINES\configuration.dm" #include "code\__DEFINES\construction.dm" #include "code\__DEFINES\contracts.dm" +#include "code\__DEFINES\cooldowns.dm" #include "code\__DEFINES\cult.dm" #include "code\__DEFINES\diseases.dm" #include "code\__DEFINES\DNA.dm" @@ -48,7 +49,6 @@ #include "code\__DEFINES\events.dm" #include "code\__DEFINES\exports.dm" #include "code\__DEFINES\fantasy_affixes.dm" -#include "code\__DEFINES\flags.dm" #include "code\__DEFINES\food.dm" #include "code\__DEFINES\footsteps.dm" #include "code\__DEFINES\hud.dm" @@ -77,7 +77,6 @@ #include "code\__DEFINES\movespeed_modification.dm" #include "code\__DEFINES\nanites.dm" #include "code\__DEFINES\networks.dm" -#include "code\__DEFINES\obj_flags.dm" #include "code\__DEFINES\pinpointers.dm" #include "code\__DEFINES\pipe_construction.dm" #include "code\__DEFINES\pool.dm" @@ -85,6 +84,7 @@ #include "code\__DEFINES\preferences.dm" #include "code\__DEFINES\procpath.dm" #include "code\__DEFINES\profile.dm" +#include "code\__DEFINES\projectiles.dm" #include "code\__DEFINES\qdel.dm" #include "code\__DEFINES\radiation.dm" #include "code\__DEFINES\radio.dm" @@ -94,7 +94,6 @@ #include "code\__DEFINES\research.dm" #include "code\__DEFINES\robots.dm" #include "code\__DEFINES\role_preferences.dm" -#include "code\__DEFINES\rust_g.config.dm" #include "code\__DEFINES\rust_g.dm" #include "code\__DEFINES\say.dm" #include "code\__DEFINES\security_levels.dm" @@ -105,7 +104,6 @@ #include "code\__DEFINES\stat.dm" #include "code\__DEFINES\stat_tracking.dm" #include "code\__DEFINES\status_effects.dm" -#include "code\__DEFINES\storage.dm" #include "code\__DEFINES\subsystems.dm" #include "code\__DEFINES\tgs.config.dm" #include "code\__DEFINES\tgs.dm" @@ -121,9 +119,17 @@ #include "code\__DEFINES\vv.dm" #include "code\__DEFINES\wall_dents.dm" #include "code\__DEFINES\wires.dm" +#include "code\__DEFINES\_flags\_flags.dm" +#include "code\__DEFINES\_flags\item_flags.dm" +#include "code\__DEFINES\_flags\obj_flags.dm" +#include "code\__DEFINES\admin\keybindings.dm" +#include "code\__DEFINES\combat\attack_types.dm" +#include "code\__DEFINES\combat\block.dm" +#include "code\__DEFINES\combat\block_parry.dm" #include "code\__DEFINES\dcs\flags.dm" #include "code\__DEFINES\dcs\helpers.dm" #include "code\__DEFINES\dcs\signals.dm" +#include "code\__DEFINES\flags\do_after.dm" #include "code\__DEFINES\flags\shields.dm" #include "code\__DEFINES\mapping\maploader.dm" #include "code\__DEFINES\material\worth.dm" @@ -132,16 +138,20 @@ #include "code\__DEFINES\research\stock_parts.dm" #include "code\__DEFINES\skills\defines.dm" #include "code\__DEFINES\skills\helpers.dm" +#include "code\__DEFINES\storage\_storage.dm" +#include "code\__DEFINES\storage\volumetrics.dm" #include "code\__HELPERS\_cit_helpers.dm" #include "code\__HELPERS\_lists.dm" #include "code\__HELPERS\_logging.dm" #include "code\__HELPERS\_string_lists.dm" +#include "code\__HELPERS\angles.dm" #include "code\__HELPERS\areas.dm" #include "code\__HELPERS\AStar.dm" #include "code\__HELPERS\cmp.dm" #include "code\__HELPERS\custom_holoforms.dm" #include "code\__HELPERS\dates.dm" #include "code\__HELPERS\dna.dm" +#include "code\__HELPERS\do_after.dm" #include "code\__HELPERS\donator_groupings.dm" #include "code\__HELPERS\files.dm" #include "code\__HELPERS\game.dm" @@ -185,7 +195,9 @@ #include "code\_globalvars\misc.dm" #include "code\_globalvars\regexes.dm" #include "code\_globalvars\traits.dm" +#include "code\_globalvars\lists\client.dm" #include "code\_globalvars\lists\flavor_misc.dm" +#include "code\_globalvars\lists\keybindings.dm" #include "code\_globalvars\lists\maintenance_loot.dm" #include "code\_globalvars\lists\mapping.dm" #include "code\_globalvars\lists\medals.dm" @@ -291,7 +303,6 @@ #include "code\controllers\subsystem\minimaps.dm" #include "code\controllers\subsystem\minor_mapping.dm" #include "code\controllers\subsystem\mobs.dm" -#include "code\controllers\subsystem\moods.dm" #include "code\controllers\subsystem\nightshift.dm" #include "code\controllers\subsystem\npcpool.dm" #include "code\controllers\subsystem\overlays.dm" @@ -348,7 +359,6 @@ #include "code\datums\datumvars.dm" #include "code\datums\dna.dm" #include "code\datums\dog_fashion.dm" -#include "code\datums\embedding_behavior.dm" #include "code\datums\emotes.dm" #include "code\datums\ert.dm" #include "code\datums\explosion.dm" @@ -369,6 +379,7 @@ #include "code\datums\shuttles.dm" #include "code\datums\soullink.dm" #include "code\datums\spawners_menu.dm" +#include "code\datums\tgs_event_handler.dm" #include "code\datums\verbs.dm" #include "code\datums\weakrefs.dm" #include "code\datums\world_topic.dm" @@ -377,6 +388,7 @@ #include "code\datums\brain_damage\brain_trauma.dm" #include "code\datums\brain_damage\hypnosis.dm" #include "code\datums\brain_damage\imaginary_friend.dm" +#include "code\datums\brain_damage\magic.dm" #include "code\datums\brain_damage\mild.dm" #include "code\datums\brain_damage\phobia.dm" #include "code\datums\brain_damage\severe.dm" @@ -390,15 +402,16 @@ #include "code\datums\components\butchering.dm" #include "code\datums\components\caltrop.dm" #include "code\datums\components\chasm.dm" +#include "code\datums\components\combat_mode.dm" #include "code\datums\components\construction.dm" -#include "code\datums\components\decal.dm" #include "code\datums\components\dejavu.dm" #include "code\datums\components\earprotection.dm" +#include "code\datums\components\edible.dm" #include "code\datums\components\edit_complainer.dm" -#include "code\datums\components\empprotection.dm" +#include "code\datums\components\embedded.dm" #include "code\datums\components\explodable.dm" +#include "code\datums\components\field_of_vision.dm" #include "code\datums\components\footstep.dm" -#include "code\datums\components\forced_gravity.dm" #include "code\datums\components\identification.dm" #include "code\datums\components\igniter.dm" #include "code\datums\components\infective.dm" @@ -410,11 +423,14 @@ #include "code\datums\components\magnetic_catch.dm" #include "code\datums\components\material_container.dm" #include "code\datums\components\mirage_border.dm" +#include "code\datums\components\mirv.dm" #include "code\datums\components\mood.dm" #include "code\datums\components\nanites.dm" #include "code\datums\components\ntnet_interface.dm" +#include "code\datums\components\omen.dm" #include "code\datums\components\orbiter.dm" #include "code\datums\components\paintable.dm" +#include "code\datums\components\pellet_cloud.dm" #include "code\datums\components\phantomthief.dm" #include "code\datums\components\rad_insulation.dm" #include "code\datums\components\radioactive.dm" @@ -422,7 +438,6 @@ #include "code\datums\components\riding.dm" #include "code\datums\components\rotation.dm" #include "code\datums\components\shielded.dm" -#include "code\datums\components\shrapnel.dm" #include "code\datums\components\shrink.dm" #include "code\datums\components\sizzle.dm" #include "code\datums\components\slippery.dm" @@ -433,8 +448,8 @@ #include "code\datums\components\summoning.dm" #include "code\datums\components\swarming.dm" #include "code\datums\components\tackle.dm" -#include "code\datums\components\tactical.dm" #include "code\datums\components\thermite.dm" +#include "code\datums\components\twohanded.dm" #include "code\datums\components\uplink.dm" #include "code\datums\components\virtual_reality.dm" #include "code\datums\components\wearertargeting.dm" @@ -520,14 +535,22 @@ #include "code\datums\diseases\advance\symptoms\weight.dm" #include "code\datums\diseases\advance\symptoms\youth.dm" #include "code\datums\elements\_element.dm" +#include "code\datums\elements\art.dm" +#include "code\datums\elements\beauty.dm" #include "code\datums\elements\cleaning.dm" +#include "code\datums\elements\decal.dm" #include "code\datums\elements\dusts_on_catatonia.dm" #include "code\datums\elements\dusts_on_leaving_area.dm" +#include "code\datums\elements\dwarfism.dm" #include "code\datums\elements\earhealing.dm" +#include "code\datums\elements\embed.dm" +#include "code\datums\elements\empprotection.dm" #include "code\datums\elements\firestacker.dm" #include "code\datums\elements\flavor_text.dm" +#include "code\datums\elements\forced_gravity.dm" #include "code\datums\elements\ghost_role_eligibility.dm" #include "code\datums\elements\mob_holder.dm" +#include "code\datums\elements\photosynthesis.dm" #include "code\datums\elements\polychromic.dm" #include "code\datums\elements\scavenging.dm" #include "code\datums\elements\snail_crawl.dm" @@ -535,6 +558,7 @@ #include "code\datums\elements\squish.dm" #include "code\datums\elements\swimming.dm" #include "code\datums\elements\sword_point.dm" +#include "code\datums\elements\tactical.dm" #include "code\datums\elements\update_icon_blocker.dm" #include "code\datums\elements\update_icon_updates_onmob.dm" #include "code\datums\elements\wuv.dm" @@ -558,6 +582,8 @@ #include "code\datums\martial\wrestling.dm" #include "code\datums\materials\_material.dm" #include "code\datums\materials\basemats.dm" +#include "code\datums\materials\meat.dm" +#include "code\datums\materials\pizza.dm" #include "code\datums\mood_events\beauty_events.dm" #include "code\datums\mood_events\drink_events.dm" #include "code\datums\mood_events\drug_events.dm" @@ -585,8 +611,12 @@ #include "code\datums\skills\_check_skills.dm" #include "code\datums\skills\_skill.dm" #include "code\datums\skills\_skill_holder.dm" +#include "code\datums\skills\_skill_modifier.dm" #include "code\datums\skills\engineering.dm" #include "code\datums\skills\medical.dm" +#include "code\datums\skills\modifiers\job.dm" +#include "code\datums\skills\modifiers\mood.dm" +#include "code\datums\skills\modifiers\organs.dm" #include "code\datums\status_effects\buffs.dm" #include "code\datums\status_effects\debuffs.dm" #include "code\datums\status_effects\gas.dm" @@ -714,13 +744,13 @@ #include "code\game\machinery\dna_scanner.dm" #include "code\game\machinery\doppler_array.dm" #include "code\game\machinery\droneDispenser.dm" -#include "code\game\machinery\exp_cloner.dm" #include "code\game\machinery\firealarm.dm" #include "code\game\machinery\flasher.dm" #include "code\game\machinery\gulag_item_reclaimer.dm" #include "code\game\machinery\gulag_teleporter.dm" #include "code\game\machinery\harvester.dm" #include "code\game\machinery\hologram.dm" +#include "code\game\machinery\hypnochair.dm" #include "code\game\machinery\igniter.dm" #include "code\game\machinery\iv_drip.dm" #include "code\game\machinery\launch_pad.dm" @@ -735,6 +765,7 @@ #include "code\game\machinery\rechargestation.dm" #include "code\game\machinery\recycler.dm" #include "code\game\machinery\requests_console.dm" +#include "code\game\machinery\sheetifier.dm" #include "code\game\machinery\shieldgen.dm" #include "code\game\machinery\Sleeper.dm" #include "code\game\machinery\slotmachine.dm" @@ -806,6 +837,9 @@ #include "code\game\machinery\porta_turret\portable_turret.dm" #include "code\game\machinery\porta_turret\portable_turret_construct.dm" #include "code\game\machinery\porta_turret\portable_turret_cover.dm" +#include "code\game\machinery\shuttle\custom_shuttle.dm" +#include "code\game\machinery\shuttle\shuttle_engine.dm" +#include "code\game\machinery\shuttle\shuttle_heater.dm" #include "code\game\machinery\telecomms\broadcasting.dm" #include "code\game\machinery\telecomms\machine_interactions.dm" #include "code\game\machinery\telecomms\telecomunications.dm" @@ -847,6 +881,7 @@ #include "code\game\mecha\equipment\weapons\mecha_ammo.dm" #include "code\game\mecha\equipment\weapons\weapons.dm" #include "code\game\mecha\medical\medical.dm" +#include "code\game\mecha\medical\medigax.dm" #include "code\game\mecha\medical\odysseus.dm" #include "code\game\mecha\working\ripley.dm" #include "code\game\mecha\working\working.dm" @@ -916,13 +951,16 @@ #include "code\game\objects\items\airlock_painter.dm" #include "code\game\objects\items\apc_frame.dm" #include "code\game\objects\items\balls.dm" +#include "code\game\objects\items\binoculars.dm" #include "code\game\objects\items\blueprints.dm" #include "code\game\objects\items\body_egg.dm" #include "code\game\objects\items\bodybag.dm" #include "code\game\objects\items\boombox.dm" +#include "code\game\objects\items\broom.dm" #include "code\game\objects\items\candle.dm" #include "code\game\objects\items\cardboard_cutouts.dm" #include "code\game\objects\items\cards_ids.dm" +#include "code\game\objects\items\chainsaw.dm" #include "code\game\objects\items\charter.dm" #include "code\game\objects\items\chromosome.dm" #include "code\game\objects\items\chrono_eraser.dm" @@ -940,8 +978,11 @@ #include "code\game\objects\items\dice.dm" #include "code\game\objects\items\dna_injector.dm" #include "code\game\objects\items\documents.dm" +#include "code\game\objects\items\dualsaber.dm" #include "code\game\objects\items\eightball.dm" +#include "code\game\objects\items\electrostaff.dm" #include "code\game\objects\items\extinguisher.dm" +#include "code\game\objects\items\fireaxe.dm" #include "code\game\objects\items\flamethrower.dm" #include "code\game\objects\items\gift.dm" #include "code\game\objects\items\granters.dm" @@ -960,6 +1001,7 @@ #include "code\game\objects\items\paiwire.dm" #include "code\game\objects\items\pet_carrier.dm" #include "code\game\objects\items\pinpointer.dm" +#include "code\game\objects\items\pitchfork.dm" #include "code\game\objects\items\plushes.dm" #include "code\game\objects\items\pneumaticCannon.dm" #include "code\game\objects\items\powerfist.dm" @@ -973,8 +1015,10 @@ #include "code\game\objects\items\sharpener.dm" #include "code\game\objects\items\shields.dm" #include "code\game\objects\items\shooting_range.dm" +#include "code\game\objects\items\shrapnel.dm" #include "code\game\objects\items\signs.dm" #include "code\game\objects\items\singularityhammer.dm" +#include "code\game\objects\items\spear.dm" #include "code\game\objects\items\stunbaton.dm" #include "code\game\objects\items\taster.dm" #include "code\game\objects\items\teleportation.dm" @@ -983,7 +1027,6 @@ #include "code\game\objects\items\theft_tools.dm" #include "code\game\objects\items\toys.dm" #include "code\game\objects\items\trash.dm" -#include "code\game\objects\items\twohanded.dm" #include "code\game\objects\items\vending_items.dm" #include "code\game\objects\items\weaponry.dm" #include "code\game\objects\items\circuitboards\circuitboard.dm" @@ -1011,6 +1054,7 @@ #include "code\game\objects\items\devices\multitool.dm" #include "code\game\objects\items\devices\paicard.dm" #include "code\game\objects\items\devices\pipe_painter.dm" +#include "code\game\objects\items\devices\polycircuit.dm" #include "code\game\objects\items\devices\powersink.dm" #include "code\game\objects\items\devices\pressureplates.dm" #include "code\game\objects\items\devices\quantum_keycard.dm" @@ -1074,6 +1118,7 @@ #include "code\game\objects\items\stacks\medical.dm" #include "code\game\objects\items\stacks\rods.dm" #include "code\game\objects\items\stacks\stack.dm" +#include "code\game\objects\items\stacks\tape.dm" #include "code\game\objects\items\stacks\telecrystal.dm" #include "code\game\objects\items\stacks\wrap.dm" #include "code\game\objects\items\stacks\sheets\glass.dm" @@ -1085,6 +1130,7 @@ #include "code\game\objects\items\stacks\tiles\light.dm" #include "code\game\objects\items\stacks\tiles\tile_mineral.dm" #include "code\game\objects\items\stacks\tiles\tile_types.dm" +#include "code\game\objects\items\storage\_storage.dm" #include "code\game\objects\items\storage\backpack.dm" #include "code\game\objects\items\storage\bags.dm" #include "code\game\objects\items\storage\belt.dm" @@ -1096,7 +1142,6 @@ #include "code\game\objects\items\storage\firstaid.dm" #include "code\game\objects\items\storage\lockbox.dm" #include "code\game\objects\items\storage\secure.dm" -#include "code\game\objects\items\storage\storage.dm" #include "code\game\objects\items\storage\toolbox.dm" #include "code\game\objects\items\storage\uplink_kits.dm" #include "code\game\objects\items\storage\wallets.dm" @@ -1130,6 +1175,7 @@ #include "code\game\objects\structures\fireplace.dm" #include "code\game\objects\structures\flora.dm" #include "code\game\objects\structures\fluff.dm" +#include "code\game\objects\structures\fugitive_role_spawners.dm" #include "code\game\objects\structures\ghost_role_spawners.dm" #include "code\game\objects\structures\girders.dm" #include "code\game\objects\structures\grille.dm" @@ -1238,6 +1284,7 @@ #include "code\game\turfs\simulated\floor\plating\asteroid.dm" #include "code\game\turfs\simulated\floor\plating\dirt.dm" #include "code\game\turfs\simulated\floor\plating\misc_plating.dm" +#include "code\game\turfs\simulated\wall\material_walls.dm" #include "code\game\turfs\simulated\wall\mineral_walls.dm" #include "code\game\turfs\simulated\wall\misc_walls.dm" #include "code\game\turfs\simulated\wall\reinf_walls.dm" @@ -1322,6 +1369,7 @@ #include "code\modules\antagonists\_common\antag_spawner.dm" #include "code\modules\antagonists\_common\antag_team.dm" #include "code\modules\antagonists\abductor\abductor.dm" +#include "code\modules\antagonists\abductor\ice_abductor.dm" #include "code\modules\antagonists\abductor\abductee\abductee.dm" #include "code\modules\antagonists\abductor\abductee\abductee_objectives.dm" #include "code\modules\antagonists\abductor\abductee\trauma.dm" @@ -1464,6 +1512,7 @@ #include "code\modules\antagonists\clockcult\clock_items\soul_vessel.dm" #include "code\modules\antagonists\clockcult\clock_items\wraith_spectacles.dm" #include "code\modules\antagonists\clockcult\clock_items\clock_weapons\_call_weapon.dm" +#include "code\modules\antagonists\clockcult\clock_items\clock_weapons\ratvarian_shield.dm" #include "code\modules\antagonists\clockcult\clock_items\clock_weapons\ratvarian_spear.dm" #include "code\modules\antagonists\clockcult\clock_mobs\_eminence.dm" #include "code\modules\antagonists\clockcult\clock_mobs\clockwork_marauder.dm" @@ -1512,6 +1561,10 @@ #include "code\modules\antagonists\disease\disease_event.dm" #include "code\modules\antagonists\disease\disease_mob.dm" #include "code\modules\antagonists\ert\ert.dm" +#include "code\modules\antagonists\fugitive\fugitive.dm" +#include "code\modules\antagonists\fugitive\fugitive_outfits.dm" +#include "code\modules\antagonists\fugitive\fugitive_ship.dm" +#include "code\modules\antagonists\fugitive\hunter.dm" #include "code\modules\antagonists\greentext\greentext.dm" #include "code\modules\antagonists\greybois\greybois.dm" #include "code\modules\antagonists\highlander\highlander.dm" @@ -1592,6 +1645,11 @@ #include "code\modules\assembly\signaler.dm" #include "code\modules\assembly\timer.dm" #include "code\modules\assembly\voice.dm" +#include "code\modules\asset_cache\asset_cache.dm" +#include "code\modules\asset_cache\asset_cache_client.dm" +#include "code\modules\asset_cache\asset_cache_item.dm" +#include "code\modules\asset_cache\asset_list.dm" +#include "code\modules\asset_cache\asset_list_items.dm" #include "code\modules\atmospherics\multiz.dm" #include "code\modules\atmospherics\environmental\LINDA_fire.dm" #include "code\modules\atmospherics\environmental\LINDA_system.dm" @@ -1662,7 +1720,6 @@ #include "code\modules\awaymissions\mission_code\murderdome.dm" #include "code\modules\awaymissions\mission_code\research.dm" #include "code\modules\awaymissions\mission_code\snowdin.dm" -#include "code\modules\awaymissions\mission_code\spacebattle.dm" #include "code\modules\awaymissions\mission_code\stationCollision.dm" #include "code\modules\awaymissions\mission_code\undergroundoutpost45.dm" #include "code\modules\awaymissions\mission_code\wildwest.dm" @@ -1684,6 +1741,7 @@ #include "code\modules\cargo\bounty_console.dm" #include "code\modules\cargo\centcom_podlauncher.dm" #include "code\modules\cargo\console.dm" +#include "code\modules\cargo\coupon.dm" #include "code\modules\cargo\export_scanner.dm" #include "code\modules\cargo\exports.dm" #include "code\modules\cargo\expressconsole.dm" @@ -1724,6 +1782,7 @@ #include "code\modules\cargo\packs\emergency.dm" #include "code\modules\cargo\packs\engine.dm" #include "code\modules\cargo\packs\engineering.dm" +#include "code\modules\cargo\packs\goodies.dm" #include "code\modules\cargo\packs\livestock.dm" #include "code\modules\cargo\packs\materials.dm" #include "code\modules\cargo\packs\medical.dm" @@ -1734,7 +1793,6 @@ #include "code\modules\cargo\packs\service.dm" #include "code\modules\cargo\packs\vending.dm" #include "code\modules\chatter\chatter.dm" -#include "code\modules\client\asset_cache.dm" #include "code\modules\client\client_colour.dm" #include "code\modules\client\client_defines.dm" #include "code\modules\client\client_procs.dm" @@ -1746,6 +1804,7 @@ #include "code\modules\client\preferences_toggles.dm" #include "code\modules\client\preferences_vr.dm" #include "code\modules\client\verbs\aooc.dm" +#include "code\modules\client\verbs\autobunker.dm" #include "code\modules\client\verbs\etips.dm" #include "code\modules\client\verbs\looc.dm" #include "code\modules\client\verbs\minimap.dm" @@ -1769,7 +1828,6 @@ #include "code\modules\clothing\gloves\tacklers.dm" #include "code\modules\clothing\head\_head.dm" #include "code\modules\clothing\head\beanie.dm" -#include "code\modules\clothing\head\cit_hats.dm" #include "code\modules\clothing\head\collectable.dm" #include "code\modules\clothing\head\hardhat.dm" #include "code\modules\clothing\head\helmet.dm" @@ -1859,6 +1917,7 @@ #include "code\modules\events\anomaly_vortex.dm" #include "code\modules\events\aurora_caelus.dm" #include "code\modules\events\blob.dm" +#include "code\modules\events\brain_trauma.dm" #include "code\modules\events\brand_intelligence.dm" #include "code\modules\events\bureaucratic_error.dm" #include "code\modules\events\camerafailure.dm" @@ -1868,7 +1927,9 @@ #include "code\modules\events\disease_outbreak.dm" #include "code\modules\events\dust.dm" #include "code\modules\events\electrical_storm.dm" +#include "code\modules\events\fake_virus.dm" #include "code\modules\events\false_alarm.dm" +#include "code\modules\events\fugitive_spawning.dm" #include "code\modules\events\ghost_role.dm" #include "code\modules\events\grid_check.dm" #include "code\modules\events\heart_attack.dm" @@ -1892,7 +1953,9 @@ #include "code\modules\events\spacevine.dm" #include "code\modules\events\spider_infestation.dm" #include "code\modules\events\spontaneous_appendicitis.dm" +#include "code\modules\events\stray_cargo.dm" #include "code\modules\events\vent_clog.dm" +#include "code\modules\events\wisdomcow.dm" #include "code\modules\events\wormholes.dm" #include "code\modules\events\holiday\halloween.dm" #include "code\modules\events\holiday\vday.dm" @@ -1901,12 +1964,14 @@ #include "code\modules\events\wizard\blobies.dm" #include "code\modules\events\wizard\curseditems.dm" #include "code\modules\events\wizard\departmentrevolt.dm" +#include "code\modules\events\wizard\embeddies.dm" #include "code\modules\events\wizard\fakeexplosion.dm" #include "code\modules\events\wizard\ghost.dm" #include "code\modules\events\wizard\greentext.dm" #include "code\modules\events\wizard\imposter.dm" #include "code\modules\events\wizard\invincible.dm" #include "code\modules\events\wizard\lava.dm" +#include "code\modules\events\wizard\madness.dm" #include "code\modules\events\wizard\magicarp.dm" #include "code\modules\events\wizard\petsplosion.dm" #include "code\modules\events\wizard\race.dm" @@ -1977,6 +2042,7 @@ #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_soup.dm" #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_spaghetti.dm" #include "code\modules\games\cas.dm" +#include "code\modules\games\unum.dm" #include "code\modules\goonchat\browserOutput.dm" #include "code\modules\holiday\easter.dm" #include "code\modules\holiday\holidays.dm" @@ -2027,6 +2093,7 @@ #include "code\modules\hydroponics\grown\onion.dm" #include "code\modules\hydroponics\grown\peach.dm" #include "code\modules\hydroponics\grown\peanuts.dm" +#include "code\modules\hydroponics\grown\peas.dm" #include "code\modules\hydroponics\grown\pineapple.dm" #include "code\modules\hydroponics\grown\potato.dm" #include "code\modules\hydroponics\grown\pumpkin.dm" @@ -2132,16 +2199,23 @@ #include "code\modules\jobs\job_types\virologist.dm" #include "code\modules\jobs\job_types\warden.dm" #include "code\modules\jobs\map_changes\map_changes.dm" -#include "code\modules\keybindings\bindings_admin.dm" #include "code\modules\keybindings\bindings_atom.dm" -#include "code\modules\keybindings\bindings_carbon.dm" #include "code\modules\keybindings\bindings_client.dm" -#include "code\modules\keybindings\bindings_human.dm" -#include "code\modules\keybindings\bindings_living.dm" -#include "code\modules\keybindings\bindings_mob.dm" -#include "code\modules\keybindings\bindings_robot.dm" #include "code\modules\keybindings\focus.dm" #include "code\modules\keybindings\setup.dm" +#include "code\modules\keybindings\keybind\__defines.dm" +#include "code\modules\keybindings\keybind\_keybind.dm" +#include "code\modules\keybindings\keybind\admin.dm" +#include "code\modules\keybindings\keybind\carbon.dm" +#include "code\modules\keybindings\keybind\client.dm" +#include "code\modules\keybindings\keybind\combat.dm" +#include "code\modules\keybindings\keybind\emote.dm" +#include "code\modules\keybindings\keybind\human.dm" +#include "code\modules\keybindings\keybind\living.dm" +#include "code\modules\keybindings\keybind\mob.dm" +#include "code\modules\keybindings\keybind\movement.dm" +#include "code\modules\keybindings\keybind\robot.dm" +#include "code\modules\keybindings\keybind\targeting.dm" #include "code\modules\language\aphasia.dm" #include "code\modules\language\beachbum.dm" #include "code\modules\language\codespeak.dm" @@ -2243,6 +2317,7 @@ #include "code\modules\mob\say_vr.dm" #include "code\modules\mob\status_procs.dm" #include "code\modules\mob\transform_procs.dm" +#include "code\modules\mob\typing_indicator.dm" #include "code\modules\mob\update_icons.dm" #include "code\modules\mob\camera\camera.dm" #include "code\modules\mob\dead\dead.dm" @@ -2284,8 +2359,10 @@ #include "code\modules\mob\living\emote.dm" #include "code\modules\mob\living\life.dm" #include "code\modules\mob\living\living.dm" +#include "code\modules\mob\living\living_active_block.dm" +#include "code\modules\mob\living\living_active_parry.dm" #include "code\modules\mob\living\living_block.dm" -#include "code\modules\mob\living\living_combat.dm" +#include "code\modules\mob\living\living_blocking_parrying.dm" #include "code\modules\mob\living\living_defense.dm" #include "code\modules\mob\living\living_defines.dm" #include "code\modules\mob\living\living_mobility.dm" @@ -2308,7 +2385,6 @@ #include "code\modules\mob\living\brain\say.dm" #include "code\modules\mob\living\brain\status_procs.dm" #include "code\modules\mob\living\carbon\carbon.dm" -#include "code\modules\mob\living\carbon\carbon_combat.dm" #include "code\modules\mob\living\carbon\carbon_defense.dm" #include "code\modules\mob\living\carbon\carbon_defines.dm" #include "code\modules\mob\living\carbon\carbon_movement.dm" @@ -2339,7 +2415,6 @@ #include "code\modules\mob\living\carbon\alien\humanoid\death.dm" #include "code\modules\mob\living\carbon\alien\humanoid\humanoid.dm" #include "code\modules\mob\living\carbon\alien\humanoid\humanoid_defense.dm" -#include "code\modules\mob\living\carbon\alien\humanoid\inventory.dm" #include "code\modules\mob\living\carbon\alien\humanoid\life.dm" #include "code\modules\mob\living\carbon\alien\humanoid\queen.dm" #include "code\modules\mob\living\carbon\alien\humanoid\update_icons.dm" @@ -2370,10 +2445,12 @@ #include "code\modules\mob\living\carbon\human\human_movement.dm" #include "code\modules\mob\living\carbon\human\inventory.dm" #include "code\modules\mob\living\carbon\human\life.dm" +#include "code\modules\mob\living\carbon\human\login.dm" #include "code\modules\mob\living\carbon\human\physiology.dm" #include "code\modules\mob\living\carbon\human\say.dm" #include "code\modules\mob\living\carbon\human\species.dm" #include "code\modules\mob\living\carbon\human\status_procs.dm" +#include "code\modules\mob\living\carbon\human\typing_indicator.dm" #include "code\modules\mob\living\carbon\human\update_icons.dm" #include "code\modules\mob\living\carbon\human\species_types\abductors.dm" #include "code\modules\mob\living\carbon\human\species_types\android.dm" @@ -2492,6 +2569,7 @@ #include "code\modules\mob\living\simple_animal\friendly\panda.dm" #include "code\modules\mob\living\simple_animal\friendly\penguin.dm" #include "code\modules\mob\living\simple_animal\friendly\pet.dm" +#include "code\modules\mob\living\simple_animal\friendly\plushie.dm" #include "code\modules\mob\living\simple_animal\friendly\sloth.dm" #include "code\modules\mob\living\simple_animal\friendly\snake.dm" #include "code\modules\mob\living\simple_animal\friendly\drone\_drone.dm" @@ -2535,6 +2613,7 @@ #include "code\modules\mob\living\simple_animal\hostile\nanotrasen.dm" #include "code\modules\mob\living\simple_animal\hostile\netherworld.dm" #include "code\modules\mob\living\simple_animal\hostile\pirate.dm" +#include "code\modules\mob\living\simple_animal\hostile\regalrat.dm" #include "code\modules\mob\living\simple_animal\hostile\russian.dm" #include "code\modules\mob\living\simple_animal\hostile\sharks.dm" #include "code\modules\mob\living\simple_animal\hostile\skeleton.dm" @@ -2926,10 +3005,12 @@ #include "code\modules\reagents\reagent_containers\blood_pack.dm" #include "code\modules\reagents\reagent_containers\borghydro.dm" #include "code\modules\reagents\reagent_containers\bottle.dm" +#include "code\modules\reagents\reagent_containers\chem_pack.dm" #include "code\modules\reagents\reagent_containers\dropper.dm" #include "code\modules\reagents\reagent_containers\glass.dm" #include "code\modules\reagents\reagent_containers\hypospray.dm" #include "code\modules\reagents\reagent_containers\hypovial.dm" +#include "code\modules\reagents\reagent_containers\maunamug.dm" #include "code\modules\reagents\reagent_containers\medspray.dm" #include "code\modules\reagents\reagent_containers\patch.dm" #include "code\modules\reagents\reagent_containers\pill.dm" @@ -2947,6 +3028,7 @@ #include "code\modules\recycling\disposal\outlet.dm" #include "code\modules\recycling\disposal\pipe.dm" #include "code\modules\recycling\disposal\pipe_sorting.dm" +#include "code\modules\research\bepis.dm" #include "code\modules\research\designs.dm" #include "code\modules\research\destructive_analyzer.dm" #include "code\modules\research\experimentor.dm" @@ -3029,6 +3111,7 @@ #include "code\modules\research\techweb\_techweb.dm" #include "code\modules\research\techweb\_techweb_node.dm" #include "code\modules\research\techweb\nodes\alien_nodes.dm" +#include "code\modules\research\techweb\nodes\bepis_nodes.dm" #include "code\modules\research\techweb\nodes\biotech_nodes.dm" #include "code\modules\research\techweb\nodes\bluespace_nodes.dm" #include "code\modules\research\techweb\nodes\computer_hud_nodes.dm" @@ -3066,6 +3149,7 @@ #include "code\modules\ruins\icemoonruin_code\library.dm" #include "code\modules\ruins\lavalandruin_code\alien_nest.dm" #include "code\modules\ruins\lavalandruin_code\biodome_clown_planet.dm" +#include "code\modules\ruins\lavalandruin_code\elephantgraveyard.dm" #include "code\modules\ruins\lavalandruin_code\pizzaparty.dm" #include "code\modules\ruins\lavalandruin_code\puzzle.dm" #include "code\modules\ruins\lavalandruin_code\sloth.dm" @@ -3096,6 +3180,7 @@ #include "code\modules\shuttle\arrivals.dm" #include "code\modules\shuttle\assault_pod.dm" #include "code\modules\shuttle\computer.dm" +#include "code\modules\shuttle\custom_shuttle.dm" #include "code\modules\shuttle\docking.dm" #include "code\modules\shuttle\elevator.dm" #include "code\modules\shuttle\emergency.dm" @@ -3107,10 +3192,17 @@ #include "code\modules\shuttle\ripple.dm" #include "code\modules\shuttle\shuttle.dm" #include "code\modules\shuttle\shuttle_rotate.dm" +#include "code\modules\shuttle\snaxi.dm" #include "code\modules\shuttle\special.dm" #include "code\modules\shuttle\supply.dm" #include "code\modules\shuttle\syndicate.dm" #include "code\modules\shuttle\white_ship.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_creator.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_creator_actions.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_creator_console.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_creator_eye.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_creator_overlay.dm" +#include "code\modules\shuttle\shuttle_creation\shuttle_upgrades.dm" #include "code\modules\spells\spell.dm" #include "code\modules\spells\spell_types\aimed.dm" #include "code\modules\spells\spell_types\area_teleport.dm" @@ -3119,6 +3211,7 @@ #include "code\modules\spells\spell_types\charge.dm" #include "code\modules\spells\spell_types\conjure.dm" #include "code\modules\spells\spell_types\construct_spells.dm" +#include "code\modules\spells\spell_types\curse.dm" #include "code\modules\spells\spell_types\devil.dm" #include "code\modules\spells\spell_types\devil_boons.dm" #include "code\modules\spells\spell_types\dumbfire.dm" @@ -3320,9 +3413,7 @@ #include "interface\interface.dm" #include "interface\menu.dm" #include "interface\stylesheet.dm" -#include "modular_citadel\code\__HELPERS\list2list.dm" -#include "modular_citadel\code\__HELPERS\lists.dm" -#include "modular_citadel\code\__HELPERS\mobs.dm" +#include "interface\skin.dmf" #include "modular_citadel\code\_onclick\click.dm" #include "modular_citadel\code\_onclick\item_attack.dm" #include "modular_citadel\code\_onclick\other_mobs.dm" @@ -3331,15 +3422,11 @@ #include "modular_citadel\code\_onclick\hud\stamina.dm" #include "modular_citadel\code\datums\components\souldeath.dm" #include "modular_citadel\code\datums\status_effects\chems.dm" -#include "modular_citadel\code\game\machinery\wishgranter.dm" #include "modular_citadel\code\game\objects\cit_screenshake.dm" #include "modular_citadel\code\game\objects\effects\temporary_visuals\souldeath.dm" -#include "modular_citadel\code\modules\admin\chat_commands.dm" #include "modular_citadel\code\modules\admin\holder2.dm" #include "modular_citadel\code\modules\admin\secrets.dm" -#include "modular_citadel\code\modules\client\client_defines.dm" #include "modular_citadel\code\modules\client\client_procs.dm" -#include "modular_citadel\code\modules\client\preferences.dm" #include "modular_citadel\code\modules\client\preferences_savefile.dm" #include "modular_citadel\code\modules\client\preferences_toggles.dm" #include "modular_citadel\code\modules\client\loadout\__donator.dm" @@ -3377,11 +3464,9 @@ #include "modular_citadel\code\modules\mob\living\living.dm" #include "modular_citadel\code\modules\mob\living\carbon\carbon.dm" #include "modular_citadel\code\modules\mob\living\carbon\damage_procs.dm" -#include "modular_citadel\code\modules\mob\living\carbon\life.dm" #include "modular_citadel\code\modules\mob\living\carbon\reindex_screams.dm" #include "modular_citadel\code\modules\mob\living\carbon\human\human.dm" #include "modular_citadel\code\modules\mob\living\carbon\human\human_defense.dm" -#include "modular_citadel\code\modules\projectiles\gun.dm" #include "modular_citadel\code\modules\projectiles\ammunition\caseless.dm" #include "modular_citadel\code\modules\projectiles\ammunition\ballistic\smg\smg.dm" #include "modular_citadel\code\modules\projectiles\boxes_magazines\ammo_boxes.dm" @@ -3405,6 +3490,4 @@ #include "modular_citadel\code\modules\reagents\chemistry\recipes\fermi.dm" #include "modular_citadel\code\modules\reagents\objects\clothes.dm" #include "modular_citadel\code\modules\reagents\objects\items.dm" -#include "modular_citadel\code\modules\reagents\reagents\cit_reagents.dm" -#include "modular_citadel\interface\skin.dmf" // END_INCLUDE diff --git a/tgui-next/packages/tgui/components/NumberInput.js b/tgui-next/packages/tgui/components/NumberInput.js index 52f6a87865..8f47c1b56d 100644 --- a/tgui-next/packages/tgui/components/NumberInput.js +++ b/tgui-next/packages/tgui/components/NumberInput.js @@ -209,6 +209,13 @@ export class NumberInput extends Component { return; } const value = clamp(e.target.value, minValue, maxValue); + if (isNaN(value)) + { + this.setState({ + editing: false, + }); + return; + } this.setState({ editing: false, value, @@ -224,6 +231,13 @@ export class NumberInput extends Component { onKeyDown={e => { if (e.keyCode === 13) { const value = clamp(e.target.value, minValue, maxValue); + if (isNaN(value)) + { + this.setState({ + editing: false, + }); + return; + } this.setState({ editing: false, value, diff --git a/tgui-next/packages/tgui/interfaces/AirlockElectronics.js b/tgui-next/packages/tgui/interfaces/AirlockElectronics.js index 680849e649..f42afd1de2 100644 --- a/tgui-next/packages/tgui/interfaces/AirlockElectronics.js +++ b/tgui-next/packages/tgui/interfaces/AirlockElectronics.js @@ -79,7 +79,7 @@ export const AirlockElectronics = props => { />